C语言课程设计--销售管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C)计算机高级语言课程设计(
姓名:学号:院(系):专业:指导教师:职称
月2010年09
题目:销售管理系统
月年09时间:2010 【问题描述】。
每个销售),负责销售五种产品(编号:1~5
某公司有四个销售员(编号:1~4)销售1)员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:(3)这种产品当天的销售额员的代号(2)产品的代号(编写一张便条。
假设收集到了上个月的所有便条,每位销售员每天可能上缴0~5 个处理系统,读取上个月的销售情况(自己设定)。
【基本要求】计算上个月每人每种产品的销售额。
(1)按销售额对销售员进行排序,输出排序结果(销售员代号))(2
统计每种产品的总销售额,对这些产品按从高到低的顺序输出排序结果(3)(需输出产品的代号和销售额)输出统计报表4)(
、需求分析1根据题目的要求采用结构体数组和文件系统实现,结构体成员包括销售员代
号,产品代号,销售额。
排序算法采用选择排序算法。
输出统计报表形式按照题目给出的形式在屏幕上相应位置输出内容。
、设计2 )设计思想(1 1)定义如下:struct goods
{int p_num;
int num;
int g_num;
} s[max];
struct persons
{int num[7];
}p[6],w;
int n=max;/
2)文件结构
总共有如下文件:
<stdio.h>stdio.h就是指“standard input&output :
意思就是说标准输入输出头文件!所以了,用到标准输入输出函数时,就要调用这个头文件!
<conio.h>:conio.h不是C标准库中的头文件。
conio是Console Input/Output (控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作。
3)计算每个人每种产品的销售额,每种产品的销售额,每个人的销售额
int arg()
{
int k,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<n;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)统计每个人每种产品的销售额
int output1()
{ int i,k;
printf(**************The condition of everyone's g_mon last month:**********\n\n);
printf(g_num \np_num\t);
for(k=1;k<=5;k++)
printf(%d\t,p[0].num[k]);
printf(\
\n);
for(i=1;i<=4;i++)
{
for(k=0;k<=5;k++)
printf(%d\t,p[i].num[k]);
printf(\
\n);
}
mulu();
}
5)按销售额对销售员进行排序,输出排序结果(销售员代号)
int output2()
{
int i,k,j;
for(i=1;i<4;++i)
{
k=i;
for(j=i+1;j<=4;j++)
if(p[k].num[6]<p[j].num[6])
k=j;
if(k!=i)
{ w=p[i];
p[i]=p[k];
p[k]=w;
}
}
printf(\
\n\n\n\n\n*********Order of people by goods'
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)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果int output3()
{
int k,i,r,t;
for(k=1;k<5;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*****Order of each good by total sum*****\n\n);
printf( g_num sum_mon\n);
for(k=1;k<=5;k++)
printf( %d\t\t%d \n,p[0].num[k],p[5].num[k]);
mulu();
}
7)输出统计报表
int output4()
{ int i,k;
int flage=0;
printf(\
\t\t****Report forms of goods****\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);
}
printf( otal\t);
for(k=1;k<=6;k++)
printf(%d\t,p[5].num[k]);
8)保存文件
int save()
{
FILE *fp;
int i,k;
if((fp=fopen(date.txt,w))==NULL)
{
printf(\
Can not open the file,please press any key to escape!);
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,\
\n);
}
fprintf(fp, otal );
for(k=1;k<=6;k++)
fprintf(fp,%d\t,p[5].num[k]);
fclose(fp);
(2)总体设计
#include<stdio.h>
#include<conio.h> /*控制台输入输出*/ #define max 620
struct goods
{int p_num;
int num;
int g_num;
} s[max];
struct persons
{int num[7];
}p[6],w;
/*主函数*/
int n=max;/*全局变量*/
main()
{
int input(), output1(),output2(),output3(),output4();
int arg(),mulu();
int save();
printf( \n\n\n \t\t\t *******THE PROJECT********\n\n\n);
printf(Please input the informations :(over to 0)\n\n p_num(1~4) g_num(1~5) g_mon\n);
printf(\
);
for(n=0;n<max;n++)
{scanf(%d,&s[n].p_num);
if(s[n].p_num!=(0))scanf(%d%d,&s[n].g_num,&s[n].num),
printf(\
);
else break;
}
mulu();
}
/*目录*/
int mulu()
{int choice;
arg();
do
{
*******THE PROJECT********\n\n); printf( \n\n \t\t\t
\n); printf(.计算上个月每个人每种产品的销售额
\n); 输出排序结果,按销售额对销售员进行排序printf(.
printf(.统计每种产品的总销售额,对这这些产品按从高到低的顺序输出排序结果\n);
printf(
.输出统计表\n\n);
printf(退出\n\n);
printf(Please Choose (0-4):);
scanf(%d,&choice);
switch(choice)
{
case 1: output1(); break;
case 2: output2(); break;
case 3: output3(); break;
case 4: output4(); break;
case 0: exit(0); break;
}
}while(choice!=0);return 1;
}
int arg()
{
int k,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<n;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]; /*每个人的销售额*/
return 1;
}
int output1()
{ int i,k;
printf(**************The condition of everyone's g_mon last month:**********\n\n);
printf(g_num \np_num\t);
for(k=1;k<=5;k++)
printf(%d\t,p[0].num[k]);
printf(\
\n);
for(i=1;i<=4;i++)
{
for(k=0;k<=5;k++)
printf(%d\t,p[i].num[k]);
printf(\
\n);
}
mulu();return 1;
}
/*按销售额对销售员进行排序,输出排序结果(销售员代号)*/
int output2()
{
int i,k,j;
for(i=1;i<4;++i)
{
k=i;
for(j=i+1;j<=4;j++)
if(p[k].num[6]<p[j].num[6])
k=j;
if(k!=i)
{ w=p[i];
p[i]=p[k];
p[k]=w;
}
}
printf(\
\n\n\n\n\n*********Order of people by goods' 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();return 1;
}
/*统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果*/ int output3()
{
int k,i,r,t;
for(k=1;k<5;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*****Order of each good by total sum*****\n\n);
printf( g_num sum_mon\n);
for(k=1;k<=5;k++)
printf( %d\t\t%d \n,p[0].num[k],p[5].num[k]);
mulu();return 1;
}
/* 输出统计报表*/
int output4()
{ int i,k;
int flage=0;
printf(\
\t\t****Report forms of goods****\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);
}
printf(otal\t);
for(k=1;k<=6;k++)
printf(%d\t,p[5].num[k]);
if(flage==0) /*保证只存一次,到(date.txt)*/
{ save();
flage=1;
printf(\
\nThe information has been saved successfully!-(File:date.txt));
}
mulu(); return 1;
}
/*保存文件*/
int save()
{
FILE *fp;
int i,k;
if((fp=fopen(date.txt,w))==NULL)
{
printf(\
Can not open the file,please press any key to escape!);
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,\
\n);
}
fprintf(fp,otal );
for(k=1;k<=6;k++)
fprintf(fp,%d\t,p[5].num[k]);
fclose(fp);return 1;
}3、附图
4、总结
本次C语言课程设计对我来说是一个挑战。
因为虽然之前对C语言进行过一定的学习,但开始接触的无非是变量,函数,条件语句。
循环语句等基本概念,要真正能进行编程应用,需要在在深入理解这些概念的基础上应用,不要只简单地学习语法,结构,而要吃透针对这些语法结构的应用例子,做到触类旁通。
此次C语言课程设计历时七天,虽说不上一波三折,但过程绝不轻松。
对C语言进行学习已经是上上个学期的事情了,如今在过了快半年多之后再进行课程设计,难免前面的知识会遗忘,这对课程设计的开展无疑是一个阻碍。
刚开始根本觉得无从下手,前面两天基本什么都没做,一心一意看了两天书,感觉才好一点,那些基础的知识觉得又回来了,这才开始进行设计。
都说万事开头难,虽然头是开了,但后面的工作远没有想象中的简单和顺利。
因为从来没有接触过这方面的东西,做起来肯定会有一点吃力,很多次都没有勇气继续下去了,自己都对自己没有信心了,一个模块要编好长时间,而且运行起来还是错误百出,急也急死人,幸好在同学和朋友的鼓励之下坚持了下来,好多地方不清楚的,就问一下学计算机的朋友,然后回去自己再进行思考,揣摩,尽量把它消化吸收,变成自己的东西,因为既然付出了时间和努力,就要学到一些东西,不虚度光阴才好。
.。