汽车销售管理系统.docx
《汽车销售管理系统.docx》由会员分享,可在线阅读,更多相关《汽车销售管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
汽车销售管理系统
成绩
12信计2013-2014
(二)
《数据库原理及应用》课程设计
设计题目 汽车销售管理系统
设计时间 2014.6.23---2014.6.29
学生姓名 秦友健施天健
学生学号 2012040313319
所在班级 12控制
指导教师 刘风华
徐州工程学院数学与物理科学学院
目录
1背景问题及意义1
2需求分析1
2.1功能分析1
2.1.1基础信息管理1
2.1.2进货管理1
2.1.3销售管理1
2.1.4仓库管理1
2.1.5系统维护1
2.2数据字典2
2.2.1数据项2
2.2.2数据结构3
2.2.3数据流4
2.2.4数据存储5
2.2.5处理过程5
2.3数据流图6
2.3.1订货系统6
2.3.2查询订单7
2.3.2处理订单8
2.3.4结账系统.........................................................................................................................9
3结构设计9
3.1概念结构设计9
3.2逻辑结构设计12
3.2.1基本表12
3.2.2视图14
3.3物理结构设计14
4应用设计15
4.1系统的应用程序实施15
5心得16
1背景问题及意义
背景问题
随着人们生活水平的不断提高,人们对汽车的消费和需求也越来越强烈。
保定长城汽车公司销售的业务环节仍然运用人工记账的传统方法,既容易出错又会导致账目混乱,查询和统计起来也非常不方便。
这种传统方法费时又费力,严重时会给公司造成难以挽回的损失。
如何管理好这些,使整个公司协调一致高效率地运转,是该公司急待解决的问题。
汽车销售管理系统不但能使各业务环节协调一致,而且操作简单,账目清晰。
通过账目查询,保定长城汽车公司能在最短的时间内获得市场信息,从而制订相应的决策。
意义
该系统主要根据实际需求,划分了进车管理、销售管理、库存管理、系统管理、报表统计和售后管理六大模块,实现了从多个环节数据的跟踪管理服务,基本上满足了汽车销售管理流程。
2需求分析
2.1功能分析
2.1.1基础信息管理
1、厂商信息的管理:
查询、增、删、改
2、车型信息的管理:
查询、增、删、
3、客户信息的管理:
查询、增、删、改
2.1.2进货管理
1、车辆采购信息的管理:
查询、增、删、改
2、车辆入库信息的管理:
查询、增、删、改
2.1.3销售管理:
1、车辆销售:
客户可以根据自己的需求,选择不同型号的车型
2、收益统计:
厂商按照所出售的车辆数量及价格进行统计
2.1.4仓库管理:
1、库存车辆:
仓库管理员对已有车辆进行详细管理
2、仓库明细:
库存各种类型车辆的详细信息
3、进销存统计:
仓库管理员对车辆的出售与进货进行统计
2.1.5系统维护:
1、数据安全管理:
系统管理员对该数据库出现的问题进行管理
2、操作员管理:
操作员根据车辆销售情况及时更改数据库
3、权限设置:
规定该数据库访问权限
2.2数据字典
2.2.1数据项
编号
数据项名称
说明部分
编号
数据项名称
说明部分
1
客户姓名
文本类型长度为20
字符
2
工作单位
文本类型长度为20
字符
3
性别
字符串类型男、女
4
年龄
整数类型18-100
5
客户号
字符串类型有唯一性
6
联系电话
整数类型
7
车辆型号
字符串类型有唯一性
8
价格
浮点型
9
车辆状态
枚举类型被订未订
10
厂商名
文本类型有唯一性
11
厂商号
字符串类型有唯一性
12
地址
文本类型长度为30
字符
13
生产车辆总
数
整数类型
14
厂商状态
枚举类型忙、闲
15
订单号
整数类型订单所属的
类别
16
订货日期
时间类型**/**
17
交货日期
时间类型**/**
18
仓库号
字符串类型有唯一性
19
进货车辆数
整数类型
20
出货车辆
数
整数类型
21
库存车辆总
数
整数类型
22
出售车辆
数
整数类型
23
车辆总成本
整数类型
24
获取总金
额
整数类型
25
利润
整数类型
26
买车时间
时间类型
27
保修期限
时间类型
28
备注
文本类型
29
车辆名称
字符串类型长度为20字
符
2.2.2数据结构
编号
数据结构名
属性
1
客户
客户姓名、性别、年龄、客户号、工作单位、联系电话
2
车辆
车型号、车辆名称、厂商名、价格、车辆状态
3
厂商
厂商名、厂商号、地址、生产车辆总数、厂商状态、备注
4
订单
订单号、客户号、订货日期、交货日期、地址、是否存有、是否已订
5
仓库
仓库号、地址、进货车辆数、出货车辆数、库存车辆总数
6
车辆销售
车型号、厂商号、出售车辆数、车辆总成本、获取总金额、利润
7
订货
客户、厂商、车辆、买车时间、保修期限
2.2.3数据流
编号
数据流名
输入
输出
1
变更客户
变更信息
客户信息
2
查询客户
客户号
客户信息
3
变更厂商
变更信息
厂商信息
4
查询厂商
厂商号
厂商信息
5
变更车辆
变更信息
车辆信息
6
查询车辆
车型号
车辆信息
7
变更订单
变更信息
订单信息
8
查询订单
订单号
订单信息
9
变更仓库
变更信息
仓库信息
10
仓库
仓库号
地址
11
变更车辆销售
变更改信息
车辆销售信息
12
查询车辆销售
车辆销售数
利润
13
查询空闲厂商
厂商状态限制条件
空闲厂商信息
14
结账
车型号
购买信息
15
提交订货请求
客户号、车型号、价格、厂商号
车辆信息
16
获得订货请求
订货信息
车型号、厂商号、客户号
17
提交订单信息
车型号、厂商号
订单信息
18
变更厂商分工信息
厂商号、车型号
厂商分工信息
19
预定车辆
车型号
车辆信息
20
付款
车型号
车辆信息、厂商信息
2.2.4数据存储
数据存储名
输入数据流
输出信息流
说明部分
客户信息
变更客户
查询客户
提交订货请求
车辆信息
变更车辆
查询车辆
获得订货请求
厂商信息
变更厂商
查询房间
提交订货请求
查询空闲厂商
车辆销售信息
变更车辆销售
查询厂商
提交点货请求
查询空闲厂商
提交订货信息
提交订单
信息
订单信息
变更订单
结账
提交订货请求
订货信息
提交订货请求
提交订单信息
结账
获得订货请求
厂商分工信息
变更厂商分工信息
2.2.5处理过程
处理过程名
输入数据流
输出数据流
说明部分
客户登记
终端
变更车辆
变更厂商
订货
终端
提交订货请求
获得订货请求
订货
获得订货请求
提交订货信息
订单
提交订货信息
提交订单信息
客户结账
结账
2.3数据流图
2.3.1订货系统
图1--订货系统
2.3.2查询订单数据流图
图2--查询订单数据
2.3.3处理订单流图
图3--处理订单
2.3.4结账系统
图4--结账系统
3结构设计
3.1概念结构设计
局部E-R图
图5--厂商E-R图
图6--客户E-R图
图7--车辆E-R图
图8仓库E-R图
图9完整订单E-R图
整体E-R图
图10整体E-R图
3.2逻辑结构设计
关系模式
属性中文名称
属性名
类型
长度
说明
客户号
C_NO
CHAR
20
主码:
公司统一编号,具有唯一性
客户姓名
User_NAME
CHAR
20
客户名称
服务员性别
User_SEX
CHAR
4
客户性别
服务员年龄
User_AGE
INT
18~100
联系电话
User_tel
INT
工作单位
unit
CHAR
20
客户所在工作场所
3.2.1.2车辆基本表
属性中文名称
属性名
类型
长度
说明
车型号
CAR_NO
CHAR
10
主码:
厂商统一编号,具有唯一性
车辆名称
CAR_NAME
CHAR
20
车辆名称
厂商名
INDUSTTY_NAME
CHAR
文本类型有唯一性
价格
PRICE
FLOAT
车辆状态
STATUS
BOOLEAN
枚举类型被顶,未订
3.2.1.3厂商基本表
属性中文名称
属性名
类型
长度
说明
厂商号
INDUSTTY_NO
CHAR
10
主码:
厂商统一编号,具有唯一性
厂商名
INDUSTTY_NAME
CHAR
文本类型有唯一性
地址
Adress
CHAR
10
厂商状态
STATUS
BOLLEAN
忙:
1;空闲:
0
生产车辆总数
CAR_amount
INT
3.2.1.4仓库表
属性中文名称
属性名
类型
长度
说明
仓库号
BOX_NO
CHAR
10
主码:
厂商统一编号,具有唯一性
地址
Address
CHAR
10
进货车辆数
IN_AMOUNT
INT
仓库开始进车辆的数量
出货车辆数
OU_AMOUNT
INT
仓库已卖出的车辆数量
库存车辆总数
REMAIN_AMOUNT
INT
仓库现存有的车辆数量
3.2.1.5车辆销售基本表
属性中文名称
属性名
类型
长度
说明
车型号
CAR_NO
CHAR
10
外码:
参照车辆表的车型号
厂商号
INDUSTTY_NO
CHAR
10
外码:
依照厂商表的厂商号
出售车辆数
Sale_amount
INT
车辆总成本
CAR_MONEY
FLOAT
车辆进货的成本
获取总金额
MONEY
FLOAT
利润
Benefit
FLOAT
盈:
1亏:
0
3.2.1.6订单表
属性中文名称
属性名
类型
长度
说明
订单号
Order_NO
INT
10
订单所属类别
客户号
C_NO
CHAR
20
外码:
参照客户表的客户号
订货日期
Order_data
data
订货时间
交货日期
Hand_dataa
Data
交货期限
厂商号
INDUSTTY_NO
CHAR
10
外码:
依据厂商表中的厂商号
是否存在
MADE
BOOLEAN
默认:
false(没有)
是否已订
Orders
BOOLEAN
默认:
false(未订)
3.2.2视图
1、空闲厂商(厂商号,厂商名)
从厂商基本表导出
2、进销存统计(仓库号,进货车辆数,出货车辆数)
从仓库基本表导出
3、所有车辆销售信息(车型号,厂商号,车辆状态)
从车辆和厂商基本表导出
4、付款(车型号,厂商号,车辆名,价格)
从车辆表、厂商表导出
5、订单生成视图
订单(订单号,客户号,订货日期,交货日期,地址,是否存有,是否已订)
从订单表、客户表导出
6、收益统计信息(车型号,出售车辆数,车辆总成本,获取总金额,利润)
从车辆表、车辆销售表导出
3.3物理结构设计
为了一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,必须对该数据系
统做一物理上的存储结构与存取方法。
其中建立系统程序员视图:
1.数据在内存中的安排,包括对索引区、缓冲区的设计
2.所使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划
3.访问数据的方式方法
该汽车销售管理数据库系统关系模式存取方法:
第一类,B+树索引方法
第二类,聚簇方法
第三类,HASH方法
该汽车销售管理系统数据库存储结构:
确定数据的存放位置2.确定系统配置
评价数据库系统的物理结构
数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,
所以数据库设计人员必须对这些方案进行细致的评价,从中选择一个较优的方案作为数据库
的物理结构
4运用设计
4.1系统的应用程序实施
/*车辆基本信息*/
SQLCHAR
Car_NO[CAR_NO-LEN],CAR_name[CAR_NAME-LEN],INDUSTTY_name[INDUSTTY_NAME
-LEN]price[PRICE-LEN];
SQLFLOATprice[PRICE-LEN]
SQLBOOLEANStatus[STATUS-LEN]
SQLINTEGER
cbCar_NO=SQL-NTS,cbCAR_name=SQL-NTS,cbINDUSTTY_name=SQL-NTS
cbprice=SQL-NTS,cbStatus=SQL-NTS;
/*客户基本信息*/
SQLCHAR
c_NO[C_NO-LEN],User_name[User_NAME-LEN],User_sex[User_SEX-LEN]
UNIT[unit_LEN];
SQLINTUser_age[User_AGE-LEN]user_tel[User_tel_LEN]
SQLINTEGERUser_age=0,cbUser_name=SQL-NTS,cbUser_sex=SQL-NTS
cbUNIT=SQL-NTS,cbuser_tel=SQL-NTS;
/*查询车辆信息的执行SQL语句*/
ret=SQLExecDirect(kinghstmt,"SELECT*FROM车辆",SQL_NTS);
if(ret==SQL_SUCCESS‖ret==SQL_SUCCESS_WITH_INFO)
{
ret=SQLBindCol(kingghstmt,1,SQL_C_CHAR,Car_NO,CAR_NO_LEN,&cbCar_NO);
ret=SQLBindCol(kingghstmt,2,SQL_C_CHAR,CAR_name,CAR_NAME_LEN,cbCAR_na
me);
ret=SQLBindCol(kingghstmt,3,SQL_C_CHAR,INDUSTTY_name,&cbINDUSTTY_name)
;
ret=SQLBindCol(kingghstmt,4,SQL_C_FLOAT,price,0,&cbprice);
ret=SQLBindCol(kingghstmt,5,SQL_C_CHAR,Status,STATUS_LEN,&cbStatus);
/*查询客户信息执行SQL语句*/
ret=SQLExecDirect(kinghstmt,"SELECT*FROM客户",SQL_NTS);
if(ret==SQL_SUCCESS‖ret==SQL_SUCCESS_WITH_INFO)
{
ret=SQLBindCol(kingghstmt,1,SQL_C_CHAR,sc_NO,C_NO_LEN,&cbc_NO);
ret=SQLBindCol(kingghstmt,2,SQL_C_CHAR,User_name,User_NAME_LEN,cbUser
_name);
ret=SQLBindCol(kingghstmt,3,SQL_C_CHAR,sUser_sex,&cbUser_sex);
ret=SQLBindCol(kingghstmt,4,SQL_C_INT,sUser_age,User_AGE_LEN,&cbUser_
age);
ret=SQLBindCol(kingghstmt,5,SQL_C_INT,suser_tel,User_tel,&cbuser_tel)
;
ret=SQLBindCol(kingghstmt,6,SQL_C_CHAR,sUNIT,User_tel,&cbUNIT);
}
5心得
通过本次课程设计,我了解到了我们平时的实验根本和做一个项目差的实在太远,我们平时的实验固然很重要,这是我们对基本知识点的一次次的巩固,这是为我们做一次项目的基础工作,是必不可少的一个环节。
但是真正要体验一下做项目的快感,课程设计是个不错的选择。
我们往往所认为的编代码在课程设计里面所占的比例其实很小,真正要做的东西其实远远不止敲代码。
这也是我们的专业所要做的,这如我们的老师所说,敲代码的学生不仅仅是计算机专业的,我们计算机专业的会的不仅仅是敲代码,我们做的是设计,不是打字员。
此外我认为在做项目是要充分利用各种资源,要会运用各种知识,要灵活掌握所学知识,还有就是团队的重要性,这真的很重要。