《C语言程序设计》课程设计报告商品订购系统设计_第1页
《C语言程序设计》课程设计报告商品订购系统设计_第2页
《C语言程序设计》课程设计报告商品订购系统设计_第3页
《C语言程序设计》课程设计报告商品订购系统设计_第4页
《C语言程序设计》课程设计报告商品订购系统设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、重庆科技学院c语言程序设计课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 计科1102 学生姓名: 学 号: 设计地点(单位)_计算机自主学习中心 _ _设计题目:_商品订购系统设计 _ _ 完成日期: 2012 年1月13日 指导教师评语: _ _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 摘 要通过本软件的学习、编译。可以很好的掌握程序中结构体的运用、界面的使用等,以及更熟练的掌握了使用fprintf与fscanf向文件读写一组数据。可以完全的、熟练的、掌握、运用switch语句来实现多分支选择结构。同时,使用、学习者也能够学习、知道程序的许多细节问题通过每个

2、函数模块模式。以上这些的学习对今后的学习、编译程序,以及学习好程序设计课程都有很大的帮助。关键词:结构体 界面 fread switch语句 课程设计任务书设计题目:商品订购系统设计学生姓名课程名称c语言程序设计课程设计专业班级计科11地 点i305/i306起止时间2012年1月9日1月13日设计内容及要求请你为校园某店铺设计一个商品订购系统,订购者能使用该系统在浏览了基本商品信息(货号、名称、厂家、产地、存量、单价)后设定商品订购信息产生一条订购记录(日期时间、货号、订购量、客户名、客户地址、客户号),商家根据客户的订购信息组织商品和发货。【题目要求】 (1)商品的基本信息(货号、名称、厂

3、家、产地、存量、单价等)要单独保存; (2)商品的订购记录(日期时间、货号、订购量、客户名、客户地址、客户号);(3)系统的各个功能模块要求用函数的形式实现; (4)系统的功能模块应包含商品信息的增删改查,以及订购记录的查询和统计;要求用c语言的文件操作语句将以上所有结果分别保存在文件goodsinfo.out,和bookrecordinfo.out中。【输入/输出要求】 (1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息; (2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。(3)建立

4、一个小系统,至少包括10种产品能供顾客选择根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:撰写报告,进行答辩参考资料1何钦铭 颜晖.语言程序设计.高等教育出版社.2008年2谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年其它难点提示:首先分析题目的数据结构,看看要操作那些值;然后根据题意设计操作对象

5、的结构。可以使用结构体来描述其中较为复杂的对象例如往来帐目;确定结构体的定义;可以使用数组来保存数据,使用结构体数组来保存各类数据。说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。目录摘 要2课程设计任务书31 软件需求分析说明书62 系统设计与分析72.1 软件界面设计72.1.1第一模块界面及实现代码72.1.3 第三模块的实现及代码102.1.4 第四模块的实现及代码142.1.5 第五模块的实现及代码152.1.6 第六模块的实现及代码182.2 软件

6、的数据(结构)设计212.3 软件的算法设计222.4 数据结构分析233 设计体会与小结24致谢25参考文献26附录1271 软件需求分析说明书本软件实现了商品信息的添加、删除、修改、搜索,以及显示商品的全部信息。使用者能够很好的查看商品信息,以及订购商品。本软件的界面需要显示各个单一功能的目录,然后通过switch语句来实现各个单一功能的分支选择,把界面与函数联系起来。最终实现了,通过界面来达到软件的要求。2 系统设计与分析2.1 软件界面设计画出软件全部输入、输出数据的界面,并对每一个界面进行详细的操作说明;2.1.1第一模块界面及实现代码图如下: 图2.1主菜单的界面图其对应的函数如下

7、:int main(void)int i;wenbenload();dosystem(cls);printf(nnnnnn);printf(*欢迎使用商品订购系统v1.0*n);printf( 作者: 计科1102 姚茂源n);printf( n);printf( 1.浏览商品信息 n);printf( 2.订购商品 n);printf( 3.订单查询 n);printf( 4.搜索商品 n);printf( 5.管理菜单 n);printf( 0.退出系统 n);printf( n);printf(*n);printf(nntt请输入你的操作(05): );scanf(%d,&i); swi

8、tch(i)case 1: system(cls);scanproduct(); break;case 2: system(cls); dinggou(); break;case 3: system(cls);lookdinggou();break;case 4: searchproduct();break;case 5: secondmain();break;case 0: /退出系统的界面system(cls);printf(nnnnnnnn); printf(nnttt欢迎使用本系统nnnnnttt欢迎再次使用n);exit(0); /exit用于随时结束程序 while(1); ret

9、urn 0;其中的wenbenload()用于从文本中导入商品信息。如文本不存在则出现下图 图2.2商品信息文本不存在的界面图2.1.2 第二模块的界面及实现代码如果选择的操作是主界面的1时,而产品文件为建立时会显示下图:图2.3第二模块界面图该程序的实现是通过以下代码实现的:void scanproduct()int i;system(cls);printf(ttttt商品信息列表n); for (i = 0; i inumber; i+)printf(名称 : %sn,);printf(货号 : %dn,ai.number);printf(厂家 : %sn,ai.vender

10、);printf(产地 : %sn,ai.filed);printf(存量 : %dn,ai.stock);printf(单价 : %.2lfnnn,ai.unvalent);printf(nnnnnnttt);printf(返回主菜单n);printf(ttt);system(pause);return;2.1.3 第三模块的实现及代码在主菜单中选择2进入商品订购界面,界面如下: 图2.4商品订购 图2.5 输入商品订单信息该程序实现代码如下:void dinggou() char ch;int i, j, t, c = 1;int n = 1;int m = 0;doswitch(n)ca

11、se 1:system(cls);printf(tttt商品信息列表n);/显示商品的名称、货号信息,以便于订购printf(名称t 货号t 库存n);for (i = 0; i inumber; i+)printf(%st %dt %dnnn,,ai.number,ai.stock);printf(nnn);printf(tttt商品订单n);printf(nttt请输入你的第%d个订单信息:n,m + 1);printf(nttt货号:);fflush(stdin);scanf(%d,&bibuy.bgname);/检测是否含有此商品j = 1;for (i = 0; i =

12、 bibuy.bmany)at.stock = at.stock - bibuy.bmany; /顾客购买后商品的库存计算printf(nttt日期时间:);fflush(stdin);scanf(%d,&bibuy.btime);printf(nttt客户名:);fflush(stdin);gets(bibuy.bname);printf(nttt客户地址:);fflush(stdin);gets(bibuy.baddress);printf(nttt客户号:);bibuy.bnumber = bgnumber;printf(%dn,bibuy.bnumber);bgnumber+;ibuy

13、+;m+;printf(nnntttt);system(pause);elseprintf(nnttt订购数目超出库存n);printf(ttt);system(pause);/若没有商品的提示及操作elseprintf(nnttt查无此货n);printf(ttt);system(pause);case 2:printf(是否继续输入订购?(y/n);fflush(stdin);scanf(%c,&ch);if(ch = n | ch = n)c = 0;break;else if(ch = y | ch = y)c = 0;n = 1;break;else if(ch != n | ch

14、!= n | ch != y | ch != y)n = 0;c = 1;break;case 0:if(c = 1)n = 2;while(ch != n & ch != n);system(cls);return ;2.1.4 第四模块的实现及代码在主菜单中选择3进入商品订购界面,界面如下: 图2.6订单查询界面该程序实现代码如下:void lookdinggou() int i;system(cls);printf(ttttt订单列表n); for (i = 0; i ibuy; i+)printf(货号 : %dn,bi.bgname);printf(订购量 : %dn,bi.bman

15、y);printf(日期时间 : %dn,bi.btime);printf(客户名 : %sn,bi.bname);printf(客户地址 : %sn,bi.baddress);printf(客户号 : %dnnn,bi.bnumber);printf(nnnnnnttt);printf(返回主菜单n);printf(ttt);system(pause);return;该代码中用到了指针,并用到了链表的建立和删除,当然也涉及到了结构体。2.1.5 第五模块的实现及代码在主菜单中选择4进入商品订购界面,界面如下: 图2.7商品搜索1 图2.8商品搜索2通过以下代码实现:void searchpr

16、oduct()int i;int j;char ch;int n = 1;doswitch(n)case 1:system(cls);printf(tttt商品列表n);/显示商品的名称、货号信息,以便于下部的删除for (i = 0; i inumber; i+)printf(名称 : %sn,);printf(id : %dn,i);printf(库存 : %dnnn,ai.stock);/商品的搜索printf(nnntttt请输入你要搜索商品的id:);scanf(%d,&j);if(0=j&j=inumber)printf(名称 : %sn,);print

17、f(货号 : %dn,aj.number);printf(厂家 : %sn,aj.vender);printf(产地 : %sn,aj.filed);printf(存量 : %dn,aj.stock);printf(单价 : %.2lfnnn,aj.unvalent);case 2:printf(是否继续搜索商品?(y/n);fflush(stdin);scanf(%c,&ch);if(ch = n| ch = n)break;if(ch = y| ch = y)n = 1;break;while(ch != n & ch != n);printf(nnnnnnttt);printf(返回主菜

18、单!n);printf(ttt);system(pause);return;2.1.6 第六模块的实现及代码该代码用于管理者使用的,界面如下: 图2.9 二级菜单该代码如下:void secondmain()int i;dosystem(cls);printf(nnnnnnn);printf(*管理维护子菜单*nn);printf( n);printf( 1.输入全部商品 n);printf( 2.增加商品 n);printf( 3.删除商品 n);printf( 4.储存商品 n);printf( 5.储存订单 n);printf( 0.返回上一级 n);printf( nnn);print

19、f(*nnnnn);printf(nntt请输入你所要选择的功能(05): );scanf(%d,&i); switch(i)case 1: system(cls);jianpanload ();break;case 2: system(cls); addproduct(); break;case 3: system(cls); deleteproduct(); break;case 4: system(cls); saveproduct(); break;case 5: system(cls); savedinggou(); break;case 0: system(cls);return

20、; while(1);printf(tttt);system(pause);system(cls);return;该代码用于商品信息文件的建立生成,存储商品信息和订单。2.2 软件的数据(结构)设计先定义全局变量用于控制商品数量和订单数量如下:#include #include #include #include #include int bgnumber = 023; /客户号int inumber = 0; /商品量的统计int ibuy = 0; /订单的统计void secondmain();/管理维护子菜单void jianpanload(); /输入商品void scanprodu

21、ct(); /浏览商品void searchproduct(); /搜索商品void dinggou(); /订购商品void lookdinggou(); /查询订单void addproduct(); /增加商品void deleteproduct(); /删除商品void saveproduct(); /保存商品void savedinggou(); /保存订单void wenbenload(); /从文本导入商品struct productchar name30;/商品名int number;/货号char vender30;/厂家char filed100;/产地int stock;

22、/存量double unvalent;/单价;struct product a100;struct dinggou int bgname; /货号int bmany; /订购量int btime; /日期时间char bname100; /客户名char baddress100; /客户地址int bnumber; /客户号;struct dinggou b100;2.3 软件的算法设计画出整个软件的模块图、并对每一个模块图的算法用程序流程图、功是伪代码来实现现行系统组织结构图如下:开始选择菜单序号1浏览商品2订购商品3订单查询4搜索商品5管理菜单0退出系统图2.10主结构模块示意图选择管理菜

23、单1输入商品2增加商品3删除商品4储存商品5储存订单0返回 图2.11 二级结构模块示意图搜索商品信息存在否输入产品相应信息 图2.12搜索模块示意图2.4 数据结构分析使用整型,双精度,字符型定义变量和函数。使用结构体,类等概念实现数据存储。同时也用这些自定义类型定义了变量和函数。体现面向对象设计的特点。软件的实现软件涉及到核心功能模块进行设计实现,并对关键代码进行分析阐述。3 设计体会与小结在做了课程实验以后,我对c+的了解更深了,很多知识得到了巩固,一些不懂的知识也渐渐明了!这其中主要是对类的封装收获最多,在其类的封装过程中,对数据的访问控制也是比较重要,我相信这对以后的学习其它面向对象

24、程序设计有很大帮助!作了产品订购系统程序后,我对类和对象更加熟悉了,作为c+所特有的指针,类和对象在编写程序过程中运用十分广泛,我必须多加练习才能达到一定的水平,类和对象,指针都是非常重要的!在完完整整得做完一个程序后,我对程序的整体性有了一个明确的认识,做程序必须注意程序前后的联系,要具有清晰的思路,程序要具有层次。对整体性的把握至关重要!学习计算机语言最重要的就是上机操作,我深感自己动手能力比较差,在以后学习中,还必须多多上机调试程序,从实践中多积累经验,为以后工作打下坚实基础。致谢通过此次的课程设计,我不仅学会了很多有关c语言的知识,还学会了很多道理。心之所向,所向披靡。只要用心,就能克

25、服种种困难,最终有所收获。此次课程设计要感谢雷亮老师的辅导,以及伍健全老师所授的c语言知识,还有一些同学和学长的指导,由于他们的辅导与帮助才完成了课程设计。谢谢! 签名 姚茂源 日期 2012-1-13参考文献1何钦铭 颜晖.语言程序设计.高等教育出版社.2008年2谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年附录1程序清单及相应的注释:#include #include #include #include #include int bgnumber = 023; /客户号int inumber = 0; /商品量的统计int ibuy = 0; /订单的统计void seco

26、ndmain();/管理维护子菜单void jianpanload(); /输入商品void scanproduct(); /浏览商品void searchproduct(); /搜索商品void dinggou(); /订购商品void lookdinggou(); /查询订单void addproduct(); /增加商品void deleteproduct(); /删除商品void saveproduct(); /保存商品void savedinggou(); /保存订单void wenbenload(); /从文本导入商品struct productchar name30;/商品名in

27、t number;/货号char vender30;/厂家char filed100;/产地int stock;/存量double unvalent;/单价;struct product a100;struct dinggou int bgname; /货号int bmany; /订购量int btime; /日期时间char bname100; /客户名char baddress100; /客户地址int bnumber; /客户号;struct dinggou b100;int main(void)int i;wenbenload();dosystem(cls);printf(nnnnnn

28、);printf(*欢迎使用商品订购系统v1.0*n);printf( 作者: 计科1102 姚茂源n);printf( n);printf( 1.浏览商品信息 n);printf( 2.订购商品 n);printf( 3.订单查询 n);printf( 4.搜索商品 n);printf( 5.管理菜单 n);printf( 0.退出系统 n);printf( n);printf(*n);printf(nntt请输入你的操作(05): );scanf(%d,&i); switch(i)case 1: system(cls);scanproduct(); break;case 2: system

29、(cls); dinggou(); break;case 3: system(cls);lookdinggou();break;case 4: searchproduct();break;case 5: secondmain();break;case 0: /退出系统的界面system(cls);printf(nnnnnnnn); printf(nnttt欢迎使用本系统nnnnnttt欢迎再次使用n);exit(0); /exit用于在程序运行的过程中随时结束程序 while(1); return 0;/浏览商品void scanproduct()int i;system(cls);print

30、f(ttttt商品信息列表n); for (i = 0; i inumber; i+)printf(名称 : %sn,);printf(货号 : %dn,ai.number);printf(厂家 : %sn,ai.vender);printf(产地 : %sn,ai.filed);printf(存量 : %dn,ai.stock);printf(单价 : %.2lfnnn,ai.unvalent);printf(nnnnnnttt);printf(返回主菜单n);printf(ttt);system(pause);return;/商品的订购void dinggou() char

31、ch;int i, j, t, c = 1;int n = 1;int m = 0;doswitch(n)case 1:system(cls);printf(tttt商品信息列表n);/显示商品的名称、货号信息,以便于订购printf(名称t 货号t 库存n);for (i = 0; i inumber; i+)printf(%st %dt %dnnn,,ai.number,ai.stock);printf(nnn);printf(tttt商品订单n);printf(nttt请输入你的第%d个订单信息:n,m + 1);printf(nttt货号:);fflush(stdin);

32、scanf(%d,&bibuy.bgname);/检测是否含有此商品j = 1;for (i = 0; i = bibuy.bmany)at.stock = at.stock - bibuy.bmany; /顾客购买后商品的库存计算printf(nttt日期时间:);fflush(stdin);scanf(%d,&bibuy.btime);printf(nttt客户名:);fflush(stdin);gets(bibuy.bname);printf(nttt客户地址:);fflush(stdin);gets(bibuy.baddress);printf(nttt客户号:);bibuy.bnum

33、ber = bgnumber;printf(%dn,bibuy.bnumber);bgnumber+;ibuy+;m+;printf(nnntttt);system(pause);elseprintf(nnttt订购数目超出库存n);printf(ttt);system(pause);/若没有商品的提示及操作elseprintf(nnttt查无此货n);printf(ttt);system(pause);case 2:printf(是否继续输入订购?(y/n);fflush(stdin);scanf(%c,&ch);if(ch = n | ch = n)c = 0;break;else if(

34、ch = y | ch = y)c = 0;n = 1;break;else if(ch != n | ch != n | ch != y | ch != y)n = 0;c = 1;break;case 0:if(c = 1)n = 2;while(ch != n & ch != n);system(cls);return ;/订单的查询void lookdinggou() int i;system(cls);printf(ttttt订单列表n); for (i = 0; i ibuy; i+)printf(货号 : %dn,bi.bgname);printf(订购量 : %dn,bi.bmany);printf(日期时间 : %dn,bi.btime);printf(客户名 : %sn,bi.bname);printf(客户地址 : %sn,bi.baddress);printf(客户号 : %dnnn,bi.bnumber);printf(n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论