C语言课程设计销售管理系统Word格式文档下载.docx
《C语言课程设计销售管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言课程设计销售管理系统Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
……………………
…………………………………5
附件
:
源程序清单
…………
设计内容与设计要求
系统功能简介
⏹系统
有简单的
菜单
界面,用户可以通过输入简单的选项来完成相
应的
工作
。
⏹选定一种产品,按销售额的顺序对销售员进行排序,输出排序结果。
⏹统计每种产品的总销售额,输出排序结果。
⏹输出统计报表。
系统运行环境
Vc++6.0
下运行,硬件基
本无要求,现在的计算机系统
基本
都
可以运行该系统。
功能划分,模块详细说明
系统的功能是通过子函数调用的方式来完成的,下面对程序中用到的函数
及其功能做一下说明。
●void
menu():
显示主菜单界面。
data_count(data
*x):
以写方式打开文件,对商品信息清零,读
入职工编号、产品编号、销售量等信息,对相同职工的相同产品的销售量
求和后写入文件。
range_sxy(data
以读方式打开文件,读入信息,输入按何
种产品排序后对存储职工编号的数组进行排序,最后输出新序的职工编号
信息。
range_shangpin(data
从文件读入信息,对每项产品的销售
量求和,按每项产品的总销售量排序。
data_out(data
打开文件,读入信息,求所有产品的销售量
的和,输出统计表。
main():
主函数,调用以上函数,完成相应功能。
程序
流程图
整体流程图
如图
3-1
所示
:
开始
菜单
计算产品销
售额
按销售额对
销售员排序
统计每种产品
的总销售额,
输出统计
报表
退出
排序
结束
图
整体流程图
系统的运行
及说明
系统的运行
系统初始运行时,会显示如图
4-1
的菜单
界面
,用户可以根
据提示,进行相应的选择,来完成系统提供的各种功能。
输入界面
2
当选择
时,系统调用函数void
*x),完成相应的
功能。
运行界面如图
4-2
所示,系统会要求用户输入月份,然后要求输入这个
月份中是哪个职工销售的哪项产品的数量的具体信息,我们的系统假设有四个
职工,职工编号从
至
4,一共有
项产品,产品编号从
5。
职工和产品的
数目都可以更改,只要修改一下程序中的宏定义语句即可。
计算产品销售额界面
时,系统调用
void
*x),完成相应部分的
4-3
所示,系统会要求用户输入月份,然后排序的产品编
号,最后给出此项产品的按照销售量的大小进行的销售员的编号的排序情况。
按销售额对销售员排序的界面
3
*x),完成对每项商品
的总销售量排序的功能,运行界面如图
4-4
所示:
产品总销售额排序界面
*x),完成输出统计表
的功能,统计内容如图4-5
4-5
统计
报表
界面
说明
首次打开系统必须输入一部分员工信息,如果没有员工信息文件,除
了输入功能以外,其它的功能将自动禁止,按任意键退出程序。
输入时,按照提示陆续输入每个员工的单个信息,输入完毕,选择
“0
”,程序
将自动回到菜单选择界面。
其它的功能模块都在执行程序时有相应的提示,非常容易操作。
总结
通过这次实习,让我
们
初步有了编写系统的能力,我们
对很多的
函数有了新的认识,也学会了运用多种函数,也明白了编写软件的基本
过程,和基本方法。
编写软件的过程中我们
又学到了曾经自己不知道
的函数或是自己不会的函数的用法。
这次课程设计课总的来说让我受益
匪浅。
在软件的设计过程中遇到了很多的困难。
在软件一次一次的调试失败
下,曾经想过要放弃。
我最后还是让自己坚持了下来,毫不畏惧困难,
在同学的帮助与讲解下我总算是顺利的完成了软件的设计。
在程序的编写过程中我
发现有很多的知识漏洞和缺陷,需要进一
步努力学习来完善自己。
在这几天的编写过程中我们
对
c
语言有了更进一步的认识和了解。
此次编程过程的经验和知识肯定能促进我以后的学习。
此次课程设计不仅给了我们
很多很好的经验,也
让
我
体会到了
失败时的焦急和难受,也体会到了成功时的兴奋与喜悦。
源程序清单
#include
<
stdio.h>
string.h>
conio.h>
stdlib.h>
#define
Z
5
R
4/*定义宏常量便于程序的一般化*/
/*R表示销售员个数*/
typedef
struct/*缩短结构体变量名*/
{
int
shangpin[Z];
/*定义结构体便于信息的存储和读写,辨别*/
/*z是表示商品的种类,最后一个为该销售员商品总和*/
}data;
menu()
{printf("
*******************************************************\n"
);
printf("
0.结束操作\n"
1.计算上个月每个人每种产品的销售额\n"
2.按销售额对销售员进行排序,输出排序结果\n"
3.统计每种产品的总销售额,输出排序结果\n"
4.输出统计报表\n"
******************************************************\n"
}
*x)/*计算上个月每个人每种产品的销售额*/
FILE
*fp;
char
fname[10];
j,t;
/*用于控制循环*/
i,k,s;
/*用于定义职工序号,产品序号,产品数量*/
system("
cls"
您想计算哪个月?
\n"
请输入月份:
"
/*输入文件名,这样可以进行各个月份信息写入*/
scanf("
%s"
fname);
strcat(fname,"
.txt"
if((fp=fopen(fname,"
wb"
))==NULL)/*打开文件*/
can
not
open
the
file\n"
6
exit(0);
for(j=0;
j<
R;
j++)/*对商品数量清零*/
for(t=0;
t<
Z;
t++)
(x+j)->
shangpin[t]=0;
please
put
information
about
职工编号,产品编号,销售
数量\n"
/*写入信息*/
;
j++)
%d%d%d"
&
i,&
k,&
s);
if(i==0)/*输入职工为0时结束信息输入*/
break;
if(i>
R||i<
0||k>
Z||k<
0)
error!
/*避免输入信息出错*/
continue;
else
(x+i-1)->
shangpin[k-1]=(x+i-1)->
shangpin[k-1]+s;
/*统计各个人的各种
产品的数量,-1为了和数组中的序号相匹配*/
if(fwrite((x+j),sizeof(data),1,fp)!
=1)/*把信息写入文件中便有以
后调用*/
write
fclose(fp);
/*关闭文件避免信息遗漏*/
*x)/*按销售额对销售员进行排序,输出排序结果*/
7
i,k,j,t,bianhao[R]={0},z;
你要哪个月的?
/*输入文件名,这样可以进行各个月份信息读入*/
rb"
for(i=0;
i<
i++)/*读出信息*/
if(fread(x+i,sizeof(data),1,fp)!
=1)
读入信息出错!
/*读入信息提示*/
)/*用于存储职工编号*/
bianhao[i]=i++;
请输入按何种产品排序\n"
%d"
k);
k=k-1;
/*便于与结构体中的数组值对应*/
i++)/*按K种产品对销售员排序,选择法排序*/
t=i;
for(j=i+1;
if((x+bianhao[t])->
shangpin[k]<
(x+bianhao[j])->
shangpin[k])/*调用
职工各自对应的结构体内的产品数量*/
t=j;
if(t!
=i)
8
z=bianhao[i];
bianhao[i]=bianhao[t];
bianhao[t]=z;
按%d产品对销售员排序为:
k+1);
i++)
%5d"
bianhao[i]+1);
getch();
*x)/*统计每种产品的总销售额,输出排序结果
*/
i,j,sum[Z]={0},bianhao[Z]={0},z,t,k;
您想计算哪个月的?
9
i++)/*对各种商品求和*/
sum[i]=sum[i]+(x+j)->
shangpin[i];
)/*用于存储商品编号*/
%3d"
bianhao[i]);
i++)/*对产品从高到低排序,选择法排序*/
j++)/*产品变化时,产品编号也随之变化,便于输出*/
if(sum[t]<
sum[j])
k=sum[i];
sum[i]=sum[t];
sum[t]=k;
输出产品排序\n"
产品编号数量\n"
%-10d%-10d\n"
bianhao[i]+1,sum[i]);
10
*x)/*输出统计报表*/
i,j,sum[Z+1]={0};
i++)/*求商品总和*/
sum[Z]=sum[Z]+sum[i];
输出统计报表如下:
/*按要求输出统计表*/
产品代号销售之和销售员代号\n"
11
%-10d%-10d%-10d\n"
j+1,(x+i)->
shangpin[j],i+1);
***********************************\n"
if(i==0)
%d产品之和
%-10d总和%-10d\n"
i+1,sum[i],sum[Z]);
%-10d\n"
i+1,sum[i]);
main()
i,choice;
data
sxy[R];
/*R表示职工的个数,前面的宏常量*/
/*清频命令*/
menu();
/*菜单函数提示用户怎样选择*/
你想做什么?
请选择:
/*输入要进行的操作*/
choice);
if(choice==0)/*退出程序*/
switch(choice)
case
data_count(sxy);
/*计算上个月每个人每种产品的销售额
12
range_sxy(sxy);
/*按销售额对销售员进行排序,输出排
序结果*/
range_shangpin(sxy);
/*统计每种产品的总销售额,输出
排序结果*/
data_out(sxy);
/*输出统计报表*/
13