北京联合大学c语言实训 商店商品管理信息系统.doc
《北京联合大学c语言实训 商店商品管理信息系统.doc》由会员分享,可在线阅读,更多相关《北京联合大学c语言实训 商店商品管理信息系统.doc(57页珍藏版)》请在三一办公上搜索。
1、北京联合大学课 程 设 计 报 告课程名称: C语言程序设计实训 项目名称: 商店商品管理信息 学 院: 自动化学院 专 业:信息处理与智能技术 姓 名: 赵大帅 李志磊 冯麒麟 学 号: 指导教师: 成 绩: 2011年6月21日目 录第一部分 课程设计题目与要求1. 问题提出2.功能要求3任务分工第二部分 设计实训题目功能1. 总体设计2. 算法设计3. 数据结构4. 程序代码设计5. 测试与调试第三部分 课程设计总结1. 个人总结2. 结束语附录A 程序清单附录B 用户使用说明书参考文献第1部分 实训题目与要求1. 问题提出: 某商店每天有进货、售货、统计销售额、计算毛利率、查看商品剩余
2、量等业务,所以人工管理是一件非常繁琐的事情,为了快速有效的管理,该商店提出要编制一个计算机管理软件。 2. 功能要求: 在主菜单中选择:1. 创建商品档案。每一个商品的信息包括编号、品名、进价、售价、进货量、销售量、销售额、剩余数、毛利。2. 进入子菜单,并编辑商品信息。例如,向商品档案添加新商品,删除原有商品,处理员有商品的新进货量、新销售量、报废量。在子菜单中选择4,返回主菜单;选择0,退出整个系统。3. 统计销售额情况。在此项中统计每种商品的销售额、剩余数、毛利(毛利=销售额-进价销售量)。4. 进入子菜单,并查询商品信息。如根据品名、剩余数(小于5大于20)进行查询。在子菜单中选择3,
3、返回主菜单;选择0,退出整个系统。5. 进入子菜单,并显示商品信息。显示方式有3 种,即按原来商品顺序显示、按销售额从高到低的顺序显示、按毛利从高到低的顺序显示,由于商品较多,所以要求分屏显示。在子菜单选择4,返回主菜单;选择0,退出整个系统。6. 创新功能给商品分类。7. 主菜单中选择0:显示结束信息(如“感谢使用本软件!已正常退出,按任意键结束。”),按任意键后,退出本系统。3. 任务分工:(1): 编辑商品信息; 创新功能:给商品分类的主函数、给商品分类中的按生活用品分。(2)郭欣桐:创建商品档案、查询商品信息; 创新功能:给商品分类中的按食品分。(3)胡岩松:统计销售情况、显示商品信息
4、; 创新功能:给商品分类中的按学习用品分。注:流程图与实训报告由三个人共同分担完成。第2部分 设计实训题目功能1.总体设计: (1)模块设计:如下图菜单:-| 请输入选项编号(0-6) |-| 1创建商品档案 | 2编辑商品信息 | 3统计销售情况 | 4查询商品信息 | 5显示商品信息 | 6创新功能 | 0退出系统 |-*| 请输入选项编号(0-4) |*| 1添加新商品 | 2删除原有商品 | 3修改原有商品信息 | 4返回 | 0退出系统 |*| 请输入选项编号(0-3) |*| 1按品名查询 | 2按剩余数查询 | 3返回 | 0退出系统 |*| 请输入选项编号(0-4) |*| 1
5、按原来顺序显示 | 2按销售额高低显示 | 3按毛利高低显示 | 4返回 | 0退出系统 |*(2)定义各函数的主要功能: 主函数:将需要的函数都放在主函数中,当需要不同的函数的时候便可用主函数调用不同的函数,运用主函数可以方便调用其它函数。 创建商品档案函数:向原有商品档案中添加新的商品以及有关信息。 编辑商品信息函数:可以添加新商品、删除原有商品、修改原有商品信息。 统计销售情况函数:可以统计每种商品的销售额、剩余数、毛利。 查询商品信息函数:可以查询商品信息,分为按品名查询、按剩余数查询。 显示商品信息函数:可以显示出商品信息,按原来顺序显示、按销售额高低显示、按毛利高低显示。 创新功能
6、函数:给商品分类可以将商品分为3类,按生活用品分类、按食品分类、按学习用品分类。(3)程序模块图:2.算法设计:(1)显示子菜单。用printf函数将菜单项一项项地打印到屏幕上,界面中的边框可以通过多个printf语句输出的“|”和“-”拼接起来。(2)菜单项的选择。菜单应根据用户的选择做出不同的反应,因此需要使用分支结构实现选择选项的功能。鉴于目前仅仅是做主菜单,还不能实现各菜单项的具体功能,因此该程序中暂时根据用户的选择,输出对应菜单的编号。根据题意,主菜单含有7个菜单项,属于多分支条件判断,使用带break的switch语句最为合适。需要注意的是,还要处理当用户输入错误时的情况。(3)重
7、复显示主菜单。因为本实例具有重复选择主菜单的功能,因此需要使用循环结构。在本实例中主菜单至少显示一次,然后才判断是否继续选择主菜单,所以使用do-while循环比较好,因为do-while循环是先执行循环体,然后在判断表达式。 作为菜单,应该给用户一个正常的出口,即满足一定条件时退出程序。为了给用户提供方便,我们采用人机对话形式,当用户选择某一菜单项后,系统立即完成相应的功能,然后询问用户是否需要继续选择,只要用户选择继续(输入y或Y),主菜单就在屏幕上反复出现,只有单用户选择不再继续(输入n或N)时,才可以退出主菜单。除此之外,为了使用方便,在主菜单中还特设0选项,选择它也能正常退出程序。
8、为了实现上述功能,有关语句都应放在do-while循环体中。 设计算法时应考虑如何时程序具有容错能力。例如,当用户在应答是否继续时,如果输入的是合法数据(即y、Y、n或N),则程序继续下一步操作;如果输入的是非法数据(即y、Y、n或N以外的字符),则应让用户重新输入,这时需要在是否继续的问题上加一个循环判断,这种功能常用do-while实现。(4)流程图(如下图所示):主模块流程图创建商品档案模块的流程图编辑商品信息模块的流程图添加新商品模块的流程图删除原有商品模块的流程图修改原有商品信息流程图统计销售情况的流程图查询商品信息的流程图按品名查询流程图按剩余数查询流程图显示商品信息流程图按原来顺
9、序显示模块的流程图按销售额高低显示的流程图按毛利高低显示的模块创新功能流程图按生活用品分类流程图注:按食品和学习用品分类似3.数据结构:struct goodschar bh10; char pm30;float jj;float sj;int jhl;int xsl;float xse;int sys;float ml;此结构体为存放商品信息,编号bh10,商品名pm30,进价jj,售价sj,进货量jhl,销售量xsl,销售额xse,剩余数sys,毛利ml.4. 程序代码设计:void mycreate() int i=1;float x,y,z,t; struct goods temp=0
10、;FILE *fp=NULL;fp=fopen(d:cwzgoods.txt,w);if(fp=NULL) printf(n 打开文件夹失败!n);return;system(cls);printf(n 请输入第1个记录:n);printf( 编号(用#结束输入):);do gets(temp.bh); while(strcmp(temp.bh,)=0);printf( 品名(用#结束输入):);gets(temp.pm);printf( 进价(用#结束输入):);scanf(%f,&x);temp.jj=x;printf( 售价(用#结束输入):); scanf(%f,&y);temp.sj
11、=y;printf( 进货量(用#结束输入):);scanf(%d,&temp.jhl);printf( 销售量(用#结束输入):);scanf(%d,&temp.xsl);printf( 销售额(用#结束输入):);scanf(%f,&z);temp.xse=z;printf( 剩余数(用#结束输入):);scanf(%d,&temp.sys);printf( 毛利(用#结束输入):);scanf(%f,&t);temp.ml=t;while(temp.bh0!=#&temp.pm0!=#) fprintf(fp,%4s%12s%8.1f%8.1f%8d%8d%8.1f%8d%8.1fn,t
12、emp.bh,temp.pm, temp.jj,temp.sj,temp.jhl,temp.xsl,temp.xse,temp.sys,temp.ml); i+; printf(n 请输入第%d个记录:n,i); printf( 编号(用#结束输入):); do gets(temp.bh); while(strcmp(temp.bh,)=0); printf( 品名(用#结束输入):); gets(temp.pm); printf( 进价(用#结束输入):); scanf(%f,&x); temp.jj=x; printf( 售价(用#结束输入):); scanf(%f,&y); temp.s
13、j=y; printf( 进货量(用#结束输入):); scanf(%d,&temp.jhl); printf( 销售量(用#结束输入):); scanf(%d,&temp.xsl); printf( 销售额(用#结束输入):); scanf(%f,&z); temp.xse=z; printf( 剩余数(用#结束输入):); scanf(%d,&temp.sys); printf( 毛利(用#结束输入):); scanf(%f,&t); temp.ml=t;fclose(fp);void myedit()char choose=0,yes_no=0; do myprint1();choose
14、=getch();switch(choose)case 1: myadd(); break; case 2:mydelete(); break; case 3: mymodify(); break; case 4: return; case 0: exit(0); default : printf(n %c为非法选项!n,choose);if(choose=0) break;printf(n 要继续选择吗(Y/N)?n);do yes_no=getche( ); while(yes_no!=Y & yes_no!=y & yes_no!=N & yes_no!=n); while(yes_no
15、=Y | yes_no=y);void myadd()char c=0;int n=0;float x,y,z,t;struct goods temp=0,recordN=0,*p=NULL;FILE *fp=NULL;fp=fopen(d:cwzgoods.txt,r);if(fp=NULL)printf(n 打开文件失败!n);return;p=record;printf(原有商品信息为:n);while(feof(fp)=0)fscanf(fp,%s%s%f%f%d%d%f%d%f,p-bh,p-pm,&x,&y,&p-jhl,&p-xsl,&z,&p-sys,&t);printf(%4
16、s%12s%8.1f%8.1f%8d%8d%8.1f%8d%8.1fn,p-bh,p-pm,x,y,p-jhl,p-xsl,z,p-sys,t);p-jj=x;p-sj=y;p-xse=z;p-ml=t;p+;n+;getchar();fclose(fp);doprintf(n 请输入新记录的编号:);dogets(temp.bh);while(strcmp(temp.bh ,)=0);printf( 请输入新记录的品名:);gets(temp.pm );printf( 请输入新记录的进价:);scanf(%f,&temp.jj);printf( 请输入新记录的售价:);scanf(%f,&t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京联合大学c语言实训 商店商品管理信息系统 北京 联合 大学 语言 商店 商品 管理信息系统
链接地址:https://www.31ppt.com/p-2385157.html