c语言程序设计_超_市_管_理_系_统.doc

上传人:飞****2 文档编号:52217608 上传时间:2022-10-21 格式:DOC 页数:21 大小:113KB
返回 下载 相关 举报
c语言程序设计_超_市_管_理_系_统.doc_第1页
第1页 / 共21页
c语言程序设计_超_市_管_理_系_统.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《c语言程序设计_超_市_管_理_系_统.doc》由会员分享,可在线阅读,更多相关《c语言程序设计_超_市_管_理_系_统.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验题目:超市管理系统一、 实验目的1. 熟悉c语言的编译连接和运行过程。2. 掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。3. 掌握if语句及switch语句的运用方法及嵌套应用方法。4. 掌握实现循环结构的三种语句while、 do-while.、for 的使用。5. 掌握函数的定义方法和调用方法。6. 能够采用模块化思想调试程序。二实验内容1. 编写程序并进行调试运行。2. 输入商品资料,并保存于文件。每件商品包含信息如:商品号、商品名、商品类别、商品总量、商品上限和下限、商品价格、进货日期、生产日期、保质期等。3. 对已存入的商品信息进行更新操作,包括添

2、加一件商品信息、删除某件商品信息和修改商品信息。4. 通过按商品名、商品种类、商品进货量的方式查询商品信息。5.输入某商品号后对其利润进行统计、对进货价格相同的商品进行统计。6 对商品的库存量和利润进行排序。7.最后输出商品信息,供需要时打印。 二、 需求分析1. 该程序可用于对商品的基本信息的存储、更新、查询、输出、统计、排序等操作,以实现管理者对商品的管理和消费者对商品的了解。2. 其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多件商品信息,也可对个别商品信息进行适当的删除或修改。以便随时更新商品信息。3. 程序中设计的查询功能可根据需要从若干数据中查询某件商品信息,

3、并且可根据三种不同的方法查询:按商品名查询、按商品种类查询和按商品进货量查询。以满足不同的需要。四、概要设计1、方案设计对系统进行分析,给出结构图 分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计 结构图如下:超市管理管理系统退出系统消费者管理系统管理者系统统计模块排序模块查询模块退出系统利润排行退出系统录入信息 退出系统添加商品信息按进货量查询按商品种类查按商品名查询退出系统查询模块排序模块询模块退出系统输出信息更新模块退出系统第一类商品第二类商品按商品名查询按进货量查询 退出系统按商品种类查寻利润排行库

4、存量排行退出系统第三类商品修改商品信息删除商品信息库存量排行2功能模块说明:对各个模块进行功能的描述(1).输入模块:录入需要管理的商品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。(2)添加模块:可添加一件或多件商品信息,并将所添加商品信息保存,方便查找。(3)删除模块:可对过期的商品做删除处理。(4)修改模块:可根据需要对多件商品信息进行修改,也可随时对个别项进行修改。(5)查询模块:可对已建立的商品信息进行查询,并且可根据需要选择按商品名查询或按商品种类查询或按商品进货量查询。 (6)保存模块:用于对信息进行保存。 (7)输出模块:将所有商品信息或想要查询的商品信息显示

5、于屏幕,用于打印商品信息或查找某些商品信息。(8) 排序模块:根据商品的利润和进货量进行排序。(9) 统计模块:统计商品的利润和对进货价格相同的商品进行统计。(10)退出系统:选择该项,自动退出该系统。五、详细设计及运行结果流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。开 始输入i值判断i值退出系统消费者系统管理者系统退出系统排序模块查询模块输入模块查询模块统计模块排序模块更新模块输出模块退出系统输入统计值输入查询值输入排序值输入更新值输入查询值输入排序值退出系统添加信息删除信息修改信息退出系统利润排序库存排序退出系统一类商品二类商品三类商品退出系统按名查询按种类查按进货量库

6、存排序利润排序退出系统按种类查按名查询按进货量退出系统 六 调试情况及运行结果1、 对自己设计进行评价,指出合理和不足之处,提出改进的方案。此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,于是就按课本上的例子编了超市管理系统,先把界面弄好然后再添加各模块,而且各模块也出现了不少问题,在同学们和老师的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。可结果还不是太理想。由于时间很短,在选题报告中设想到的好多功能都没有实现。已有的那些功能虽已能基本上满足管理者和消费者的需要,但如果还有更多的功能程序就会更加完美。如:进入系统时没有设制密码,保护性

7、不够强;在输入商品号时没有出错提示,如果商品号输入负值2、在设计过程中的感受。 本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。在同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。七参考文献C

8、语言程序设计 王曙燕 曹锰 科学出版社 八。附录: #include #include #define MAX 3#define N 3#define PAGE 2#define PRINTF1 printf(-n)#define PRINTF2 printf(num-name-kind-out_price-pro_time(year-month-day)-save_timen);#define PRINTF3 printf(%d%8s %7s %8d %5d-%2d-%2d %10dn,goodsi.num,goodsi.name,goodsi.kind,goodsi.out_price,g

9、oodsi.pro_time.year,goodsi.pro_time.month,goodsi.pro_time.day,goodsi.save_day);int sum;/*data struct kind*/struct data int year; int month; int day;/*goods struct kind*/struct goods int num; char name10; char kind10; int amount; int goods_up; int goods_down; int in_price; int out_price; int in_num;

10、struct data in_time; struct data pro_time; char factory10; int save_day; float profit;goodsMAX;/*save message*/ save_message(int sum) FILE *fp; int i; if(fp=fopen(goods.txt,wb)=NULL) printf(read the file error!n); return; for(i=0;isum;i+) if(fwrite(&goodsi,sizeof(struct goods),1,fp)!=1) printf(write

11、 the file error!n); fclose(fp);/*input message*/input_message() int i=0,s=MAX; system(cls); printf(nn input goods message the most%dnn,s); do printf(n di%dgoods,i+1); printf(n num:); scanf(%d,&goodsi.num); if(goodsi.num=0) break; printf(n name:); scanf(%s,goodsi.name); printf(n kind:); scanf(%s,good

12、si.kind); printf(n amount:); scanf(%d,&goodsi.amount); printf(n goods_up:); scanf(%d,&goodsi.goods_up); printf(n goods_down:); scanf(%d,&goodsi.goods_down); printf(n in_price:); scanf(%d,&goodsi.in_price); printf(n out_price:); fflush(stdin); scanf(%d,&goodsi.out_price); printf(n in_num:); scanf(%d,

13、&goodsi.in_num); printf(n in_time:); scanf(%d-%d-%d,&goodsi.in_time.year,&goodsi.in_time.month, &goodsi.in_time.day); printf(n pro_time:); scanf(%d-%d-%d,&goodsi.pro_time.year,&goodsi.pro_time.month, &goodsi.pro_time.day); printf(n factory:); scanf(%s,goodsi.factory); printf(n save_time:); scanf(%d,

14、&goodsi.save_day); i+; while(iMAX); printf(n* %d goods message input over!-n,i); sum=i; printf(n press any key to return!); bioskey(0) ;/*read message*/int read_message() FILE *fp; int i=0; if(fp=fopen(goods.txt,rb)=NULL) printf(nn *there is no any message,press any key to return !*n); return; while

15、(feof(fp)!=1) fread(&goodsi,sizeof(struct goods),1,fp); if(goodsi.num=0) break; else i+; fclose(fp); return(i);/*output message*/output_message() int i=0,j=0,count,page=1; system(cls); printf(nn -goods message,di %d pagenn,page); PRINTF2; PRINTF1; do if(goodsi.num!=0) j+; if(j%PAGE!=0) PRINTF3; PRIN

16、TF1; else PRINTF3; PRINTF1; if(goodsi+1.num!=0) printf(press any key to return!); getch(); system(cls); printf(nn -goods message,di%d pagenn,+page); PRINTF2; PRINTF1; i+; while(isum); printf(press any key return!); bioskey(0);/*insert goods message*/insert_message() int i=sum,j,flag=0; char choice;

17、system(cls); printf(nn insert a new goodsn); printf( -n); do goodsi.num=+sum; printf(n new num:); scanf(%d,&goodsi.num); printf(n new name:); scanf(%s,goodsi.name); printf(n new kind:); scanf(%s,goodsi.kind); printf(n new amount:); scanf(%d,&goodsi.amount); printf(n new goods_up: ); scanf(%d,&goodsi

18、.goods_up); printf(n new goods_down:); scanf(%d,&goodsi.goods_down); printf(n new in_price: ); scanf(%d,&goodsi.in_price); printf(n new out_price:); scanf(%d,&goodsi.out_price); printf(n new in_num:); scanf(%d,&goodsi.in_num); printf(n new in_time:); scanf(%d-%d-%d,&goodsi.in_time.year, &goodsi.in_t

19、ime.month, &goodsi.in_time.day); printf(n new pro_time:); scanf(%d-%d-%d,&goodsi.pro_time.year, &goodsi.pro_time.month, &goodsi.pro_time.day); printf(n new factory: ); scanf(%s,goodsi.factory); printf(n new save_time: ); scanf(%d,&goodsi.save_day); printf(n go on or not?(Y/N); choice=getch(); if(cho

20、ice=Y|choice=y) printf(n go on!n); i+; flag=1; else flag=0; while(flag=1); printf(n press any key return!); bioskey(0);/*renew goods message*/renew_message() int choice; do system(cls); printf(nnn *renew goods message*nn); printf( 1: insert goods messagenn); printf( 2: del goods messagenn); printf(

21、3: revise goods messagenn); printf( 0: returnnn ); printf( please choose(0-3):); scanf(%d,&choice); switch(choice) case 1: insert_message(); break; case 2: del_message(); break; case 3: revise_message(); break; case 0: break; while(choice!=0);/*del goods message*/del_message() int i=0,del_num,flag,k

22、; char choice,choice1; do system(cls); printf(n -please input the del goods num:-n); scanf(%d,&del_num); printf(n -really del the goods?(Y/N); choice1=getch(); if(choice1=Y|choice1=y) printf(n -continue!-n); for(i=0;isum;i+) if(goodsi.num=del_num) printf(n -goods message-n); PRINTF1; PRINTF2; PRINTF

23、3; for(k=i;ksum-1;k+) goodsk=goodsk+1;sum-; printf(n -after delete-n); PRINTF1; PRINTF2; PRINTF3; break; if(i=sum) printf(n -the goods is not exist!-n); getch(); printf(nn -go on or not?Y/N-n); choice=getch(); if(choice=Y|choice=y) flag=1; printf(n -go on-n); else flag=0; while(flag=1); printf(n -pr

24、ess any key return-n); bioskey(0);/*revise goods message*/revise_message() int i=0,choice,revise_num,flag; char choice1; do system(cls); printf(n please input the revise goods num:); scanf(%d,&revise_num); for(i=0;isum;) if(goodsi.num=revise_num) printf(n -goods message- n); PRINTF1; PRINTF2; PRINTF

25、3; printf(n which item you want to revise?n ); printf(n 1: namen); printf(n 2: kindn); printf(n 3: out_pricen); printf(n 4: pro_timen); printf(n 5: save_dayn); printf(n please choose(1-5); scanf(%d,&choice); switch(choice) case 1: printf(n after revise num: ); scanf(%s,goodsi.name); break; case 2: p

26、rintf(n after revise kind: ); scanf(%s,goodsi.kind); break; case 3: printf(n after revise out_price:); scanf(%d,&goodsi.out_price); break; case 4: printf(n after revise pro_time:); scanf(%d-%d-%d,&goodsi.pro_time.year, &goodsi.pro_time.month, &goodsi.pro_time.day); break; case 5: printf(n after revi

27、se save_time:); scanf(%d,&goodsi.save_day); break; PRINTF1; PRINTF2; PRINTF3; break; else i+; if(i=sum) printf(n this goods is not exist!); getch(); printf(nn continue revise?(Y/N); choice1=getch(); if(choice1=Y|choice1=y) flag=1; printf(n continue!n); else flag=0; while(flag=1); printf(n press any

28、key returnn); bioskey(0);/*inquire goods message*/inquire_message() int choice; do system(cls); printf(nn *inquire goods message*nn); printf( 1: inquire goods according to name nn); printf( 2: inquire goods according to kindnn) ; printf( 3: inquire goods according to in_numnn); printf( 0: returnnn);

29、 printf( please choose (0-3): ); scanf(%d,&choice); switch(choice) case 1: inquire_name(); break; case 2: inquire_kind(); break; case 3: inquire_count(); break; case 0: break; while(choice!=0);/*inquire according to name*/inquire_name() int i,choice,j=0,inquire_in_price; char inquire_name10; system(

30、cls); printf(n input the inquire goods name:); scanf(%s,inquire_name); for(i=0;isum;i+) if(strcmp(goodsi.name,inquire_name)=0&goodsi.num!=0) printf(n -goods message- n); PRINTF1; PRINTF2; PRINTF3; else j+; if(j=sum) printf(n the good is not exist!); bioskey(0); /* inquire accordingto kind */inquire_

31、kind()int i,j=0;char inquire_kind10;clrscr();printf(n please input the inquire goods kind:);scanf(%s,inquire_kind);for(i=0;isum;i+)if(strcmp(goodsi.kind,inquire_kind)=0&goodsi.num!=0)printf(n -goods message- n);PRINTF1;PRINTF2;PRINTF3;else j+;if(j=sum) printf(n this goods is not exist!);bioskey(0);/

32、*inquire according to in_num*/inquire_count()int i,inquire_count,j=0;clrscr();printf(n please input the inquire in_num:);scanf(%d,&inquire_count);for(i=0;isum;i+)if(strcmp(goodsi.in_num,inquire_count)=0&goodsi.num!=0)printf(n -goods message-);PRINTF1;PRINTF2;PRINTF3;else j+;if(j=sum) printf(n this goods is not exist!);bioskey(0);/*count goods message*/count_message() int choice; do sy

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁