




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
超市商品管理系统(含附源代码)黔南民族师范学院 软件设计课程设计报告 题 目: 超市商品管理系统 系部名称 : 专业名称 : 班 级 : 学号 : 计科系 信息管理与信息系统 B12计信班 1208045139 胡崇祯 黄茹 2013年11月9日 至2013年 12月8日 学生姓名 : 指导教师 : 时间 : 一、 课程设计目的 1. 通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固C语言程序设计课程学习的学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 3. 为后续各门计算机课程的学习打下坚实基础。 4. 为毕业设计和以后工作打下必要基础。 二、课程设计编写程序并进行调试运行。 2. 输入商品信息,并保存于文件。每个商品信息包含信息如:库存量、进价、售价、保质期、生产商等。 3. 对已存入的商品信息进行更新操作,包括添加一个商品信息、删除某个商品信息和修改某个商品信息。 4. 通过输入商品名、商品号、商品类型的方式查询商品信息。 5. 最后输出商品信息,供需要时打印。 三、需求分析 1. 该程序可用于对商品基本信息的存储、更新、查询、排序、输出等操作,以实现对商品信息的管理。 2. 其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多个商品信息,也可对个别商品信息进行适当的删除或修改。以便随时更新商品信息。 3. 程序中设计的查询功能可根据需要从若干数据中查询某个商品信息,并且可根据三种不同的方法查询:按商品号查询、按商品类型和按商品查询,以满足不同的需要。 四、概要设计 1、 方案设计 对系统进行分析,给出结构图 系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统 分析:的设计自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计 结构图如下: 2、模块功能说明(对各个模块进行功能的描述) (1)(输入模块:录入需要管理的商品信息并将信息保存于文件中,以方便日后进 行打印、读取、更新等操作。 (2)(添加模块:可添加一个或多个商品信息,并将所添加商品信息保存,方便查找。 (3)(删除模块:可对售完的商品信息做删除处理。 (4)(修改模块:可根据需要对多个商品信息进行修改,也可随时对个别项进行修改。 (5)(查询模块:可对已建立的商品信息进行查询,并且可根据需要选择按商品名查询或按商品号查询。 (6)(保存模块:用于对信息进行保存。 (7)(输出模块:将所有商品信息或想要查询的商品信息显示于屏幕,用于打印商品信息或查找某些商品信息。 (8)(退出系统:选择该项,自动退出该系统。 输入模块: 输出模块: 排行模块: 六、调试情况,设计技巧及体会 1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。 此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,开始时,数据的输出格式不太规范,而且各模块也出现了一些小问题,在老师和同学的帮助下,通过自己一次又一次的进行调试和修改,最后运行的结果基本上达到了预期的目的。 由于时间问题和考虑得不够周全,可能在某些功能上不是很完善,不过已有的功能已能基本满足一般用户的需求,如果能通过不断的实验和使用过程中所积累的问题进行改进。如:数量,价格的输入值为负值时,程序也能继续执行,这就给运用上带来一些不便或可能出现一些莫名其妙的错误。 不过总的来说,对于自己首次能够自主完成一个这样大的程序来说,还是比较满意。 2、在设计过程中的感受。 本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识较缺乏的大学生增添了许多实践经验,为我们将来走上工作岗位其了不小的铺垫作用。 本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到自己一般写过的大量程序,给了我继续的信心。在老师和同学的帮助下,我顺利的完成了本次实习,让我体会到了经过不懈的努力,有过挫折有过坎坷,但最终实现目标后的成就感,也让我充分感受到友谊和团结的重要性。 七、参考文献 曹 锰 C语言程序设计 王曙燕八、附录: #include <stdio.h> #include <math.h> #include <string.h>#include<conio.h> #include<stdio.h> #include<string.h> #define MAX 20 #define PRINT1 printf("-n") #define PRINT2 printf("商品号-商品名称-商品种类-销售价格-生产日期(年-月-日)-保质期n") #define PRINT3 printf("%4d%8s%8s%8d%8d-%2d-%2d%4dn",goodsi.num,,goodsi.kind,goodsi.out_price,_time.year,_time.month,_time.day,goodsi.save_day) int sum; struct date int year; int month; int day; ; struct 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_Messahe(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; do clrscr(); printf("nnn *商品信息排行*nn"); printf(" 1:按库存量排行nn"); printf(" 0:返回主菜单nn"); printf(" 请选择(0-1): "); scanf("%d",&choice); 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; for(i=0;i<sum;i+) qi=p+; for(i=0;i<sum;i+) k=i; for(j=i+1;j<sum;j+) if(qk->amount<qj->amount) k=j; if(k!=i) p=qi; qi=qk; qk=p; for(i=0;i<sum;i+) printf(" %d ",i+1); printf(" %d ",qi->num); 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",&count_num); for(i=0;i<sum;i+) if(goodsi.num=count_num) Amount=goodsi.amount; printf("-"); printf(" 商品号 库存量"); printf("n%8d%8d",goodsi.num,Amount); else j+; if(j=sum) printf("该商品信息不存在!"); bioskey(0); long Count_Profit() /*统计利润模块*/ int i,choice,j=0,count_num,profit; clrscr(); printf("n 请输入想要统计的商品号: "); scanf("%d",&count_num); for(i=0;i<sum;i+) if(goodsi.num=count_num) profit=goodsi.out_price-goodsi.in_price; printf("n 商品利润"); printf("n -"); printf("n 商品号 利润"); printf("n %8d%8dn",&goodsi.num,&profit); else j+; if(j=sum) printf("n 该商品不存在!"); printf("n 按任意键返回主菜单!"); bioskey(0); void Count_Message(void) /*统计模块*/ int choice; do clrscr(); printf("*统计商品信息*nnn"); printf("* 1:统计库存量 *nnn"); printf("* 2:统计利润 *nnn"); printf("* 0:返回主菜单 *nnn"); printf("* 请选择(0-2): *nnn"); scanf("%d",&choice); 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"); do printf("n 第 %d 商品",i+1); printf("n 商品号: "); scanf("%d",&goodsi.num); if(goodsi.num=0) break; printf("n 商品名称: "); scanf ("%s",); printf("n 商品种类: "); scanf ("%s",goodsi.kind); printf("n 商品库存量: "); scanf ("%d",&goodsi.amount); printf("n 进货价格: "); scanf ("%d",&goodsi.in_price); printf("n 销售价格: "); scanf ("%d",&goodsi.out_price); printf("n 生产日期(yyyy-mm-dd): "); scanf ("%d-%d-%d",&_time.year,&_time.month,&_time.day); printf("n 保质期: "); scanf ("%d",&goodsi.save_day); printf("继续输入信息,y or n ?"); fflush(stdin); scanf("%c",&bd); if(bd=y?) i+; else break; while(i<MAX); 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("nn -商品信息- 在第 %d 页nn",page); PRINT2; PRINT1; do if(goodsi.num!=0) j+; if(j%page!=0) PRINT3; PRINT1; else PRINT3; PRINT1; if(goodsi+1.num!=0) printf("按任意键继续!"); bioskey(0); clrscr(); printf("nn -商品信息-在第nn",+page); PRINT2; PRINT1; i+; while(goodsi.num!=0); printf("按任意键返回主菜单!"); bioskey(0); void Insert_Message(void)/*添加商品信息模块*/ int i=sum,j,flag=0; char choice; clrscr(); printf("nn 添加一种新商品nn "); printf("n-n"); do goodsi.num=+sum; printf("n 新商品号:%d",goodsi.num); printf("n 新商品名: "); %d 页scanf("%s",); printf("n 新商品种类: "); scanf("%s",goodsi.kind); printf("n 新商品数量: "); scanf("%d",&goodsi.amount); printf("n 进价: "); scanf("%d",&goodsi.in_price); printf("n 售价: "); scanf("%d",&goodsi.out_price); printf("n 生产日期(yyyy-mm-dd): "); scanf("%d-%d-%d",&_time.year,&_time.month,&_time.day); printf("n 保质期: "); scanf("%d",&goodsi.save_day); i+; printf("nn 想继续添加商品吗?(Y/N)"); fflush(stdin); choice=getch(); if(choice=y?|choice=Y?) printf("继续"); flag=1; else flag=0; while(flag=1); printf("nnn 按任意键返回主菜单."); bioskey(0); void Delete_Message(void)/*删除商品信息模块*/ int i,j,numberkey,flag=0; char choice; printf("开始删除.nn"); do clrscr(); printf("请输入你要删除的商品号: n"); scanf("%d",&numberkey); for(i=0;i<sum;i+) if(goodsi.num=numberkey) for(j=i;j<sum;j+) goodsj=goodsj+1; sum-; flag=1; printf("删除成功!nnn"); break; if(flag=0) printf("不存在该商品信息"); bioskey(0); printf("nn是否继续输入(y/n)?n"); getchar(); scanf("%c",&choice); while(choice=y?|choice=Y?); printf("n按任意键返回"); bioskey(0); void Revise_Message(void)/*修改商品信息模块*/ int i,j,flag,choice,revise_num; char ch; do clrscr(); printf("nn 开始修改."); printf("nn 请输入你想输入的商品号:n"); scanf("%d",&revise_num); for(i=0;i<sum;i+) if(goodsi.num=revise_num) printf("确定修改此商品信息吗?(y/n)"); PRINT1; PRINT2; PRINT3; getchar(); ch=getchar(); if(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",&choice); switch(choice) case 1:printf("请输入修改后的商品名n"); scanf("%s",&);break; case 2:printf("请输入修改后的商品类型n"); scanf("%s",&goodsi.kind);break; case 3:printf("请输入修改后的商品销售价格n"); scanf("%d",&goodsi.out_price);break; case 4:printf("请输入修改后的商品生产日期n"); scanf("%d-%d-%d",&_time.year,&_time.month,&_time.day);break; case 5:printf("请输入修改后的商品保质期n"); scanf("%d",&goodsi.save_day);break; case 0:break; printf("修改商品信息:n"); PRINT2; PRINT3; else break; else j+; if(j=sum) printf("不存在该商品信息."); printf("nn 继续修改商品信息吗(y/n)?"); getchar(); ch=getchar(); if(ch=y?) .n"); printf("继续flag=1; else flag=0; while(flag=1); printf("修改完成!nn"); getch(); void Renew_Message(void) /*更新商品信息模块*/ int choice; do clrscr(); printf("nn*更新商品信息*"); printf("nn 1:添加商品信息.nn"); printf("nn 2:删除商品信息.nn"); printf("nn 3:修改商品信息.nn"); printf("nn 0:返回上一级.nn"); printf("nn 请选择(0-3): "); scanf("%d",&choice); switch(choice) case 1:Insert_Message();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(&goodsi,sizeof(struct goods_type),1,fp); if(goodsi.num=0) break; else i+; 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;i<sum;i+) if(strcmp(,namekey)=0&&goodsi.num!=0) printf(" -商品信息-"); PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf("该商品不存在!"); printf("按任意键返回主菜单."); getch(); void Inquire_goodskind(void)/*按商品类型查询*/ int i,j,choice; char kindkey10; j=0; printf("开始查询."); printf("请输入你要查询的商品种类:n"); scanf("%s",kindkey); for(i=0;i<sum;i+) if(strcmp(goodsi.kind,kindkey)=0&&goodsi.num!=0) printf(" -商品信息-"); PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf("该商品不存在!"); printf("按任意键返回主菜单."); getch(); void Inquire_Message(void) /*查询模块*/ int choice; do printf("n *查询商品信息 * n"); printf("n *1:按商品名称.* n"); printf("n *2:按商品种类.* n"); printf("n *0:返回上一级.* n"); printf("n 请选择(0-2): * n"); scanf("%d",&choice); switch(choice) case 1:Inquire_goodsname();break; case 2:Inquire_goodskind();break; case 0:break; while(choice!=0); Save_Message(int sum) /*保存模块*/ FILE *fp; int i; if(fp=fopen("999.t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年航空器材维修工程师职业技能认证试题及答案
- 2025年航空企业机械师安全生产知识考试试题及答案
- 2025年主厂房检修班技能培训试卷及答案
- 3.1 DNA是主要遗传物质教学设计-2023-2024学年高一下学期生物人教版必修二
- 高速公路沥青施工合同(3篇)
- 安徽导游证试题及答案
- 爱尔三基考试题库及答案
- oppo会计笔试题目及答案
- 互联网房地产投资合作框架协议范本
- 2025国税公务员面试题及答案
- 2025年事业单位笔试-贵州-贵州药事管理(医疗招聘)历年参考题库含答案解析
- 战术基础动作低姿匍匐
- 胃肠镜报告的解读
- Unit2课时1ListeningSpeaking(课件)英语仁爱科普版2024八年级上册
- 14.2 三角形全等的判定(第2课时)
- 机房维护保密协议合同模板
- 2025医师处方权试题及答案(全文)
- 2025中小学诗词大会题库题库(含答案)
- 小学教师法律讲座
- 2025至2030中国高速公路行业市场深度调研及前景趋势与投融资报告
- 中职生自我介绍教学课件
评论
0/150
提交评论