1、电子科技大学成都学院计算机系-实践专周设计报告 第一章 设计目的随着现代生活质量的提高,超市这种便利的服务开始走进我们 的生活,同时随着超市涌入我们的生活,如何更便利的对超市进行系统和有序的操作,成为了我们需要考虑的问题。 第二章 总体设计数据来源:超市管理系统.pptx图2-1 程序框架第三章 详细设计(1) 数据结构定义结构体变量 struct ima int id; char name20; char produce30; int number; int price; ;(2)函数设计int ruku () 物品入库函数 功能:添加物品并保存while(choise=Y|choise=y
2、) /输入y执行a+;/记录输入的商品个数 printf(物品的编号:n,a); scanf(%d,&sr0.id); .fclose(fp); /关闭文件system(cls); /清屏函数main(); /返回主函数return 0;int shanchu(); 物品删除函数 while(!feof(fp) /检查是否读完fpic=b;c+;fread(&b,sizeof(struct ima),1,fp);for( j=0;jc;j+) /查找要删除的物品编号if(ij.id!=a) fwrite(&ij,sizeof(struct ima),1,fp);/写回不删除的信息if(choi
3、ce=Y|choice=y) /判断是否继续删除函数elsereturn 0;int xiugai(); 物品修改函数while(!feof(fp) /检查是否读完fpic=b;c+;fread(&b,sizeof(struct ima),1,fp);for( j=0;j=c-1;j+) /查找与输入的编号匹配的物品if(ij.id!=a)fwrite(&ij,sizeof(struct ima),1,fp); /不匹配的被写回文件elseprintf(物品名称修改为:);scanf(%s,ij.name);.rewind(stdin); /释放空间fwrite(&ij,sizeof(stru
4、ct ima),1,fp);/被修改的信息写回文件if(choice=Y|choice=y) /判断是否继续elsereturn 0;int chaxun(); 物品查询函数fread(&i,sizeof(struct ima),1,fp); /读出数据while(!feof(fp)if(i.id=a) /查找出与输入匹配的数据信息printf(*物品信息*n);printf(编号:%dn,i.id);.printf(n您想继续吗?(y/n);scanf( %c,&choice);if(choice=Y|choice=y) /判断是否继续elsefread(&i,sizeof(struct i
5、ma),1,fp); /读出查询的文件信息fclose(fp);return 0;int liulan(); 物品浏览函数while(!feof(fp) /检测是否继续执行 a+;printf(n 浏览物品信息%d ,a);printf(n编号:%dn,i.id);.getch();fread(&i,sizeof(struct ima),1,fp);if(choice=Y|choice=y) /判断是否继续elsereturn 0;int yanse(); 菜单颜色设置函数 printf(请选择以下方案n);switch(a) /选择case 1:system(color 46); break
6、; / /调用颜色函数case 2:system(color 64); break;default: printf(n输入无效,重新输入);getch();yanse();if(choice=Y|choice=y) /判断是否继续elsereturn 0;int tuichu(); 退出系统函数system(cls); /清屏printf(n*您确定要退出系统吗?如果您想退出请按y,其它键将返回主菜单*n);scanf( %c,&choice);if(choice=Y|choice=y) /判断elsereturn 0;一、 调试与测试(1)调试分析开始编写之前,听了老师的讲解,对整个程序的算
7、法有了一个概念。利用switch语句进行选择;同时通过网络了解到系统颜色设置的函数及清屏、释放函数。写好程序后进行调试时,发现了大量错误,大多都是miss ;或忘记写return 0;。后来询问了老师,在老师的帮助下使得整个程序得到了完善。(2) 测试结果源程序#include#include#include#includestruct ima /定义结构体变量int id;char name20;char produce30;int number;int price;int ruku(); /函数声明int shanchu();int xiugai();int chaxun();int li
8、ulan();int yanse();int tuichu();int main() /主函数及欢迎菜单界面int a;.printf(n请在1-7中选择您的输入:n);switch(a) /switch语句作为各个函数入口,由break跳出 case 1: ruku();break; . default: printf(n输入错误,请重新输入:n); return 0;int ruku() /入库函数,while语句, rewind(stdin); 清屏函数while(choise=Y|choise=y) /输入y执行a+;/记录输入的商品个数 printf(物品的编号:n,a); scan
9、f(%d,&sr0.id); fwrite(&sr,sizeof(struct ima),1,fp); /数据被写入文件fp rewind(stdin); /不能执行下面的scanf,所以释放空间scanf(%c,&choise);fclose(fp); /关闭文件system(cls); /清屏函数main(); /返回主函数return 0;int shanchu() /删除信息,while语句,for语句,if语句 struct ima i1000; /定义.FILE *fp;fp=fopen(ima.txt,r); /打开文件fread(&b,sizeof(struct ima),1,
10、fp); /读出所有信息while(!feof(fp) /检查是否读完fpic=b;c+;fread(&b,sizeof(struct ima),1,fp);fopen(ima.txt,r);/打开文件for( j=0;jc;j+) /查找要删除的物品编号if(ij.id!=a) fwrite(&ij,sizeof(struct ima),1,fp);/写回不删除的信息fclose(fp); /关闭文件scanf( %c,&choice);if(choice=Y|choice=y) /判断是否继续删除函数(此段程序在后文皆以if。else。代替)system(cls);shanchu();el
11、sesystem(cls); main();return 0;int xiugai() /修改信息struct ima i1000; /定义.FILE *fp;fp=fopen(ima.txt,r); /打开文件fread(&b,sizeof(struct ima),1,fp); /读出所有信息while(!feof(fp) /检查是否读完fpic=b;c+;fread(&b,sizeof(struct ima),1,fp);for( j=0;j=c-1;j+) /查找与输入的编号匹配的物品if(ij.id!=a)fwrite(&ij,sizeof(struct ima),1,fp); /不匹
12、配的被写回文件elseprintf(物品名称修改为:);scanf(%s,ij.name);rewind(stdin); /释放空间 fwrite(&ij,sizeof(struct ima),1,fp); /被修改的信息写回文件if(choice=Y|choice=y) /判断是否继续elsereturn 0;int chaxun() /查询信息FILE * fp;fp=fopen(ima.txt,r); /打开文件fread(&i,sizeof(struct ima),1,fp); /读出数据while(!feof(fp)if(i.id=a) /查找出与输入匹配的数据信息printf(*物
13、品信息*n);printf(编号:%dn,i.id);.printf(n您想继续吗?(y/n);scanf( %c,&choice);if(choice=Y|choice=y) /判断是否继续elsefread(&i,sizeof(struct ima),1,fp); /读出查询的文件信息fclose(fp);return 0;int liulan() /浏览信息FILE *fp;fp=fopen(ima.txt,r); /打开文件fread(&i,sizeof(struct ima),1,fp); /读取文件while(!feof(fp) /检测是否继续执行 a+;printf(n 浏览物品
14、信息%d ,a);printf(n编号:%dn,i.id);getch();fread(&i,sizeof(struct ima),1,fp);fclose(fp); /浏览完毕,关闭文件if(choice=Y|choice=y) /判断是否继续elsereturn 0;int yanse() /颜色设置 system(cls); /清屏printf(请选择以下方案n);scanf(%d,&a);switch(a) /选择case 1:system(color 46); break; / /调用颜色函数case 2:system(color 64); break;default: printf(n输入无效,重新输入);getch();yanse();if(choice=Y|choice=y) /判断是否继续elsereturn 0;int tuichu() /退出char choice;system(cls); /清屏printf(n*您确定要退出系统吗?如果您想退出请按y,其它键将返回主菜单*n);scanf( %c,&choice);if(choice=Y|choice=y) /判断system(cls);printf(nnnnntttttttttttttt3谢谢您的使用!3n);elsesystem(cls);main();return 0; /程序结束