《C语言课程设计销售管理系统教学文案.doc》由会员分享,可在线阅读,更多相关《C语言课程设计销售管理系统教学文案.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。C语言课程设计销售管理系统-C语言课程设计题目商品销售系统指导教师曹东燕学生姓名刘伟张新星马国文学号200900804072200901802005200900804051专业电子电子电科教学单位物理系(盖章)-目录1设计内容与设计要求11.1系统功能简介11.2系统运行环境12功能划分,模块详细说明13程序流程图14运行的运行及说明24.1系统的运行24.2运行说明45总结5附件:源程序清单51设计内容与设计要求1.1系统功能简介n 系统有简单的菜单界面,用户可以通过输入简单的选项来完成相应的工作。n
2、 选定一种产品,按销售额的顺序对销售员进行排序,输出排序结果。n 统计每种产品的总销售额,输出排序结果。n 输出统计报表。1.2系统运行环境Vc+6.0下运行,硬件基本无要求,现在的计算机系统基本都可以运行该系统。2功能划分,模块详细说明系统的功能是通过子函数调用的方式来完成的,下面对程序中用到的函数及其功能做一下说明。l voidmenu():显示主菜单界面。l voiddata_count(data*x):以写方式打开文件,对商品信息清零,读入职工编号、产品编号、销售量等信息,对相同职工的相同产品的销售量求和后写入文件。l voidrange_sxy(data*x):以读方式打开文件,读入
3、信息,输入按何种产品排序后对存储职工编号的数组进行排序,最后输出新序的职工编号信息。l voidrange_shangpin(data*x):从文件读入信息,对每项产品的销售量求和,按每项产品的总销售量排序。l voiddata_out(data*x):打开文件,读入信息,求所有产品的销售量的和,输出统计表。l voidmain():主函数,调用以上函数,完成相应功能。3程序流程图程序整体流程图如图3-1所示:计算产品销售额按销售额对销售员排序统计每种产品的总销售额,排序输出统计报表退出结束菜单开始图3-1整体流程图4系统的运行及说明4.1系统的运行系统初始运行时,会显示如图4-1所示的菜单界
4、面,用户可以根据提示,进行相应的选择,来完成系统提供的各种功能。图4-1输入界面当选择1时,系统调用函数voiddata_count(data*x),完成相应的功能。运行界面如图4-2所示,系统会要求用户输入月份,然后要求输入这个月份中是哪个职工销售的哪项产品的数量的具体信息,我们的系统假设有四个职工,职工编号从1至4,一共有5项产品,产品编号从1至5。职工和产品的数目都可以更改,只要修改一下程序中的宏定义语句即可。图4-2计算产品销售额界面当选择2时,系统调用voidrange_sxy(data*x),完成相应部分的功能。运行界面如图4-3所示,系统会要求用户输入月份,然后排序的产品编号,最
5、后给出此项产品的按照销售量的大小进行的销售员的编号的排序情况。图4-3按销售额对销售员排序的界面当选择3时,系统调用voidrange_shangpin(data*x),完成对每项商品的总销售量排序的功能,运行界面如图4-4所示:图4-4产品总销售额排序界面当选择4时,系统调用voiddata_out(data*x),完成输出统计表的功能,统计内容如图4-5所示:图4-5统计报表界面4.2运行说明首次打开系统必须输入一部分员工信息,如果没有员工信息文件,除了输入功能以外,其它的功能将自动禁止,按任意键退出程序。输入时,按照提示陆续输入每个员工的单个信息,输入完毕,选择“0”,程序将自动回到菜单
6、选择界面。其它的功能模块都在执行程序时有相应的提示,非常容易操作。5总结通过这次实习,让我们初步有了编写系统的能力,我们对很多的函数有了新的认识,也学会了运用多种函数,也明白了编写软件的基本过程,和基本方法。编写软件的过程中我们又学到了曾经自己不知道的函数或是自己不会的函数的用法。这次课程设计课总的来说让我受益匪浅。在软件的设计过程中遇到了很多的困难。在软件一次一次的调试失败下,曾经想过要放弃。我最后还是让自己坚持了下来,毫不畏惧困难,在同学的帮助与讲解下我总算是顺利的完成了软件的设计。在程序的编写过程中我们发现有很多的知识漏洞和缺陷,需要进一步努力学习来完善自己。在这几天的编写过程中我们对c
7、语言有了更进一步的认识和了解。此次编程过程的经验和知识肯定能促进我以后的学习。此次课程设计不仅给了我们很多很好的经验,也让我们体会到了失败时的焦急和难受,也体会到了成功时的兴奋与喜悦。附件:源程序清单#include#include#include#include#defineZ5#defineR4/*定义宏常量便于程序的一般化*/*R表示销售员个数*/typedefstruct/*缩短结构体变量名*/intshangpinZ;/*定义结构体便于信息的存储和读写,辨别*/*z是表示商品的种类,最后一个为该销售员商品总和*/data;voidmenu()printf(*n);printf(0.结
8、束操作n);printf(1.计算上个月每个人每种产品的销售额n);printf(2.按销售额对销售员进行排序,输出排序结果n);printf(3.统计每种产品的总销售额,输出排序结果n);printf(4.输出统计报表n);printf(*n);voiddata_count(data*x)/*计算上个月每个人每种产品的销售额*/FILE*fp;charfname10;intj,t;/*用于控制循环*/inti,k,s;/*用于定义职工序号,产品序号,产品数量*/system(cls);printf(您想计算哪个月?n);printf(请输入月份:);/*输入文件名,这样可以进行各个月份信息写
9、入*/scanf(%s,fname);strcat(fname,.txt);if(fp=fopen(fname,wb)=NULL)/*打开文件*/printf(cannotopenthefilen);exit(0);for(j=0;jR;j+)/*对商品数量清零*/for(t=0;tshangpint=0;printf(pleaseputtheinformationaboutthe职工编号,产品编号,销售数量n);/*写入信息*/for(j=0;j+)scanf(%d%d%d,&i,&k,&s);if(i=0)/*输入职工为0时结束信息输入*/break;if(iR|iZ|kshangpink
10、-1=(x+i-1)-shangpink-1+s;/*统计各个人的各种产品的数量,-1为了和数组中的序号相匹配*/for(j=0;jR;j+)if(fwrite(x+j),sizeof(data),1,fp)!=1)/*把信息写入文件中便有以后调用*/printf(writeerror!n);fclose(fp);/*关闭文件避免信息遗漏*/voidrange_sxy(data*x)/*按销售额对销售员进行排序,输出排序结果*/FILE*fp;charfname10;inti,k,j,t,bianhaoR=0,z;system(cls);printf(你要哪个月的?n);printf(请输入月
11、份:);/*输入文件名,这样可以进行各个月份信息读入*/scanf(%s,fname);strcat(fname,.txt);if(fp=fopen(fname,rb)=NULL)/*打开文件*/printf(cannotopenthefilen);exit(0);for(i=0;iR;i+)/*读出信息*/if(fread(x+i,sizeof(data),1,fp)!=1)printf(读入信息出错!);/*读入信息提示*/for(i=0;iR;)/*用于存储职工编号*/bianhaoi=i+;printf(请输入按何种产品排序n);scanf(%d,&k);k=k-1;/*便于与结构体中
12、的数组值对应*/for(i=0;iR;i+)/*按K种产品对销售员排序,选择法排序*/t=i;for(j=i+1;jshangpinkshangpink)/*调用职工各自对应的结构体内的产品数量*/t=j;if(t!=i)z=bianhaoi;bianhaoi=bianhaot;bianhaot=z;printf(按%d产品对销售员排序为:n,k+1);for(i=0;iR;i+)printf(%5d,bianhaoi+1);getch();fclose(fp);voidrange_shangpin(data*x)/*统计每种产品的总销售额,输出排序结果*/FILE*fp;charfname1
13、0;inti,j,sumZ=0,bianhaoZ=0,z,t,k;system(cls);printf(您想计算哪个月的?n);printf(请输入月份:);/*输入文件名,这样可以进行各个月份信息读入*/scanf(%s,fname);strcat(fname,.txt);if(fp=fopen(fname,rb)=NULL)/*打开文件*/printf(cannotopenthefilen);exit(0);for(i=0;iR;i+)/*读出信息*/if(fread(x+i,sizeof(data),1,fp)!=1)printf(读入信息出错!);for(i=0;iZ;i+)/*对各种
14、商品求和*/for(j=0;jshangpini;for(i=0;iZ;)/*用于存储商品编号*/bianhaoi=i+;for(i=0;iZ;i+)printf(%3d,bianhaoi);for(i=0;iZ;i+)/*对产品从高到低排序,选择法排序*/t=i;for(j=i+1;jZ;j+)/*产品变化时,产品编号也随之变化,便于输出*/if(sumtsumj)t=j;if(t!=i)k=sumi;sumi=sumt;sumt=k;z=bianhaoi;bianhaoi=bianhaot;bianhaot=z;printf(输出产品排序n);printf(产品编号数量n);for(i=0
15、;iZ;i+)printf(%-10d%-10dn,bianhaoi+1,sumi);getch();fclose(fp);voiddata_out(data*x)/*输出统计报表*/FILE*fp;charfname10;inti,j,sumZ+1=0;system(cls);printf(您想计算哪个月?n);printf(请输入月份:);/*输入文件名,这样可以进行各个月份信息读入*/scanf(%s,fname);strcat(fname,.txt);if(fp=fopen(fname,rb)=NULL)/*打开文件*/printf(cannotopenthefilen);exit(0
16、);for(i=0;iR;i+)/*读出信息*/if(fread(x+i,sizeof(data),1,fp)!=1)printf(读入信息出错!);for(i=0;iZ;i+)/*对各种商品求和*/for(j=0;jshangpini;for(i=0;iZ;i+)/*求商品总和*/sumZ=sumZ+sumi;printf(输出统计报表如下:n);/*按要求输出统计表*/printf(产品代号销售之和销售员代号n);for(i=0;iR;i+)for(j=0;jshangpinj,i+1);printf(*n);for(i=0;iZ;i+)if(i=0)printf(%d产品之和%-10d总
17、和%-10dn,i+1,sumi,sumZ);elseprintf(%d产品之和%-10dn,i+1,sumi);getch();voidmain()inti,choice;datasxyR;/*R表示职工的个数,前面的宏常量*/for(i=0;i+)system(cls);/*清频命令*/menu();/*菜单函数提示用户怎样选择*/printf(你想做什么?n);printf(请选择:);/*输入要进行的操作*/scanf(%d,&choice);if(choice=0)/*退出程序*/break;elseswitch(choice)case1:data_count(sxy);break;/*计算上个月每个人每种产品的销售额*/case2:range_sxy(sxy);break;/*按销售额对销售员进行排序,输出排序结果*/case3:range_shangpin(sxy);break;/*统计每种产品的总销售额,输出排序结果*/case4:data_out(sxy);break;/*输出统计报表*/
限制150内