




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 2014-12-25 C语言程序设计报告销售信息统计管理系统 一 任务描述某公司有4个销售员,负责销售5种产品。每个销售员都将当日销售的每种产品各写一张便条提交给公司。每张便条内容有:1、销售员的编号2、销售产品的代号产品3、产品销售量根据需求,此系统提供以下功能:1、以菜单界面呈现。2、信息录入功能。3、信息查询功能。(包括查询某销售员的各产品销售量,某种产品的销售总量,某销售员的总销售额)4、销量排序功能。5、生成统计报表功能。本系统采用结构体数组以及数据文件的技术,将输入的数据用结构体数组保存,并提供文件的保存与读取。在程序中要进行统计工作,所以提供显示、排序
2、等操作,另外应提供键盘式选择菜单实现功能选择本程序使用C语言。此程序在vc+6.0上调试通过。二功能实现设计1.总体设计根据上面的分析,将这个程序分为四大模块。1.销售信息录入。2.查询信息3.文件的保存。4.文件的读取查询系统包括1.各个销售员销售额。2.销售总额以及排序。3各产品销售总额及热度。4.总信息统计生成报表。2.流程图3详细设计【数据结构】typedef struct int name; int a1; int a2; int a3; int a4; int a5; SYS;/*定义数组*/【功能函数声明】int menu();/*选择菜单函数声明*/ int menu_1();
3、/*子菜单函数声明*/ int enter(SYS t);/*进入函数声明*/ void salor(SYS t,int n);/*声明函数*/ int sum(SYS t,int n,int m);/*统计函数声明*/ void list1(SYS t,int n);/*菜单1函数声明*/ void list2(SYS t,int n);/*菜单2函数声明*/ void list3(SYS t,int n);/*菜单3函数声明*/ void save(SYS t,int n);/*保存文件函数声明*/ int load(SYS t);/*读取函数声明*/SYS ste100;int len;
4、/*全局变量定义*/【主函数】void main() system("cls"); for( ; ; ) switch(menu()/*根据用户的选择判断该调用哪个功能函数*/ case 1:len=enter(ste);break; case 2:menu_1();break; case 3:save(ste,len);break; case 4:len=load(ste);break; case 0:exit(0); 【主菜单函数】打印出菜单功能选项,包括便条清单输入、信息查询、储存文件、读取文件和退出5个选项。根据用户的选择判断该调用哪个功能函数,则输入相应的选项代号
5、n(0-4)以运行该功能选项。如下图所示【清单输入函数】int enter(SYS t)清屏之后输出提示语“请输入便条的信息”,按提示语输入便条信息,输入数据的同时,已将该信息存入开始已定义的结构体数组typedef struct SYS t 中,以便在排序功能选项、统计功能选项、输出清单列表选项等功能选项中读取信息,进行编辑,阅读。输入结束以信息全为零而结束清单输入,返回主菜单。【便条信息查询函数】void salor(SYS t,int n)进入查询功能,出现提示语“输入所要查看的售货员的代号”,输入销售员的代号(1-4),通过循环判断读取输入的销售员代号(s)来进行对信息的阅读。【求和函
6、数】int sum(SYS t,int n, int e)定义初始值sum=0通过对销售员代号的循环和判断(当销售员代号与传递的e值相同),累加并统计同一个销售员销售不同种产品的销售额信息,返回统计值sum,以便调用。【排序函数】void list1 (SYS t,int n)调用求和函数返回的统计值sum (使ci=sum(t,n,mi),按销售员的总销售额进行从大到小排序,输出销售员的代号mi。【销售额情况的函数调用】void list2(SYS t,int n)调用求和函数使ci=sum(t,n,i+1),累加并统计每个人销售每种产品的总销售额和所有销售员销售的所有产品的总销售额,再将每
7、个人销售每种产品的总销售额放到定义的数组(xs5=sum1,sum2,sum3,sum4,sum5)中,按每种产品的总销售额sumi循环比较并排序输出产品代号ai和总销售额xsi。【销售统计报表输出函数】void list3(SYS t,int n)类似输出如下表格:销售统计报表产品代号销售之和销售员代号123451234每种产品之和总和如下图所示:【保存函数】void save(SYS t,int n)打开sys.txt文件,如果函数带回一个空指针值if(fp=fopen("sys.txt","wb")=NULL),则显示“不能打开文件”,非法退出再进
8、行存储文件。通过文件指针,循环将便条信息输出到fp指向的文件。关闭文件,显示“*存储成功*”,“按任意键继续。”。【读取函数】int load(SYS t):定义文件指针*fp,循环从fp指向的文件上读入便条信息,关闭文件,显示“成功读取文件信息!”,“按任意键继续。”。返回n值。四主要模块的算法描述1.查询函数流程图2.求和函数流程图3.排序函数流程图如下所示:三总结与反思通过这次C程序设计,我掌握了模块化设计方法,能够深入的理解结构化程序设计思想,熟练运用结构化程序设计方法,提高了运用C语言进行程序设计的能力。此外我还熟悉了,对于文件读写的操作。更重要的是对程序的调试有了显著的提高。附录:
9、#include <stdio.h>#include <stdlib.h> typedef struct int name; int a1; int a2; int a3; int a4; int a5; SYS; int menu(); int menu_1();int enter(SYS t); void salor(SYS t,int n); int sum(SYS t,int n,int m); void list1(SYS t,int n); void list2(SYS t,int n); void list3(SYS t,int n); void save
10、(SYS t,int n); int load(SYS t); SYS ste100;int len; void main() system("cls"); for( ; ; ) switch(menu() case 1:len=enter(ste);break; case 2:menu_1();break; case 3:save(ste,len);break; case 4:len=load(ste);break; case 0:exit(0); int menu() int n; printf(" 销售信息统计管理系统n");printf(&quo
11、t;*menu*n"); printf("* 1 输入销售信息 *n"); printf("* 2 查询信息 *n"); printf("* 3 储存文件 *n"); printf("* 4 读取文件 *n"); printf("* 0 退出 *n"); printf("*end*nn"); printf(" 请输入你的选择(0-4): "); scanf("%d",&n); if(0<n&&n&
12、lt;5) system("cls"); return n; int menu_1()int h; printf("*menu*n");printf("* 1 查询每个人每种产品的销售额 *n"); printf("* 2 查询销售员总销售额排行 *n"); printf("* 3 查询各产品的销售总额及热度 *n"); printf("* 4 查询统计报表 *n");printf("*end*n");printf(" 请输入你的选择(1-4):
13、 "); scanf("%d",&h); switch(h) case 1:salor(ste,len);break; case 2:list1(ste,len);break; case 3:list2(ste,len);break; case 4:list3(ste,len);break; return h;int enter(SYS t) int i; system("cls"); printf("请输入便条的信息:"); printf("销售员代号 产品1 产品2 产品3 产品4 产品5")
14、; printf("nn退出请输入各信息为0退出!n"); for(i=0;i<1000;i+) printf("n-n"); scanf("%d%d%d%d%d%d",&,&ti.a1,&ti.a2,&ti.a3,&ti.a4,&ti.a5); if(=0)&&(ti.a1=0)&&(ti.a2=0)&&(ti.a3=0)&&(ti.a4=0)&&(ti.a5=0)brea
15、k; printf("n-nnn"); return i; void salor(SYS t,int n) int i,s; int b1=0,b2=0,b3=0,b4=0,b5=0; printf("输入所要查看的售货员的代号:"); scanf("%d",&s); for(i=0;i<n;i+) if(=s)b1+=ti.a1; b2+=ti.a2; b3+=ti.a3; b4+=ti.a4; b5+=ti.a5; printf("销售员代号 产品1 产品2 产品3 产品4 产品5n"
16、;); printf("-n"); printf("%-12d%-6d%-6d%-6d%-6d%-6d",s,b1,b2,b3,b4,b5); printf("n 按任意键继续.nn"); getchar(); int sum(SYS t,int n, int e) int i,sum=0; for(i=0;i<=n;i+) if(e=) sum+=ti.a1; sum+=ti.a2; sum+=ti.a3; sum+=ti.a4; sum+=ti.a5; return sum; void list1 (SYS t
17、,int n) int i,j,s; int c4,m4; system("cls"); for(i=0;i<4;i+) mi=i+1; for(i=0;i<4;i+) ci=sum(t,n,mi); for(i=0;i<4;i+) for(j=i+1;j<4;j+) if(ci<cj)s=mi; mi=mj; mj=s; s=ci; ci=cj; cj=s; printf("从大到小销售员销售额排行榜n"); for(i=0;i<4;i+) printf("%dn",mi); printf(&qu
18、ot;n 按任意键继续.nn"); getchar(); void list2(SYS t,int n) int index,k,s; int i,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; int c4,b14=0,b24=0,b34=0,b44=0,b54=0; system("cls"); ; for(i=0;i<4;i+) ci=sum(t,n,i+1); for(i=0;i<4;i+) sum0+=ci; for(i=0;i<n;i+) for(j=0;j<4;j+) if(j+1=t
19、) b1j+=ti.a1; b2j+=ti.a2; b3j+=ti.a3; b4j+=ti.a4; b5j+=ti.a5; for(i=0;i<4;i+) sum1+=b1i; sum2+=b2i; sum3+=b3i; sum4+=b4i; sum5+=b5i; int xs5=sum1,sum2,sum3,sum4,sum5;int a5=1,2,3,4,5;for(k=0;k<4;k+)index=k;for(i=k+1;i<5;i+)if(xsi>xsindex)index=i;s=xsindex;xsindex=xsk;xsk=s;s=aindex
20、; aindex=ak; ak=s;for(i=0;i<5;i+)printf("产品代号:%-10d",ai);printf("总销售额:%-10dn",xsi);printf("按任意键继续 .nn"); getchar(); void list3(SYS t,int n) int i,j,sum0=0,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0; int c4,b14=0,b24=0,b34=0,b44=0,b54=0; system("cls"); ; for(i=0;i&l
21、t;4;i+) ci=sum(t,n,i+1); for(i=0;i<4;i+) sum0+=ci; for(i=0;i<n;i+) for(j=0;j<4;j+) if(j+1=) b1j+=ti.a1; b2j+=ti.a2; b3j+=ti.a3; b4j+=ti.a4; b5j+=ti.a5; for(i=0;i<4;i+)sum1+=b1i; sum2+=b2i; sum3+=b3i; sum4+=b4i; sum5+=b5i; printf("-销售报表-nnn"); printf(" 销售员序号 1 2 3 4
22、5 总数nn"); for(i=0;i<4;i+) printf(" %-7d%-7d%-7d%-7d%-7d%-7d%-7dn",i+1,b1i,b2i,b3i,b4i,b5i,ci); printf(" 总和 %-7d%-7d%-7d%-7d%-7d%-7d",sum1,sum2,sum3,sum4,sum5,sum0); printf("n 按任意键继续.nn"); getchar(); void save(SYS t,int n) int i; FILE *fp; if(fp=fopen("steord.txt","wb")=NULL) printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 强化人才梯队建设的计划
- 2025建筑工程施工总包合同范本
- 企业投资组合与风险管理的动态调整试题及答案
- 2024年河南省交通运输厅下属事业单位真题
- 起重设备国内外市场发展与挑战考核试卷
- 计算机存储介质知识测试题及答案
- 2025年软考考前复习试题及答案
- 信息处理考试经典案例与试题
- 行政管理国际经验借鉴试题及答案
- 行政法学综合性试题及答案
- 2025年安全生产考试题库:新能源行业安全规范试题
- 浙江明体新材料科技有限公司年产10000吨聚醚多元醇弹性体建设项目环评报告
- 湖北省2025届高三(4月)调研模拟考试物理试题及答案
- 机驾长习题+答案
- 学生宿舍卫生评比方案
- 2025年中铁特货物流股份有限公司招聘(75人)笔试参考题库附带答案详解
- 利剑护蕾安全教育
- 烟花爆竹零售店(点)安全技术规范
- 超星尔雅学习通《人工智能与科学之美(湘潭大学)》2025章节测试附答案
- qc岗位面试试题及答案
- 电商家具用户体验研究-深度研究
评论
0/150
提交评论