目 录
1 系统分析........................................................................................................................................... 1
1.1 课程设计内容......................................................................................................................... 1
1.2 系统功能需求分析................................................................................................................. 1
1.3 数据结构设计......................................................................................................................... 1
2 系统设计........................................................................................................................................... 3
2.1 总体设计................................................................................................................................. 3
2.2 详细设计................................................................................................................................. 3
2.2.1 界面设计...................................................................................................................... 3
2.2.2 各功能模块的设计....................................................................................................... 5
3 系统编码设计................................................................................................................................. 13
3.1 welcome()函数....................................................................................................................... 14
3.2 save()函数...............................................................................................................................14
3.3 input()函数............................................................................................................................. 15
3.4 editor()函数............................................................................................................................ 20
3.5search()函数............................................................................................................................ 21
3.6 calculat()函数......................................................................................................................... 21
3.7 sort()函数................................................................................................................................22
3.8 browse()函数.......................................................................................................................... 22
3.9 main()函数..............................................................................................................................23
4 系统运行......................................................................................................................................... 24
5 课程设计报告总结......................................................................................................................... 29
1
1 系统分析
1.1 课程设计内容
设计一销售管理系统,功能包括:
1. 输入基本数据和销售数据:基本数据包括销售员数据、产品数据,销售数据包括销售时间、
销售员编号、销售产品编号、销售产品数量。
2. 编辑数据:可添加、删除、修改销售数据。
3. 计算:计算每个销售员的销售总额;计算每种产品的销售数量及销售额。
4. 查询:可按销售员的编号或姓名查询销售情况;也可按产品编号或产品名查询销售情况。
5. 排序:可按销售员或销售产品排序。
6. 浏览:可浏览输入、查询或排序后的数据。
7. 文件操作:可打开、保存、关闭数据文件。
完整代码 http://www.xmsydw.com
1.2 系统功能需求分析
本系统应具有以下功能:
1、文件操作功能:可以打开、保存、关闭数据文件
2、数据输入功能:可以完成若干条记录的输入——根据用户需要进行数据的输入;输入个数由
用户决定 。
3、数据添加功能:可以多次添加销售数据。
4、数据修改功能:可以对某一条销售记录进行修改。
5、数据删除功能:可以根据查找销售员的编号来删除销售记录。
6、数据计算功能:可以计算销售总额;计算每种产品的销售数量及销售额。
7、数据查询功能:可按销售员的编号查询销售情况;也可按产品编号查询销售情况。
8、数据排序功能:根据销售产品销售额排序。
9、数据显示功能:可浏览输入或排序后的数据。
1.3 数据结构设计
(1) 结构体说明:
struct salman
{ char ID[n];
char name[n];
char sex[5];
}sal[N];
/*声明销售员数据的结构体类型*/
/*销售员编号,利用一维字符数组存储*/
/*销售员姓名,利用一维字符数组存储*/
/*销售员性别,利用一维字符数组存储*/
/*定义销售人员结构体变量,规定人数最高上限为 N(已经宏定义)*/
1
struct product
{ char ID[n];
char name[n];
int
up;
year;
month;
day;
/*声明产品结构体类型*/
/*产品编号,利用一维字符数组存储*/
/*产品名,利用一维字符数组存储*/
/*产品单价,存储为整型数据*/
/*定义产品结构体变量,规定产品记录数目最大值为 N*/
/*声明销售数据结构体类型*/
/*销售年,存储为整型数据*/
/*销售月,存储为整型数据*/
/*销售日,存储为整型数据*/
/*产品销售数量,存储为整型数据*/
}pro[N];
struct salesdata
{ int
int
int
int soldnum;
struct product product;/*定义一个变量名为 product 的 struct produ
类型的结构体*/
struct salman salman; /*定义一个变量名为 salman 的 struct salman 类
型的结构体*/
struct product all; /*定义一个变量名为 all 的 struct product 类型的结构体*/
}sada[N];
/*定义销售数据结构体变量,规定产品记录数目最大值为 N*/
(2) 销售信息输入函数说明:
Void input();Void input1(); void input2(); void input3();
说明:其中 input()函数为子主函数,调用 input1();input2();input3();
// 函数功能:分别输入销售员、销售产品、销售数据的信息
// 函数参数:无
// 函数返回:无返回值
int input3_1(int i);
// 函数功能:被 input3()调用,输入销售数据
// 函数参数:整型数据
// 函数返回:无返回值
(3) 编辑销售数据函数说明:
Void editor();void modify();void Delete();void insert();
说明:其中 editor()函数为子主函数,调用 modify()--修改销售数据功能;Delete()—删除销售数据
功能;insert()—插入销售数据功能;
// 函数功能:编辑销售数据的信息
// 函数参数:无
// 函数返回:无返回值
(4) 销售数据查询函数说明:
Void search();void search_proID();void search_salID();
说明:其中 search()函数为子主函数,调用 search_proID();search_salID()
// 函数功能:查询销售数据的信息
// 函数参数:无
// 函数返回:无返回值
(5) 计算销售额函数说明:
Void calculat();
// 函数功能:计算销售总额和每种产品的销售额
// 函数参数:无
// 函数返回:无返回值
(6) 销售数据排序函数说明:
Void sort();
// 函数功能:根据产品销售额来排序
2
// 函数参数:无
// 函数返回:无返回值
(7) 信息浏览函数说明:
void browse();
// 函数功能:浏览基本信息和销售数据
// 函数参数:无
// 函数返回:无返回值
(8) 欢迎界面函数说明:
//void welcome();
// 函数功能:显示主菜单和系统背景颜色和字体颜色
// 函数参数:无
// 函数返回:无返回值
2 系统设计
2.1 总体设计
按系统分析的功能要求将系统划分为以下几个主要功能模块(如下):
计
算
排
序
浏
览
退
出
主菜单
查
询
按
产
品
编
号
查
询
按
销
售
员
编
号
查
询
系统功能模块图:
输
入
编
辑
输
入
销
售
员
数
据
输
入
产
品
数
据
输
入
销
售
总
数
据
修
改
销
售
数
据
删
除
销
售
数
据
添
加
销
售
数
据
2.2 详细设计
2.2.1 界面设计
1、菜单设计
3
(1)主菜单的设计
主要是通过设置欢迎界面函数来实现主菜单的显示。在这里调用系统函数 textcolor(YELLOW)将
整个程序的字体显示颜色设置为黄色;而利用 textbackground(BLUE)将系统的程序背景颜色设置为
为蓝色。也即是我这整个系统的程序运行环境是为蓝底黄字的显示格式。而主菜单形状大体上犹如一
个列表:表头显示欢迎信息,并提示这是一个销售管理系统。主菜单的主体是接下来的各个子菜单的
文字显示,另外,我也在菜单项处放进了我做这个系统的基本信息,包括提示我选的是第七个系统、
我的姓名、学号。最后我在表底,加了一句小提示:“操作完每一个子菜单后,可以按任意键返回主
菜单”。而主菜单的位置大体上是放置于显示屏幕的中间的,这是为了突出菜单的作用,方便使用。
(如下图的显示)
(2)子菜单的设计
子菜单的格式基本上和主菜单的风格是一致的,也是放置于显示屏幕的中间,主要包括操作执行
菜单的文字显示。同时我也在菜单的周围添加了一些提示语句,方便使用者使用本系统。整体风格是
简洁工整,令人一目了然。(如下图)
2、输入界面的设计
输入数据这一步是非常重要的,对于输入的格式有特别严格的要求,因此必须令使用者清楚这一
点。为了达到这一目的,我尽量用最简短的语句提示使用者输入信息,即在每一个要输入数据的地方,
4
都会有相应的提示语言出来,令使用者尽量输入准确的数据。(如下图)
3、信息显示界面的设计
信息的显示方式也是非常重要的,它关系到这个系统是否方便和友好性。在屏幕上,合理的信息
排版,会给人一种舒适的感觉;否则会令人厌烦的。因此,在编码时,我特别注意信息在屏幕上显示
出来的排版,尽可能避免一大块一大块的信息挤在屏幕的一边的情况。为此,我在设置提示语言的地
方用了一些格式符,使得信息的显示有一定的规律。同时经过一次次的调试,修改,尽可能的使信息
的显示合理化。
2.2.2 各功能模块的设计
根据划分的功能模块,定义以下函数实现各功能:(说明:有些函数的算法比较简单,容易明白
的,我就不把它的流程图列出来了;另外由于一些框架不会弄出来,在编写循环程序的时候多用了一
些不规范的线条,希望能辨别)
1、 主函数 main()流程图
while(1);
clrscr();清屏幕
welcome();
输出“Please select 1-7--menu=:”提示选择
输入 menu
switch(menu)
1
2
3
4
5
6
7
输入记录
编辑数据
查询记录
计算销售额
排序记录
浏览信息
退出
default
输出“Error!”
5
2、 欢迎界面函数 welcome()流程图
clrscr();清屏幕
textcolor(YELLOW); 设置字体显示颜色为黄色
textbackground(BLUE); 设置背景颜色为蓝色
输出主菜单文字显示
* This my task!
输出“1-Input the data
输出“2-Edit data
输出“3-Search
输出“4-Calculat
输出“5-Sort
输出“6-Browse the data
输出“7-Exit
”
* I choose the Seven.”
* My name and NO.: ”
*
”
”
*
”
*
*
”
zhangmingchun
3108006337
输出“Tip:When you finish each operation,then you enter any key can
return welcome!”
3、输入数据函数 void input()流程图
void input1(); void input2(); void input3();函数声明
clrscr();清屏幕
输出子菜单
输入 M
switch(M)
1
2
3
4
default
输入销售员数据
输入产品数据
输入销售数据
返回欢迎界面
输出“Error!”
4、输入销售员数据函数 void input1()流程图
输入 M(确定要输入的销售员数据的个数)
for(I=0;I
fp1=fopen("input1","wb");
新建文件名为 input1 的二进制文件
for(I=0;I