汽车销售管理系统的设计与实现数据库设计说明书.docx
- 文档编号:11084503
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:27
- 大小:440.79KB
汽车销售管理系统的设计与实现数据库设计说明书.docx
《汽车销售管理系统的设计与实现数据库设计说明书.docx》由会员分享,可在线阅读,更多相关《汽车销售管理系统的设计与实现数据库设计说明书.docx(27页珍藏版)》请在冰豆网上搜索。
汽车销售管理系统的设计与实现数据库设计说明书
目录
一、引言
1.1、编写目的……………………………………………1
1.2、定义………………………………………………2.
1.3、数据库设计步骤……………………………………3
二、需求分析
2.1、功能分析……………………………………………3
2.2、业务活动……………………………………………5
2.3、数据字典……………………………………………7
2.4、数据流图……………………………………………11
三、结构设计
3.1、概念设计……………………………………………11
3.2、总体E-R图设计……………………………………12
3.3、逻辑设计……………………………………………14
3.4、物理设计……………………………………………14
四、运用设计
4.1、程序源码与用户界面………………………………17
4.3、系统运行与维护……………………………………19
五、参考文献
5.1、参考文献……………………………………………20
1引言
1.1编写目的
目前大多数厂商忽略了汽车销售管理系统的重要性,而本系统专为具有一定规模和经济条件的大型汽车厂设计。
从进货管理:
车辆采购、车辆入库,销售管理到车辆销售、收益统计等,为每个环节明确分工,并通过可视化的软件支持,有效减小了人为差错的概率,代之以高效、便捷、准确的数字化服务系统,使汽车销售管理更加规范化。
根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平,通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。
从而达到掌握开发一个小型数据库的目的。
1.2定义
1、系统名称:
汽车销售管理系统
2、数据库管理软件:
MicrosoftSQLServer
3、数据库设计人员:
洪保江
4、使用本数据库的程序:
。
。
。
5、数据库设计采用软件:
MicrosoftOfficeVisio2003
6、系统采用C/S体系结构:
Client(客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server(服务器)端用于提供数据服务。
7、运行平台:
windows2000/xp/linux
1.3、数据库设计步骤
2、需求分析
2.1功能分析
进行需求分析首先是调查清楚用户的实际要求,与用户达成共识,然后分析与表达这些需求。
调查厂商与各部门需求的具体步骤如下:
(1).调查厂商组织情况。
包括了解各组织的部门组成情况,各部门的职责等,为分析信息流程做准备。
(2).调查各部门的业务活动情况。
包括了解各个部门和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么,这些是调查的重点。
(3).在熟悉了业务活动的基础上,协助用户明确对新系统的各种要求,包括信息要求,处理要求,安全性与完整性要求,这是调查的又一重点。
(4).确定新系统的边界。
对前面调查的结果进行初步分析,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。
调查本地从事汽车销售的企业,根据企业汽车销售的情况,设计用于汽车销售的管理系统,主要功能有:
①基础信息管理:
厂商信息、车型信息和客户信息;
②进货管理:
车辆采购、车辆入库;
③销售管理:
车辆销售(处理车辆销售单)、销售代办(处理销售代办单)、
车辆查询、销售日记录、销售月记录;
④仓库管理:
库存车辆、仓库明细、进销存统计;
⑤系统维护:
如数据安全管理(含备份与恢复)、操作员管理、权限设置等;
2.2业务活动
一、市场工作
1、获取订单(有能力可做)
A、联络经销商仓管员,了解经销商库存;
B、联络经销商采购购─报价;
C、结合经销商库存情况,主动争取订单;
D、寻找经销商的配货意向进行展异议处理;
E、获得订单,并交由分公司助理安排送货;
F、跟踪送货员贷物交接情况及协助送贷员解决收款中遇到的困难。
二、客户拜访及市场工作
第一步准备工作:
A、检查每周工作记事表,确定当日拜记路线;
B、准备当日需解决的问题,预约当日需拜访客户;
第二步销售拜访
A、接触:
问候或自我介绍通过改变交谈环境、车轮话术等方法,确定良好的沟通氛围;
B、收集市场资讯及客户销售资料及填报表;
C、了解竞争对手及品牌机型的市场动向;
D、进行异议处理、协助客户在销售中存在的问题。
第三步总结与调整
A、回顾当日工作进展状况,填写每日《工作日记》;
B、总结当时工作中遇到的问题,失误与成就,并及时做出调整;
C、根据当时进展状况,对《每周工作记事》表做出调整。
2.3数据字典
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
备注
文本类型
19
车辆名称
字符串类型长度为20字符
2、数据结构
编号
数据结构名
属性
1
客户
客户姓名、性别、年龄、客户号、工作单位、联系电话
2
车辆
车型号、车辆名称、厂商名、价格、车辆状态
3
厂商
厂商名、厂商号、地址、生产车辆总数、厂商状态、备注
4
订单
订单号、客户号、订货日期、交货日期、地址、是否存有、是否已订
5
仓库
仓库号、地址、进货车辆数、出货车辆数、库存车辆总数、
6
车辆销售
车型号、厂商号、出售车辆数、车辆总成本、获取总金额、利润
7
订货
客户、厂商、车辆、买车时间、保修期限
3、数据流
编号
数据流名
输入
输出
1
变更客户
变更信息
客户信息
2
查询客户
客户号
客户信息
3
变更厂商
变更信息
厂商信息
4
查询厂商
厂商号
厂商信息
5
变更车辆
变更信息
车辆信息
6
查询车辆
车型号
车辆信息
7
变更订单
变更信息
订单信息
8
查询订单
订单号
订单信息
9
变更仓库
变更信息
仓库信息
10
仓库
仓库号
地址
11
变更车辆销售
变更信息
车辆销售信息
12
查询车辆销售
车辆销售数
利润
13
查询空闲厂商
厂商状态限制条件
空闲厂商信息
14
结账
车型号
购买信息
15
提交订货请求
客户号、车型号、价格、厂商号
车辆信息
16
获得订货请求
订货信息
车型号、厂商号、客户号
17
提交订单信息
车型号、厂商号
订单信息
18
变更厂商分工信息
厂商号、车型号
厂商分工信息
19
预定车辆
车型号
车辆信息
20
付款
车型号
车辆信息、厂商信息
4、数据存储
数据存储名
输入数据流
输出数据流
说明部分
客户信息
变更客户
查询客户
提交订货请求
车辆信息
变更车辆
查询车辆
获得订货请求
厂商信息
变更厂商
查询房间
提交订货请求
查询空闲厂商
车辆销售信息
变更车辆销售
查询厂商
提交点货请求
查询空闲厂商
提交订货信息
提交订单信息
订单信息
变更订单
结账
提交订货请求
订货信息
提交订货请求
提交订单信息
结账
获得订货请求
厂商分工信息
变更厂商分工信息
5、处理过程
处理过程名
输入数据流
输出数据流
说明部分
客户登记
终端
变更车辆
变更厂商
订货
终端
提交订货请求
获得订货请求
订货
获得订货请求
提交订货信息
订单
提交订货信息
提交订单信息
客户结账
结账
2.4数据流图
1、顶层进程――销售管理子系统第一层数据流图
2、第二层
(1)进程1――接受订单
(2)进程2――处理订单
(3)进程3――开发票
(4)进程4――结帐系统
3、结构设计
3.1概念结构设计
在概念设计中,通常用四种方法:
(1).自顶向下,首先定义全局概念结构的框架,然后逐步细化.
(2).自底向上,首先定义各局部应用的概念结构,然后将他们集成起来,得到全局概念结构.
(3).逐步扩张.首先定义最核心的概念结构,然后向外扩充,,直至总体概念结构.
(4).混合策略.即自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构.
我在此设计中采用自底向上的方法,逐步实现数据库的设计,得到全局概念.
3.2、总体E-R图设计
3.3逻辑结构设计
3.3.1基本表
1、客户基本表
属性中文名称
属性名
类型
长度
说明
客户号
C_NO
CHAR
20
主码:
公司统一编号,具有唯一性
客户姓名
User_NAME
CHAR
20
客户名称
服务员性别
User_SEX
CHAR
4
客户性别
服务员年龄
User_AGE
INT
18~100
联系电话
User_tel
INT
工作单位
unit
CHAR
20
客户所在工作场所
2、车辆基本表
属性中文名称
属性名
类型
长度
说明
车型号
CAR_NO
CHAR
10
主码:
厂商统一编号,具有唯一性
车辆名称
CAR_NAME
CHAR
20
车辆名称
厂商名
INDUSTTY_NAME
CHAR
文本类型有唯一性
价格
PRICE
FLOAT
车辆状态
STATUS
BOOLEAN
枚举类型被订、未订
3、厂商基本表
属性中文名称
属性名
类型
长度
说明
厂商号
INDUSTTY_NO
CHAR
10
主码:
厂商统一编号,具有唯一性
厂商名
INDUSTTY_NAME
CHAR
文本类型有唯一性
地址
address
CHAR
10
厂商状态
STATUS
BOOLEAN
忙:
1;空闲:
0
生产车辆总数
CAR_amount
INT
4、仓库表
属性中文名称
属性名
类型
长度
说明
仓库号
BOX_NO
CHAR
10
主码:
厂商统一编号,具有唯一性
地址
address
CHAR
10
进货车辆数
IN_AMOUNT
INT
仓库开始进车辆的数量
出货车辆数
OU_AMOUNT
INT
仓库已卖出的车辆数量
库存车辆总数
REMAIN_AMOUNT
INT
仓库现存有的车辆数量
5、车辆销售基本表
属性中文名称
属性名
类型
长度
说明
车型号
CAR_NO
CHAR
10
外码:
参照车辆表的车型号
厂商号
INDUSTTY_NO
CHAR
10
外码:
依照厂商表的厂商号
出售车辆数
Sale_amount
INT
车辆总成本
CAR_MONEY
FLOAT
车辆进货的成本
获取总金额
MONEY
FLOAT
利润
benift
FLOAT
盈:
1亏:
0
6、订单表
属性中文名称
属性名
类型
长度
说明
订单号
order_NO
INT
10
订单所属的类别
客户号
C_NO
CHAR
20
外码:
参照客户表的客户号
订货日期
order_data
data
订货时间
交货日期
Hand_data
data
交货期限
厂商号
INDUSTTY_NO
CHAR
10
外码:
依据厂商表中的厂商号
是否存有
MADE
BOOLEAN
默认:
false(没有)
是否已订
orders
BOOLEAN
默认:
false(未订)
3.3.2视图
1、空闲厂商(厂商号,厂商名)
从厂商基本表导出
2、进销存统计(仓库号,进货车辆数,出货车辆数)
从仓库基本表导出
3、所有车辆销售信息(车型号,厂商号,车辆状态)
从车辆和厂商基本表导出
4、付款(车型号,厂商号,车辆名,价格)
从车辆表、厂商表导出
5、订单生成视图
订单(订单号,客户号,订货日期,交货日期,地址,是否存有,是否已订)
从订单表、客户表导出
6、收益统计信息
(车型号,出售车辆数,车辆总成本,获取总金额,利润)
从车辆表、车辆销售表导出
3.4物理结构设计
在物理结构设计阶段首先分两步走:
(1)确定数据库的物理结构,在关系数据库中主要是指存取方法和存储结构。
(2)对物理结构的评价是时间和空间效率。
选取正确的关系模式存取方法,常用的有:
(1)存取索引方法。
(2)聚簇存取。
(3)HASH存取方法等。
4运用设计
4.1、程序源码与用户界面
#include
#include
#include
#include
#include
#include
#defineCAR-NO-LEN50
#defineUSE-AGE-SEX5
#defineCAR-NAME-LEN50
#defineDEPART-LEN100
#defineCAR-PRICE-LEN30
#defineSTATUS_LEN100
intmain()
{
/*Step1定义句柄和变量*/
//以king开头的表示的是连接KingbaseES的变量
//以server开头的表示的是连接SQLSERVER的变量
SQLHENVkinghenv,serverhenv;//环境句柄
SQLHDBCkinghdbc,serverhdbc;//连接句柄
SQLHSTMTkinghstmt,serverhstmt;//语句句柄
SQLRETURNret;
SQLCHARcName[NAME-LEN],Depart[DEPART-LEN],cNO[NO-LEN],
cPrice[PRICE-LEN],Status[STATUS-LEN];
SQLINTEGERsSta,sSage;
SQLINTEGERcbAge=0,cbSta=0,cbCno=SQL-NTS,cbPrice=SQL-NTS,
cbName=SQL-NTS,cbDeopart=SQL-NTS;
/*Step2初始化环境*/
ret=SQLAllocHandle(SQL-HANDLE-ENV,SQL-NULL-HANDLE,&kinghenv);
ret=SQLAllocHandle(SQL-HANDLE-ENV,SQL-NULL-HANDLE,&serverhenv);
ret=SQLSetEnvAttr(Kinghenv,SQL-ATTR-ODBC-VERSION,(void*)SQL-OV-ODBC3,0);
ret=SQLSetEnvAttr(serverhenv,SQL-ATTR-ODBC-VERSION,(void*)SQL-OV-ODBC3,0);
/*Step3:
建立连接*/
ret=SQLAllocHandle(SQL-HANDLE-DBC,kinghenv,&kinghdbc);
ret=SQLAlloocHandle(SQL-HANDLE-DBC,serverhenv,&serverhdbc);
ret=SQLConnect(kinghdbc,"KingbaseESODBC",SQL-NTS,"SYSTEM",SQL-NTS,"MANAGER",SQL-NTS);
if(!
SQL-SUCCEEDED(ret))return-1;//连接失败时返回错误值
ret=SQLConnect(serverhdbc,"SQLServer",SQL-NTS,"sa",SQL-NTS,"sa",SQL-NTS);
if(!
SQL-SUCCEEDED(ret)return-1;//连接失败时返回错误值
/*Step4:
初始化语句句柄*/
ret=SQLAllocHandle(SQL-HANDLE-STMT,kinghdbc,&kingstmt);
ret=SQLSetStmtAttr(kingstmt,SQL-ATTR-ROW-BIND-BYTE,(SQLPOINTER)SQL-BIND-BY-COLUMN,SQL-IS-INTEGER);
ret=SQLAllocHandle(SQL-HANDLE-STMT,serverhdbc,&serverhstmt);
/*Step5:
两种方式执行语句*/
/*预编译带有参数的语句*/
ret=SQLPREPARE(serverhstmt,"INSERTINTOSTUDENT(CAR_NO,CAR_NAME,DEPARTMENT_NAME,PRICE,STATUS)
VALUES(?
?
?
?
)",SQL_NTS);
if(ret==SQL_SUCCESS‖ret==SQL_SUCCESS_WITH_INFO)
{
ret===SQLBindParameter(serverhstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,
SQL-CHAR,CAR_NO_LEN,0,Car_NO,0,&cbCar_NO);
ret===SQLBindParameter(serverhstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,
SQL-CHAR,CAR_NAME_LEN,0,CAR_name,0,&cbCAR_name);
ret===SQLBindParameter(serverhstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,
SQL-CHAR,2,0,DEPARTMENT_name,0,&cbDEPARTMENT_name);
ret===SQLBindParameter(serverhstmt,4,SQL_PARAM_INPUT,SQL_C_FLOAT,
SQL-FlOAT,0,0,price,0,&cbprice);
ret===SQLBindParameter(serverhstmt,5,SQL_PARAM_INPUT,SQL_C_BOOLEAN,
SQL-BOOLEAN,0,Status,0,&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,Car_NO,CAR_NO_LEN,&cbCar_NO);
ret=SQLBindCol(kingghstmt,2,SQL_C_CHAR,CAR_name,CAR_NAME_LEN,cbCAR_name);
ret=SQLBindCol(kingghstmt,3,SQL_C_CHAR,DEPARTMENT_name,&cbDEPARTMENT_name);
ret=SQLBindCol(kingghstmt,4,SQL_C_FLOAT,price,0,&cbprice);
ret=SQLBindCol(kingghstmt,5,SQL_C_CHAR,Status,STATUS_LEN,&cbStatus);
}
/*Step6:
两种方式的语句*/
/*预编译客户基本表带有参数的语句*/
ret=SQLPREPARE(serverhstmt,"INSERTINTOSTUDENT(C_NO,User_NAME,User_SEX,User_AGE,User_tel,unit)
VALUES(?
?
?
?
)",SQL_NTS);
if(ret==SQL_SUCCESS‖ret==SQL_SUCCESS_WITH_INFO)
{
ret===SQLBindParameter(serverhstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,
SQL-CHAR,C_NO_LEN,0,c_NO,0,&cbc_NO);
ret===SQLBindParameter(serverhstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,
SQL-CHAR,User_NAME_LEN,0,User_name,0,&cbUser_name);
ret===SQLBindParameter(serverhstmt,3,SQL_PARAM_INPUT,SQL_C_CHAR,
SQL-CHAR,2,0,User_sex,0,&cbUser_sex);
ret===SQLBindParameter(serverhstmt,4,SQL_PARAM_INPUT,SQL_C_INT,
SQL-INT,0,0,User_age,0,&cbUser_age);
ret===SQLBindParameter(serverhstmt,5,SQL_PARAM_INPUT,SQL_C_INT,
SQL-INT,User_tel_LEN,0,user_tel,0,&cbuser_tel);
ret===SQLBindParameter(serverhstmt,6,SQL_PARAM_INPUT,SQL_C_CHAR,
SQL-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 销售 管理 系统 设计 实现 数据库 说明书