C语言学生信息管理系统报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
销售信息统计管理系统
一.任务描述
某公司有4个销售员,负责销售5种产品。每个销售员都将当日销售的每种产品各写一张便条提交给公司。每张便条内容有:
1、销售员的编号
2、销售产品的代号产品
3、产品销售量
根据需求,此系统提供以下功能:
1、以菜单界面呈现。
2、信息录入功能。
3、信息查询功能。(包括查询某销售员的各产品销售量,某种产品的销售总量,某销售员的总销售额)
4、销量排序功能。
5、生成统计报表功能。
本系统采用结构体数组以及数据文件的技术,将输入的数据用结构体数组保存,并提供文件的保存与读取。在程序中要进行统计工作,所以提供显示、排序等操作,另外应提供键盘式选择菜单实现功能选择
本程序使用C语言。
此程序在vc++6.0上调试通过。
二.功能实现设计
1.总体设计
根据上面的分析,将这个程序分为四大模块。——1.销售信息录入。2.查询信息3.文件的保存。4.文件的读取
查询系统包括1.各个销售员销售额。2.销售总额以及排序。3各产品销售总额及热度。4.总信息统计生成报表。
2.流程图
3.详细设计
①【数据结构】typedef struct {
int name;
int a1;
int a2;
int a3;
int a4;
int a5;
}
SYS;/*定义数组*/
②【功能函数声明】
int menu();/*选择菜单函数声明*/
int menu_1();/*子菜单函数声明*/
int enter(SYS t[]);/*进入函数声明*/
void salor(SYS t[],int n);/*声明函数*/
int sum(SYS t[],int n,int m);/*统计函数声明*/
void list1(SYS t[],int n);/*菜单1函数声明*/
void list2(SYS t[],int n);/*菜单2函数声明*/
void list3(SYS t[],int n);/*菜单3函数声明*/
void save(SYS t[],int n);/*保存文件函数声明*/
int load(SYS t[]);/*读取函数声明*/
SYS ste[100];
int len;/*全局变量定义*/
③【主函数】
void main()
{ system("cls");
for( ; ; )
{
switch(menu())/*根据用户的选择判断该调用哪个功能函数*/ {
case 1:len=enter(ste);break;
case 2:menu_1();break;
case 3:save(ste,len);break;
case 4:len=load(ste);break;
case 0:exit(0);
}}}
④【主菜单函数】
打印出菜单功能选项,包括便条清单输入、信息查询、储存文件、读取文件和退出5个选项。根据用户的选择判断该调用哪个功能函数,则输入相应的选项代号n(0-4)以运行该功能选项。
如下图所示
⑤【清单输入函数】int enter(SYS t[])
清屏之后输出提示语“请输入便条的信息”,按提示语输入便条信息,输入数据的同时,已将该信息存入开始已定义的结构体数组typedef struct SYS t[ ]中,以便在排序功能选项、统计功能选项、输出清单列表选项等功能选项中读取信息,进行编辑,阅读。输入结束以信息全为零而结束清单输入,返回主菜单。
⑥【便条信息查询函数】void salor(SYS t[],int n)
进入查询功能,出现提示语“输入所要查看的售货员的代号”,输入销售员的代号(1-4),通过循环判断读取输入的销售员代号(s)来进行对信息的阅读。
⑦【求和函数】int sum(SYS t[],int n, int e)
定义初始值sum=0通过对销售员代号的循环和判断(当销售员代号与传递的e值相同),累加并统计同一个销售员销售不同种产品的销售额信息,返回统计值sum,以便调用。
⑧【排序函数】void list1 (SYS t[],int n)
调用求和函数返回的统计值sum (使c[i]=sum(t,n,m[i])),按销售员的总销售额进行从大到小排序,输出销售员的代号m[i]。
⑨【销售额情况的函数调用】void list2(SYS t[],int n)
调用求和函数使c[i]=sum(t,n,i+1),累加并统计每个人销售每种产品的总销售额和所有销售员销售的所有产品的总销售额,再将每个人销售每种产品的总销售额放到定义的数组(xs[5]={sum1,sum2,sum3,sum4,sum5})中,按每种产品的总销售额sum[i]循环比较并排序输出产品代号a[i]和总销售额xs[i]。
⑩【销售统计报表输出函数】void list3(SYS t[],int n)
类似输出如下表格:
销售统计报表
产品代号销售之和
销售员代号 1 2 3 4 5
1
2
3
4
每种产品之和总和如下图所示:
⑪【保存函数】void save(SYS t[],int n)
打开sys.txt文件,如果函数带回一个空指针值
if((fp=fopen("sys.txt","wb"))==NULL),则显示“不能打开文件”,非法退出再进行存储文件。通过文件指针,循环将便条信息输出到fp指向的文件。关闭文件,显示“*****存储成功*****”,“按任意键继续。。。。。。”。
⑫【读取函数】int load(SYS t[]):
定义文件指针*fp,循环从fp指向的文件上读入便条信息,关闭文件,显示“成功读取文件信息”,“按任意键继续。。。。。。”。返回n值。
四.主要模块的算法描述
1.查询函数流程图