void input(struct product *p,int n)
{
n++;
char str[20];
printf("输入设备编号:");
gets(str);
p->num=atoi(str);
printf("输入设备类型:");
gets(p->type);
}
这里为什么显示出来的是 输入设备编号:输入设备类型:
也就是说两个是一起显示出来,我就不能给设备写编号
另外,对于已有设备的信息怎么删除?对符合要求的直接把设备编号变成0然后只考虑所有编号大于0的设备这样算不算删除?
下面是部分代码,要求对设备信息添加,删除,浏览,查找
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define N 100
struct product
{
int num; //设备编号
char type[20]; //设备类型
char name[20]; //设备名称
float price; //设备价格
long in_time; //入库时间
char inper_name[20]; //经手人
char yes_no; //是否在库
long out_time; //外借时间
char outper_name[15]; //外借人
long re_time; //归还时间
};
void input(struct product *p,int n); //添加
void del(struct product *p,int n); //删除
void scan(struct product *p,int n); //浏览
void find(struct product *p,int n); //查找
int system(const char *string);
int main()
{
struct product pro[N];
int i;
int number=0;
printf("***************************************************************\n");
printf("* 1.添加新设备 2.删除已有设备 *\n");
printf("* 3.浏览所有设备信息 4.查询某一设备并显示信息*\n");
printf("***************************************************************\n");
printf("请用数字选择你需要的功能:");
scanf("%d",&i);
system("cls"); //清屏操作
switch(i)
{
case 1: input(pro,number); break;
}
return 0;
}
void input(struct product *p,int n)
{
n++;
char str[20];
printf("输入设备编号:");
gets(str);
p->num=atoi(str);
printf("输入设备类型:");
gets(p->type);
printf("输入设备名称:");
gets(p->name);
printf("输入设备价格:");
gets(str);
p->price=atoi(str);
printf("输入设备入库时间 如20150101:");
gets(str);
p->in_time=atoi(str);
printf("输入经手人名字:");
gets(p->inper_name);
printf("设备是否在库?输入yes or no:");
gets(str);
p->yes_no=str[0];
if(p->yes_no=='n'){
printf("输入外借时间 如20150101:");
gets(str);
p->out_time=atoi(str);
printf("输入外借人姓名:");
gets(p->outper_name);
printf("输入归还时间 如20150101:");
gets(str);
p->re_time=atoi(str);
}else{
p->out_time=0;
p->re_time=0;
}
}
MadMarical
相关分类