C语言课程设计销售管理系统.docx
- 文档编号:5918492
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:16
- 大小:116.90KB
C语言课程设计销售管理系统.docx
《C语言课程设计销售管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计销售管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
C语言课程设计销售管理系统
计算机高级语言课程设计(C)
姓名:
学号:
院(系):
专业:
指导教师:
职称
2010年09月
题目:
销售管理系统
时间:
2010年09月
【问题描述】
某公司有四个销售员(编号:
1~4),负责销售五种产品(编号:
1~5)。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:
(1)销售员的代号
(2)产品的代号(3)这种产品当天的销售额
每位销售员每天可能上缴0~5张便条。
假设收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定)。
【基本要求】
(1)计算上个月每人每种产品的销售额。
(2)按销售额对销售员进行排序,输出排序结果(销售员代号)
(3)统计每种产品的总销售额,对这些产品按从高到低的顺序输出排序结果(需输出产品的代号和销售额)
(4)输出统计报表
1、需求分析
根据题目的要求采用结构体数组和文件系统实现,结构体成员包括销售员代号,产品代号,销售额。
排序算法采用选择排序算法。
输出统计报表形式按照题目给出的形式在屏幕上相应位置输出内容。
2、设计
(1)设计思想
1)定义如下:
structgoods
{intp_num;
intnum;
intg_num;
}s[max];
structpersons
{intnum[7];
}p[6],w;
intn=max;/
2)文件结构
总共有如下文件:
stdio.h就是指“standardinput&output"
意思就是说标准输入输出头文件!
所以了,用到标准输入输出函数时,就要调用这个头文件!
conio.h不是C标准库中的头文件。
conio是ConsoleInput/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作。
3)计算每个人每种产品的销售额,每种产品的销售额,每个人的销售额
intarg()
{
intk,a,j;
for(k=1;k<=5;k++)
{p[0].num[k]=k;
for(a=1;a<=6;a++)
p[k].num[a]=0;
}
for(k=1;k<=4;k++)
p[k].num[0]=k;
for(k=1;k<=4;k++)
for(a=1;a<=5;a++)
for(j=0;j if(s[j].p_num==k&&s[j].g_num==a) p[k].num[a]+=s[j].num;/*每个人每种产品的销售额*/ for(a=1;a<=5;a++) for(k=1;k<=4;k++) p[5].num[a]=p[5].num[a]+p[k].num[a];/*每种产品的销售额*/ for(k=1;k<=5;k++) for(a=1;a<=5;a++) p[k].num[6]+=p[k].num[a];/*每个人的销售额*/ } 4)统计每个人每种产品的销售额 intoutput1() {inti,k; printf("**************Theconditionofeveryone'sg_monlastmonth: **********\n\n"); printf("g_num\np_num\t"); for(k=1;k<=5;k++) printf("%d\t",p[0].num[k]); printf("\n\n"); for(i=1;i<=4;i++) { for(k=0;k<=5;k++) printf("%d\t",p[i].num[k]); printf("\n\n"); } mulu(); } 5)按销售额对销售员进行排序,输出排序结果(销售员代号) intoutput2() { inti,k,j; for(i=1;i<4;++i) { k=i; for(j=i+1;j<=4;j++) if(p[k].num[6] k=j; if(k! =i) {w=p[i]; p[i]=p[k]; p[k]=w; } } printf("\n\n\n\n\n\n*********Orderofpeoplebygoods'sum**********\n\n"); printf("p_num\tsum_mon\n"); for(i=1;i<=4;i++) printf("%d\t\t%d\n",p[i].num[0],p[i].num[6]); mulu(); } 6)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果 intoutput3() { intk,i,r,t; for(k=1;k<5;k++) { r=k; for(t=k+1;t<=5;t++) if(p[5].num[r] if(r! =k) for(i=0;i<=5;i++) {p[i].num[6]=p[i].num[k]; p[i].num[k]=p[i].num[r]; p[i].num[r]=p[i].num[6]; } } printf("\n\n\n\n\n*****Orderofeachgoodbytotalsum*****\n\n"); printf("g_numsum_mon\n"); for(k=1;k<=5;k++) printf("%d\t\t%d\n",p[0].num[k],p[5].num[k]); mulu(); } 7)输出统计报表 intoutput4() {inti,k; intflage=0; printf("\n\t\t****Reportformsofgoods****\n\n\n"); printf("g_num\np_num\t1\t2\t3\t4\t5\tsum\n\n"); for(i=1;i<=4;i++) {for(k=0;k<=6;k++) printf("%d\t",p[i].num[k]); printf("\n\n"); } printf("total\t"); for(k=1;k<=6;k++) printf("%d\t",p[5].num[k]); 8)保存文件 intsave() { FILE*fp; inti,k; if((fp=fopen("date.txt","w"))==NULL) { printf("\nCannotopenthefile,pleasepressanykeytoescape! "); exit (1); } fprintf(fp,"g_num\r\np_num\t1\t2\t3\t4\t5\tsum\r\n"); for(i=1;i<=4;i++) {for(k=0;k<=6;k++) fprintf(fp,"%d\t",p[i].num[k]); fprintf(fp,"\r\n"); } fprintf(fp,"total"); for(k=1;k<=6;k++) fprintf(fp,"%d\t",p[5].num[k]); fclose(fp); 3)程序流程图 NY YN (2)总体设计 #include #include #definemax620 structgoods {intp_num; intnum; intg_num; }s[max]; structpersons {intnum[7]; }p[6],w; /*主函数*/ intn=max;/*全局变量*/ main() { intinput(),output1(),output2(),output3(),output4(); intarg(),mulu(); intsave(); printf("\n\n\n\t\t\t*******THEPROJECT********\n\n\n"); printf("Pleaseinputtheinformations: (overto0)\n\np_num(1~4)g_num(1~5)g_mon\n"); printf("\n"); for(n=0;n {scanf("%d",&s[n].p_num); if(s[n].p_num! =(0))scanf("%d%d",&s[n].g_num,&s[n].num), printf("\n"); elsebreak; } mulu(); } /*目录*/ intmulu() {intchoice; arg(); do { printf("\n\n\t\t\t*******THEPROJECT********\n\n"); printf("1.计算上个月每个人每种产品的销售额\n"); printf("2.按销售额对销售员进行排序,输出排序结果\n"); printf("3.统计每种产品的总销售额,对这这些产品按从高到低的顺序输出排序结果\n"); printf("4.输出统计表\n\n"); printf("0.退出\n\n"); printf("PleaseChoose(0-4): "); scanf("%d",&choice); switch(choice) { case1: output1();break; case2: output2();break; case3: output3();break; case4: output4();break; case0: exit(0);break; } }while(choice! =0);return1; } intarg() { intk,a,j; for(k=1;k<=5;k++) {p[0].num[k]=k; for(a=1;a<=6;a++) p[k].num[a]=0; } for(k=1;k<=4;k++) p[k].num[0]=k; for(k=1;k<=4;k++) for(a=1;a<=5;a++) for(j=0;j if(s[j].p_num==k&&s[j].g_num==a) p[k].num[a]+=s[j].num;/*每个人每种产品的销售额*/ for(a=1;a<=5;a++) for(k=1;k<=4;k++) p[5].num[a]=p[5].num[a]+p[k].num[a];/*每种产品的销售额*/ for(k=1;k<=5;k++) for(a=1;a<=5;a++) p[k].num[6]+=p[k].num[a];/*每个人的销售额*/ return1; } intoutput1() {inti,k; printf("**************Theconditionofeveryone'sg_monlastmonth: **********\n\n"); printf("g_num\np_num\t"); for(k=1;k<=5;k++) printf("%d\t",p[0].num[k]); printf("\n\n"); for(i=1;i<=4;i++) { for(k=0;k<=5;k++) printf("%d\t",p[i].num[k]); printf("\n\n"); } mulu();return1; } /*按销售额对销售员进行排序,输出排序结果(销售员代号)*/ intoutput2() { inti,k,j; for(i=1;i<4;++i) { k=i; for(j=i+1;j<=4;j++) if(p[k].num[6] k=j; if(k! =i) {w=p[i]; p[i]=p[k]; p[k]=w; } } printf("\n\n\n\n\n\n*********Orderofpeoplebygoods'sum**********\n\n"); printf("p_num\tsum_mon\n"); for(i=1;i<=4;i++) printf("%d\t\t%d\n",p[i].num[0],p[i].num[6]); mulu();return1; } /*统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果*/ intoutput3() { intk,i,r,t; for(k=1;k<5;k++) { r=k; for(t=k+1;t<=5;t++) if(p[5].num[r] if(r! =k) for(i=0;i<=5;i++) {p[i].num[6]=p[i].num[k]; p[i].num[k]=p[i].num[r]; p[i].num[r]=p[i].num[6]; } } printf("\n\n\n\n\n*****Orderofeachgoodbytotalsum*****\n\n"); printf("g_numsum_mon\n"); for(k=1;k<=5;k++) printf("%d\t\t%d\n",p[0].num[k],p[5].num[k]); mulu();return1; } /*输出统计报表*/ intoutput4() {inti,k; intflage=0; printf("\n\t\t****Reportformsofgoods****\n\n\n"); printf("g_num\np_num\t1\t2\t3\t4\t5\tsum\n\n"); for(i=1;i<=4;i++) {for(k=0;k<=6;k++) printf("%d\t",p[i].num[k]); printf("\n\n"); } printf("total\t"); for(k=1;k<=6;k++) printf("%d\t",p[5].num[k]); if(flage==0)/*保证只存一次,到(date.txt)*/ {save(); flage=1; printf("\n\nTheinformationhasbeensavedsuccessfully! -(File: date.txt)"); } mulu();return1; } /*保存文件*/ intsave() { FILE*fp; inti,k; if((fp=fopen("date.txt","w"))==NULL) { printf("\nCannotopenthefile,pleasepressanykeytoescape! "); exit (1); } fprintf(fp,"g_num\r\np_num\t1\t2\t3\t4\t5\tsum\r\n"); for(i=1;i<=4;i++) {for(k=0;k<=6;k++) fprintf(fp,"%d\t",p[i].num[k]); fprintf(fp,"\r\n"); } fprintf(fp,"total"); for(k=1;k<=6;k++) fprintf(fp,"%d\t",p[5].num[k]); fclose(fp);return1; }3、附图 4、总结 本次C语言课程设计对我来说是一个挑战。 因为虽然之前对C语言进行过一定的学习,但开始接触的无非是变量,函数,条件语句。 循环语句等基本概念,要真正能进行编程应用,需要在在深入理解这些概念的基础上应用,不要只简单地学习语法,结构,而要吃透针对这些语法结构的应用例子,做到触类旁通。 此次C语言课程设计历时七天,虽说不上一波三折,但过程绝不轻松。 对C语言进行学习已经是上上个学期的事情了,如今在过了快半年多之后再进行课程设计,难免前面的知识会遗忘,这对课程设计的开展无疑是一个阻碍。 刚开始根本觉得无从下手,前面两天基本什么都没做,一心一意看了两天书,感觉才好一点,那些基础的知识觉得又回来了,这才开始进行设计。 都说万事开头难,虽然头是开了,但后面的工作远没有想象中的简单和顺利。 因为从来没有接触过这方面的东西,做起来肯定会有一点吃力,很多次都没有勇气继续下去了,自己都对自己没有信心了,一个模块要编好长时间,而且运行起来还是错误百出,急也急死人,幸好在同学和朋友的鼓励之下坚持了下来,好多地方不清楚的,就问一下学计算机的朋友,然后回去自己再进行思考,揣摩,尽量把它消化吸收,变成自己的东西,因为既然付出了时间和努力,就要学到一些东西,不虚度光阴才好。 通过此次C语言课程设计,温习了旧的知识,同时又学到了新的东西,比如文件和结构体方面的内容,还学会了一些简单的数据结构和算法,同时也熟练了上机操作,真可谓是收获匪浅!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 销售 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)