


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、销售信息管理系统设计文档组号:第二组成员:汪品高齐瑞智欧阳鑫赵飞锋章森目录题目与要求功能实现设计(模块化设计)运行结果(附带抓图)源程序报告正文1、题目与要求:2、某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员汇总当天出售的每种产品的销售情况。2每天销售情况包括(销售员的代号、产品的代号、这种产品当天的销售额)1、编写一个销售信息管理系统,读取上个月的销售情况1、计算上个月没人每种产品的销售额2、按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品从高到低的顺序输出结果(须输出产品4、输出统计报表2、需求分析的代号和销售额
2、)本程序将用到文件系统E:/54321.doc文件内容作为数据源,其中单行内容代表一张纸条。程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由丁纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用丁保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。3、功能实现设计3.1总体设计根据上面的分析,可以将这个系统分为如下五大模块:查看每人每种产品的销售额按销售额对销售员排序、对每种产品总销售额从高到低排序、输出统计报表和退出。其中主要模块是前四个模块。3.2流程图3.3详细设计:#include
3、<stdio.h>#include<conio.h>#include<stdlib.h>上菜单#include<string.h>#defineMV3.3.2【功能函数声明】vvoiddetail();IIvoidforeach();voidmenu();每个人每销售员销售_计总销售_输出计表voidproduct。;voidreaddata();“TI4voidseller();voidtotal();voidchoice();退出系|返回主原始数据有销售员代号、产品代号和销售额,所以定义一个全局结构体数组scrip用丁保存原始数据。然后定义全
4、局变量n保存纸条数目,定义数组s用丁保存分类后的信息。structss(intsid;/销售员代号intpid;/产品代号intsn;/销售额ssM;intn;/纸条数目ints45=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;/用于保存员工和产品信息3.3.4【主函数】显示程序设计者相关信息和调用文件读取函数、数据初始化函数和主菜单函数voidmain()/入口函数,即主函数readdata();/读取文件数据foreach();/根据文件初始数据初始化便丁操作的数组menu();/显示主菜单1【文件读取函数】readdata()读出便条中的内容,并保存到
5、文件结构体中voidreaddata()/从文件读取数据FILE*fp;/定义文件指针if(fp=fopen("list.txt","r")=NULL)printf("Can'topenthefile!n");exit(0);elsefor(n=0;!feof(fp);n+)fscanf(fp,"%d%d%dn",&ssn.sid,&ssn.pid,&ssn.sn);/保在乂装|!到园於!作fclose(fp);2【文件读取函数】foreach()将保存到结构体中的信息按产品分类,再
6、根据销售员进行分类,将信息存到数组当中。voidforeach()/从纸条读取数据并分类整理(inti;for(i=0;i<n;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
7、;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;case4:switch(ssi.sid)(case1:s03+=ssi.sn;break;case2:s13+=ssi.sn;break;case3:s23+=ssi.sn;bre
8、ak;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;3【主菜单函数】menu()显示系统功能菜单以供用户选择相关功能使用,根据用户选择分别可调用detail():计算上个月每个人每种产品的销售额seller():按销售额对销售员进行排序,输出排序结果(销售员代号)product():统计每种产品的总销售额,对这些产品按从高到低的顺序输出
9、排序结果(需输出产品代号和销售额)exit(0):退出系统voidmenu()intw,c;puts("nntt*n");doputs("tt*菜单*nn");puts("tt1.查看每人每种产品的销售额n");puts("tt2.按销售额对销售员排序(销售员代号)n");puts("tt3.对每种产品总销售额从高到低排序(产品代号和销售额)n");puts("tt4.输出统计报表n");puts("tt5.退出n");*printf("请选择(
10、1-5):bb");scanf("%d",&c);if(c<1|c>5)/错误输入则重新获取输入(w=1elsew=0;while(w=1);switch(c)/根据输实现出网的数调用一(case1:detail();break;/每个销售员每种产品的销售额统计case2:seller();break;case3:product();break;case4:total();break;case5:exit(0);3.3.5【功能函数】5-1【每人每种产品销售额统计函数】detail()计算上个月每个人每种产品的销售额voiddetail()/显
11、示销售情况inti,j;for(i=0;i<4;i+)/遍历销售员printf("ntt%d号销售员销售情况:n",i+1);/按销售员分类遍历所有产品并显示信息printf("tt%d号产品销售数量:dn",j+1,sij);choice();1【销售员销售业绩排序函数】seller()按销售额对销售员进行排序,输出排序结果(销售员代号)voidseller()inti,j,k;intsp4=0,0,0,0;for(i=0;i<4;i+)for(j=0;j<5;j+)spi+=sij;/计算每单个销售员所有产品销售数量for(i=0;
12、i<4;i+)/比较四次,每次选出最大数(k=0;/用丁标记单轮最大数for(j=0;j<4;j+)if(spk<spj)k=j;/获取最大数标号printf("tt第£|是%d<销售员!n",i+1,k+1);spk=-1;/输出最大数和排名,将最大数标记为负3.3.4- choice();2【总销售额统计函数】voidproduct。统计每种产品的总销售额,对这些产品按从高到低的顺序输出排序voidproduct()/与seller()原理一样,用丁对产品进行统计inti,j,k;intp5=(0,0,0,0,0;for(j=0;j&l
13、t;5;j+)for(i=0;i<4;i+)for(j=0;j<5;j+)(k=0;for(i=0;i<5;i+)if(pk<pi)k=i;printf("tt第%d名是%d号产品!t销量为d!n",j+1,k+1,pk);pk=-1;choice();3【统计报表输出函数】total()统计每种产品的总销售额,对这些产品按从高到低的顺序输出排序结果(需输出产品代号和销售额)voidtotal()/输出报表(inti,j;printf("nt销售员t产品t销量n");for(i=0;i<4;i+)for(j=0;j<5
14、;j+)printf("t%dt%dt%dn",i+1,j+1,sij);choice();3.3.6【公共函数】【选择函数】choice()选择退出系统或则返回主菜单voidchoice()/用于输出信息功能选择(intc;printf("请选择接下来想做什么t1>返回菜单t2>退出系统bb");scanf("%d",&c);if(c=1)menu();elseexit(0);puts('n');4、运行结果(附带抓图)List.txt(便条)文件中数据如下:(提前建立文件或就将便条保存在文件中!
15、)112233485913233445256(这是个例子)344556122334445456运行结果显示主菜单:侦查看每人毒种产品的销售额一按销售额对销售员排序销售员代号.对毒神产品总销售额从高到低排序C产品代号和销售额).输出统计报表退出青选择1-5:C1查看每人每种产品的销售额运行结果:按销售额对销售员按顺序排序(销售员代号)运行结果对每种产品销售额从高到低排序运行结果:统计报表运行结果:6、源程序#include<stdio.h>#include<conio.h>#include<stdlib.h>/*调用exit函数*/#include<st
16、ring.h>#defineM155/*宏定义*/voiddetail();voidforeach();voidmenu();voidproduct();voidreaddata();voidseller();voidtotal();voidchoice();structss(intsid;/销售员代号intpid;/产品代号intsn;/销售额ssM;intn;/纸条数目用于保存员工ints45=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;/和广品信息voidmain()/入口函数,即主函数readdata();/读取文件数据foreach();/根
17、据文件初始数据初始化便于操作的数组menu();/显示主菜单voidreaddata()/从文件读取数据FILE*fp;if(fp=fopen("list.txt","r")=NULL)printf("Can'topenthefile!n");exit(0);elsefor(n=0;!feof(fp);n+)fscanf(fp,"%d%d%dn",&ssn.sid,&ssn.pid,&ssn.sn);/保存文件数据到结构体fclose(fp);voidforeach()/从纸条读取数
18、据并分类整理inti;for(i=0;i<n;i+)/遍历所有纸条switch(ssi.pid)/按产品分大类,根据大类分销售员小类,累加个人各产品销售数量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;case3:s21+=ssi.sn;break;case4:s
19、31+=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;case5:switch(ssi.sid)(case1:s
20、04+=ssi.sn;break;case2:s14+=ssi.sn;break;case3:s24+=ssi.sn;break;case4:s34+=ssi.sn;break;break;voidmenu()intw,c;doputs("tt*菜单*爪叩);puts("tt1.查看每人每种产品的销售额n");puts(-tt2.按销售额对销售员排序(销售员代号)n");puts(-tt3.对每种产品总销售额从高到低排序(产品代号和销售额)n");puts(-tt4.输出统计报表n");puts("tt5.退出n"
21、);puts("nntt*n");printf("请选择(1-5):bb");scanf("%d",&c);if(c<1|c>5)/错误输入则重新获取输入w=1;getchar();elsew=0;while(w=1);switch(c)/根据输入实现相应函数调用(case1:detail();break;/每个销售员每种产品的销售额统计case2:seller();break;case3:product();break;case4:total();break;case5:exit(0);voiddetail()/显示销售情况(inti,j;for(i=0;i<4;i+)/遍历销售员(printf("ntt%d号销售员销售情况:n",i+1);for(j=0;j<5;j+)/按销售员分类遍历所有产品并显示信息printf("tt%d号产品销售数量:%dn",j+1,sij);choice();voidseller()intsp4=0,0,0,0;for(i=0;i<4;i+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家政服务相关法律安全卫生常识2
- 公司低档白酒操作营销攻略( 20)
- 自动控制理论二教学大纲 (一)
- 施工现场综合管理考核评分细则
- 广东省佛山市2024-2025学年下学期七年级英语期末模拟测试卷(一)(无答案)
- 2025年湖南省长沙市九年级全真模拟英语试题(保温卷)(无答案)
- 2025年Android应届毕业生“过五关斩六将”怒刷千题让你面试一路畅通
- 2025年Android事件分发机制及设计思路面试建议-android事件分发机制面试
- 部编版三年级下册第二单元《陶罐和铁罐》教案
- 建筑施工特种作业-建筑起重机械安装拆卸工(塔式起重机)真题库-6
- 材料力学知到智慧树期末考试答案题库2025年辽宁工程技术大学
- 敦煌文化介绍课件
- 2025贵州中考:历史必考知识点
- 肝硬化门静脉高压症食管、胃底静脉曲张破裂出血诊治专家共识2025解读
- 2025年重症医学科ICU护理标准化建设计划
- 公司挂名法人免责协议书
- 2025年南通市通大全过程工程咨询有限公司招聘笔试参考题库附带答案详解
- 玉石国际贸易买卖合同8篇
- GB 45549-2025石墨和萤石单位产品能源消耗限额
- 建筑合同变更补充协议
- SL631水利水电工程单元工程施工质量验收标准第4部分:堤防与河道整治工程
评论
0/150
提交评论