




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计 C语言程序设计课程设计报告课设题目: 销售信息统计管理系统 班 级: 姓 名: 学 号: 指导教师: 成 绩: 2013 年 6 月C语言课程设计 一、 任务描述本次任务要求完成一个销售信息管理统计系统。具体内容为:假定某公司有n个销售员,负责销售m种产品。每个销售员将当天销售的每种产品一张便条的形式提交给公司。每张便条内容包括:(1)销售员编号;(2)销售产品代号;(3)产品销售量;(4)产品销售金额。本销售信息管理统计系统是对所收集的便条进行统计。具体要求如下:(一)系统以菜单方式工作,要求界面清晰,便于操作。(二)可以将每张便条输入,并以结构数组形式保存信息。(三)能够查看输入的便条的内容。(四)可以实现业绩查询功能,包括以下三种查询方式: 1.查询本月某个销售员某种产品的月销售额 2.查询某销售员月总销售额 3查询某个销售员每种产品销售额(五)统计产品热销度,并按从高到低的顺序排序加以显示(六)生成销售统计报表二、 系统概要设计(一)模块整体设计图 销售信息统计管理系统菜单显示录入便条读出便条查询业绩热销度统计统计报表图1 模块调用图月销售额查询月总销售额查询产品销售额查询 (二)函数功能介绍1.主函数void main() 功能:调用其他各个函数;2.菜单函数 void menu() 功能:构造系统界面;3.录入函数 void input() 功能:输入数据并用结构数组保存; 4读取函数 void output()功能:查看之前录入的数据,并以表格形式输出;5 查询函数由以下四部分构成 (1)查询函数界面void menu1() 功能:构造查询界面,并调用其他查询函数 (2)查询函数1 void search1() 功能:查询本月某个销售员某种产品的月销售额 (3)查询函数2 void search2() 功能:查询某销售员月总销售额 (4)查询函数3 void search3() 功能:查询某个销售员每种产品销售额6. 产品销售量统计函数array() 功能:统计每种产品销售量7. 统计函数 void count() 功能:统计每种产品的销售量,并从高到低输出;8. 统计报表函数 void form() 功能:以统计报表形式将所有数据显示出来;三、 系统详细设计(一)数据结构设计1.本系统采用结构体数组保存所录入的便条信息,其中,每张便条的结构体如下:struct paper int num; int pnum; int pcount; float money;staffMAX+1;2.定义如下结构体用来将所有产品的销售额进行统计处理并按序存放,其结构体如下:struct sum int pnum; int pcount; float psale;productMAX+1;3.定义静态全局变量note,用以统计输入的便条数。(二)模块接口设计: 1. 各函数原型为:main(); /*主函数*/void menu(); /*菜单函数*/void input(); /*录入函数*/void output(); /*读取函数*/void menu1(); /*查询菜单函数*/void search1(); /*查询月销售额函数*/void search2(); /*查询月总销售额函数*/void search3(); /*查询产品销售额函数*/void array(); /*统计产品销售量函数*/void count(); /*统计产品热销售度函数*/void form(); /*生成统计报表函数*/2.系统界面切换的实现每个函数在返回上一个菜单时,均采用switch语句进行选择,例如:printf(nnWhat do you want to do? 1Return to menu 0Exit system);printf(nnPlease make choices(0-1):);scanf(%d,&ch);switch(ch) case 1:menu();break; case 0:exit(0);break; 在main()函数中用do-while语句实现各函数的循环调用,以使各功能能够重复实现,直至用户退出系统为止(三)盒图:1.主函数盒图:图2 主函数盒图调用menu()输入chch之值1input()23450output()menu1()count()form()exit(0)直到ch=02.录入函数盒图 输入员工编号staffi.numstaffi.num=-1跳出循环体输入便条上其他信息YNnote+i+退出回到主菜单图3 录入函数盒图01输出提示信息,输入ch调用clrscr();i=1打印界面标题和提示信息3. 查询菜单函数盒图输入ch04132退出回到主菜单查询3查询2查询1图4 查询菜单函数盒图4. 查询功能盒图(以查询月销售额函数为例)i=1输入snsn=-1NYj=1当j=M跳出循环suj=0.0j+j=1当j=notestaffj.pnum=pnstaffj.num=snYNsupn=staffj.money+=输出月销售额j+i+输入ch01返回查询菜单退出图5 查询月销售额函数盒图5.产品热销售度函数盒图图6 产品热销售度函数盒图退出返回主菜单01输入chi+打印producti.pnum和producti.pcount当i=Mi=1i+j+交换productj.count和productj+1.count之值及其位置N若productj.pcountproductj+1.pcountYj=1当j=M-1当i=M-1i=1调用产品销售额统计函数array();第 23 页 共 24 页四、 系统实现(一)菜单界面图7 菜单界面截图(二)录入界面图8 录入界面截图(三)输出界面图9 输出界面截图(四)查询界面图10 查询界面截图(五)查询1界面图11 查询1界面(六)查询2界面图12 查询2界面截图(七)查询3界面图13 查询3界面截图(八)产品热销度统计界面图14 产品热销度统计界面截图(九)销售统计报表界面图16 销售统计报表界面截图五、 系统调试在调试过程中我遇到的问题以及我的采取措施有:(1) 在我使用中文界面时,便条录入功能无法实现,即无法将数据存入结构体数组中,因此我采取了英文界面(2) 在做统计时我本想用以下函数来进行统计struct sum int num; int pcountM; float sM; float sum;saleM;void record() int i,j,k; FILE *fp,*fp1; for(i=1;i=N;i+) salei.pcountM+1=0; salei.sM+1=0; salei.su=0; fp=fopen(note,rb); for(i=1;i=note;i+) fread(staff,sizeof(struct paper),1,fp); if(fp=fopen(staff,rb)=NULL) printf(can not open filen); return; for(i=1;i=note;i+) for(j=1;j=N;j+) if(staffi.num=salej.num) for(k=1;k=M;k+) if(staffi.pnum=k) salej.pcountk+=staffi.pcount; salej.sk+=staffi.money; salej.su+=staffi.money; fclose(fp); for(i=1;i=note;i+) fwrite(sale,sizeof(struct sum),1,fp1); fclose(fp1);但并没能调试出来,因此我将它的功能分解,再来进行统计(三)还有许多算法问题,经过耐心的调试和老师的帮助后,这些问题都一一得到了解决六、 系统进一步扩充(1) 未能使用文件保存数据,每次打开后,前面的信息就会丢失,给调试也带来很大不便。(2) 当用户输入的数字不在要选的范围内时,不能重新输入,只能关闭系统后再打开。(3) 没有采用人性化的提示语句来退出功能界面(4) 采用全英文的界面,在国内不能广泛应用(5) 界面美化程度还有待提高附录#include #include /*屏幕操作函数*/#define MAX 20#define N 5#define M 5void menu(); /*函数声明*/void input();void output();void menu1();void search1();void search2();void search3();void array();void count();void form();static int note=0; /*静态全局变量note用以统计便条数量*/ struct paper /*结构体数组用于存放便条信息*/ int num; int pnum; int pcount; float money;staffMAX+1;struct sum /*结构体数组用于存放产品信息*/ int pnum; int pcount; float psale;productMAX+1; main() int ch; menu(); do scanf(%d,&ch); switch(ch) case 1: input();break; case 2: output();break; case 3: menu1();break; case 4: count();break; case 5: form();break; case 0: exit(0); while(ch); getch();void menu() /*菜单函数*/ clrscr(); printf(nttt*Wecolme to Sales Information System*); printf( nnttt 1. Input sales information ); printf( nnttt 2. Look over the information); printf( nnttt 3. Sales inquery ); printf( nnttt 4. Products sell degree statistic); printf( nnttt 5. Sales form ); printf( nnttt 0. Exit system ); printf(nnPlease make choices(0-5):);void input() /*录入函数*/ int i,ch; float t; clrscr(); printf(nntt*Input sales information*nn); printf(Salesman Numbers( =%d ) Product code( Return to menu 0Exit system); printf(nnPlease make choices(0-1):); scanf(%d,&ch); switch(ch) case 1:menu();break; case 0:exit(0);break; void output() /*读取函数*/ int i,ch; clrscr(); printf(nttt*Sales information *nn); printf(Salesman Numbers Product code Productsales Sales nn”); for(i=1;iReturn to menu 0Exit system);printf(nnPlease make choices(0-1):);scanf(%d,&ch);switch(ch) case 1:menu();break; case 0:exit(0);break; void menu1() /*查询函数界面*/ int ch; clrscr(); printf(nttt*Sales inquery*); printf( nnttt 1. A salesman some product inquiry ); printf( nnttt 2. A salesman monthly sales inquery); printf( nnttt 3. A salesman every product sales ); printf( nnttt 4. Return to menu ); printf( nnttt 0. Exit system ); printf(nnPlease make choices(0-3):); scanf(%d,&ch); switch(ch) case 1:search1();break; case 2:search2();break; case 3:search3();break; case 4:menu();break; case 0:exit(0);break; void search1() /*查询月销售额函数*/ int i,sn,pn,ch,j; float suMAX+1; clrscr(); printf(nntt* A salesman some product inquiry*nn); printf(nPlease input the salesman number and product code :); printf( nSalesman Numbers( =%d ) Product code( =%d) n,N,M); printf(-1 to quit inquirynn); for(i=1;i+) scanf(%d,&sn); if(sn=-1)break; scanf(%d,&pn); for(j=1;j=M;j+) suj=0.0; for(j=1;jReturn to inqury 0Exit system); printf(nnPlease make choices(0-1):); scanf(%d,&ch); switch(ch) case 1:menu1();break; case 0:exit(0);break; void search2() /*查询月总销售额函数*/ int i,sn,ch,j,k=0; float suMAX+1; clrscr(); printf(nntt* A salesman monthly sales inquery*nn); printf(Please input the salesman number :); printf( nnSalesman Numbers( =%d ) ,N); printf(nn-1 to quit inquirynn); for(i=1;i+) for(j=1;j=M;j+) suj=0.0; scanf(%d,&sn); if(sn=-1)break; for(j=1;jReturn to inqury 0Exit system); printf(nnPlease make choices(0-1):); scanf(%d,&ch); switch(ch) case 1:menu1();break; case 0:exit(0);break; void search3() /*查询产品销售额函数*/ int i,sn,ch,j,k; float psaleMAX+1; clrscr(); printf(nntt* A salesman every product sales*nn); printf(nnPlease input the salesman number :); printf( nnSalesman Numbers( =%d ) ,N); printf(n-1 to quit inquirynn); for(i=1;i+) for(j=1;j=M;j+) psalej=0.0; scanf(%d,&sn); if(sn=-1)break; for(j=1;j=note;j+) if(staffj.num=sn) for(k=1;k=M;k+) if(staffj.pnum=k) psalek+=staffj.money; printf(Saleman number:%dn,sn); printf(Product codes Product salesn); for(i=1;iReturn to inqury 0Exit system); printf(nnPlease make choices(0-1):); scanf(%d,&ch); switch(ch) case 1:menu1();break; case 0:exit(0);break; void array() /*统计产品销售量函数*/ int i,j; clrscr(); for(i=1;i=M;i+) producti.pnum=i; producti.pcount=0; producti.psale=0.0; for(i=1;i=note;i+) for(j=1;j=M;j+) if(staffi.pnum=productj.pnum) productj.pcount+=staffi.pcount; productj.psale+=staffi.money; void count() /*统计产品热销售度函数*/ int i,j,k,t,ch; clrscr(); printf(nntt* Products sell degree statistic*nn); array(); for(i=1;i=M-1;i+) for(j=1;j=M-i;j+) if(productj.pcountproductj+1.pcount) t=productj.pcount;productj.pcount=productj+1.pcount;productj+1.pcount=t; k=productj.pnum;productj.pnum=productj+1.pnum;productj+1.pnum=k; printf(tEach product of total
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版货车个人运输合同范例
- 车辆挂靠单位协议书二零二五年
- 二零二五未成年工保护规定
- 二零二五版办公用品采购协议合同
- 二零二五版金融债券抵押合同范例
- 个人转让单位合同样本
- 法律咨询服务协议合同书
- 从化区叉车租赁合同标准文本
- 买路合同样本
- 二零二五版家装公司施工安全免责的协议书
- 土力学第一章土的物理性质与工程分类课件
- 院感基础知识培训最新版本课件
- 船的发展史知识分享课件
- 人教版初一下学期生物实验报告册
- 《月是故乡明》定稿 优秀奖 教学课件
- 高铁站装饰装修施工方案
- 防台防汛管理制度
- 消防器材(灭火器)检查及记录表
- 2012小小科学家高年级试题生物
- 广电运通研究报告:数字人民币促产业升级-AI+城市助业务转型
- 移动式脚手架安全操作规程
评论
0/150
提交评论