《C语言程序设计》课程设计报告商品订购系统设计.docx
- 文档编号:14426454
- 上传时间:2023-04-23
- 格式:DOCX
- 页数:52
- 大小:304.61KB
《C语言程序设计》课程设计报告商品订购系统设计.docx
《《C语言程序设计》课程设计报告商品订购系统设计.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程设计报告商品订购系统设计.docx(52页珍藏版)》请在冰豆网上搜索。
《C语言程序设计》课程设计报告商品订购系统设计
重庆科技学院
《C语言程序设计》
课程设计报告
学院:
_电气与信息工程学院_专业班级:
计科1102
学生姓名:
学号:
设计地点(单位)________计算机自主学习中心__________
设计题目:
________商品订购系统设计____________
完成日期:
2012年1月13日
指导教师评语:
_______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
摘要
通过本软件的学习、编译。
可以很好的掌握程序中结构体的运用、界面的使用等,以及更熟练的掌握了使用fprintf与fscanf向文件读写一组数据。
可以完全的、熟练的、掌握、运用switch语句来实现多分支选择结构。
同时,使用、学习者也能够学习、知道程序的许多细节问题通过每个函数模块模式。
以上这些的学习对今后的学习、编译程序,以及学习好程序设计课程都有很大的帮助。
关键词:
结构体界面freadswitch语句
课程设计任务书
设计题目:
商品订购系统设计
学生姓名
课程名称
C语言程序设计课程设计
专业班级
计科11
地点
I305/I306
起止时间
2012年1月9日~1月13日
设计内容及要求
请你为校园某店铺设计一个商品订购系统,订购者能使用该系统在浏览了基本商品信息(货号、名称、厂家、产地、存量、单价)后设定商品订购信息产生一条订购记录(日期时间、货号、订购量、客户名、客户地址、客户号),商家根据客户的订购信息组织商品和发货。
【题目要求】
(1)商品的基本信息(货号、名称、厂家、产地、存量、单价等)要单独保存;
(2)商品的订购记录(日期时间、货号、订购量、客户名、客户地址、客户号);
(3)系统的各个功能模块要求用函数的形式实现;
(4)系统的功能模块应包含商品信息的增删改查,以及订购记录的查询和统计;
要求用C语言的文件操作语句将以上所有结果分别保存在文件goodsinfo.out,和中。
【输入/输出要求】
(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。
进入每个操作后,根据程序的提示输入相应的信息;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
(3)建立一个小系统,至少包括10种产品能供顾客选择
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。
设计
参数
(1)系统分析、设计正确。
(2)结果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
进度
要求
周一:
明确设计任务,学习相关基础知识
周二:
熟悉各知识点,进行基础练习
周三:
根据题目要求,进行设计和实现
周四:
根据题目要求,进行设计和实现
周五:
撰写报告,进行答辩
参考资料
[1]何钦铭颜晖.《C语言程序设计
[2]谭浩强张基温.《C语言程序设计
其它
难点提示:
首先分析题目的数据结构,看看要操作那些值;然后根据题意设计操作对象的结构。
可以使用结构体来描述其中较为复杂的对象例如往来帐目;确定结构体的定义;可以使用数组来保存数据,使用结构体数组来保存各类数据。
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
1软件需求分析说明书
本软件实现了商品信息的添加、删除、修改、搜索,以及显示商品的全部信息。
使用者能够很好的查看商品信息,以及订购商品。
本软件的界面需要显示各个单一功能的目录,然后通过switch语句来实现各个单一功能的分支选择,把界面与函数联系起来。
最终实现了,通过界面来达到软件的要求。
2系统设计与分析
2.1软件界面设计
画出软件全部输入、输出数据的界面,并对每一个界面进行详细的操作说明;
第一模块界面及实现代码
图如下:
主菜单的界面图
其对应的函数如下:
intmain(void)
{
inti;
wenbenload();
do
{
system("cls");
printf("\n\n\n\n\n\n");
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("\n\n\t\t请输入你的操作(0~5):
");
scanf("%d",&i);
switch(i)
{
case1:
system("cls");
scanproduct();
break;
case2:
system("cls");
dinggou();
break;
case3:
system("cls");
lookdinggou();
break;
case4:
searchproduct();
break;
case5:
secondmain();
break;
case0:
//退出系统的界面
system("cls");
printf("\n\n\n\n\n\n\n\n");
printf("\n\n\t\t\t欢迎使用本系统\n\n\n\n\n\t\t\t欢迎再次使用\n");
exit(0);//exit用于随时结束程序}
}while
(1);
return0;
}
其中的wenbenload()用于从文本中导入商品信息。
如文本不存在则出现下图
图商品信息文本不存在的界面图
第二模块的界面及实现代码
如果选择的操作是主界面的1时,而产品文件为建立时会显示下图:
图第二模块界面图
该程序的实现是通过以下代码实现的:
voidscanproduct()
{
inti;
system("cls");
printf("\t\t\t\t\t商品信息列表\n");
for(i=0;i { printf("名称: %s\n",a[i].name); printf("货号: %d\n",a[i].number); printf("厂家: %s\n",a[i].vender); printf("产地: %s\n",a[i].filed); printf("存量: %d\n",a[i].stock); printf("单价: %.2lf\n\n\n",a[i].unvalent); } printf("\n\n\n\n\n\n\t\t\t"); printf("返回主菜单\n"); printf("\t\t\t"); system("pause"); return; } 第三模块的实现及代码 在主菜单中选择2进入商品订购界面,界面如下: 图2.4商品订购 图2.5输入商品订单信息 该程序实现代码如下: voiddinggou() { charch; inti,j,t,c=1; intn=1; intm=0; do { switch(n) { case1: system("cls"); printf("\t\t\t\t商品信息列表\n"); //显示商品的名称、货号信息,以便于订购 printf("名称\t货号\t库存\n"); for(i=0;i { printf("%s\t%d\t%d\n\n\n",a[i].name,a[i].number,a[i].stock); } printf("\n\n\n"); printf("\t\t\t\t商品订单\n"); printf("\n\t\t\t请输入你的第%d个订单信息: \n",m+1); printf("\n\t\t\t货号: "); fflush(stdin); scanf("%d",&b[ibuy].bgname); //检测是否含有此商品 j=1; for(i=0;i { if(a[i].number==b[ibuy].bgname) { j=0; t=i; } } //若有商品继续购买项目 if(j==0) { printf("\n\t\t\t订购量: "); fflush(stdin); scanf("%d",&b[ibuy].bmany); if(a[t].stock>=b[ibuy].bmany) { a[t].stock=a[t].stock-b[ibuy].bmany;//顾客购买后商品的库存计算 printf("\n\t\t\t日期时间: "); fflush(stdin); scanf("%d",&b[ibuy].btime); printf("\n\t\t\t客户名: "); fflush(stdin); gets(b[ibuy].bname); printf("\n\t\t\t客户地址: "); fflush(stdin); gets(b[ibuy].baddress); printf("\n\t\t\t客户号: "); b[ibuy].bnumber=bgnumber; printf("%d\n",b[ibuy].bnumber); bgnumber++; ibuy++; m++; printf("\n\n\n\t\t\t\t"); system("pause"); } else { printf("\n\n\t\t\t订购数目超出库存\n"); printf("\t\t\t"); system("pause"); } } //若没有商品的提示及操作 else { printf("\n\n\t\t\t查无此货\n"); printf("\t\t\t"); system("pause"); } case2: printf("是否继续输入订购? (Y/N)"); fflush(stdin); scanf("%c",&ch); if(ch=='N'||ch=='n') { c=0; break; } elseif(ch=='Y'||ch=='y') { c=0; n=1; break; } elseif(ch! ='n'||ch! ='N'||ch! ='Y'||ch! ='y') { n=0; c=1; break; } case0: if(c==1) { n=2; } } }while(ch! ='n'&&ch! ='N'); system("cls"); return; } 第四模块的实现及代码 在主菜单中选择3进入商品订购界面,界面如下: 图2.6订单查询界面 该程序实现代码如下: voidlookdinggou() { inti; system("cls"); printf("\t\t\t\t\t订单列表\n"); for(i=0;i { printf("货号: %d\n",b[i].bgname); printf("订购量: %d\n",b[i].bmany); printf("日期时间: %d\n",b[i].btime); printf("客户名: %s\n",b[i].bname); printf("客户地址: %s\n",b[i].baddress); printf("客户号: %d\n\n\n",b[i].bnumber); } printf("\n\n\n\n\n\n\t\t\t"); printf("返回主菜单\n"); printf("\t\t\t"); system("pause"); return; } 该代码中用到了指针,并用到了链表的建立和删除,当然也涉及到了结构体。 第五模块的实现及代码 在主菜单中选择4进入商品订购界面,界面如下: 图2.7商品搜索1 图2.8商品搜索2 通过以下代码实现: voidsearchproduct() { inti; intj; charch; intn=1; do { switch(n) { case1: system("cls"); printf("\t\t\t\t商品列表\n"); //显示商品的名称、货号信息,以便于下部的删除 for(i=0;i { printf("名称: %s\n",a[i].name); printf("ID: %d\n",i); printf("库存: %d\n\n\n",a[i].stock); } //商品的搜索 printf("\n\n\n\t\t\t\t请输入你要搜索商品的ID: "); scanf("%d",&j); if(0<=j&&j<=inumber) { printf("名称: %s\n",a[j].name); printf("货号: %d\n",a[j].number); printf("厂家: %s\n",a[j].vender); printf("产地: %s\n",a[j].filed); printf("存量: %d\n",a[j].stock); printf("单价: %.2lf\n\n\n",a[j].unvalent); } case2: 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("\n\n\n\n\n\n\t\t\t"); printf("返回主菜单! \n"); printf("\t\t\t"); system("pause"); return; } 第六模块的实现及代码 该代码用于管理者使用的,界面如下: 图2.9二级菜单 该代码如下: voidsecondmain() { inti; do { system("cls"); printf("\n\n\n\n\n\n\n"); printf("******************************管理维护子菜单************************************\n\n"); printf("┏━━━━━━━━━━━━━━━━━━━┓\n"); printf("┃1.输入全部商品┃\n"); printf("┃2.增加商品┃\n"); printf("┃3.删除商品┃\n"); printf("┃4.储存商品┃\n"); printf("┃5.储存订单┃\n"); printf("┃0.返回上一级┃\n"); printf("┗━━━━━━━━━━━━━━━━━━━┛\n\n\n"); printf("********************************************************************************\n\n\n\n\n"); printf("\n\n\t\t请输入你所要选择的功能(0~5): "); scanf("%d",&i); switch(i) { case1: system("cls"); jianpanload(); break; case2: system("cls"); addproduct(); break; case3: system("cls"); deleteproduct(); break; case4: system("cls"); saveproduct(); break; case5: system("cls"); savedinggou(); break; case0: system("cls"); return; } }while (1); printf("\t\t\t\t"); system("pause"); system("cls"); return; }该代码用于商品信息文件的建立生成,存储商品信息和订单。 2.2软件的数据(结构)设计 先定义全局变量用于控制商品数量和订单数量如下: #include #include #include #include #include intbgnumber=023;//客户号 intinumber=0;//商品量的统计 intibuy=0;//订单的统计 voidsecondmain();//管理维护子菜单 voidjianpanload();//输入商品 voidscanproduct();//浏览商品 voidsearchproduct();//搜索商品 voiddinggou();//订购商品 voidlookdinggou();//查询订单 voidaddproduct();//增加商品 voiddeleteproduct();//删除商品 voidsaveproduct();//保存商品 voidsavedinggou();//保存订单 voidwenbenload();//从文本导入商品 structproduct { charname[30];//商品名 intnumber;//货号 charvender[30];//厂家 charfiled[100];//产地 intstock;//存量 doubleunvalent;//单价 }; structproducta[100]; structdinggou { intbgname;//货号 intbmany;//订购量 intbtime;//日期时间 charbname[100];//客户名 charbaddress[100];//客户地址 intbnumber;//客户号 }; structdinggoub[100]; 2.3软件的算法设计 画出整个软件的模块图、并对每一个模块图的算法用程序流程图、功是伪代码来实现 现行系统组织结构图如下: 图2.10主结构模块示意图 图2.11二级结构模块示意图 图2.12搜索模块示意图 2.4数据结构分析 使用整型,双精度,字符型定义变量和函数。 使用结构体,类等概念实现数据存储。 同时也用这些自定义类型定义了变量和函数。 体现面向对象设计的特点。 软件的实现 软件涉及到核心功能模块进行设计实现,并对关键代码进行分析阐述。 3设计体会与小结 在做了课程实验以后,我对c++的了解更深了,很多知识得到了巩固,一些不懂的知识也
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 课程设计 报告 商品 订购 系统 设计