您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言课程设计及解决方案
C语言课程设计及解决方案程序编写:贾朋远学院:地学院班级序号:01105408一题目要求某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品的当天的销售额每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。1)计算上个月每个人每种产品的销售额。2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4)输出统计报表二需求分析可以采用结构体数组和文件系统实现。结构体成员包括销售员代号,产品代号,销售额。排序算法可以采用冒泡法或选择排序法。输出报表可在屏幕相应位置输出即可。三总体设计销售管理系统1输入销售员代号,产品代号,各产品销售额2计算相应各产品销售之和,及销售总和3排序4输出报表报表形式如下:销售统计报表产品代号销售之和销售员代号123451234每种产品之和总和四详细设计1主函数#includestdio.h#includeconio.h#definemax620intn;/*全局变量*/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;nmax;n++){scanf(%d,&s[n].p_num);if(s[n].p_num==(0))break;elsescanf(%d%d,&s[n].g_num,&s[n].num);printf(------------------------------------------------------------------\n);}mulu();}2结构体设计structgoods{intp_num;intnum;intg_num;}s[max];structpersons{intnum[7];}p[6],work;3被调用函数的设计/*目录*/intmulu(){intchoice;arg();do{printf(\n\n\t\t\t*******THEPROJECT********\n\n);printf(1.counttheg_monofeachgoodseverypeopleproductslastmonth\n);printf(2.putthepeopleinorderbyg_monandoutputtheresultbyp_num\n);printf(3.countthetotalg_mon,outputtheresultinorderfromhightolow\n);printf(4.outputthereportformofgoods\n\n);printf(0.exit\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);}}while(choice!=0);}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;jn;j++)if(s[j].p_num==k&&s[j].g_num==a)p[k].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[6]+p[k].num[a];}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();}/*按销售额对销售员进行排序,输出排序结果(销售员代号)*/intoutput2(){inti,r,j;for(i=1;i4;++i){r=i;for(j=i+1;j=4;j++)if(p[r].num[6]p[j].num[6])r=j;if(r!=i){w=p[i];p[i]=p[r];p[r]=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();}/*统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果*/intoutput3(){intk,i,r,t;for(k=1;k5;k++){r=k;for(t=k+1;t=5;t++)if(p[5].num[r]p[5].num[t])r=t;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();}/*输出统计报表*/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();}/*保存文件*/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);}五上机操作1数据源2编译,连接,运行3结果六总结通过这次上机实习使我对C语言有了更为全面深刻的认识,使我进一步理解运用结构化程序设计的思想和方法,学会了用流程图表示算法。初步掌握了开发一个小型实用系统的基本方法,学会了调试一个较长程序的基本方法,
本文标题:C语言课程设计及解决方案
链接地址:https://www.777doc.com/doc-3180435 .html