版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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图图4.1通过商品名查询输入afor i=0 to 10真in fori.code=a程序退出输出r=r+1c3=27镇4.2通过商品编号查询use()buy
3、goods()图4.2通过商品编号查询打开文件输出信息程序错误图4.3输出所有商品信息图4.4输入管理员密码outputall()for i=0 to rin fori.code=a真假r=r+1 Ordernum=l j=i程序退出if Last!=O、输入的数量有效、/程序退出addaddress()use()图4.5购买商品5程序运行数据及其结果主界面过程截图如图5.5所示图5.1主界面添加商品(过程)过程截图如图 5.2所示:部M、窖码L2345jM_4c 4t* *jt+尊 aMc* * 鼻 aM»M: *+扣“事* *+#*>"* 水工* * 鼻*斗 *#
4、 *m堆员康统I再训詐illL清轴人忌HR产晶伍乩捅耳虫宪主产青S® 饗号库存数量订躺數蚩F,电荷年励茯苛ifO 5' 商cc;:rho弋內!辛寸曹 e琴貲r:mr+辛耳半屮*杓*1=盲平1"口=¥*1冲*卄半車ft鼻 *k+卓*+ aMS * 鼻未*+*歩*«+* * * * * 拿#+* 卓* *管理员杂址¥ 目总自羅 二丄 m-=j.v _r I - /1 to除瓯回 待黒腿 h2.P-44.可 o O -n 1 o 1 O 泊社1右 BB: 1. .loo o- O &FtoceP ?sritel" . 3f&
5、gt; =:e 'nnls ff.Vr. Tet'jm0诘按仕意槌M .匸九 U se rsCi rde'Des kto pl B.exe亠禹孰T-R毎OO2SIF璽,桌番1 2 - J 4 - '图5.2添加商品(过程)添加商品(结果)过程截图如图5.3 所示53 nn第五版3 IE, 00Mb i B.DU20H导坠家脣:8.00470ml53EE.00飞F堡垒5666.ID图5.3添加商品(结果)购买商品过程截图如图5.4所示匚;Us e r sCircl eD es ktop 18. exer LJ io LJ d 口制有J- =. ,1, 扌刖A就是祢
6、订购的商品:3手表请按任意鍵选购,1 iPhone72轟字典5杯手些式但动型取消按ESG32GBill 2017ft 170ml5458S礬居00方力士5388- 00318. 00545S8. 0088. 00533& 0010 0s±惠 国文力家百 宜特果公司版社10101010 010 0000请输人您想订购商品的编号(请轧人不存在的編号):就是你薪购买的商晶:4桌子Z01 了夏乘家居38.00宜家10还剩10件,请输入您的订购数量:跚查亚是沖北大学认请按任意键,重输请按ESC!谢谢使用I图5.4购买商品删除商品过程截图如图5.5所示C:UsersCircleDes k
7、top18.exeF典ne字ho文子子1PSM杯L 2 4 532GB第五腿20廿复季家居470ml5288. 0031S. 0038. 005388. 00美国平果舍司100塵文岛爼W 0宜家 100特百惠 100Process exited after 73 49 seconds with r已turn value 0 i青按任意键继绩.图5.5删除商品6课程设计心得首先得感谢同学对我的帮助。一开始编的时候bug很多,上网找了很多资料,去图书馆也查了不少的书,终于解决了他们。以前写的代码结构混乱,变量命名,函数命名混乱,没有注释,写出来做 程序有时候自己也看不懂。在完完整整得做完一个程序后
8、我对结构化程序的整体性有了一个明确的认 识,必须注意程序前后的联系,要做到高内聚,低耦合,要具有清晰的思路,要提前画好完善的流程 图程序要具有层次。对整体性的把握至关重要,学习计算机语言最重要的就是上机操作,多实践,才 能发现自己的不足。在以后的学习中,我要做到举一反三,多思考,勤动脑,通过这次的实训,我总 结出在以后学习中还必须多多上机编写程序,从实践中多积累经验,为以后进一步学习打下坚实基础。附录:程序源代码#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <str
9、ing.h> /* 商品信息 */ 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,&quo
10、t; 手表"," 劳力士 ",54588," 蚝式恒动型 ",10,0,4," 桌子"," 宜家 ",88,"2017 夏季家居 ",10,0,5,"杯子"," 特百惠 ",5388,"470ml",10,0;/* 订购信息 */ struct order/ 编号/ 商品名/ 生产公司名/ 价格/ 型号/ 订购数量/ 地址int code;char name20; char company20;double price; ch
11、ar 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 addaddres
12、s();/添加地址void add();/管理员添加商品void del();/管理员删除商品void change();/管理员修改商品void outputall();/输出所有商品void writebuyfile();/写入订购信息/ 主函数int main()/ 建立商品信息文件FILE *fp;int i;最高机密 .txt","wb")=NULL)printf("cannot open filen");return; for(i=0;i<5;i+)i f(fwrite (&infori,sizeof(struct g
13、oods),1,fp)!=1)printf("file write errorn"); f close(fp);buyfile(); menu_main();/ 主菜单void menu_main()printf("n");printf("tttt*n");printf("tttt商品订购系统 printf("tttt*请选择*n");printf("tttt*1.普通用户*n");printf("tttt*2.管理员*n");printf("tttt*3
14、.退出系统*n");printf("tttt*请输入你的选择:*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"
15、;);int n;");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(" 密码错误! &qu
16、ot;);system("cls");menu_main();elseadmin();/ 创建购买文件函数void buyfile()FILE *fp;int i;订购 .txt","wb")=NULL)printf("cannot open filen");return;for(i=0;i<5;i+)i f(fwrite (&buyi,sizeof(struct order),1,fp)!=1) printf("file write errorn");f close(fp);/ 用户函数v
17、oid use()int n;printf("tttt*n");printf("tttt用户系统n");printf("tttt请选择n");n");printf("tttt*1.输入商品名查询*n");printf("tttt*2.输入编号查询*n");printf("tttt*3.输出所有商品的信息*n");printf("tttt*4.返回上级菜单*n");printf("ttttprintf("tttt*n"
18、);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"
19、;);n");printf("ttttprintf("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_mai
20、n();break;/ 输入商品名查询void goodsname()int i,k=0;/k 是比较的结果 i 控制循环 char str24,c3;FILE *fp;最高机密 .txt","r");printf("n 请输入你要查找的名称 :");scanf("%s",&str);printf("n 您所查找的 %sn",str);for(i=0;i<r;i+)f read(&infori,sizeof(struct goods),1,fp); k=strcmp(infori.n
21、ame,str);if (k=0)printf("%4d %-10s %-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")
22、;system("cls");use();elsebuygoods();/ 输入编号查询void goodscode()int i,r=0;int a; / 输入的编号FILE *fp;最高机密 .txt","r");printf(" 请输入要查找的商品编号 (请勿输入不存在的编号 ): nn"); scanf("%d",&a);printf(" 您查找的是 %dnn",a);for(i=0;i<5;i+)f read(&infori,sizeof(struct
23、goods),1,fp);i f(infori.code=a)printf(" 这就是你订购的商品 : nn");printf("%4d %-10s %-12s %9.2f %-5s %5d %4dn",infori.code,,infori.mo del,infori.price,pany,infori.save,infori.sell);r+;fclose(fp);if(r!=0)printf(" 请按任意键选购,取消按 ESC: n");char c3=getch();if(c3=27)
24、printf("n");printf("n");system("cls");use();elsebuygoods();/ 输入编号订购void buygoods()int i,r=0;int a;char ch;FILE*fp;f p=fopen(" 最高机密 .txt","rb");outputall();printf("n 请输入您想订购商品的编号 ( 请勿输入不存在的编号 ):nn");scanf("%d",&a);f or(i=0;i<
25、;r;i+)fread(&infori,sizeof(struct goods),1,fp);if(infori.code=a)printf(" 这就是你新购买的商品 : nn");printf("%4d %-15s %-12s %9.2ft%-5s %5d %4dnn",infori.code,,infori.model,infori.price,infori .company,infori.save,infori.sell);r=r+1;Ordernum=i;j=i;break;f close(fp);Last=info
26、ra.save-infora.sell;i f(Last!=0)printf(" 还剩4件,请输入您的订购数量:nn"丄ast);scanf("%d",&buyj.number);if(buyj.number>=0 &&buyj.number<=(inforOrdernum.save-inforOrdernum.sell)addaddress();elseprintf(" 您填写的数量有误,请重新购买 nn");use();/ 添加地址函数void addaddress()char ch;print
27、f(" 请输入邮寄地址: 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"
28、);printf(" 编号 名字 生产商 价格 型号 库存数量 订购数量 n");scanf("%d %s %s %lf %s %d %d",&inforr.code,,pany,&inforr.price,inforr.model,&inforr.save,&inforr.sell);r+;FILE *fp;最高机密 .txt","wb")=NULL)printf("cannot open filen");return;for(i
29、=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+)i f(infori.code=j)infor
30、i.code=0;FILE *fp;最高机密 .txt","wb")=NULL) printf("cannot open filen");return;for(i=0;i<r;i+)i f(infori.code!=0)i f(fwrite (&infori,sizeof(struct goods),1,fp)!=1) printf("file write errorn");printf(" 商品删除成功! ");fclose(fp);admin();void change() system
31、("cls");char ch;char company20,model100;int i,j,code,price,save,sell;printf(" 请输入要修改的产品编号: n");scanf("%d",&j);for(i=0;i<r;i+)i f(infori.code=j)printf(" 商品编号 :%dn 商品名称 :%sn 生产商 :%sn 商品单价 :%dn 商品型号 :%sn 库存数 量 :%dn 已经订购数量 :%dn",i nfori.code,,inf
32、pany,infori.price,infori.model,infori.s ave,infori.sell);printf(" 请输入您想修改的商品的一条信息: (1. 生产商 2.价格 3.型号 4.库存 5.已经订购数 量)n ”);getchar();scanf("%c",&ch); switch(ch)case'1':printf(" 请输入商品生产商: ");scanf("%s",&company);strcpy(pany,company);br
33、eak;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(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国建筑材料联合会:低碳胶凝材料技术及应用交流会会议报告
- (2026年)院感外科工作计划
- 2026上岗考核试卷附答案
- 链条装配工班组考核评优考核试卷含答案
- 保温材料制品生产工安全宣传能力考核试卷含答案
- 炭素煅烧操作工岗前工作效率考核试卷含答案
- 印花工安全生产规范竞赛考核试卷含答案
- 船舶水手安全生产能力考核试卷含答案
- 三氯硅烷生产工技术落地水平考核试卷含答案
- 稀硝酸工教育考核试卷含答案
- 2026年沈阳鼓风机集团股份有限公司人员招聘笔试参考题库及详细答案解析
- 防止返贫动态监测帮扶培训
- (2.1)-第二章 绦虫的结构预防兽医学实验
- 2026秋新教材人教版六年级上册美术全册教案
- 2026年秋季小学道德与法治三年级上册(新教材)教学计划含教学进度表
- 2026年秋季学期人教版(新教材)初中生物学八年级上册教学计划及进度表
- 矿产资源勘查实施方案编写提纲及解读
- 2026年艾滋病知识竞赛试题及答案
- 《自我保护免受伤害》教学课件 - 2026-2027 学年统编版(新教材)小学道德与法治四年级上册
- 2027年法律硕士(非法学)专业课模拟卷(两套含解析)
- (2026年)急性胰腺炎急诊诊断及治疗专家共识课件
评论
0/150
提交评论