C语言课程设计报告销售管理系统设计.doc

上传人:文库蛋蛋多 文档编号:2384853 上传时间:2023-02-17 格式:DOC 页数:35 大小:345.50KB
返回 下载 相关 举报
C语言课程设计报告销售管理系统设计.doc_第1页
第1页 / 共35页
C语言课程设计报告销售管理系统设计.doc_第2页
第2页 / 共35页
C语言课程设计报告销售管理系统设计.doc_第3页
第3页 / 共35页
C语言课程设计报告销售管理系统设计.doc_第4页
第4页 / 共35页
C语言课程设计报告销售管理系统设计.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《C语言课程设计报告销售管理系统设计.doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告销售管理系统设计.doc(35页珍藏版)》请在三一办公上搜索。

1、1设计内容1、程序设计(包括框图设计、源程序编辑、编译、调试)2、对问题有完整的分析过程,要求把分析设计过程写入报告3、编写设计报告本程序设计的主要内容:11销售管理系统该系统是一个销售管理系统,即对某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)进行合理管制。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品的当天的销售额每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。1)计算上个月每个人每种产品的销售额。2)按销售额对销售员

2、进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4)输出统计报表2设计目的与要求2.1设计目的1.进一步掌握运用C进行程序设计的能力;3.进一步理解和运用面向过程程序设计的思想和方法;3.初步掌握开发一个小型实用系统的基本方法;4.学会调试一个较长程序的基本方法;5.学会利用互联网查找相关的知识并学习;2.2要求含设计中用到的相关技术的解释或讲解介绍和正文两大部份。正文包括以下7个内容:1需求分析以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定:(1) 输入的形式和输入值的范围;(2) 输出的

3、形式;(3) 程序所能达到的功能;(4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。2概要设计说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。3详细设计实现概要设计中定义的所有类,对每个操作只需要写出伪码算法;可采用流程图等进行描述,画出函数和过程的调用关系图。4调试分析内容包括:a调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;b改进设想;c经验和体会等。5用户使用说明说明如何使用你编写的程序,详细列出每一步的操作步骤。6测试结果列出你的测试结果,包括输入和输出。这里的测试数据应该完整和严格,最好多于需求分

4、析中所列。7、课程设计总结。 8、源程序(主要函数代码,并附说明)。9参考文献列出参考的相关资料和书籍。 10加封面(采用统一格式)之后装订。3设计原理该软件系本人经过两周时间完成,其中每一步都有较为详细的提示.当用户进入这个程序时,系统会出现一个主菜单,有七个功能,进商品销售管理系统;输入商品信息;删除与更改信息;确认购买并输入购买信息;系统信息统计系统;保存所有信息写入文件,读取一份已存在的信息,退出系统。本程序是通过对文件的读写来实现的,主要运用了循环、数组结构,对数据的输入、修改、删除的连续进行,进入系统后,能够根据提示进行输入、修改、删除以及查询等功能。在输入信息的时候,可以根据提示

5、进行重复输入多个信息,修改、删除、查询也可以重复使用,这些就是运用的循环结构。在输入、修改、删除、查询信息、信息写入文件、读取信息、退出系统时该系统会用(1 退出系统 2 继续)提示你。注意:在使用过程中,查询商品时只能先输入商品的代号;输入的各项数据不能超过其本身设定的最大的位数。4详细设计4.1系统的总体流程图 开始编译运行有/错MAIN有无调用MENUK0EXITK=0 调用各个功能函数(K=?)连接执行错误 输入正确 图4.1 系统流程图4.2各功能函数流程图 图4.2 main( )函数流程图图4.3 insert() 函数流程图图4.4 renew() 函数流程图图4.5 seek

6、() 函数流程图4.6 save() 函数流程图图4.7 statistics() 函数流程图5运行结果与分析51程序运行 (1).第一次使用这个软件的时。图5.1系统对话框 (2).输入销售员销售信息图5.2“商品输入信息”窗口(3).进入系统输入销售员代号查询销售员的销售信息。图5.3查询窗口(4). 进入系统按“4”就可以更改销售员的销售信息。图5.4显示修改循环输入窗口 (5). 输入数据后按“4”就可以保存销售员的销售信息。图5.5保存数据窗口(6).当使用完销售管理系统按“0”就可以退出系统。图5.6退出销售管理系统52程序分析1.程序要写正确,不然不能读出。2.信息代码也要输入正

7、确,按照程序要求输入,不然正确输出信息。3.循环与否点击您是否继续进行信息录入(y/n)即可。6总结 这次课程设计虽然只有短短的两周时间,但此过程中我得到的收获却没有时间的界限。在这期间,我有刚开始对于设计的茫然,也有设计过程中面对不熟悉的知识的焦急,更有面对程序运行出错时的惆怅,同时还有当自己把设计的思路一点点想清楚,把程序代码上出现的错误一个个改正确,把程序成功运行出来的那份难以表述的喜悦!成功的背后有过一丝丝彷徨,但拨开乌云的天空通常看到的是美丽的彩虹! 对于我精神上的收获确实不少,学习上也受益匪浅。 通过这次“销售管理系统”课题的设计,通过这个阶段的实践,使我对C语言进行了深入的学习。

8、同时设计的过程中,为了实现预期的功能,我利用了图书馆内相关的资料进行参考,也使我懂得一些初次学习过程中不太熟悉的知识。在实践中,我利用图书馆和网络,查找了相关的信息。也明确在以后的学习过程中,我应该多利用这些有效的途径来充实自己的知识点,学习得更深入,“善假于物”也是一种有效的学习方法。在程序调试的过程中,遇到了好几个自己没能及时解决的问题,我选择的是请教老师和同学,在你们的指导下,我成功调试出程序。学习的过程除了需要自己要独立思考问题之外,还应该要有与他人的互动。我想这也就是集体的智慧,团结的力量!在此过程中,我也发现了许多自己的不足。在我刚开始设计的时候,头脑里没有一点清晰的思路,这就与平

9、时自己看得少,练得少有关系。所以我觉得学习任何一门语言还是需要多看书,多编写程序,特别是当自己突然有一丝灵感的时候,最好记录下来,甚至把它想出来,想明白。实践的过程中,要明确自己写这些程序是为了达到什么目的,实践后,要考虑这样编写是不是最好的,还能不能做其它方法来做,在编写这个程序中遇到了什么样的错误,为什么会遇到,以后应该怎样避免。这样的学习,就会更深入,学习得更好!致谢在此我要向对我们的实践进行指导的熊茜老师,还有在程序调试过程中请教的同学进行感谢,感谢你们给我们提供的帮助,使我的设计得以成功的实现各项功能。再次向您们致以最真诚的感谢!参考文献1谭浩强等.C语言程序设计教程.北京:高等教育

10、出版社,19972谭浩强.C程序设计.第2版.北京:清华大学出版社,19993郭浩志.C语言程序设计.北京.北京邮电大学出版社,20054C陷阱与缺陷.北京:人民邮电出版社,20085谭浩强、张基温. C语言程序设计教程.北京:高等教育出版社,20066C程序设计经典教程.北京:清华大学出版社,2006程序清单#include#include#include#include#define null 0struct sellerint num;char sex;char name8;int apple;int grape;int banana;int pear;int watermellon;i

11、nt sum;sell4;struct fruiteint num;int p_num10;int f_num;int sum;f5;int n;char f_name10;void insert();void renew();void seek();void change();void statistics();void save();void ask1();void ask2();void load();void menu()printf(n*欢迎进入销售管理系统*nn);printf( t ttt1:数据插入nn);printf( t ttt2:数据更新nn);printf( t ttt

12、3:数据查询nn);printf( t ttt4:数据更改nn);printf( tttt5:数据统计nn);printf( tttt6:数据保存nn);printf( tttt7:退出系统nn);printf(*);printf(n版权所有自普本07,马哥n);printf(n请输入你要执行的任务:);void main()char t;int i=0,k=0; system(color 2e);menu();for(i=1;i5;i+)selli.num=i;sell0.sex=M;strcpy(sell0.name,刘德华);sell1.sex=F;strcpy(sell1.name,张

13、学友);sell2.sex=F;strcpy(sell2.name,郭富城);sell3.sex=M; /初始化strcpy(sell3.name,黎明);f0.num=001;f1.num=002;f2.num=003;f3.num=004;f4.num=005;for(i=0;i4;i+)selli.apple=0;selli.grape=0;selli.banana=0;selli.pear=0;selli.watermellon=0;selli.sum=0; for(i=0;i5;i+) fi.f_num=0; fi.sum=0; while(t!=7) scanf(%c,&t);sw

14、itch(t)case1:insert();break; case2:renew();ask2();break; case3:seek();break; case4:change();break; case5:statistics();ask1();break; case6:save();break; case7:exit(0); default:printf(请输入任务范围内的数:);t=getchar();getch();void insert()int i=0,j=0,k=0,l=0;putchar(n);printf(你是要手动插入还是从文件读入nn 1 手动 2 读入nn您选择:);

15、scanf(%d,&i);if(i=1)printf(请输入你要插入的天数:);scanf(%d,&n);printf(第1号的销售额n); for(j=0;j4;j+) for(l=0;l5;l+)fl.f_num=0; for(k=0;k5;k+) printf(请输入00%d号水果的一星期销售额:n,k+1);for(i=0;in;i+) /数据输入scanf(%d,&fk.p_numi);fk.f_num=fk.p_numi+fk.f_num; sellj.apple=f0.f_num; sellj.grape=f1.f_num; sellj.banana=f2.f_num; sell

16、j.pear=f3.f_num; sellj.watermellon=f4.f_num; printf(第%d号的销售额,j+2); printf(bbbbbbbbbbbbb输入完毕,任意键确定 ); getch(); system(color 2e); system(cls); menu(); putchar(n);if(i=2)load();void renew() /数据更新 int t;int i=0,j=0,k=0; printf(您是否为第一次更新? 1 是 2 否n);scanf(%d,&t);if(t=2)for(i=0;i5;i+)fi.sum=0; for(j=0;j4;j

17、+) f0.sum=sellj.apple+f0.sum; for(j=0;j4;j+) f1.sum=sellj.grape+f1.sum; for(j=0;j4;j+) f2.sum=sellj.banana+f2.sum; for(j=0;j4;j+) f3.sum=sellj.pear+f3.sum;for(j=0;j4;j+) f4.sum=sellj.watermellon+f4.sum; for(i=0;i4;i+) selli.sum=selli.apple+selli.grape+selli.banana+selli.pear+selli.watermellon;void s

18、eek() /数据查询int t,s,c,e,d;system(cls);printf(nn*欢迎进行信息查询*nn);doprintf(您要查询的是单个产品还是销售额排序nn* 1 单个产品 * 2 整体排序n);scanf(%d,&t);if(t=1)printf(nn*您是要对下面哪个进行查询*:nn* 1 销售员n* 2 产品 n 您选择:);scanf(%d,&t); if(t=1) doprintf(n*请输入该销售员的编号* n 您选择: );scanf(%d,&s); switch(s) case 1:printf(nt%s 销售总额为%dn,sell0.name,sell0.

19、sum);break;case 2:printf(nt%s 销售总额为%dn,sell1.name,sell1.sum);break;case 3:printf(nt%s 销售总额为%dn,sell2.name,sell2.sum);break;case 4:printf(nt%s 销售总额为%dn,sell3.name,sell3.sum);break;default:printf(请输入正确的编号n); printf(nn数字1返回上一层,任意键继续查询销售员信息.n); scanf(%d,&c); if(c=1) s=0; while(s!=0); if(t=2)doprintf(n*请

20、输入你要查询的产品代号*:);printf(n* apple 1n);printf(* grape 2n);printf(* banana 3n);printf(* pear 4n);printf(* watermellon 5n);scanf(%d,&s);switch(s)case 1:printf(apple销售总额为%dn,f0.sum);break;case 2:printf(grape销售总额为%dn,f1.sum);break;case 3:printf(banana销售总额为%dn,f2.sum);break;case 4:printf( pear销售总额为%dn,f3.sum

21、);break;case 5:printf(watermellon销售总额为%dn,f4.sum);break;default:printf(请输入正确的编号n);printf(nn*欢迎回到信息查询主页*nn);printf(n返回上一层输入1 继续查询任意键.nn); scanf(%d,&c);if(c=1) s=0;while(s!=0);if(t=2)doprintf(*请输入您要查询的对象*n);printf(* 对销售员排序查询请输入 1n* 对产品排序查询输入 2n); scanf(%d,&e); if(e=1)printf(编号为 %-10d%-10d%-10d%-10dn,s

22、ell0.num,sell1.num,sell2.num,sell3.num);printf(名字为 %-10s%-10s%-10s% -10sn,sell0.name,sell1.name,sell2.name,sell3.name);printf( %-10d%-10d%-10d%-10dnnn,sell0.sum,sell1.sum,sell2.sum,sell3.sum);if(e=2)printf(编号为 00%-10d 00%-10d 00%-10d 00%-10d 00%-10dn,f0.num,f1.num,f2.num,f3.num,f4.num); printf( %-10

23、d %-10d %-10d %-10d %-10dnn,f0.sum,f1.sum,f2.sum,f3.sum,f4.sum);printf(返回上一层请输入1 任意键继续n);scanf(%d,&d);while(d!=1); printf(返回上一层请输入1 任意键继续n);scanf(%d,&d);while(d!=1);system(cls);menu();putchar(n);void change() /数据更改int s,c;char t; do printf(请输入你要更改的销售员编号及产品编号n);printf(*销售员编号:n);scanf(%d,&s); t=getcha

24、r(); printf(*产品编号:n);printf(* apple 1n);printf(* grape 2n);printf(* banana 3n);printf(* pear 4n);printf(* watermellon 5n); scanf(%c,&t);switch(s) /搜索数据 case 1: switch(t) case 1:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell0.name,sell0.apple); scanf(%d,&sell0.apple);break; case 2:printf(你要更改的人为 %s,原始数据为%dt更改为:

25、,sell0.name,sell0.grape); scanf(%d,&sell0.grape);break; case 3:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell0.name,sell0.banana); scanf(%d,&sell0.banana);break; case 4:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell0.name,sell0.pear); scanf(%d,&sell0.pear);break;case 5:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell0.name,sell0.wate

26、rmellon); scanf(%d,&sell0.watermellon);break; default:printf(请输入正确的产品编号n) ;break; case 2: switch(t) case 1:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell1.name,sell1.apple); scanf(%d,&sell0.apple);break; case 2:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell1.name,sell1.grape); scanf(%d,&sell0.grape);break; case 3:printf(

27、你要更改的人为 %s,原始数据为%dt更改为:,sell1.name,sell1.banana); scanf(%d,&sell0.banana);break; case 4:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell1.name,sell1.pear); scanf(%d,&sell0.pear);break; case 5:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell1.name,sell1.watermellon); scanf(%d,&sell0.watermellon);break; default:printf(请输入正确的产品

28、编号g) ;break; case 3: switch(t) case 1:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell2.name,sell2.apple); scanf(%d,&sell0.apple);break; case 2:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell2.name,sell2.grape); scanf(%d,&sell0.grape);break; case 3:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell2.name,sell2.banana); scanf(%d,&sell0.ban

29、ana);break; case 4:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell2.name,sell2.pear); scanf(%d,&sell0.pear);break; case 5:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell2.name,sell2.watermellon); scanf(%d,&sell0.watermellon);break; default:printf(请输入正确的产品编号) ;break; case 4: switch(t) case 1:printf(你要更改的人为 %s,原始数据为%dt更改为:,s

30、ell3.name,sell3.apple); scanf(%d,&sell0.apple);break; case 2:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell3.name,sell3.grape); scanf(%d,&sell0.grape);break; case 3:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell3.name,sell3.banana); scanf(%d,&sell0.banana);break; case 4:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell3.name,sell3.pea

31、r); scanf(%d,&sell0.pear);break; case 5:printf(你要更改的人为 %s,原始数据为%dt更改为:,sell3.name,sell3.watermellon); scanf(%d,&sell0.watermellon);break; default:printf(请输入正确的产品编号) ;break; case 5:exit(0); default :printf(请输入正确的销售员编号n); printf(数据的更改已改变整体数据,是否立即进行更新及统计:nn1:是 2:稍后: );scanf(%d,&c);if(c=1)renew();statis

32、tics();printf(nn数据已更新并统计nn);elseprintf(数据未更新n); printf(返回上一层输入1 继续输入输入任意整数n); scanf(%d,&c); if(c=1) s=0; while(s!=0); system(cls); menu(); putchar(n);void save()FILE *in;int i;printf(n由于系统只能从 mage.txt 中读取数据,您自己创建的文件可能无法读取,是否继续n);printf(n 1 继续操作 2 采用系统文件n您选择:);scanf(%d,&i);if(i=1)printf(请输入你所要保存的文件名n

33、);scanf(%s,f_name);printf(您已创建一文件,并且存盘.);else strcpy(f_name,mage.txt);printf(您已将数据存到系统开辟的文件 mage.txt 中,请查看n);if(in=fopen(f_name,w)=null)printf(不能打开文件);exit(0); fprintf(in, 性别 名字 产品代号 销售之和n); fprintf(in,销售员代号 1 2 3 4 5n); /保存至文件for(i=0;i4;i+)fprintf(in,%-10d%-10c%-10s%-10d%-10d%-10d%-10d%-10dn,selli.

34、num+1,selli.sex,selli.name,selli.apple,selli.grape,selli.banana,selli.pear,selli.watermellon);fprintf(in,%-10d%-10d%-10d%-10d%-10d,f0.sum,f1.sum,f2.sum,f3.sum,f4.sum);fclose(in);putchar(n);printf(n输入任意键确定n);getch();menu();putchar(n);void statistics() /统计 排序int i,j,temp;for(i=0;i4;i+) for(j=0;j3-j;j+

35、) if(sellj.sumsellj+1.sum) temp=sellj+1.sum; sellj+1.sum=sellj.sum; sellj.sum=temp; for(i=0;i5;i+) for(j=0;j4-j;j+) if(fj.sumfj+1.sum) temp=fj+1.sum; fj+1.sum=fj.sum; fj.sum=temp; void ask1() int c; printf(n统计完毕.任意键确定n); getch(); system(cls); menu(); putchar(n); void ask2() int c; printf(nn数据已更新.nn任意键确定n);getch();system(color 2e);system(cls);menu();putchar(n); void load() FILE *fp; int i; if(fp=fopen(mage.txt,rb)=0) printf(cannot open the file pe

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号