C语言课程设计销售管理系统.docx

上传人:b****6 文档编号:5918492 上传时间:2023-01-02 格式:DOCX 页数:16 大小:116.90KB
下载 相关 举报
C语言课程设计销售管理系统.docx_第1页
第1页 / 共16页
C语言课程设计销售管理系统.docx_第2页
第2页 / 共16页
C语言课程设计销售管理系统.docx_第3页
第3页 / 共16页
C语言课程设计销售管理系统.docx_第4页
第4页 / 共16页
C语言课程设计销售管理系统.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言课程设计销售管理系统.docx

《C语言课程设计销售管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计销售管理系统.docx(16页珍藏版)》请在冰豆网上搜索。

C语言课程设计销售管理系统.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1