




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子科技大学成都学院程序综合设计销售管理系统设计学生姓名玛n学 号 1240840106同组人 武侠红苗迅专业名称机械设计制造及其自动化班 级指导教师熨1电子科技大学成都学院二。一三年十二月1 .前百 32 .设计目的33 .功能描述34 .总体设计 41、功能模块设计 42、数据结构设计 53、函数功能描述 65 .程序实现 81、源程序(略) 82、运行结果 136 .小结161 前言C语言是今年来国内外得到迅速推广使用的一种高级语言。C语言功能丰富,表达能力强,使用灵活方便,应用广,目标程序效率高,可移植性好,既具有高级语言的优点,又具 有低级语言的语言特点,因此C语言对我们来说很重要,
2、本程序是我们小组利用网络和书本等资源公共完成的一个销售管理系统,深刻了解中小型C语言程序设计。2设计目的(1)了解管理信息系统的开发流程,熟悉C 语言的文件和结构数组的各种基本操作。(2)掌握高级程序设计语言的知识。(3)实践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。(4)本程序中涉及结构体、数组、文件等方面的知识。通过本程序的训练,能对C 语言的文件操作有一个更深刻的了解。(5)要提高与程序设计和软件开发有关的各种综合能力。(6)掌握利用数组存储结构实现电话簿管理的原理,为进一步开发出高质量的信息管理 系统打下坚实的基础。3功能描述程序功能要求:某公司有四个销售员(编号:
3、1-4 ) ,负责销售五种产品(编号:1-5 ) 。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1 )销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴1 张便条。试设计一个便条管理系统,使之能提供以下功能:1、系统以菜单方式工作2、便条信息录入功能( 便条信息用文件保存) 输入3、收集到了上个月的所有便条后,读取销售情况1)计算每个人每种产品的销售额。2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)( 可选项 )描述 :本程序将用到lis
4、t.txt 文件内容作为数据源,其中单行内容代表一张纸条。程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作; 由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作; 另外应提供键盘式选择菜单实现功能选择。4.总体设计功能模块设计可以将这个系统分为五大模块: 种产品总销售额从高到低排序、 想流程在下图。查看没人每种产品的销售额、按销售额对销售员排序、输出统计报表和退出。其中主要模块是前四个模块。对每 程序预开始判断文件是否能打开选择退由系统返回主菜单数据结构设计:头文件和预定义
5、#include<stdio.h>#include<conio,h>#include<stdlib.h>#include<string.h>#define M 155功能函数声明:void detail();/ 显示销售情况void foreach();/ 从文件读取数据兵分类整理void menu();/ 菜单void product();/ 对产品进行统计void readdata();/从文件读取数据void seller();/ 对销售员进行统计void total(); / 输出报表void choice();/ 选择输出信息数据结构:
6、原始数据有销售员代码、产品代号和销售额,所以定义一个全局结构体数组scrip 用于保存原始数据。然后定义。然后定义全局变量n保存纸条数目,定义数组s用于保存分类后的信息。struct ssint sid; /销售员代号int pid; / 产品代号int sn; /销售额ssM;int n; /纸条数目int s45=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; / 用于保存员工和产品信息主函数 :显示程序设计者相关信息和调用文件读取函数、数据初始化函数和主菜单函数。void main() / 入口函数即主函数readdata(); /读取文件数据forea
7、ch(); /根据文件初始数据初始化便于操作的数组menu(); /显示主菜单函数功能描述:每人每种产品销售额统计函数detail ()/计算上个月每个人每种产品的销售额void detail()/显示销售情况int i,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();文件读取函数readdata ()读出便条中的内容,并保存
8、到文件结构体中。void foreach()/ 从纸条读取数据并分类整理int i;for(i=0;i<n;i+)/ 遍历所有纸条switch(ssi.pid)/ 按产品分大类,根据大类分销售员小类,累加个人各产品销售数量case 1:switch(ssi.sid)case 1:s00+=ssi.sn;break;case 2:s10+=ssi.sn;break;case 3:s20+=ssi.sn;break;case 4:s30+=ssi.sn;break;break;case 2:switch(ssi.sid)case 1:s01+=ssi.sn;break;case 2:s11+
9、=ssi.sn;break;case 3:s21+=ssi.sn;break;case 4:s31+=ssi.sn;break;break;case 3:switch(ssi.sid)case 1:s02+=ssi.sn;break;case 2:s12+=ssi.sn;break;case 3:s22+=ssi.sn;break;case 4:s32+=ssi.sn;break;break;case 4:switch(ssi.sid)case 1:s03+=ssi.sn;break;case 2:s13+=ssi.sn;break;case 3:s23+=ssi.sn;break;case
10、4:s33+=ssi.sn;break;break;case 5:switch(ssi.sid)case 1:s04+=ssi.sn;break;case 2:s14+=ssi.sn;break;case 3:s24+=ssi.sn;break;case 4:s34+=ssi.sn;break;break;主菜单函数menu ()显示系统功能菜单以供用户选择相关功能使用,根据用户选择分别可调用。 void menu() int w,c;do菜单 *nn");puts("tt*puts("tt 1. 查看每人每种产品的销售额n");puts("t
11、t 2. 按销售额对销售员排序(销售员代号)n");puts("tt 3. 对每种产品总销售额从高到低排序(产品代号和销售额)n");puts("tt 4. 输出统计报表n");puts("tt 5. 退出 n");puts("nntt*n");printf(" 请选择 (1-5): bb");scanf("%d",&c);if(c<1|c>5) /错误输入则重新获取输如w=1;getchar();else w=0;while(w=1);swit
12、ch(c)根据输入实现相应函数调用case 1:detail();break;每个销售员每种产品的销售额统j计case 2:seller();break;case 3:product();break;case 4:total();break;case 5:exit(0);统计报表输出函数total ()(需输出产品代号和统计每种产品的总销售额,对这些产品按从高到低的顺序输出排序结果销售额)void total()/ 输出报表int i,j;printf("nt 销售员 t 产品 t 销量 n");for(i=0;i<4;i+)for(j=0;j<5;j+)pri
13、ntf("t %dt %dt %dn",i+1,j+1,sij);choice();5程序实现1、源程序#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#define M 155void detail();/ 显示销售情况void foreach();/ 从文件读取数据兵分类整理void menu();/ 菜单void product();/ 对产品进行统计void readdata();/从文件读取数据void total(); /
14、输出报表void choice();/ 选择输出信息struct ssint sid; /销售员代号int pid; /产品代号int sn; /销售额ssM;int n; /纸条数目用于保存员工和产品信息int s45=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; /void main() / 入口函数即主函数readdata(); /读取文件数据foreach(); /根据文件初始数据初始化便于操作的数组menu(); /显示主菜单void readdata()/从文件读取数据FILE *fp;if(fp=fopen("list.txt&quo
15、t;,"r")=NULL) printf("Can't open the file!n");exit(0);elsefor(n=0;!feof(fp);n+) fscanf(fp,"%d %d %dn",&ssn.sid,&ssn.pid,&ssn.sn); / 保存文件数据到结构体 fclose(fp);void foreach()/ 从纸条读取数据并分类整理int i;for(i=0;i<n;i+)/ 遍历所有纸条switch(ssi.pid)/ 按产品分大类,根据大类分销售员小类,累加个人各
16、产品销售数量case 1:switch(ssi.sid)case 1:s00+=ssi.sn;break;case 2:s10+=ssi.sn;break;case 3:s20+=ssi.sn;break;case 4:s30+=ssi.sn;break;break;case 2:switch(ssi.sid)case 1:s01+=ssi.sn;break;case 2:s11+=ssi.sn;break;case 3:s21+=ssi.sn;break;case 4:s31+=ssi.sn;break;break;case 3:switch(ssi.sid)case 1:s02+=ssi.
17、sn;break;case 2:s12+=ssi.sn;break;case 3:s22+=ssi.sn;break;case 4:s32+=ssi.sn;break; break;case 4:switch(ssi.sid)case 1:s03+=ssi.sn;break;case 2:s13+=ssi.sn;break;case 3:s23+=ssi.sn;break;case 4:s33+=ssi.sn;break; break;case 5:switch(ssi.sid)case 1:s04+=ssi.sn;break;case 2:s14+=ssi.sn;break;case 3:s
18、24+=ssi.sn;break;case 4:s34+=ssi.sn;break;break;void menu()int w,c;doputs("tt*菜单*nn");puts("tt 1. 查看每人每种产品的销售额n");puts("tt 2. 按销售额对销售员排序(销售员代号)n");puts("tt 3. 对每种产品总销售额从高到低排序(产品代号和销售额)n");puts("tt 4. 输出统计报表n");puts("tt 5. 退出 n");puts("
19、nntt*n");printf(" 请选择 (1-5): bb");scanf("%d",&c); if(c<1|c>5) /错误输入则重新获取输如 w=1;getchar();else w=0;while(w=1);switch(c)根据输入实现相应函数调用case 1:detail();break;每个销售员每种产品的销售额统j计case 2:seller();break;case 3:product();break;case 4:total();break;case 5:exit(0);void detail()/ 显
20、示销售情况int i,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();void seller()int i,j,k;int sp4=0,0,0,0;for(i=0;i<4;i+)for(j=0;j<5;j+)spi+=sij;/ 计算每单个销售员所有产品销售情况for(i=0;i<4;i+)/ 比较四
21、次,每次选出最大数k=0;用于标记单轮最大数for(j=0;j<4;j+)if(spk<spj)k=j;/ 获取最大数标号printf("tt 第 %d 名是 %d 号销售员!n",i+1,k+1);spk=-1;/* 输出最大数和排名,将最大数标记为负*/choice();void product()与seller()原理一样,用于对产品进行统计int i,j,k;int p5=0,0,0,0,0;for(j=0;j<5;j+)for(i=0;i<4;i+)pj+=sij;for(j=0;j<5;j+)k=0;for(i=0;i<5;i
22、+)if(pk<pi)k=i;printf("tt 第 %d 名是 %d 号产品 !t 销量为 %d!n",j+1,k+1,pk);pk=-1;choice();void total()输出报表int i,j;printf("nt销售员t产品t销量n");for(i=0;i<4;i+)for(j=0;j<5;j+)printf("t %dt %dt %dn",i+1,j+1,sij);choice();void choice。/用于输出信息功能选择int c;printf("请选择接下来想做什么t1>
23、返回菜单t2>退出系统bb");scanf("%d",&c);if(c=1)menu();elseexit(0);puts("n");2、运行结果(1)主界面(2)查看每人每种销售额运行结果当用户输入“ 1”并按Enter键后,即可进入数据。如图所示,这里读取了文档 list.txt 的5个便条。当用户输入为“1”时,它会返回菜单主界面,否则退出系统。”艮出系统】tedlm 主l整 n- 3 FIJI UI.- 0 6 0 0QIBr r l B B - f 悒日>量目喜藤 也期翻数数得1 住BMyy皆nn4 1 2 3 4
24、 5 好售产产产产 f.0丁产产产 号哥号号冷修0 W0Z 商量旨<:量里 田城襄型» 强隹星星星口 口弱曹俏俏 售品品品品品 普产产产产 号号号号号号 2 12 5 4 5况:0:e:6:4:e惜管苜 _>><_与薮数翱数数塞星星星E口精俏曹销售品品口田叩品(3)按销售额对销售员排序运行结果在主界面输入2并按Enter键,查看按销售额对销售员排序运行结果,如下图所示,此 时有4个销售员记录。k* Am 胃 ftK hK NX* Kk* *例Mk? k1* = * = * MKE* EX 霍|R -F;U; frsfen gy4不仁 口 由四1 匚 ppl.e<e'L查看耳人每种产品的销笔额.按销售额对销售员拌序销售员代£ >3.对昆种产疗总年售融一高钊低排序产品代号和销售赖4 .输出统计报表5-退出*分*会注障蛆依喋,* 屯*漱44= *«*»* 也 Mi清诜桂<1-5,:121|;请诜搔格卜来想做什么当一 t f f 1 07 员员 售售官星日目 令伟专弋廿 号 oHIpdIp1> 4 3 1 Z 匚¥塞走2X艮出系统】J(4)对每种产品从高到低运行结果在主界面,当用户输入 3并按Enter键后,记录对每种广品从图到低运行结果,如下图 所示。莞M注K:,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年利用温度变化加工机械项目资金需求报告代可行性研究报告
- 2025软件授权使用合同范本
- 2025年电梯安装安全合同范本
- 2025年海南省新合同范本
- 竹材采运合同法律风险与规避考核试卷
- 报纸新闻的公共卫生新闻深度考核试卷
- 2025标准版房屋买卖合同范本
- 2025企业短期用工合同协议
- 2025精简版技术合同
- 2025《设备租赁合同范本》
- 【沪教】期中模拟卷02【U1~U4】
- DB34-4239-2022 医院保洁服务规范
- 2025年北师大版数学六年级下册教学计划(含进度表)
- 2025年海南港航控股有限公司招聘笔试参考题库含答案解析
- 临床合理用血知识培训
- 2025年徐矿集团校园招聘700人高频重点提升(共500题)附带答案详解
- 资产管理岗管理制度内容
- 铁路货物运价规则
- 电动车火警火灾应急培训
- 无人机维修市场分析-洞察分析
- 《政府采购制度改革》课件
评论
0/150
提交评论