3.1.3 新增数据函数
整体用循环结构do??while 来实现。一组数据输入完后printf(\是否继续新增?(y/n)\,判断while(cont==‘y' || cont==‘Y’)继续输入数据。 void add_cmp_info() {
int i; char cont; system(\do {
while(cont=='y' || cont=='Y') 输入编号 输入购买日期 输入显示器规格 输入摄像头有无 输入资费标准 输入占用情况 是否继续新增cont y/Y =getch() n/N add_cmp_info() ma() printf(\请输入你要新增的电脑的编号:\\n\
scanf(\ fflush(stdin);
cmp[i-1].num=i; /*i-1为指针后移*/
printf(\请输入第%d台电脑的购买时间(月,日,年):\
scanf(\
i-1].date.year);
fflush(stdin);
printf(\请输入第%d台电脑的显示器规格(yj17/19或cp17/19):\scanf(\fflush(stdin);
printf(\请输入第%d台电脑是否有摄像头(Y/N):\scanf(\fflush(stdin);
printf(\请输入第%d台电脑的收费标准:\scanf(\fflush(stdin);
printf(\请输入第%d台电脑的占用状态(S-闲,B-忙):\scanf(\
6
}
fflush(stdin);
printf(\是否继续新增?(y/n)\\n\fflush(stdin); cont=getchar();
}while(cont=='y' || cont=='Y'); /*判断是否继续新增,不分大小写*/ printf(\按任意键返回菜单。\getch();
ma(); /*调用子函数返回主菜单*/
3.1.4 显示数据函数
通过for循环输出N台电脑的数据。 void ouput_cmp_info() {
int i;
system(\printf(\
printf(\各台电脑的信息如下:\\n\各台电脑的信息如下 for(i=0;i --------\\n\ printf(\for(i=0;i printf(\ month,cmp[i].date.day,cmp[i].date.year,cmp[i].display,cmp[i].camera,cmp[i].fee,cmp[i].condition); /*按数组顺序依次输出数据*/ printf(\按任意键返回菜单。\getch(); ma(); /*调用子函数返回主菜单*/ 7 } 3.1.5 查找数据函数 首先显示查找菜单界面,查找方式分为两种:一种是编号查找,一种是要求查找,用选择结构switch 语句来实现选择。case 1 编号查找中套用if 语句判断输入的编号是否在电脑N上限内,再用for循环找出匹配电脑;case 2 要求查找整体运用for 循环语句和if判断语句,for循环中再套用if语句和for语句来判断查找条件是否匹配和找出匹配的电脑,其中定义了一个count记录找到的匹配电脑的数目,if(count==0)则没有匹配的电脑。每个case 中是否继续查找就用自我套用函数search_cmp_info()来实现。 查找菜单 case 1 case 2 编号查找num 要求查找display if(num if(cmp[i].num==num) if(条件满足) { 输出cmp[i]各信息 输出cmp[i]各信息 是否继续查找 count++ int num; cont=getch() int i,j,flag,count=0; if(cont=='y'||cont=='Y') search_cmp_info() char display[10]; else if(count==0) char cont,camera; 无匹配电脑 system(\ ma() printf(\ printf(\查找菜单**********\\n\printf(\选择电脑编号查找方式\\n\printf(\选择根据要求查找方式\\n\printf(\请选择查找的方式:\scanf(\选择变量*/ switch(flag) { case 1:printf(\请输入你要查找的电脑编号:\ scanf(\ 8 if(num printf(\ printf(\----\\n\ printf(\ for(i=0;i if(cmp[i].num==num) /*找出要查找编号的电脑信息*/ { printf(\ ,cmp[i].date.month,cmp[i].date.day,cmp[i].date.year,cmp[i].display,cmp[i].camera,cmp[i].fee,cmp[i].condition); printf(\ printf(\请问你是否继续查找(y/n):\ cont=getch(); } else { printf(\对不起!无法找到你要查找的电脑编号\\n\ printf(\ } printf(\ if(cont=='y'||cont=='Y') search_cmp_info(); /*函数自我套用,达到循环作用*/ printf(\按任意键返回菜单\ getch(); ma(); } break; 9 case 2:printf(\请输入你要查找的电脑的要求(如:yj17或cp17):\ scanf(\fflush(stdin); printf(\你要的电脑需要摄像头不(Y/N)?:\scanf(\fflush(stdin); printf(\for(i=0;i if(strcmp(cmp[i].display,display)==0&&(cmp[i].camera==camer a)&&(cmp[i].condition=='S'||cmp[i].condition=='s')) /*匹配条件*/ { count++; /*记录匹配电脑数目*/ printf(\第%d台机子符合要求\\n\ printf(\ printf(\ ------------------\\n\输出匹配电脑的信息*/ for(j=0;j if(cmp[j].num==cmp[i].num) { printf(\ .num,cmp[i].date.month,cmp[i].date.day,cmp[i].date.year,cmp[i].display,cmp[i].camera,cmp[i].fee,cmp[i].condition); printf(\ printf(\请问你是否继续查找(y/n):\cont=getch(); printf(\printf(\ if(cont=='y'||cont=='Y') /*是否继续查找*/ 10