学 号 09770223
数据结构课程设计
设计说明
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
销售
管理系统
工资管理系统慧云智能化管理系统免费考勤管理系统员工工资计算excel病人信息管理系统
起止日期: 2011年 12月 12 日 至 2011 年 12月16日
学生姓名
徐婷婷
班级
软件2班
成绩
指导教师(签字)
电子与信息工程系
2011年 12月16日
天津城市建设学院
课程设计任务书
2011—2012学年第1学期
电子与信息工程 系 软件工程 专业 09级 2 班级
课程设计名称: 数据结构课程设计
设计题目: 销售管理系统
完成期限:自 2011 年 12 月 12 日至 2011 年 12 月 16 日共 1 周
设计依据、要求及主要
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
(可另加附页):
一、设计目的
熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。
二、设计要求
(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;
(2)按照课程设计的题目要求,独立地完成各项任务,严禁抄袭;凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程设计成绩。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩;
(3)学生在接受设计任务后,首先要按设计任务书的要求编写设计进程表;
(4)认真编写课程设计报告。
三、设计内容
销售管理系统
1)问题描述
某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:
1)销售员的代号
2)产品的代号
3)这种产品的当天的销售额
每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
2) 基本要求
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
目录
3一、需求分析
4二、问题求解
5三、总体设计
6四、详细设计
8五、调试与测试
8六、关键源程序清单和执行结果
18七、参考文献
一、需求分析
程序的功能:
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
输入:销售情况
输出:就是程序所要完成的功能
二、问题求解
1.输入销售情况
首先我会在纸上画出这样的一个表(表一),这个可以在程序中定义为结构体数组struct Biantiao data[N]。然后对应着结构体里面的属性将销售情况的数据输入到结构体数组中。这便是函数f1()的功能。
Sno
Pno
sum
month
1
2
3
10
4
3
8
1
2
5
9
1
3
1
11
1
2
4
12
1
3
4
6
7
表一
2.计算上个月每个人每种产品的销售额。
然后对这个结构体数组进行对每个销售员每种产品进行销售额的统计,这就是程序中的这块代码:
for(i=1;i<=R;i++)
for(j=1;j<=Z;j++)
{
int sum=0;
for(int k=0;k
data[i+1].sum)
{
k=data[i].Sno; //对销售员编号进行排序
data[i].Sno=data[i+1].Sno;
data[i+1].Sno=k;
temp=data[i].sum; //对销售额进行排序
data[i].sum=data[i+1].sum;
data[i+1].sum=temp;
}
}
}所的事情。以上就是函数f3()完成的功能。
4.统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
然后题目中要求我按每种产品进行销售额统计,其实这个跟第三个功能很类似,这是对二维数组里面的每种产品(列)进行销售额的统计。只要将功能三的程序中行列换一下就行。这便是f4()完成的功能。
三、总体设计
1.程序设计组成框图
2.程序设计流程图
四、详细设计
1、 功能函数f1()
函数的功能: 计算上个月每个人每种产品的销售额
函数的入口: 从main()的switch()开关结构中进入,即choice的值为1时进入该函数,然后提示用户通过键盘对该月的员工销售情况进行数据的读入。
函数调用关系: 被主函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。
函数的出口: 当输入完数据,直接调用菜单,进行下一步的选择。
2、 功能函数f2()
函数的功能: 计算上个月每个人每种产品的销售额
函数的入口: 从main()的switch()开关结构中进入,即choice的值为2时,进入该函数对数据的处理。
函数调用关系: 被主函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。
函数的出口: 处理完数据后,结果已经输出到屏幕上时,直接调用菜单,进行下一步的选择。3、 功能函数f3()
函数的功能: 按销售额对销售员进行排序,输出排序结果。
函数的入口: 程序从main()的switch()开关结构中进入,即choice的值为3时,开始进入该函数,进入函数后,利用冒泡排序法,按销售员的所选产品的总销售额对销售员进行排序。
函数调用关系:被主函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。
函数的出口: 当输出排序结果显示在屏幕上,直接调用菜单,进行下一步的选择。
4、 功能函数f4()
函数的功能: 统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
函数的入口: 从main()的switch()开关结构中进入,即choice的值为4的时侯,进入该函数,然后统计每种产品的总销售额。将计算后的总销售额进行排序,最终把排序的结果输出在屏幕上。
函数调用关系:被主函数调用。由switch()开关结构中进入,并在文中无返回值的空值void函数。
函数的出口:当排序结果输出到屏幕上,直接调用菜单,进行下一步的选择。
图-写入销售数据界面
5、功能函数主菜单 menu()
图-主菜单界面
函数的功能: 主要作用是提示用户操作,体现模块化思想,主要是显示出菜单让用户选择要进行的任务。
函数的入口: 从主函数main()中的system("pause"); /*清屏命令*/menu(); /*菜单函数提示用户怎样选择*/进入函数,这是直接被主函数main()调用的。
函数调用关系:被主函数调用。并在文中无返回值的空值void函数。
函数的出口:执行完所有函数后选择菜单里面的选择操作可以退出该函数。
6、 功能函数主函数 main()
软件进入提示页面
函数的功能: 用于联系各个功能函数模块,以及退出程序时的退出画面提示。
函数的入口: 整个程序是从主函数开始的。
函数的出口: 当从main()的switch()开关结构中进入,即choise的值为5时通过break;跳出for循环,然后退出main()函数,即:退出整个程序。
函数调用关系:该函数不被其它函数调用
五、调试与测试
在写程序的过程中,大大小小的问题其实是很多的,然后进行不断的修改,才使程序最终几乎达到完美。
在写程序时,有些错误是一眼就能看出的,但也有很多是很难发现的,于是我就使用单步调试法进行调试。
六、关键源程序清单和执行结果
源程序:#include
using namespace std;
#define N 100
#define Z 5 //定义宏常量便于程序的一般化,Z表示产品的个数
#define R 4 //R表示销售员个数
struct Biantiao
{
int Sno;
int Pno;
int sum;
int month;
};
int Sum[R+1][Z+1];
struct Biantiao data[N];
int NUM=0;
int A[R];
void menu()
{
cout<<"\t ┏━━━━━━━━━━━━主菜单━━━━━━━━━━┓\n"<>NUM; //输入便条数目
for(j=0;j>data[j].Sno>>data[j].Pno>>data[j].sum >> data[j].month;
}
}
void f2()
{
int i,j,m;
cout<<"你想计算哪个月?"<>m; //输入月份
//对每个人每种产品进行销售额统计
for(i=1;i<=R;i++)
for(j=1;j<=Z;j++)
{
int sum=0;
for(int k=0;k>m; //输入月份
int s=0;
for (i= 1; i<=R;i++)
{
s=0;
for(j=1;j<=Z;j++)
{
s= s + Sum[i][j]; //对二维数组里面的每个销售员进行销售额统计
data[i].sum=s; //计算的销售额之和存放在结构体数组中
}
}
for(j=1;j<=R;j++)
{
data[j].Sno=j;
}
for(j=1;j<=R;j++)//使用冒泡排序法进行排序
{
for(i=1;i<=R-j;i++)
{
if(data[i].sum>data[i+1].sum)
{
k=data[i].Sno; //对销售员编号进行排序
data[i].Sno=data[i+1].Sno;
data[i+1].Sno=k;
temp=data[i].sum; //对销售额进行排序
data[i].sum=data[i+1].sum;
data[i+1].sum=temp;
}
}
}
cout<<"从低到高的排序结果为:"<>m;
int s=0;
for (i= 1; i<=Z;i++)
{
s=0;
for(j=1;j<=R;j++)
{
s= s + Sum[j][i];//对二维数组里面的每个产品进行销售额统计
data[i].sum=s; //计算的销售额之和存放在结构体数组中
}
}
for(j=1;j<=Z;j++)
{
data[j].Pno=j;
}
for(i=1;i<=Z;i++)//使用冒泡排序法进行排序
{
for(j=1;j<=Z-i;j++)
{
if(data[j].sum>choice;
if(choice==5)
{
cout<<"\n\n\n\n\n\n\t━━━━━━━━━━━━━━━━━━━━━━━━━\n\n"<>choice
Menu()
For(i=0;i++)
Main()
5.结束操作
4.统计每种产品的总销售量,输出排序结果
3.按销售量对销售员进行排序,输出排序结果
2.计算上个月每个人每种产品的销售额
1.输入销售情况
销售管理系统
PAGE
19
1