收藏 分享(赏)

超市商品管理系统(含附源代码).doc

上传人:hwpkd79526 文档编号:7213918 上传时间:2019-05-10 格式:DOC 页数:18 大小:155KB
下载 相关 举报
超市商品管理系统(含附源代码).doc_第1页
第1页 / 共18页
超市商品管理系统(含附源代码).doc_第2页
第2页 / 共18页
超市商品管理系统(含附源代码).doc_第3页
第3页 / 共18页
超市商品管理系统(含附源代码).doc_第4页
第4页 / 共18页
超市商品管理系统(含附源代码).doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、黔南民族师范学院软件设计课程设计报告题 目: 超市商品管理系统 系部名称 : 计科系专业名称 : 信息管理与信息系统班 级 : B12 计信班学号 : 1208045139学生姓名 : 胡崇祯指导教师 : 黄茹时间 : 2013 年 11 月 9 日 至 2013 年 12 月 8 日一、 课程设计目的1. 通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固C 语言程序设计课程学习的内容,掌握工程软件设计的基本方法。2. 学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。3. 为后续各门计算机课程的学习打下坚实基础。4. 为毕业设计和以后工作打下必要基础。

2、二、课程设计内容1. 编写程序并进行调试运行。2. 输入商品信息,并保存于文件。每个商品信息包含信息如:库存量、进价、售价、保质期、生产商等。3. 对已存入的商品信息进行更新操作,包括添加一个商品信息、删除某个商品信息和修改某个商品信息。4. 通过输入商品名、商品号、商品类型的方式查询商品信息。5. 最后输出商品信息,供需要时打印。三、需求分析1. 该程序可用于对商品基本信息的存储、更新、查询、排序、输出等操作,以实现对商品信息的管理。2. 其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多个商品信息,也可对个别商品信息进行适当的删除或修改。以便随时更新商品信息。3. 程序

3、中设计的查询功能可根据需要从若干数据中查询某个商品信息,并且可根据三种不同的方法查询:按商品号查询、按商品类型和按商品查询,以满足不同的需要。四、概要设计1、 方案设计对系统进行分析,给出结构图分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计结构图如下: 商品信息 管 理 系 统输入模块更新模块查询模块排行模块输出模块退出系统添加信息删除信息修改信息按商品号查询按商品名查询按商品类别查询按库存量排行2、模块功能说明(对各个模块进行功能的描述)(1)输入模块:录入需要管理的商品信息并将信息保存于文件中,以方便

4、日后进行打印、读取、更新等操作。(2)添加模块:可添加一个或多个商品信息,并将所添加商品信息保存,方便查找。(3)删除模块:可对售完的商品信息做删除处理。(4)修改模块:可根据需要对多个商品信息进行修改,也可随时对个别项进行修改。(5)查询模块:可对已建立的商品信息进行查询,并且可根据需要选择按商品名查询或按商品号查询。(6)保存模块:用于对信息进行保存。(7)输出模块:将所有商品信息或想要查询的商品信息显示于屏幕,用于打印商品信息或查找某些商品信息。(8)退出系统:选择该项,自动退出该系统。五、详细设计及运行结果是是否否开始输入 i 的值判断 i 的 值输入模块输出模块更新模块查询模块排序模

5、块输入 i的值输入 i的值退出系统判断 i 的值 判断 i 的值添加信息删除信息修改信息返回菜单返回主菜单按类别查询按商品名查询是否继续按商品号查询是否继续保存数据结束输入模块: 输出模块:是否排行模块:六、调试情况,设计技巧及体会输入模块输入信息是否继续返回主菜单输出模块输出信息返回主菜单排行模块输入 i 的值判断 i 的值按商品号排行输出按商品类型排行输出返回主菜单返回主菜单1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,开始时,数据的输出格式不太规范,而且各模块也出现了一些小问题,在老师和同学的帮助下,通过

6、自己一次又一次的进行调试和修改,最后运行的结果基本上达到了预期的目的。由于时间问题和考虑得不够周全,可能在某些功能上不是很完善,不过已有的功能已能基本满足一般用户的需求,如果能通过不断的实验和使用过程中所积累的问题进行改进。如:数量,价格的输入值为负值时,程序也能继续执行,这就给运用上带来一些不便或可能出现一些莫名其妙的错误。不过总的来说,对于自己首次能够自主完成一个这样大的程序来说,还是比较满意。2、在设计过程中的感受。本次 C 语言的实习课让我对 C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组

7、织的这次实习让我们这些实践知识较缺乏的大学生增添了许多实践经验,为我们将来走上工作岗位其了不小的铺垫作用。本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到自己一般写过的大量程序,给了我继续的信心。在老师和同学的帮助下,我顺利的完成了本次实习,让我体会到了经过不懈的努力,有过挫折有过坎坷,但最终实现目标后的成就感,也让我充分感受到友谊和团结的重要性。七、参考文献C 语言程序设计 王曙燕 曹 锰八、附录:#include #include #include #include#include#include#define MAX 20#define PRINT1 printf(“-n

8、“)#define PRINT2 printf(“商品号-商品名称-商品种类-销售价格-生产日期(年- 月 -日) -保质期n“)#define PRINT3 printf(“%4d%8s%8s%8d%8d-%2d-%2d%4dn“,goodsi.num,goodsi.name,goodsi.kind,goodsi.out_price,goodsi.pro_time.year,goodsi.pro_time.month,goodsi.pro_time.day,goodsi.save_day)int sum;struct dateint year;int month;int day;struct

9、 goods_type /*定义结构体*/int num;char name10;char kind10;int amount;int in_price;int out_price;struct date pro_time;int save_day;int profit;goodsMAX;Save_Message(int sum); /*函数声明*/void Inquire_message(void);void Inquire_goodskind(void);void Inquire_goodsname(void);int Read_Message(void);void Renew_Messa

10、he(void);void Revise_Message(void);void Delete_Message(void);void Insert_Message();void Show_Message(void);int Input_Message(void);void Count_Message();long Count_Profit();long Count_Amount();void Sort_amount(void);void Sort_Message(void);void Sort_Message(void)int choice;doclrscr();printf(“nnn *商品信

11、息排行*nn“);printf(“ 1:按库存量排行nn“);printf(“ 0:返回主菜单nn“);printf(“ 请选择(0-1): “);scanf(“%d“,switch(choice)case 1:Sort_amount();break;case 0:break;while(choice!=0);void Sort_amount(void) /*库存量排序*/struct goods_type *p,*qMAX;int i,j,k;clrscr();printf(“ 库存排行“);PRINT1;printf(“nn 排名 商品号 商品名称 商品类别 库存量nn“);p=goods

12、;for(i=0;iamountamount)k=j;if(k!=i)p=qi;qi=qk;qk=p;for(i=0;inum);printf(“ %s “,qi-name);printf(“ %s “,qi-kind);printf(“ %d n “,qi-amount);bioskey(0);long Count_Amount() /*统计库存量*/int i,j=0,choice,count_num,Amount;char inquire_name10;clrscr();printf(“n 请输入想要统计的商品号: “);scanf(“%d“,for(i=0;isum;i+)if(goo

13、dsi.num=count_num)Amount=goodsi.amount;printf(“-“);printf(“ 商品号 库存量“);printf(“n%8d%8d“,goodsi.num,Amount);elsej+;if(j=sum)printf(“该商品信息不存在!“);bioskey(0);long Count_Profit() /*统计利润模块*/int i,choice,j=0,count_num,profit;clrscr();printf(“n 请输入想要统计的商品号: “);scanf(“%d“,for(i=0;isum;i+)if(goodsi.num=count_n

14、um)profit=goodsi.out_price-goodsi.in_price;printf(“n 商品利润“);printf(“n -“);printf(“n 商品号 利润“);printf(“n %8d%8dn“,elsej+;if(j=sum)printf(“n 该商品不存在!“);printf(“n 按任意键返回主菜单!“);bioskey(0);void Count_Message(void) /*统计模块*/int choice;doclrscr();printf(“*统计商品信息*nnn“);printf(“* 1:统计库存量 *nnn“);printf(“* 2:统计利润

15、 *nnn“);printf(“* 0:返回主菜单 *nnn“);printf(“* 请选择(0-2): *nnn“);scanf(“%d“,switch(choice)case 1:Count_Amount();break;case 2:Count_Profit();break;case 0:break;while(choice!=0);int Input_Message(void) /*输入模块*/int i=0,s=MAX;char bd;clrscr();printf(“开始输入商品信息.n“);printf(“nn 商品信息: (最多 %d) n“,s);printf(“ =n“);

16、doprintf(“n 第 %d 商品 “,i+1);printf(“n 商品号: “);scanf(“%d“,if(goodsi.num=0) break;printf(“n 商品名称: “);scanf (“%s“,goodsi.name);printf(“n 商品种类: “);scanf (“%s“,goodsi.kind);printf(“n 商品库存量: “);scanf (“%d“,printf(“n 进货价格: “);scanf (“%d“,printf(“n 销售价格: “);scanf (“%d“,printf(“n 生产日期(yyyy-mm-dd): “);scanf (“

17、%d-%d-%d“,printf(“n 保质期: “);scanf (“%d“,printf(“继续输入信息,y or n ?“);fflush(stdin);scanf(“%c“,if(bd=y)i+;elsebreak;while(iMAX);printf(“n-%d 所有商品录入完毕!-nnn“,i+1);getch();printf(“ 按任意键返回主菜单.“);sum=i;printf(“输入回车返回主菜单!“);bioskey(0);void Show_Message(void) /*显示输出模块*/int i=0,j=0,count,page=7;clrscr();printf(

18、“nn -商品信息- 在第 %d 页nn“,page);PRINT2;PRINT1;doif(goodsi.num!=0)j+;if(j%page!=0)PRINT3;PRINT1;elsePRINT3;PRINT1;if(goodsi+1.num!=0)printf(“按任意键继续!“);bioskey(0);clrscr();printf(“nn -商品信息-在第 %d 页nn“,+page);PRINT2;PRINT1;i+;while(goodsi.num!=0);printf(“按任意键返回主菜单!“);bioskey(0);void Insert_Message(void)/*添加

19、商品信息模块*/int i=sum,j,flag=0;char choice;clrscr();printf(“nn 添加一种新商品nn “);printf(“n-n“);dogoodsi.num=+sum;printf(“n 新商品号:%d“,goodsi.num);printf(“n 新商品名: “);scanf(“%s“,goodsi.name);printf(“n 新商品种类: “);scanf(“%s“,goodsi.kind);printf(“n 新商品数量: “);scanf(“%d“,printf(“n 进价: “);scanf(“%d“,printf(“n 售价: “);sc

20、anf(“%d“,printf(“n 生产日期(yyyy-mm-dd): “);scanf(“%d-%d-%d“,printf(“n 保质期: “);scanf(“%d“,i+;printf(“nn 想继续添加商品吗 ?(Y/N)“);fflush(stdin);choice=getch();if(choice=y|choice=Y)printf(“继续“);flag=1;elseflag=0;while(flag=1);printf(“nnn 按任意键返回主菜单.“);bioskey(0);void Delete_Message(void)/*删除商品信息模块*/int i,j,number

21、key,flag=0;char choice;printf(“开始删除nn“);doclrscr();printf(“请输入你要删除的商品号: n“);scanf(“%d“,for(i=0;isum;i+)if(goodsi.num=numberkey)for(j=i;jsum;j+)goodsj=goodsj+1;sum-;flag=1;printf(“删除成功!nnn“);break;if(flag=0)printf(“不存在该商品信息!“);bioskey(0);printf(“nn 是否继续输入 (y/n)?n“);getchar();scanf(“%c“,while(choice=y

22、|choice=Y);printf(“n 按任意键返回“);bioskey(0);void Revise_Message(void)/*修改商品信息模块*/int i,j,flag,choice,revise_num;char ch;doclrscr();printf(“nn 开始修改 .“);printf(“nn 请输入你想输入的商品号 :n“);scanf(“%d“,for(i=0;isum;i+)if(goodsi.num=revise_num)printf(“确定修改此商品信息吗?(y/n)“);PRINT1;PRINT2;PRINT3;getchar();ch=getchar();i

23、f(ch=y)printf(“nnn 修改商品信息的哪一项?“);printf(“nn 1:商品名称“);printf(“nn 2:商品类型“);printf(“nn 3:销售价格“);printf(“nn 4:生产日期“);printf(“nn 5:保质期“);printf(“nn 请选择(0-5)n“);scanf(“n %d“,switch(choice)case 1:printf(“请输入修改后的商品名n“);scanf(“%s“,break;case 2:printf(“请输入修改后的商品类型n“);scanf(“%s“,break;case 3:printf(“请输入修改后的商品销

24、售价格n“);scanf(“%d“,break;case 4:printf(“请输入修改后的商品生产日期n“);scanf(“%d-%d-%d“,break;case 5:printf(“请输入修改后的商品保质期n“);scanf(“%d“,break;case 0:break;printf(“修改商品信息:n“);PRINT2;PRINT3;elsebreak;elsej+;if(j=sum)printf(“不存在该商品信息“);printf(“nn 继续修改商品信息吗 (y/n)?“);getchar();ch=getchar();if(ch=y)printf(“继续.n“);flag=1

25、;elseflag=0;while(flag=1);printf(“修改完成!nn“);getch();void Renew_Message(void) /*更新商品信息模块*/int choice;doclrscr();printf(“nn*更新商品信息*“);printf(“nn 1:添加商品信息.nn“);printf(“nn 2:删除商品信息.nn“);printf(“nn 3:修改商品信息.nn“);printf(“nn 0:返回上一级.nn“);printf(“nn 请选择 (0-3): “);scanf(“%d“,switch(choice)case 1:Insert_Messa

26、ge();break;case 2:Delete_Message();break;case 3:Revise_Message();break;case 0:break;while(choice!=0);int Read_Message(void) /*读取信息模块*/FILE *fp;int i=0;if(fp=fopen(“999.txt“,“rb“)=NULL)printf(“nt 现在还没有保存全部信息,按回车键回到主菜单输入商品信息!“);printf(“nt 按任意键返回!n“);getch();return;while(feof(fp)!=1)fread(if(goodsi.num

27、=0)break;elsei+;fclose(fp);return(i);void Inquire_goodsname(void)/*按商品名称查询*/int i,j,choice;char namekey10;j=0;printf(“开始查询.“);printf(“请输入你要查询的商品号:n“);scanf(“%s“,namekey);for(i=0;isum;i+)if(strcmp(goodsi.name,namekey)=0PRINT1;PRINT2;PRINT3;elsej+;if(j=sum)printf(“该商品不存在!“);printf(“按任意键返回主菜单.“);getch(

28、);void Inquire_goodskind(void)/*按商品类型查询*/int i,j,choice;char kindkey10;j=0;printf(“开始查询.“);printf(“请输入你要查询的商品种类:n“);scanf(“%s“,kindkey);for(i=0;isum;i+)if(strcmp(goodsi.kind,kindkey)=0PRINT1;PRINT2;PRINT3;elsej+;if(j=sum)printf(“该商品不存在!“);printf(“按任意键返回主菜单.“);getch();void Inquire_Message(void) /*查询模

29、块*/int choice;doprintf(“n *查询商品信息 * n“);printf(“n *1:按商品名称.* n“);printf(“n *2:按商品种类.* n“);printf(“n *0:返回上一级.* n“);printf(“n 请选择(0-2): * n“);scanf(“%d“,switch(choice)case 1:Inquire_goodsname();break;case 2:Inquire_goodskind();break;case 0:break;while(choice!=0);Save_Message(int sum) /*保存模块*/FILE *fp

30、;int i;if(fp=fopen(“999.txt“,“wb“)=NULL)printf(“nn 不能打开文件 !nn“);exit();for(i=0;i=sum;i+)if(fwrite(fclose(fp);void main(void) /*主函数*/int choice;clrscr();sum=Read_Message();bioskey(0);doclrscr();printf(“ *n“);printf(“ * 超市商品管理系统 *n“);printf(“ * *n“);printf(“ * *n“);printf(“ * *n“);printf(“ * 欢迎登陆 *n“)

31、;printf(“ * *n“);printf(“ * *n“);printf(“ * *n“);printf(“ *n“);printf(“ *n“);getchar ();clrscr();printf(“ *超市商品管理系统*nn“);printf(“ * 1:输入商品信息 *nn“);printf(“ * 2:输出商品信息 *nn“);printf(“ * 3:更新商品信息 *nn“);printf(“ * 4:查询商品信息 *nn“);printf(“ * 5:统计商品信息 *nn“);printf(“ * 6:商品信息排序 *nn“);printf(“ * 0:退出系统 *nn“)

32、;printf(“ * 请选择(0-6): *n“);scanf(“%d“,switch(choice)case 1:Input_Message();break;case 2:Show_Message();break;case 3:Renew_Message();break;case 4:Inquire_Message();break;case 5:Count_Message();break;case 6:Sort_Message();break;case 0:break;while(choice!=0);Save_Message(sum);printf(“n-信息已经保存 !-(file name:999.txt)n“);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报