




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书学 院、系:专 业:学 生 姓 名:学 号:设 计 题 目:商品订购系统设计 起 迄 日 期:2017年4月24日-2017年5月12日指 导 教 师:日期: 2017年5月12日1 设计目的1) 进一步巩固和复习C程序设计的基础知识;2) 培养自己结构化程序、模块化程序设计的方法和能力;3) 了解软件的编制过程及各环节的具体内容;4) 提高自己程序调试技巧、软件设计能力和代码规范化等素质;5) 提高自己分析问题、解决问题以及实际运用能力。2 任务概述 屏幕上出现选择界面,管理员和顾客进行权限选择进入。1)顾客具备的功能:让顾客或输入商品名称,或商品型号,或选择列表进而输入商品编
2、号都可以,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:所选商品编号-列出对应商品的信息-要求顾客输入邮寄地址信息-确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。2)管理员具备的功能:录入、修改、删除商品。3)建立两个文件,分别存放商品信息与订购信息。商品订购系统设计3 模块划分 商品订购系统设计有如下功能,功能模块图如图3.1所示图3.1 功能模块图订购商品 图编号查询商品名查询输出所有信息修改商品删除商品添加商品管理员普通用户4 主要函数说明及其N-S图 输入str for i=0 to 10 strcmp
3、(.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 strcm
4、p(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.5 删除商品6 课程设计心得首先得感谢同学对我的帮助。一开始编的时候bug很多,上网找了很多资料,去图书馆也查了不少的书,终于解决了他们。以前写的代码结构混乱,变量命名,函数命名混乱,没有注释,写出来做程序有时候自己也看不懂。在完完整整得做完一个程序后我对结构化程序的整体性有了一个明确的认识,必须注意程序前后的联系,要做到高内聚,低耦合,要具有清晰的思路,要提前画好完善的流程图程序要具有层次。对整体性的把握至关重要,学习计算机语言最重要的就是上机操作,多实践,才能发现自己的不足。在以后的学习中,我要做到举一反三,多思考,勤动脑,通过这次的实训,我总结出在以后学习
6、中还必须多多上机编写程序,从实践中多积累经验,为以后进一步学习打下坚实基础。附录:程序源代码#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>/*商品信息*/ struct goodsint code;/编号 char name20;/商品名 char company20;/生产公司名 double price;/价格 char model20;/型号 int save;/库存数量 int sell;/订购数量 infor100=1,"iP
7、hone7","美国苹果公司",5388,"32GB",10,0,2,"朗文字典","朗文出版社",318,"第五版",10,0,3,"手表","劳力士",54588,"蚝式恒动型",10,0,4,"桌子","宜家",88,"2017夏季家居",10,0,5,"杯子","特百惠",5388,"470ml",1
8、0,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();/输入密码 v
9、oid 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
10、=fopen("C:UsersCircleDesktop最高机密.txt","wb")=NULL)printf("cannot open filen");return;for(i=0;i<5;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&qu
11、ot;);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
12、("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 ch
13、1="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:User
14、sCircleDesktop订购.txt","wb")=NULL)printf("cannot open filen");return;for(i=0;i<5;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(&
15、quot;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
16、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");pri
17、ntf("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 st
18、r24,c3;FILE *fp;fp=fopen("C:UsersCircleDesktop最高机密.txt","r");printf("n请输入你要查找的名称:");scanf("%s",&str);printf("n您所查找的%sn",str);for(i=0;i<r;i+) fread(&infori,sizeof(struct goods),1,fp);k=strcmp(,str);if (k=0)printf("%4d %-10s
19、%-12s %9.2f %-5s %5d %4dn",infori.code,,infori.model,infori.price,pany,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();elsebuyg
20、oods(); /输入编号查询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;i<5;i+)fread(&infori,sizeof(struct goods),1,f
21、p);if(infori.code=a)printf("这就是你订购的商品: nn");printf("%4d %-10s %-12s %9.2f %-5s %5d %4dn",infori.code,,infori.model,infori.price,pany,infori.save,infori.sell);r+;fclose(fp);if(r!=0)printf("请按任意键选购,取消按ESC:n");char c3=getch();if(c3=27)printf("n&qu
22、ot;); 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<r;i+)fread(&infori,
23、sizeof(struct goods),1,fp);if(infori.code=a)printf("这就是你新购买的商品: nn");printf("%4d %-15s %-12s %9.2f t%-5s %5d %4dnn",infori.code,,infori.model,infori.price,pany,infori.save,infori.sell);r=r+1;Ordernum=i;j=i; break;fclose(fp);Last=infora.save-infora.sell;if(Las
24、t!=0)printf("还剩%d件,请输入您的订购数量:nn",Last);scanf("%d",&buyj.number);if(buyj.number>=0 && buyj.number<=(inforOrdernum.save-inforOrdernum.sell) addaddress();elseprintf("您填写的数量有误,请重新购买nn");use();/添加地址函数 void addaddress()char ch;printf("请输入邮寄地址:nn");
25、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("编号 名字 生产商 价格 型号 库存数量
26、订购数量n");scanf("%d %s %s %lf %s %d %d",&inforr.code,,pany,&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
27、=0;i<r;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;i<r;i+)if(infori.code=j)infori.co
28、de=0;FILE *fp;if(fp=fopen("C:UsersCircleDesktop最高机密.txt","wb")=NULL)printf("cannot open filen");return;for(i=0;i<r;i+) if(infori.code!=0) if(fwrite (&infori,sizeof(struct goods),1,fp)!=1)printf("file write errorn");printf("商品删除成功!"); fclose(fp
29、);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;i<r;i+)if(infori.code=j)printf("商品编号:%dn商品名称:%sn生产商:%sn商品单价:%dn商品型号:%sn库存数量:%dn已经订购数量:%dn",infori.code,in
30、,pany,infori.price,infori.model,infori.save,infori.sell);printf("请输入您想修改的商品的一条信息:(1.生产商2.价格3.型号4.库存5.已经订购数量)n");getchar();scanf("%c",&ch);switch(ch)case'1':printf("请输入商品生产商:");scanf("%s",&company);strcpy(pany,compan
31、y);break;case'2':printf("请输入商品单价:");scanf("%d",&price);infori.price=price;break;case'3':printf("请输入商品型号:");getchar();scanf("%s",&model);strcpy(infori.model,model);break;case'4':printf("请输入商品库存:");getchar();scanf("%d",&save);infori.save=save;break;case'5':printf("请输入商品已经订购数量:");scanf("%d",&sell);infori.sell=sell;break; FILE*fp;if(fp=fopen("C:UsersCircle
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川幼儿师范高等专科学校《大地测量学实验》2023-2024学年第二学期期末试卷
- 晋中师范高等专科学校《网络及其计算》2023-2024学年第二学期期末试卷
- 福建对外经济贸易职业技术学院《大学生劳动教育》2023-2024学年第二学期期末试卷
- 天津艺术职业学院《文献目录与信息检索》2023-2024学年第二学期期末试卷
- 2025海南省安全员A证考试题库及答案
- 贵州中医药大学时珍学院《安全经济学》2023-2024学年第二学期期末试卷
- 2024-2025学年辽宁省七校协作体高一上学期12月月考历史试卷
- 2025江西省建筑安全员-A证考试题库及答案
- 漯河医学高等专科学校《奥林匹克文化》2023-2024学年第二学期期末试卷
- 辽宁轻工职业学院《阿拉伯文学选读》2023-2024学年第二学期期末试卷
- 2025-2030年园艺修剪机器人行业深度调研及发展战略咨询报告
- 2025年湖北省技能高考(建筑技术类)《建筑工程测量》模拟练习试题库(含答案)
- 2024-2027年中国网络安全评估行业发展监测及投资战略研究报告
- 失智老年人照护X证书制度试点工作养老护理职业和失智老人照护员工种的发展讲解
- 2025年湖南食品药品职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 企业数字化转型战略-深度研究
- 新种子法律法规培训讲解
- 2025年东营科技职业学院高职单招数学历年(2016-2024)频考点试题含答案解析
- 《幼小衔接家长会》课件
- Unit 4 A glimpse of the future 说课稿-2023-2024学年高二下学期英语外研版(2019)选择性必修第三册001
- 乡村建设规划许可培训
评论
0/150
提交评论