商品订购系统设计.docx
《商品订购系统设计.docx》由会员分享,可在线阅读,更多相关《商品订购系统设计.docx(20页珍藏版)》请在冰豆网上搜索。
商品订购系统设计
《C语言程序设计》
课程设计报告
题目:
商品订购系统设计
院(系):
计算机与电子系
专业班级:
电子科学与技术1101班
学生姓名:
xxx
学号:
xxx
指导教师:
xxx
2012年6月18日至2012年6月22日
华中科技大学武昌分校制
C语言程序设计课程设计任务书
一、设计题目
题目一:
某学院教学信息管理系统
题目二:
酒店房间登记与计费管理系统
题目三:
商店销售管理系统
题目四:
商品订购系统设计
题目五:
银行存取款管理设计
任选一题。
二、设计主要内容
题目一:
某学院教学信息管理系统
功能:
1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
2、输入功能:
可以一次完成若干条记录的输入。
3、显示功能:
完成全部教师记录的显示。
4、查找功能:
完成按姓名或课程查找教师的相关记录,并显示。
5、排序功能:
按职工号或教学效果综合评分进行排序。
6、插入功能:
按教学效果综合评分高低插入一条教师记录。
7、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!
要求:
1、用C语言实现系统;
2、利用结构体数组实现教学信息的数据结构设计;
3、系统具有增加,查询,插入,排序等基本功能;
4、系统的各个功能模块要求用函数的形式实现;
题目二:
酒店房间登记与计费管理系统
功能:
1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。
2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。
3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。
分步实施:
1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2、完成最低要求:
建立房间列表,完成登记入住、查询房间入住情况功能。
3、进一步要求:
完成计费和费用查询功能。
要求:
1、用C语言实现系统;
2、函数功能要划分好(结构化程序设计);
3、界面友好(良好的人机交互),加必要的注释;
4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
题目三:
商店销售管理系统
功能:
屏幕上出现一个界面,让售货员输入商品编号或者商品名称,可以进货,进货后商品库存同时增加。
顾客买走商品后,售货员输入商品编号或者商品名称,可以生成销售清单,统计本次销售总的价钱,同时库存数量相应减少。
完成前面的基本功能后,还可以完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。
分步实施:
1、完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2、完成最低要求:
能按商品编号进货和销售;
3、进一步要求:
完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。
要求:
1、用C语言实现系统;
2、函数功能要划分好(结构化程序设计);
3、界面友好(良好的人机交互),加必要的注释;
4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
题目四:
商品订购系统设计
功能:
屏幕上出现一个界面,让顾客或输入商品名称,或商品型号,或选择列表进而输入商品编号都可以,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:
所选商品编号—列出对应商品的信息—要求顾客输入邮寄地址信息—确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。
分步实施:
1、完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2、完成最低要求:
建立一个小系统,包括10种产品能供顾客选择。
3、进一步要求:
完成全部功能的系统。
要求:
1、用C语言实现系统;
2、函数功能要划分好(结构化程序设计);
3、界面友好(良好的人机交互),加必要的注释;
4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
题目五:
银行存取款管理设计
功能:
能够输入和查询客户存款取款记录。
在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。
类别分为取款和存款两种。
本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。
分步实施:
1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;
2、完成最低要求:
建立一个文件,包括输入10个客户的必要信息,能对文件进行输入、修订、删除。
3、进一步要求:
完成客户姓名查询存款和取款记录,并能得到每次帐户总金额。
要求:
1、用C语言实现系统;
2、函数功能要划分好(结构化程序设计);
3、界面友好(良好的人机交互),加必要的注释;
4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
三、原始资料
来源于《C语言课程设计》
四、要求的设计成果
①学生程序调试完成后,需当场演示并现场回答指导教师所提问题;
②课程设计实现过程中,要求完成所有必做题目,选做题目如有完成根据实际完成情况加分;
③设计验收中重点考察代码量不少于2500行;
④课程设计报告应包括:
课程设计目的、课程设计题目描述和要求、课程设计报告内容、总结等;
⑤课程设计报告应书写工整,文句通顺、精炼、逻辑性强,框图、流程图的绘制应符合规范;
⑥课程设计报告字数要求:
不少于2000字。
五、进程安排
序号
课程设计内容
学时分配
1
选题与搜集资料
0.5天
2
分析与数据结构设计
0.5天
3
各个模块程序设计
2天
4
系统调试与测试
0.5天
5
编写课程设计报告
0.5天
六、主要参考资料
[1]梁旭,谷晓琳,黄明.C语言课程设计.第2版.北京.电子工业出版社.2009.
[2]葛日波.C语言程序设计.北京.北京邮电大学出版社.2008.
[3]谭浩强.C程序设计.第4版.北京:
清华大学出版社.2010.
指导教师(签名):
20年月日
1课程设计目的
本课程设计是利用C语言理论和实验中学到的编程知识和编程技巧,通过布置具有一定难度、一定编程量的课程设计题目,使学生通过课程设计掌握高级编程语言的知识和编程技术,掌握程序设计的思想和方法,具备利用计算机求解实际问题的能力。
C语言课程设计的目的和任务主要有一下几点:
(1)巩固和加深学生对C语言课程的基本知识的理解和掌握;
(2)掌握C语言编程和程序调试的基本技能;
(3)利用C语言进行基本的软件设计的基本思路和方法
(4)提高运用C语言解决实际问题的能力;
(5)掌握书写程序设计说明文档的能力。
2课程设计题目描述和要求
题目:
商品订购系统设计
功能:
屏幕上出现一个界面,让顾客或输入商品名称,或商品型号,或选择列表进而输入商品编号都可以,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:
所选商品编号—列出对应商品的信息—要求顾客输入邮寄地址信息—确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。
分步实施:
1、步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
2、完成最低要求:
建立一个小系统,包括10种产品能供顾客选择。
3、进一步要求:
完成全部功能的系统。
要求:
1、用C语言实现系统;
2、函数功能要划分好(结构化程序设计);
3、界面友好(良好的人机交互),加必要的注释;
4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
3课程设计报告内容
3.1功能需求分析
商品管路系统的开发工具采用VisualC++6.0.主要功能是先通过使用结构体及链表来描述商品信息,然后打印此信息,再通过人机互动界面实现顾客对商品的选购,并用结构体及链表实现此选购商品的记录及打印。
3.2总体设计
3.2.1功能模块设计
(1)调用creat函数实现所需销售商品信息的存储。
(2)再调用show函数实现对以上商品信息的打印。
(3)调用opition函数通过人机互动界面实现顾客选购及对选购信息的记录。
(4)最后通过调用outpu函数实现对顾客所订购商品信息的打印及确定工作。
3.2.2程序处理流程
首先打印菜单,通过switch分支结构实现人机互动界面实现顾客对商品信息的存储,打印及选购和确认工作。
3.3详细设计与程序实现
3.3.1预处理
#include"stdio.h"/*I/O函数*/
#include"stdlib.h"/*其它说明*/
#include"string.h"/*字符串函数*/
#include"ctype.h"/*字符操作函数*/
#include"malloc.h"/*内存分配函数*/
3.3.2数据结构定义
structgoods/*商品信息*/
{intcode;/*编号*/
charname[20];/*名称*/
charplace[10];/*产地*/
floatprice;/*单价*/
charsize;/*型号*/
intputku_n;/*库存数量*/
intsellku_n;/*已订购数量*/
}xinxi[10]={{1,"yumaoqiu","china",8,'a',100,45},
{2,"nike","shanxi",400,'b',200,45},
{3,"lanqiu","wennan",1.5,'c',398,300},
{4,"shoutao","fuping",50,'d',5000,4000},
{5,"qianbao","japan",300,'e',200,100},
{6,"gangbi","hubei",30,'f',500,435},
{7,"yuanzhubi","goodshai",23,'g',34,13},
{8,"xiangpi","jiangsu",1.0,'h',3000,50},
{9,"xiaodao","liaoning",0.5,'i',5000,2},
{10,"guangpan","xuezheng",34,'j',2,78}};
structorder/*订购商品信息*/
{intcode;/*编号*/
charname[20];/*名称*/
charplace[10];/*产地*/
floatprice;/*单价*/
charsize;/*型号*/
intnum;/*订购数量*/
charadderss[20];/*地址*/
}dinggou[10];
3.3.3函数及变量声明
voidman();/*订货信息文件*/
voidsave();/*商品信息文件*/
voidgoodname();/*输入商品名称*/
voidgoodnum();/*输入商品编号*/
voidgoodlist();/*选择商品列表*/
voidcaidan();/*选择商品菜单*/
voidxuanding();/*订购商品*/
3.3.4main函数
voidmain()
{intch;
printf("\n******************************************************************\n*\t\t\t\t\t\t\t\t*\n");
printf("*▏▎▍▌▋▊█▇▆▅▄▃▂▁*");
printf("\n*\t\t\t\t\t\t\t\t*\n*欢迎\t\t\t\t\t\t*\n*\t\t\t\t\t\t\t\t*\n");
printf("*\t\t进入....\t\t\t\t*");
printf("\n*\t\t\t\t\t\t\t\t*\n");
printf("*-商品订购系统-*\n*\t\t\t\t\t\t\t\t*\n");
printf("*▁▂▃▄▅▆▇█▉▊▋▌▍▏*\n");
printf("*\t\t\t\t\t\t\t\t*\n******************************************************************");
printf("\n\n\tPleasepressanykeytocontinue:
");
getchar();
system("cls");
printf("\n\n——★—☆——★—☆——☆—★——☆—★——☆—☆——★—\n");
printf("\n\t\t\t商品订购系统\t\n\n");
printf("\t1→输入名称查询\n\n");
printf("\t2→输入编号查询\n\n");
printf("\t3→显示所有商品信息\n\n");
printf("\t0→退出本系统\n\n");
printf("\t\t——☆—★——☆—★——☆—☆——★—☆——★—☆——★—");/*菜单选择界面*/
printf("张颖业电子110120111185001");
printf("\n\n");
printf("\t请选择您所要的操作:
");
ch=getchar();
system("cls");
switch(ch)
{
case'1':
goodname();break;
case'2':
goodnum();break;
case'3':
goodlist();break;
case'0':
printf("谢谢使用本系统\n");break;
}
printf("谢谢使用本系统");
}
3.3.5主要处理函数
voidgoodname()/*输入商品名称查询*/
{inti;charm;
charname[20];
printf("请输入所选商品名称:
\n");
scanf("%s",name);
for(i=0;i<10;i++)
if(strcmp(xinxi[i].name,name)==0)
{s=i;
printf("商品编号:
%8d\n商品名称:
%12s\n商品产地:
%12s\n商品单价:
%10.2f\n商品型号:
%8c\n库存数量:
%8d\n已订购数量:
%8d\n",xinxi[s].code,xinxi[s].name,xinxi[s].place,xinxi[s].price,xinxi[s].size,xinxi[s].putku_n,xinxi[s].sellku_n);
break;}
xuanding();/*确认订购*/
printf("是否选购其他商品?
\n输入商品名称选定\n输入商品编号选定\n通过商品列表选定\n退出系统\n");
getchar();
scanf("%c",&m);
system("cls");
if(m=='Y')
goodname();
if(m=='N')
goodnum();
if(m=='L')
goodlist();
}
voidgoodnum()/*输入商品编号*/
{
inti,j;charm;
printf("请输入商品编号:
\n");
scanf("%d",&j);
for(i=0;i<10;i++)
{if(xinxi[i].code==j)
{s=i;
printf("商品编号:
%8d\n商品名称:
%12s\n商品产地:
%12s\n商品单价:
%10.2f\n商品型号:
%8c\n库存数量:
%8d\n已订购数量:
%8d\n",xinxi[i].code,xinxi[i].name,xinxi[i].place,xinxi[i].price,xinxi[i].size,xinxi[i].putku_n,xinxi[i].sellku_n);
break;}}
xuanding();/*确认订购*/
printf("是否选购其他商品?
\n输入商品名称选定\n输入商品编号选定\n通过商品列表选定\n退出系统\n");
getchar();
scanf("%c",&m);
system("cls");
if(m=='Y')
goodname();
if(m=='N')
goodnum();
if(m=='L')
goodlist();
}
voidgoodlist()/*选择商品列表*/
{
inti;
intj;charm;
for(i=0;i<10;i++)
{
printf("商品编号:
%8d\n商品名称:
%12s\n商品产地:
%12s\n商品单价:
%10.2f\n商品型号:
%8c\n库存数量:
%8d\n已订购数量:
%8d\n",xinxi[i].code,xinxi[i].name,xinxi[i].place,xinxi[i].price,xinxi[i].size,xinxi[i].putku_n,xinxi[i].sellku_n);
}
printf("请输入商品编号选择:
");
scanf("%d",&j);
for(i=0;i<10;i++)
{if(xinxi[i].code==j)
{s=i;
printf("商品编号:
%8d\n商品名称:
%12s\n商品产地:
%12s\n商品单价:
%10.2f\n商品型号:
%8c\n库存数量:
%8d\n已订购数量:
%8d\n",xinxi[s].code,xinxi[s].name,xinxi[s].place,xinxi[s].price,xinxi[s].size,xinxi[s].putku_n,xinxi[s].sellku_n);
break;}
}
xuanding();/*确认订购*/
printf("是否选购其他商品?
\n输入商品名称选定\n输入商品编号选定\n通过商品列表选定\n退出系统\n");
getchar();
scanf("%c",&m);
system("cls");
if(m=='Y')
goodname();
if(m=='N')
goodnum();
if(m=='L')
goodlist();
}
3.3.6辅助函数功能介绍
voidxuanding()
{charn,w;charadd[20];intg;
printf("是否订购本商品?
Y/N\n");
getchar();
scanf("%c",&n);
printf("请输入你想订购的本商品数量");
scanf("%d",&g);
if(n=='Y')
{if(xinxi[s].putku_n!
=0)
{if(xinxi[s].putku_n>=g)
{printf("请输入您的地址:
(请使用英文填写)\n");
scanf("%s",&add);
system("cls");
dinggou[q].code=xinxi[s].code;
strcpy(dinggou[q].name,xinxi[s].name);
strcpy(dinggou[q].place,xinxi[s].place);
dinggou[q].price=xinxi[s].price;
dinggou[q].size=xinxi[s].size;
strcpy(dinggou[q].adderss,add);
dinggou[q].num=g;
q=q+1;
printf("您已经选购以下商品:
\n");
for(w=0;wprintf("商品编号商品名称商品产地商品单价商品型号订购人地址订购数量:
\n%4d%12s%12s%10.2f%8c%12s%8d\n",dinggou[w].code,dinggou[w].name,dinggou[w].place,dinggou[w].price,dinggou[w].size,dinggou[w].adderss,dinggou[w].num);
}elseprintf("你订购的数量超过库存数量,请重新订购");}
if(xinxi[s].putku_n==0)
printf("对不起你订购的商品已经缺货,请选购其他商品\n");
}xinxi[s].putku_n=xinxi[s].putku_n-g;
xinxi[s].sellku_n=xinxi[s].sellku_n+g;
save();
man();
}
voidsave()/*商品信息文件*/
{
inti;
FILE*fp;
if((fp=fopen("goodspin_list","w+"))==NULL)
{printf("can'topenfile");
return;
}
for(i=0;i<10;i++)
{if(fwrite(&xinxi[i],sizeof(structgoods),1,fp)!
=1)
printf("filewriteerror\n");
}
fclose(fp);
}
voidman()/*订货信息文件*/
{
inti;
FILE*ft;
if((ft=fopen("dinghuo_list","w+"))==NULL)
{printf("can'topenfile");
return;
}
for(i=0;i<10;i++)
{if(fwrite(&dinggou[i],sizeof(structorder),1,ft)!
=1)
printf("filewriteerror\n");
}
fclose(ft);
}
3.4系统实现截图
(1)进入首页按任意键进入下一步
(2)进入商品订购系统主菜单
(3)选择“1”进入输入名称查询界面
(4)选择“2”进入商品编号查询界面
(5)选择“3”进入商品所有信息查看界面
(6)选择“0”退出系统
4总结
首先得感谢老师及同学对我的帮助。
一开始编的时候漏洞百出,让我很着急,不过在完完整整得做完一个程序后我对程序的整体性有了一