版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上目 录一、引言1.1、编写目的11.2、 定义2.1.3、数据库设计步骤3二、需求分析2.1、功能分析32.2、业务活动52.3、数据字典72.4、数据流图11三、结构设计3.1、概念设计113.2、总体E-R图设计123.3、逻辑设计143.4、物理设计14四、运用设计4.1、程序源码与用户界面17 4.3、系统运行与维护19五、参考文献5.1、参考文献201引言1.1编写目的目前大多数厂商忽略了汽车销售管理系统的重要性,而本系统专为具有一定规模和经济条件的大型汽车厂设计。从进货管理:车辆采购、车辆入库,销售管理到车辆销售、收益统计等,为每个环节明确分工,并通过可视
2、化的软件支持,有效减小了人为差错的概率,代之以高效、便捷、准确的数字化服务系统,使汽车销售管理更加规范化。根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平,通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。从而达到掌握开发一个小型数据库的目的。1.2定义1、系统名称:汽车销售管理系统2、数据库管理软件:Microsoft SQL Server3、数据库设计人员:洪保江4
3、、使用本数据库的程序:。5、数据库设计采用软件:Microsoft Office Visio 20036、系统采用C/S体系结构:Client (客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server (服务器)端用于提供数据服务。7、运行平台:windows 2000/xp/linux1.3、数据库设计步骤2、需求分析2.1功能分析进行需求分析首先是调查清楚用户的实际要求,与用户达成共识,然后分析与表达这些需求。调查厂商与各部门需求的具体步骤如下: (1).调查厂商组织情况。包括了解各组织的部门组成情况,各部门的职责等,为分析信息流程做准备。 (2).调查各部门的业务活动
4、情况。包括了解各个部门和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么,这些是调查的重点。 (3).在熟悉了业务活动的基础上,协助用户明确对新系统的各种要求,包括信息要求,处理要求,安全性与完整性要求,这是调查的又一重点。 (4).确定新系统的边界。对前面调查的结果进行初步分析,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。调查本地从事汽车销售的企业,根据企业汽车销售的情况,设计用于汽车销售的管理系统,主要功能有:基础信息管理:厂商信息、车型信息和客户信息;进货管理:车辆采购、车辆入库;销售管理:车辆销售(处理车辆销售单)、销售代办
5、(处理销售代办单)、车辆查询、销售日记录、销售月记录;仓库管理:库存车辆、仓库明细、进销存统计;系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等;2.2业务活动一、市场工作 1、 获取订单(有能力可做) A、联络经销商仓管员,了解经销商库存; B、联络经销商采购购报价; C、结合经销商库存情况,主动争取订单; D、寻找经销商的配货意向进行展异议处理; E、获得订单,并交由分公司助理安排送货; F、跟踪送货员贷物交接情况及协助送贷员解决收款中遇到的困难。 二、 客户拜访及市场工作 第一步 准备工作: A、检查每周工作记事表,确定当日拜记路线; B、 准备当日需解决的问题,预约当日
6、需拜访客户; 第二步 销售拜访 A、接触:问候或自我介绍通过改变交谈环境、车轮话术等方法,确定良好的沟通氛围;B、收集市场资讯及客户销售资料及填报表;C、了解竞争对手及品牌机型的市场动向;D、进行异议处理、协助客户在销售中存在的问题。 第三步 总结与调整 A、 回顾当日工作进展状况,填写每日工作日记; B、 总结当时工作中遇到的问题,失误与成就,并及时做出调整; C、 根据当时进展状况,对每周工作记事表做出调整。2.3数据字典1、数据项编号数据项名称说 明 部 分编号数据项名 称说 明 部 分1客户姓名文本类型 长度为20字符2工作单位文本类型 长度为20字符3性别字符串类型 男、女4年龄 整
7、数类型 181005客户号字符串类型 有唯一性6联系电话整数类型 7车型号字符串类型 有唯一性8价格浮点型9车辆状态枚举类型 被订、未订10厂商名文本类型 有唯一性11厂商号字符串类型 有唯一性12地址文本类型 长度为30字符13生产车辆总数整数类型14厂商状态枚举类型 忙、闲15订单号整数类型 订单所属的类别16订货日期时间类型 */*17交货日期时间类型 */*18仓库号字符串类型 有唯一性19进货车辆数整数类型 20出货车辆数整数类型21库存车辆总数整数类型22出售车辆数整数类型23车辆总成本整数类型 24获取总金额整数类型25利润整数类型 26买车时间时间类型27保修期限时间类型28备
8、注文本类型19车辆名称字符串类型 长度为20字符2、数据结构编号数据结构名属 性1客户客户姓名、性别、年龄、客户号、工作单位、联系电话2车辆车型号、车辆名称、厂商名、价格、车辆状态3厂商厂商名、厂商号、地址、生产车辆总数、厂商状态、备注4订单订单号、客户号、订货日期、交货日期、地址、是否存有、是否已订5仓库仓库号、地址、进货车辆数、出货车辆数、库存车辆总数、6车辆销售车型号、厂商号、出售车辆数、车辆总成本、获取总金额、利润7订货客户、厂商、车辆、买车时间、保修期限3、数据流编号数 据 流 名输 入输 出1变更客户变更信息客户信息2查询客户客户号客户信息3变更厂商变更信息厂商信息4查询厂商厂商号
9、厂商信息5变更车辆变更信息车辆信息6查询车辆车型号车辆信息7变更订单变更信息订单信息8查询订单订单号订单信息9变更仓库变更信息仓库信息10仓库仓库号地址11变更车辆销售变更信息车辆销售信息12查询车辆销售车辆销售数利润13查询空闲厂商厂商状态限制条件空闲厂商信息14结账车型号购买信息15提交订货请求客户号、车型号、价格、厂商号车辆信息16获得订货请求订货信息车型号、厂商号、客户号17提交订单信息车型号、厂商号订单信息18变更厂商分工信息厂商号、车型号厂商分工信息19预定车辆车型号车辆信息20付款车型号车辆信息、厂商信息4、数据存储数据存储名输入数据流输出数据流说 明 部 分客户信息变更客户查询
10、客户提交订货请求车辆信息变更车辆查询车辆获得订货请求厂商信息变更厂商查询房间提交订货请求查询空闲厂商车辆销售信息变更车辆销售查询厂商提交点货请求查询空闲厂商提交订货信息提交订单信息订单信息变更订单结账提交订货请求订货信息提交订货请求提交订单信息结账获得订货请求厂商分工信息变更厂商分工信息5、处理过程处理过程名输入数据流输出数据流说 明 部 分客户登记终端变更车辆变更厂商订货终端提交订货请求获得订货请求订货获得订货请求提交订货信息订单提交订货信息提交订单信息客户结账结账2.4数据流图1、顶层进程销售管理子系统第一层数据流图2、第二层 (1)进程1接受订单 (2) 进程2处理订单(3) 进程3开发
11、票(4) 进程4结帐系统3、结构设计3.1概念结构设计在概念设计中,通常用四种方法: (1). 自顶向下,首先定义全局概念结构的框架,然后逐步细化. (2). 自底向上,首先定义各局部应用的概念结构,然后将他们集成起来,得到全局概念结构. (3). 逐步扩张. 首先定义最核心的概念结构,然后向外扩充,直至总体概念结构. (4). 混合策略. 即自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构. 我在此设计中采用自底向上的方法,逐步实现数据库的设计,得到全局概念.3.2、总体E-R图设计3.3逻辑结构设计331基本表1、客户基
12、本表属性中文名称属性名类型长度说明客户号C_NOCHAR20主码:公司统一编号,具有唯一性客户姓名User_NAMECHAR20客户名称服务员性别User_SEXCHAR4客户性别服务员年龄User_AGEINT18100联系电话User_telINT工作单位unitCHAR20客户所在工作场所2、车辆基本表属性中文名称属性名类型长度说明车型号CAR_NOCHAR10主码:厂商统一编号,具有唯一性车辆名称CAR_NAMECHAR20车辆名称厂商名INDUSTTY_NAMECHAR文本类型 有唯一性价格PRICEFLOAT车辆状态STATUSBOOLEAN枚举类型 被订、未订3、厂商基本表属性中
13、文名称属性名类型长度说明厂商号INDUSTTY_NOCHAR10主码:厂商统一编号,具有唯一性厂商名INDUSTTY_NAMECHAR文本类型 有唯一性地址addressCHAR10厂商状态STATUSBOOLEAN忙:1;空闲:0生产车辆总数CAR_amountINT4、仓库表属性中文名称属性名类型长度说明仓库号BOX_NOCHAR10主码:厂商统一编号,具有唯一性地址addressCHAR10进货车辆数IN_AMOUNTINT仓库开始进车辆的数量出货车辆数OU_AMOUNTINT仓库已卖出的车辆数量库存车辆总数REMAIN_AMOUNTINT仓库现存有的车辆数量5、车辆销售基本表属性中文名
14、称属性名类型长度说明车型号CAR_NOCHAR10外码:参照车辆表的车型号厂商号INDUSTTY_NOCHAR10外码:依照厂商表的厂商号出售车辆数Sale_amountINT车辆总成本CAR_MONEYFLOAT车辆进货的成本获取总金额MONEYFLOAT利润beniftFLOAT盈:1 亏:06、订单表属性中文名称属性名类型长度说明订单号order_NOINT10订单所属的类别客户号C_NOCHAR20外码:参照客户表的客户号订货日期order_datadata订货时间交货日期Hand_datadata交货期限厂商号INDUSTTY_NOCHAR10外码:依据厂商表中的厂商号是否存有MAD
15、EBOOLEAN默认:false(没有)是否已订ordersBOOLEAN默认:false (未订)332视图1、空闲厂商(厂商号,厂商名)从厂商基本表导出2、进销存统计(仓库号,进货车辆数,出货车辆数)从仓库基本表导出3、所有车辆销售信息(车型号,厂商号,车辆状态)从车辆和厂商基本表导出4、付款(车型号,厂商号,车辆名,价格)从车辆表、厂商表导出5、订单生成视图订单(订单号,客户号,订货日期,交货日期,地址,是否存有,是否已订)从订单表、客户表导出6、收益统计信息(车型号,出售车辆数,车辆总成本,获取总金额,利润)从车辆表、车辆销售表导出3.4物理结构设计在物理结构设计阶段首先分两步走:(1
16、)确定数据库的物理结构,在关系数据库中主要是指存取方法和存储结构。(2)对物理结构的评价是时间和空间效率。选取正确的关系模式存取方法,常用的有:(1)存取索引方法。(2)聚簇存取。(3)HASH存取方法等。4 运用设计4.1、程序源码与用户界面#include<stdlib.h>#include<stdio.h>#include<windows.h>#include<sql.h>#include<sqlext.h>#include<Sqltypes.h>#define CAR-NO-LEN 50#define USE-AG
17、E-SEX 5#define CAR-NAME-LEN 50#define DEPART-LEN 100#define CAR-PRICE-LEN 30#define STATUS_LEN 100int main() /* Step 1 定义句柄和变量 */ /以king开头的表示的是连接KingbaseES的变量 /以server开头的表示的是连接SQLSERVER的变量 SQLHENV kinghenv,serverhenv; /环境句柄 SQLHDBC kinghdbc,serverhdbc; /连接句柄 SQLHSTMT kinghstmt,serverhstmt; /语句句柄 SQL
18、RETURN ret; SQLCHAR cNameNAME-LEN,DepartDEPART-LEN,cNONO-LEN,cPricePRICE-LEN,StatusSTATUS-LEN; SQLINTEGER sSta,sSage; SQLINTEGER cbAge=0,cbSta=0,cbCno=SQL-NTS,cbPrice=SQL-NTS,cbName=SQL-NTS,cbDeopart=SQL-NTS; /*Step 2 初始化环境 */ret=SQLAllocHandle(SQL-HANDLE-ENV,SQL-NULL-HANDLE,&kinghenv);ret=SQLAl
19、locHandle(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); /*Step 3:建立连接 */ret=SQLAllocHandle(SQL-HANDLE-DBC,kinghenv,&kinghdbc);ret=SQLAlloocHandle(S
20、QL-HANDLE-DBC,serverhenv,&serverhdbc);ret=SQLConnect(kinghdbc,"KingbaseES ODBC",SQL-NTS,"SYSTEM",SQL-NTS,"MANAGER",SQL-NTS);if(! SQL-SUCCEEDED(ret) return -1; /连接失败时返回错误值ret=SQLConnect(serverhdbc,"SQLServer",SQL-NTS,"sa",SQL-NTS,"sa",SQ
21、L-NTS);if(! SQL-SUCCEEDED(ret) return -1; /连接失败时返回错误值 /* Step 4: 初始化语句句柄 */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);/*
22、Step 5:两种方式执行语句 */* 预编译带有参数的语句 */ret=SQLPREPARE(serverhstmt,"INSERT INTO STUDENT (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
23、_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_I
24、NPUT,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=SQLBind
25、Col(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
26、,5,SQL_C_CHAR,Status,STATUS_LEN,&cbStatus); /* Step 6:两种方式的语句 */*预编译客户基本表带有参数的语句 */ret=SQLPREPARE(serverhstmt,"INSERT INTO STUDENT (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
27、,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=SQLBi
28、ndParameter(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-CHAR,unit_LEN,0,UNIT,0,&
29、;cbUNIT); /*查询客户信息执行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); /* Step 7:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023-2024学年广东省深圳市红岭中学八年级上学期月考二物理试题及答案
- 四川电子机械职业技术学院《生物分离技术》2023-2024学年第一学期期末试卷
- 四川大学锦江学院《民航服务英语》2023-2024学年第一学期期末试卷
- 企业营销策略与市场定位研究
- 摊位物品转让合同范例
- 粮库整体收购合同范例
- 煤矿刮板收购合同范例
- 网络安全设备升级合同范例
- 石膏原料采购合同范例
- 签淘宝运营合同范例
- 外加剂试验记录1
- 2011赣南脐橙购销合同
- 应收账款 -会计毕业论文
- 全国银行间债券市场跨托管机构债券借贷(人工处理)业务规则
- 低压铸造典型缺陷及防止
- 变压器零序差动保护原理及调试
- 小升初个人简历模板百度云下载
- 分支机构职场租赁装修及家具设备管理办法
- 线性代数知识点总结(第3章)_2066
- 铀矿物资源库所有的铀矿总结
- 小学数学答题卡模板(共4页)
评论
0/150
提交评论