C语言课程设计销售管理系统报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

报告正文

1、题目与要求:

1.1

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当日出售的每种产品各写一张便条交上来。每张便条内容有销售员的代号

产品的代号

这种产品当天的销售额

1.2

每位销售员每天可能上缴0-5张便条。假设手机到了上个月的所有便条,编写一个处理系统,读取上月的销售情况(自己设定),进行如下处理:计算上个月没人每种产品的销售额

按销售额对销售员进行排序,输出排序结果(销售员代号)

统计每种产品的总销售额,对这些产品从高到低的顺序输出结果(须输出产品的代号和销售额)

输出统计报表

2、需求分析

本程序将用到文件系统,list.txt文件内容作为数据源,其中单行内容代表一张纸条。程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。

3、功能实现设计

3.1总体设计

根据上面的分析,可以将这个系统分为如下五大模块:查看每人每种产品的销售额、按销售额对销售员排序、对每种产品总销售额从高到低排序、输出统计报表和退出。其中主要模块是前四个模块。

3.2流程图

3.3详细设计:

3.3.1【头文件和预定义】

#include

#include

#include

#include

#define M 155

3.3.2【功能函数声明】

void detail();

void foreach();

void menu();

void product();

void readdata();

void seller();

void total();

void choice();

3.3.3【数据结构】

原始数据有销售员代号、产品代号和销售额,所以定义一个全局结构体数组scrip 用于保存原始数据。然后定义全局变量n保存纸条数目,定义数组s用于保存分类后的信息。

struct ss

{

int sid; //销售员代号

int pid; //产品代号

int sn; //销售额

}ss[M];

int n; //纸条数目

int s[4][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}}; //用于保存员工和产品信息

3.3.4【主函数】

显示程序设计者相关信息和调用文件读取函数、数据初始化函数和主菜单函数void main() //入口函数,即主函数

{

readdata(); //读取文件数据

foreach(); //根据文件初始数据初始化便于操作的数组

menu(); //显示主菜单

}

3.3.4-1【文件读取函数】readdata()

读出便条中的内容,并保存到文件结构体中

void readdata() //从文件读取数据

{

FILE *fp;

if((fp=fopen("list.txt","r"))==NULL)

{

printf("Can't open the file!\n");

exit(0);

}

else

for(n=0;!feof(fp);n++)

{

fscanf(fp,"%d %d %d\n",&ss[n].sid,&ss[n].pid,&ss[n].sn);

} //保存文件数据到结构体

fclose(fp);

}

3.3.4-2【文件读取函数】foreach()

将保存到结构体中的信息按产品分类,再根据销售员进行分类,将信息存到数组当中。

void foreach() //从纸条读取数据并分类整理

{

int i;

for(i=0;i

{

switch(ss[i].pid)

//按产品分大类,根据大类分销售员小类,累加个人各产品销售数量

{

case 1:

switch(ss[i].sid)

{

case 1:s[0][0]+=ss[i].sn;break;

case 2:s[1][0]+=ss[i].sn;break;

case 3:s[2][0]+=ss[i].sn;break;

case 4:s[3][0]+=ss[i].sn;break;

}

break;

case 2:

switch(ss[i].sid)

{

case 1:s[0][1]+=ss[i].sn;break;

case 2:s[1][1]+=ss[i].sn;break;

case 3:s[2][1]+=ss[i].sn;break;

case 4:s[3][1]+=ss[i].sn;break;

}

break;

case 3:

switch(ss[i].sid)

相关文档
最新文档