销售管理系统(C语言).doc_第1页
销售管理系统(C语言).doc_第2页
销售管理系统(C语言).doc_第3页
销售管理系统(C语言).doc_第4页
销售管理系统(C语言).doc_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 语 言 课 程 设 计题 目:销售管理系统 设 计 者:院 系:专 业:班 号:学 号:指导教师:2012年6月29日1.题目要求设计一个C语言程序(销售管理系统),具体要求:某公司有四个销售员(编号:1-4),负责销售五种产品(编号1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1) 销售员的代号产品的代号2) 这种产品当天的销售额每位销售员每天的可能上交0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况,进行如下处理: 主要功能: 1、计算上个月每个人每种产品的销售额。2、按销售额对销售员进行排序,输出排序结果(销售员代号)3、统计每种产品的总销售额,对这些产品按从高到底的顺序输出排序结果(需输出产品的代号和销售额)4、 输出统计报表2.需求分析 根据题目要求,由于便条信息是文本文件,所以应提供文件的输入操作;在程序中需要对销售额排序,所以应该提供显示、排序等操作;另外,还应提供键盘式选择菜单来实现功能选择。3.总体设计销售系统1 计算上个月每个人每种产品的销售额3 按产品销额从高到底的顺序排序5退出系统4 输出统计报表2 按销售额对销售员进行排序(1).主要结构:(2)流程图开始主函数菜单输入选择判断:i=5?模块4模块2模块3模块1退出4.详细设计(1)主函数主函数比较简单,就是直接调用菜单选项main()caidan();/调用菜单选项菜单选项:void caidan() /菜单选项int n,w;doputs(tt*菜单*nn);puts(tttt 1.个人销售额查看);puts(tttt 2.产品销售额排序);puts(tttt 3.产品销售额);puts(tttt 4.统计报表);puts(tttt 5.退出);puts(nntt*n);printf(请输入你的选择(1-5): bb);scanf(%d,&n);if(n5)w=1;getchar();else w=0;while(w=1);switch(n)case 1:gerenxiaoshoue();break;case 2:xiaoshouepaiming();break;case 3:chanpingxiaoshoue();break;case 4:tongjibaobiao();break;case 5:exit(0);(2)各功能模块设计数据结构:用于存放每张便条的信息struct sellnoteint xsydh; /销售员代号(14)int cpdh; /产品代号(15)float xse; /销售额snoteN;模块1: 计算上个月每个人每种产品的销售额 此模块调用3个函数,分别为读取信息、计算每个销售员每种产品的销售额、返回菜单。void gerenxiaoshoue()readfiles(); jisuan(); /计算并显示每个销售员每种产品的销售额caidan();读取信息函数:读取便条信息,并将值赋给结构体变量。void readfiles()FILE *fp;int i;if(fp=fopen(biantiao.txt,r)=NULL)printf(nCannot open filen);for(i=0;!feof(fp);i+)fscanf(fp,%d%d%f,&snotei.xsydh,&snotei.cpdh,&snotei.xse);fclose(fp);计算函数:计算每个销售员每种产品的销售额并赋给数组countvoid jisuan()int i,j,k; /i表示销售员代号,j表示产品代号,k用来标记便条号码for(i=0;i4;i+)for(j=0;j5;j+)for(k=0;kN;k+)if(snotek.xsydh=i&snotek.cpdh=j)countij=snotek.xse; for(i=0;i4;i+)for(j=0;j5;j+)printf(第%d个销售员第%d种产品销售额是:t,i+1,j+1);printf(%fn,countij);模块2 按销售额对销售员进行排序,输出排序结果。此模块比较简单,因此只用一个函数即可完成排序和显示的操作。void xiaoshouepaiming()float a4=0; int i,j,k;float b4,t; readfiles();for(i=0;i4;i+)/计算每个销售员的销售额for(k=0;kN;k+)if(snotek.xsydh=i) ai+=snotek.xse;printf(按销售额从高到低对销售员进行排序是:n);for(i=0;i4;i+)bi=ai;for(i=0;i4;i+)/对销售额排序for(j=i+1;j4;j+)if(aiaj)t=ai,ai=aj,aj=t;for(k=0;k4;k+)/对产品代号排序for(i=0;i4;i+)if(ak=bi)printf(%dt,i+1);caidan();模块3: 统计每种产品的总销售额,输出排序结果此模块与模块2相似。void chanpingxiaoshoue()float a5=0;int i,j,k;float b5,t;readfiles();for(i=0;i5;i+)/计算每种产品的销售额for(k=0;kN;k+)if(snotek.cpdh=i)ai+=snotek.xse;printf(统计销售额,对产品按从高到低排序,输出产品代号和销售额:n);for(i=0;i5;i+)bi=ai;for(i=0;i5;i+)/对销售额排序for(j=i+1;j5;j+)if(aiaj)t=ai,ai=aj,aj=t;for(k=0;k5;k+)/对产品代号排序for(i=0;i5;i+)if(ak=bi)printf(第%d种产品的销售额是:%fn,i+1,ak);caidan();模块4:统计个人总销售额、每种产品的总销售额、销售总和。先读取文件信息,将信息存入数组count中,然后根据需要对count数组求和,再输出。void tongjibaobiao() float a4,b5,c=0;int i,j,k;readfiles();printf(输出个人总销售额、每种产品的总销售额、销售总和:nn); for(i=0;i4;i+)/计算每个销售员每种产品的销售额for(j=0;j5;j+)for(k=0;kN;k+)if(snotek.xsydh=i&snotek.cpdh=j)countij+=snotek.xse;for(i=0;i4;i+)ai=counti0+counti1+counti2+counti3+counti4;/计算每个销售员的销售总额for(j=0;j5;j+)bj=count0j+count1j+count2j+count3j;/计算每种产品的销售总额for(i=0;i4;i+)for(j=0;j5;j+)/计算销售总额c+=countij;for(i=0;i4;i+)printf(第%d个销售员的销售总额是:t,i+1);printf(%fn,ai);printf(nn);for(j=0;j主函数界面2个人销售额查看模块在主界面中输入“1”,然后按enter键,选择个人销售额查看功能,个人销售额将以列表的形式显示出来,如下图3产品销售额排序模块在主界面中输入“2”,然后按enter键,选择产品销售额排序功能,效果如下图:4产品销售额模块在主界面中输入“3”,然后按enter键,选择产品销售额模块功能,效果如下图:5统计报表模块在主界面中输入“4”,然后按enter键,选择统计报表功能,效果如下图:6退出模块按任意键之后退出。6.总结经过C语言课程设计实践学习,使我对c语言有了更进一步的认识和了解,通过实践,我也发现我的好多不足之处,首先是在程序输入上还不够熟练,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉。头脑里没有一点清晰的思路,这就与平时自己看得少,练得少有关系。所以我觉得学习任何一门语言还是需要多看书,多编写程序,特别是当自己突然有一丝灵感的时候,最好记录下来,甚至把它想出来,想明白。实践的过程中,要明确自己写这些程序是为了达到什么目的,实践后,要考虑这样编写是不是最好的,还能不能做其它方法来做,在编写这个程序中遇到了什么样的错误,为什么会遇到,以后应该怎样避免。熟练地掌握了C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,以及文件的读写操作等。学好c语言其实不难,只要多练习多理解就行了,持之以恒,坚持不懈,最终会收获良多。源代码:#include#include#include#define N 20 /宏定义N为便条数目float count45=0;void readfiles();/声明函数void caidan(); void gerenxiaoshoue();void jisuan();void xiaoshouepaiming();void chanpingxiaoshoue();void tongjibaobiao();exit();/【主函数】main()caidan();/调用菜单选项void caidan() /菜单选项int n,w;doputs(tt*菜单*nn);puts(tttt 1.个人销售额查看);puts(tttt 2.产品销售额排序);puts(tttt 3.产品销售额);puts(tttt 4.统计报表);puts(tttt 5.退出);puts(nntt*n);printf(请输入你的选择(1-5): bb);scanf(%d,&n);if(n5)w=1;getchar();else w=0;while(w=1);switch(n)case 1:gerenxiaoshoue();break;case 2:xiaoshouepaiming();break;case 3:chanpingxiaoshoue();break;case 4:tongjibaobiao();break;case 5:exit(0);/结构体struct sellnoteint xsydh; /销售员代号(14)int cpdh; /产品代号(15)float xse; /销售额snoteN;/【模块1】:个人销售额查看void gerenxiaoshoue()readfiles(); jisuan(); /计算并显示每个销售员每种产品的销售额caidan();void readfiles() /读取信息函数FILE *fp;int i;if(fp=fopen(biantiao.txt,r)=NULL)printf(nCannot open filen);for(i=0;!feof(fp);i+)fscanf(fp,%d%d%f,&snotei.xsydh,&snotei.cpdh,&snotei.xse);fclose(fp);void jisuan()/计算函数int i,j,k; /i表示销售员代号,j表示产品代号,k用来标记便条号码for(i=0;i4;i+)/计算每个销售员每种产品的销售额for(j=0;j5;j+)for(k=0;kN;k+)if(snotek.xsydh=i&snotek.cpdh=j)countij=snotek.xse;for(i=0;i4;i+)for(j=0;j5;j+)printf(第%d个销售员第%d种产品销售额是:t,i+1,j+1);printf(%fn,countij);/【模块2】:产品销售额排序void xiaoshouepaiming()float a4=0; int i,j,k;float b4,t; readfiles();for(i=0;i4;i+)/计算每个销售员的销售额for(k=0;kN;k+)if(snotek.xsydh=i) ai+=snotek.xse;printf(按销售额从高到低对销售员进行排序是:n);for(i=0;i4;i+)bi=ai;for(i=0;i4;i+)/对销售额排序for(j=i+1;j4;j+)if(aiaj)t=ai,ai=aj,aj=t;for(k=0;k4;k+)/对产品代号排序for(i=0;i4;i+)if(ak=bi)printf(%dt,i+1);caidan();/【模块3】:产品销售额void chanpingxiaoshoue()float a5=0;int i,j,k;float b5,t;readfiles();for(i=0;i5;i+)/计算每种产品的销售额for(k=0;kN;k+)if(snotek.cpdh=i)ai+=snotek.xse;printf(统计销售额,对产品按从高到低排序,输出产品代号和销售额:n);for(i=0;i5;i+)bi=ai;for(i=0;i5;i+)/对销售额排序for(j=i+1;j5;j+)if(aiaj)t=ai,ai=aj,aj=t;for(k=0;k5;k+)/对产品代号排序for(i=0;i5;i+)if(ak=bi)printf(第%d种产品的销售额是:%fn,i+1,ak);caidan();/【模块4】:统计报表void tongjibaobiao() float a4,b5,c=0;int i,j,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论