C语言程序设计_销售管理系统方案.pdf
word 完美格式销销售信息管理系售信息管理系统设计统设计档档组号:第组成员:汪品齐瑞智 欧阳鑫 赵飞锋 章森录录题题与要求与要求功能功能实现设计实现设计(模(模块块化化设计设计)精心整理学习帮手word 完美格式三三 运行运行结结果(附果(附带带抓抓图图)四四 源程序源程序报报告正告正1、题题与要求与要求:2、某公司有四个 销售员(编号:1-4), 负责销 售五种 产品(编号:1-5)。每个销售员汇总当天出售的每种产品的销售情况。2 每天销售情况包括(销售员的代号、产品的代号、这种产品当天的销售额)精心整理学习帮手word 完美格式1、 编写个销售信息管理系统,读取上个的销售情况1、 计算上个没每种产品的销售额2、 按销售额对销售员进行排序,输出排序结果(销售员代号)3、 统计每种产品的总销售额,对这些产品从到低的顺序输出结果(须输出产品的代号和销售额)4、 输出统计报表2 2、需求分析、需求分析本程序将到件系统 E:/54321.doc 件内容作为数据源,其中单行内容代表张纸条。程序运行后先将件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供件输的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供个数组于保存分类信息;在程序中要进行统计作,所以要提供显、排序等操作;另外应提供键盘式选择菜单实现功能选择。3 3、功能、功能实现设计实现设计3.13.1 总总体体设计设计根据上的分析,可以将这个系统分为如下五模块:查看每每种产品的销售额 、按销售额对销售员排序、对每种产品总销售额从到低排序、输出统计报表和退出。其中主要模块是前四个模块。3.23.2 流程流程图图开始精心整理学习帮手推出系统word 完美格式3.33.3 详细设计详细设计: :3.3.13.3.1【头件和预定义】#include#include#include#include#defineM3.3.23.3.2【功能函数声明】vvoiddetail();voidforeach();voidmenu();voidproduct();voidreaddata();voidseller();voidtotal();voidchoice();退出系统选择每个人每种产品销售额销售员销售业绩排序读取便条上的信息主菜单统 计总 销 售 额并排序输出统计表返回主菜单精心整理学习帮手word 完美格式3.3.33.3.3【数据结构】原始数据有销售员代号、产品代号和销售额,所以定义个全局结构体数组scrip于保存原始数据。然后定义全局变量n保存纸条数,定义数组s于保存分类后的信息。structssintsid;/销售员代号intpid;/产品代号intsn;/销售额ssM;intn;/纸条数int s45=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; /于保存员和产品信息3.3.43.3.4【主函数】显程序设计者相关信息和调件读取函数、数据初始化函数和主菜单函数voidmain()/函数,即主函数readdata();/读取件数据foreach();/根据件初始数据初始化便于操作的数组menu();/显主菜单3.3.4-13.3.4-1【件读取函数】readdata()精心整理学习帮手word 完美格式读出便条中的内容,并保存到件结构体中voidreaddata()/从件读取数据3.3.4-2 【件读取函数】foreach()将保存到结构体中的信息按产品分类,再根据销售员进行分类,将信息存到数组当中。voidforeach()/从纸条读取数据并分类整理FILE*fp;/定义件指针if(fp=fopen(list.txt,r)=NULL)elsefor(n=0;!feof(fp);n+)fscanf(fp,%d%d%dn ,&ssn.sid,&ssn.pid,&ssn.sn);printf(Cantopenthefile!n);exit(0);/保存件数据到结构体fclose(fp);精心整理学习帮手word 完美格式inti;for(i=0;in;i+)/遍历所有纸条switch(ssi.pid)/按产品分类(例如就是 case1-5),根据类分销售员类,累加各各产品销售数量case1:switch(ssi.sid)case1:s00+=ssi.sn;break;case2:s10+=ssi.sn;break;case3:s20+=ssi.sn;break;case4:s30+=ssi.sn;break;break;case2:switch(ssi.sid)case1:s01+=ssi.sn;break;case2:s11+=ssi.sn;break;精心整理学习帮手word 完美格式case3:s21+=ssi.sn;break;case4:s31+=ssi.sn;break;break;case3:switch(ssi.sid)case1:s02+=ssi.sn;break;case2:s12+=ssi.sn;break;case3:s22+=ssi.sn;break;case4:s32+=ssi.sn;break;break;case4:switch(ssi.sid)case1:s03+=ssi.sn;break;case2:s13+=ssi.sn;break;case3:s23+=ssi.sn;break;case4:s33+=ssi.sn;break;break;精心整理学习帮手word 完美格式case5:switch(ssi.sid)case1:s04+=ssi.sn;break;case2:s14+=ssi.sn;break;case3:s24+=ssi.sn;break;case4:s34+=ssi.sn;break;break;3.3.4-3 【主菜单函数】menu()显系统功能菜单以供户选择相关功能使,根据户选择分别可调detail():计算上个每个每种产品的销售额seller():按销售额对销售员进行排序,输出排序结果(销售员代号)product():统计每种产品的总销售额,对这些产品按从到低的顺序输出排序结果(需输出产品代号和销售额)exit(0):退出系统voidmenu()intw,c;do精心整理学习帮手word 完美格式puts(tt*菜单*nn);puts(tt1. 查看每每种产品的销售额n);puts(tt2. 按销售额对销售员排序(销售员代号)n);puts(tt 3.对每种产品总销售额从到低排序(产品代号和 销售额)n);puts(tt4. 输出统计报表n);puts(tt5. 退出n);puts(nntt*n);printf(请选择(1-5):bb);scanf(%d,&c);if(c5)/错误输则重新获取输w=1elsew=0;switch(c)/根据输实现相应函数调case1:while(w=1);精心整理学习帮手word 完美格式detail();break;/每个销售员每种产品的销售额统计case2:seller();break;case3:product();break;case4:total();break;case5:exit(0);3.3.5 【功能函数】5-1【每每种产品销售额统计函数】detail()计算上个每个每种产品的销售额voiddetail()/显销售情况inti,j;for(i=0;i4;i+)/遍历销售员printf(ntt%d 号销售员销售情况:n,i+1);精心整理学习帮手word 完美格式for(j=0;j5;j+)/按销售员分类遍历所有产品并显信息printf(tt%d 号产品销售数量:%dn,j+1,sij);choice();3.3.5-1 【销售员销售业绩排序函数】seller()按销售额对销售员进行排序,输出排序结果(销售员代号)voidseller()inti,j,k;intsp4=0,0,0,0;for(i=0;i4;i+)for(j=0;j5;j+)spi+=sij;/计算每单个销售员所有产品销售数量for(i=0;i4;i+)/较四次,每次选出最数k=0;/于标记单轮最数for(j=0;j4;j+)if(spkspj)k=j;/获取最数标号printf(tt第%d名是%d号销售精心整理学习帮手word 完美格式员!n,i+1,k+1);spk=-1;3.3.5-2 【总销售额统计函数】voidproduct()统计每种产品的总销售额,对这些产品按从到低的顺序输出排序voidproduct()/与 seller()原理样,于对产品进行统计inti,j,k;intp5=0,0,0,0,0;for(j=0;j5;j+)for(i=0;i4;i+)pj+=sij;/输出最数和排名,将最数标记为负choice();for(j=0;j5;j+)k=0;for(i=0;i5;i+)if(pk返回菜单t2退出系统bb);printf(nt 销售员t 产品t 销量n);for(i=0;i4;i+)for(j=0;j5;j+)printf(t%dt%dt%dn,i+1,j+1,sij);choice();精心整理学习帮手word 完美格式scanf(%d,&c);if(c=1)menu();elseexit(0);puts(n);4 4、运行、运行结结果(附果(附带带抓抓图图)List.txtList.txt(便条)件中数据如下:(便条)件中数据如下:( (提前建立件或就提前建立件或就将便条保存在件中!将便条保存在件中!) )111122133148159213223234245256311精心整理学习帮手word 完美格式321(这这是个例)是个例)334345356412423434445456运行运行结结果果显显主菜主菜单单:查查看每每种看每每种产产品的品的销销售售额额运行运行结结果:果:精心整理学习帮手word 完美格式精心整理学习帮手word 完美格式按按销销售售额对销额对销售售员员按按顺顺序排序(序排序(销销售售员员代号)运行代号)运行结结果果对对每种每种产产品品销销售售额额从到低排序运行从到低排序运行结结果:果:精心整理学习帮手word 完美格式统计报统计报表运行表运行结结果:果:6 6、源程序、源程序#include#include#include/*调exit 函数*/#include#defineM155/*宏定义*/voiddetail();voidforeach();voidmenu();voidproduct();voidreaddata();voidseller();voidtotal();voidchoice();structss精心整理学习帮手word 完美格式intsid;/销售员代号intpid;/产品代号intsn;/销售额ssM;intn;/纸条数int s45=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; /于保存员和产品信息voidmain()/函数,即主函数preaddata();/读取件数据foreach();/根据件初始数据初始化便于操作的数组menu();/显主菜单voidreaddata()/从件读取数据FILE*fp;if(fp=fopen(list.txt,r)=NULL)printf(Cantopenthefile!n);exit(0);精心整理学习帮手word 完美格式elsefor(n=0;!feof(fp);n+)fscanf(fp,%d%d%dn ,&ssn.sid,&ssn.pid,&ssn.sn);/ 保存件数据到结构体fclose(fp);voidforeach()/从纸条读取数据并分类整理inti;for(i=0;in;i+)/遍历所有纸条switch(ssi.pid)/按产品分类,根据类分销售员类,累加个各产品销售数量case1:switch(ssi.sid)case1:s00+=ssi.sn;break;case2:s10+=ssi.sn;break;精心整理学习帮手word 完美格式case3:s20+=ssi.sn;break;case4:s30+=ssi.sn;break;break;case2:switch(ssi.sid)case1:s01+=ssi.sn;break;case2:s11+=ssi.sn;break;case3:s21+=ssi.sn;break;case4:s31+=ssi.sn;break;break;case3:switch(ssi.sid)case1:s02+=ssi.sn;break;case2:s12+=ssi.sn;break;case3:s22+=ssi.sn;break;case4:s32+=ssi.sn;break;break;精心整理学习帮手word 完美格式case4:switch(ssi.sid)case1:s03+=ssi.sn;break;case2:s13+=ssi.sn;break;case3:s23+=ssi.sn;break;case4:s33+=ssi.sn;break;break;case5:switch(ssi.sid)case1:s04+=ssi.sn;break;case2:s14+=ssi.sn;break;case3:s24+=ssi.sn;break;case4:s34+=ssi.sn;break;break;voidmenu()精心整理学习帮手word 完美格式intw,c;do菜单puts(tt*nn);puts(tt1. 查看每每种产品的销售额n);puts(tt2. 按销售额对销售员排序(销售员代号)n);puts(tt3. 对每种产品总销售额从到低排序(产品代号和销售额)n);puts(tt4. 输出统计报表n);puts(tt5. 退出n);puts(nntt*n);printf(请选择(1-5):bb);scanf(%d,&c);if(c5)/错误输则重新获取输w=1;getchar();elsew=0;while(w=1);精心整理学习帮手word 完美格式switch(c)/根据输实现相应函数调case1:detail();break;/每个销售员每种产品的销售额统计case2:seller();break;case3:product();break;case4:total();break;case5:exit(0);voiddetail()/显销售情况inti,j;for(i=0;i4;i+)/遍历销售员printf(ntt%d 号销售员销售情况:n,i+1);for(j=0;j5;j+)精心整理学习帮手word 完美格式/按销售员分类遍历所有产品并显信息printf(tt%d 号产品销售数量:%dn,j+1,sij);choice();voidseller()inti,j,k;intsp4=0,0,0,0;for(i=0;i4;i+)for(j=0;j5;j+)spi+=sij;/计算每单个销售员所有产品销售数量for(i=0;i4;i+)/较四次,每次选出最数k=0;/于标记单轮最数for(j=0;j4;j+)if(spkspj)k=j;/获取最数标号printf(tt 第%d 名是%d 号销售员!n,i+1,k+1);spk=-1;/输出最数和排名,将最数标记为负choice();精心整理学习帮手word 完美格式voidproduct()/与 seller()原理样,于对产品进行统计inti,j,k;intp5=0,0,0,0,0;for(j=0;j5;j+)for(i=0;i4;i+)pj+=sij;for(j=0;j5;j+)k=0;for(i=0;i5;i+)if(pkpi)k=i;printf(tt第%d名是%d为%d!n,j+1,k+1,pk);pk=-1;choice();voidtotal()/输出报表inti,j;printf(nt 销售员t 产品t 销量n);for(i=0;i4;i+)for(j=0;j返回菜单t2退出系统bb);scanf(%d,&c);if(c=1)menu();elseexit(0);puts(n);欢迎您的光临,Word 档下载后可修改编辑 双击可删除页眉页脚 谢谢!希望您提出您宝贵的意见,你的意见是我进步的动力。赠语;、如果我们做与不做都会有笑,如果做不好与做得好还会有笑,那么笑吧!现在你不玩命的学,以后命玩你。 、我不知道年少轻狂,我只知道胜者为王精心整理;应学会做“金钱、权利”的主、什么时候离光明最近?那就是你觉得黑暗太黑的时候、最值得欣赏的风景,是奋的迹7压力不是有你努力,是那些你倍的依然你努力学习帮手我们索性就做得更好,来给、不要做金钱、权利的奴