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;jif(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语言课程设计,温习了旧的知识,同时又学到了新的东西,比如文件和结构体方面的内容,还学会了一些简单的数据结构和算法,同时也熟练了上机操作,真可谓是收获匪浅!