资源描述
_课程设计说明书学 院、系:专 业:学 生 姓 名:学 号:设 计 题 目:商品订购系统设计 起 迄 日 期:2017年4月24日-2017年5月12日指 导 教 师:日期: 2017年5月12日1 设计目的1) 进一步巩固和复习C程序设计的基础知识;2) 培养自己结构化程序、模块化程序设计的方法和能力;3) 了解软件的编制过程及各环节的具体内容;4) 提高自己程序调试技巧、软件设计能力和代码规范化等素质;5) 提高自己分析问题、解决问题以及实际运用能力。2 任务概述 屏幕上出现选择界面,管理员和顾客进行权限选择进入。1)顾客具备的功能:让顾客或输入商品名称,或商品型号,或选择列表进而输入商品编号都可以,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:所选商品编号-列出对应商品的信息-要求顾客输入邮寄地址信息-确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。2)管理员具备的功能:录入、修改、删除商品。3)建立两个文件,分别存放商品信息与订购信息。商品订购系统设计3 模块划分 商品订购系统设计有如下功能,功能模块图如图3.1所示图3.1 功能模块图订购商品 图编号查询商品名查询输出所有信息修改商品删除商品添加商品管理员普通用户-可编辑修改-4 主要函数说明及其N-S图 输入str for i=0 to 10 strcmp(infori.name.str) 真 假 输出r=r+1 报错 c3=27真 假 use() buygoods()void goodsname();/通过商品名查询 图4.1 通过商品名查询 图4.1 通过商品名查询 输入a for i=0 to 10 infori.code=a 真 假 输出r=r+1 程序退出 c3=27 真 假 use() buygoods() 图4.2 通过商品编号查询 图4.2 通过商品编号查询 打开文件 infori.code!=0真 假输出信息 程序错误 图4.3 输出所有商品信息 char ch120=”12345 char ch210 输入ch2 strcmp(ch1,ch2)!=0真 假menu_main() admin() 图4.4 输入管理员密码 outputall() for i=0 to r infori.code=a真 假r=r+1Ordernum=I 程序退出j=i if Last!=0真 假输入的数量有效真 假 程序退出addaddress() use()图4.5购买商品5 程序运行数据及其结果 主界面过程截图如图5.5所示 图5.1 主界面添加商品(过程)过程截图如图5.2所示 图5.2 添加商品(过程)添加商品(结果)过程截图如图5.3所示 图5.3 添加商品(结果)购买商品过程截图如图5.4所示 图5.4 购买商品 删除商品过程截图如图5.5所示 图 5.5 删除商品6 课程设计心得首先得感谢同学对我的帮助。一开始编的时候bug很多,上网找了很多资料,去图书馆也查了不少的书,终于解决了他们。以前写的代码结构混乱,变量命名,函数命名混乱,没有注释,写出来做程序有时候自己也看不懂。在完完整整得做完一个程序后我对结构化程序的整体性有了一个明确的认识,必须注意程序前后的联系,要做到高内聚,低耦合,要具有清晰的思路,要提前画好完善的流程图程序要具有层次。对整体性的把握至关重要,学习计算机语言最重要的就是上机操作,多实践,才能发现自己的不足。在以后的学习中,我要做到举一反三,多思考,勤动脑,通过这次的实训,我总结出在以后学习中还必须多多上机编写程序,从实践中多积累经验,为以后进一步学习打下坚实基础。附录:程序源代码#include #include #include #include /*商品信息*/ struct goodsint code;/编号 char name20;/商品名 char company20;/生产公司名 double price;/价格 char model20;/型号 int save;/库存数量 int sell;/订购数量 infor100=1,iPhone7,美国苹果公司,5388,32GB,10,0,2,朗文字典,朗文出版社,318,第五版,10,0,3,手表,劳力士,54588,蚝式恒动型,10,0,4,桌子,宜家,88,2017夏季家居,10,0,5,杯子,特百惠,5388,470ml,10,0; /*订购信息*/ struct order int code;/编号 char name20;/商品名 char company20;/生产公司名 double price;/价格 char model20;/型号 int number; /订购数量 char address20;/地址 buy5;int Ordernum; /订购数量 int j,r=5;/用于比较的全局变量 int Last; /订购后剩余的库存 char address41; /订购地址 void menu_main();/主菜单画面 void use(); /普通用户画面 void key();/输入密码 void admin();/管理员画面 void buyfile();/建立订购文件 void goodsname();/通过商品名查询 void goodscode();/通过编号查询 void buygoods();/购买商品 void addaddress();/添加地址 void add();/管理员添加商品 void del();/管理员删除商品 void change();/管理员修改商品 void outputall();/输出所有商品 void writebuyfile();/写入订购信息 /主函数 int main()/建立商品信息文件 FILE *fp;int i;if(fp=fopen(C:UsersCircleDesktop最高机密.txt,wb)=NULL)printf(cannot open filen);return;for(i=0;i5;i+)if(fwrite (&infori,sizeof(struct goods),1,fp)!=1)printf(file write errorn);fclose(fp);buyfile();menu_main();/主菜单void menu_main()int n;printf( n);printf(tttt*n);printf(tttt-商品订购系统-n);printf(tttt* 请选择 *n);printf(tttt* 1.普通用户 *n);printf(tttt* 2.管理员 *n);printf(tttt* 3.退出系统 *n); printf(tttt* 请输入你的选择: *n);printf(tttt*n);printf(n);printf(tttt 1614010315 赵元萱n);printf(tttt);scanf(%d,&n);system(cls);switch(n)case 1:use();break;/选择普通用户 case 2:key();break; /选择管理员 case 3:system(cls);printf(nnnnnnnn);printf(感谢使用本系统!); exit(0); /输入密码函数 void key()char ch1=12345;char ch210;printf(tttt-请输入-n);printf(n);printf(tttt请输入密码:);scanf(%s,ch2);if(strcmp(ch1,ch2)!=0)printf(密码错误!);system(cls);menu_main(); elseadmin();/创建购买文件函数 void buyfile()FILE *fp;int i;if(fp=fopen(C:UsersCircleDesktop订购.txt,wb)=NULL)printf(cannot open filen);return;for(i=0;i5;i+)if(fwrite (&buyi,sizeof(struct order),1,fp)!=1)printf(file write errorn);fclose(fp);/用户函数 void use()int n;printf(tttt*n);printf(tttt-用户系统-n);printf(tttt 请选择 n);printf(tttt=n);printf(tttt* 1.输入商品名查询 *n);printf(tttt* 2.输入编号查询 *n);printf(tttt* 3.输出所有商品的信息 *n);printf(tttt* 4.返回上级菜单 *n);printf(tttt*n);scanf(%d,&n);system(cls);switch(n)case 1:goodsname();break;case 2:goodscode();break;case 3:outputall();break;case 4:menu_main();break;/管理员函数 void admin()int n;printf(tttt*n);printf(tttt*n);printf(tttt-管理员系统-n);printf(tttt 请选择 n);printf(tttt=n);printf(tttt1.添加信息n);printf(tttt2.删除信息n); printf(tttt3.修改信息n);printf(tttt4.返回上级菜单n);scanf(%d,&n);switch(n)case 1:add();break;case 2:del();break;case 3:change();break;case 4:system(cls);menu_main();break;/输入商品名查询 void goodsname()int i,k=0;/k是比较的结果 i控制循环 char str24,c3;FILE *fp;fp=fopen(C:UsersCircleDesktop最高机密.txt,r);printf(n请输入你要查找的名称:);scanf(%s,&str);printf(n您所查找的%sn,str);for(i=0;ir;i+) fread(&infori,sizeof(struct goods),1,fp);k=strcmp(infori.name,str);if (k=0)printf(%4d %-10s %-12s %9.2f %-5s %5d %4dn,infori.code,infori.name,infori.model,infori.price,infori.company,infori.save,infori.sell);r=r+1; fclose(fp); if(r!=0)printf(请按任意键选购,取消或产品不存在按ESC:n);char c3=getch();if(c3=27)printf(n); printf(n);system(cls);use();elsebuygoods(); /输入编号查询void goodscode()int i,r=0; int a; /输入的编号 FILE *fp;fp=fopen(C:UsersCircleDesktop最高机密.txt,r);printf(请输入要查找的商品编号(请勿输入不存在的编号): nn); scanf(%d,&a);printf(您查找的是%dnn,a);for(i=0;i5;i+)fread(&infori,sizeof(struct goods),1,fp);if(infori.code=a)printf(这就是你订购的商品: nn);printf(%4d %-10s %-12s %9.2f %-5s %5d %4dn,infori.code,infori.name,infori.model,infori.price,infori.company,infori.save,infori.sell);r+;fclose(fp);if(r!=0)printf(请按任意键选购,取消按ESC:n);char c3=getch();if(c3=27)printf(n); printf(n);system(cls);use();elsebuygoods();/输入编号订购 void buygoods()int i,r=0;int a;char ch;FILE*fp;fp=fopen(最高机密.txt,rb);outputall();printf(n请输入您想订购商品的编号(请勿输入不存在的编号):nn);scanf(%d,&a);for(i=0;i=0 & buyj.number=(inforOrdernum.save-inforOrdernum.sell) addaddress();elseprintf(您填写的数量有误,请重新购买nn);use();/添加地址函数 void addaddress()char ch;printf(请输入邮寄地址:nn);scanf(%s,&address);printf(您的地址是:%snn,address);printf(确认请按任意键,重输请按ESCnn);ch=getch();printf(n);if (ch!=27)printf(您已成功订购!谢谢使用!nn);void writebuyfile();use();void add()int i;printf(请输入添加的产品信息:n);printf(编号 名字 生产商 价格 型号 库存数量 订购数量n);scanf(%d %s %s %lf %s %d %d,&inforr.code,inforr.name,inforr.company,&inforr.price,inforr.model,&inforr.save,&inforr.sell); r+;FILE *fp;if(fp=fopen(C:UsersCircleDesktop最高机密.txt,wb)=NULL)printf(cannot open filen);return;for(i=0;ir;i+)if(fwrite (&infori,sizeof(struct goods),1,fp)!=1)printf(file write errorn);printf(商品添加成功!n); fclose(fp);admin();void del()system(cls);int i,j;printf(请输入删除的商品名:n);scanf(%d,&j);for(i=0;ir;i+)if(infori.code=j)infori.code=0;FILE *fp;if(fp=fopen(C:UsersCircleDesktop最高机密.txt,wb)=NULL)printf(cannot open filen);return;for(i=0;ir;i+) if(infori.code!=0) if(fwrite (&infori,sizeof(struct goods),1,fp)!=1)printf(file write errorn);printf(商品删除成功!); fclose(fp);admin(); void change()system(cls);char ch; char company20,model100; int i,j,code,price,save,sell;printf(请输入要修改的产品编号:n);scanf(%d,&j);for(i=0;ir;i+)if(infori.code=j)printf(商品编号:%dn商品名称:%sn生产商:%sn商品单价:%dn商品型号:%sn库存数量:%dn已经订购数量:%dn,infori.code,infori.name,infori.company,infori.price,infori.model,infori.save,infori.sell);printf(请输入您想修改的商品的一条信息:(1.生产商2.价格3.型号4.库存5.已经订购数量)n);getchar();scanf(%c,&ch);switch(ch)case1:printf(请输入商品生产商:);scanf(%s,&company);strcpy(infori.company,company);break;case2:printf(请输入商品单价:);scanf(%d,&price);infori.price=price;break;case3:printf(请输入商品型号:);getchar();scanf(%s,&model);strcpy(infori.model,model);break;case4:printf(请输入商品库存:);getchar();scanf(%d,&save);infori.save=save;break;case5:printf(请输入商品已经订购数量:);scanf(%d,&sell);infori.sell=sell;break; FILE*fp;if(fp=fopen(C:UsersCircleDesktop最高机密.txt,wb)=NULL)printf(cannot open filen);return;for(i=0;ir;i+) if(infori.code!=0) if(fwrite (&infori,sizeof(struct goods),1,fp)!=1)printf(file write errorn);printf(商品修改成功!n); admin();/输出所有信息 void outputall() int i; FILE *fp; fp=fopen(C:/Users/Circle/Desktop/最高机密.txt,r+); for(i=0;ir;i+) if(infori.code!=0) fread(&infori,sizeof(struct goods),1,fp); printf(%4d %-15s %-12s %9.2f t%-5s %5d %4dn,infori.code,infori.name,infori.model,infori.price,infori.company,infori.save,infori.sell);fclose(fp); /写入订购信息 void writebuyfile()buyOrdernum.number=inforj.sell;strcpy(buyOrdernum.name,inforj.name);strcpy(buyOrdernum.company,inforj.company);strcpy(buyOrdernum.model,inforj.model);buyOrdernum.price=inforj.price;FILE*fp;if(fp=fopen(C:/Users/Circle/Desktop/订购.txt,wb)=NULL)printf(不能打开文件!n);return;if(fwrite(&buyOrdernum,sizeof(struct order),1,fp)!=1)printf(file write error!);fclose(fp);Ordernum+;THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考
展开阅读全文