汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用_第1页
汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用_第2页
汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用_第3页
汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用_第4页
汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 汽车销售管理系统的设计实现与汽车4S店管理系统应用一、绪论摘要:本系统是为解决汽车销售公司的管理问题而设计。随着经济的发展和国内汽车市场的不断扩大,某汽车销售公司定单成倍增加,各项业务更加细化,各部门分工更加明确。而目前的人工管理方式显然已是不符合现代企业的管理要求。基于整体考虑,本次课程设计任务就是设计一个管理系统,利用计算机来代替人工操作。减轻了员工的劳动强度,提高了劳动质量和效率,减少了错误的发生。本次设计,从需求分析,概念设计,逻辑设计,物理设计,到数据库的建立、运行,再到数据库的安全维护等各个方面进行了详细的分析设计。并且值得一提的是,我认真分析了企业的业务需求,公司的主要职责和主

2、要结构等信息,从而保证了设计出比较符合公司需要的管理系统。1.1 系统简介智百盛汽车销售管理系统是针对汽车销售行业的业务特点,专为汽车销售的公司设计制作。我们依据现代科学管理理念,集国内外先进管理思想,并结合自身多年积累的开发经验和大量的市场调研,在高度集成、操作简单、方便管理、使用灵活等原则的指导下精心研发的一款软件。该软件主要包括客户关系管理、进车管理、库存管理、售车管理、代办管理、财务管理、报表分析、系统管理等模块。软件价格低廉,功能强大,维护简单,无论中、小型企业,花费很少投资,可以迅速得到企业全面信息化管理应用。l 智百盛汽车销售管理系统7.5紧密结合当今汽销模式,为汽销企业提供了全

3、面的信息管理功能。是广大汽车经销商、汽车特许专营店等用户优秀的计算机管理方案。满足各级部门对工作的需求,如总经理、销售经理、销售人员、会计、出纳、计划员、库管员等,是汽车销售企业最佳管理利器。·集汽销企业的进、销、存、财管理于一体。·所有单据和报表均支持底盘号、发动机号、合格证号等显示、查询和打印。·先进的万能查询功能。·支持用户自定义报表。·所有单据和表格可以导出至Excel、Word、HTML、TXT格式文件。·严谨的权限设置,不仅可以定义菜单权限,还可以定义具体操作权限。·实用的多帐套管理。·操作简单、极易上

4、手,无须专业培训,会用键盘鼠标即会使用。 智百盛汽车销售管理系统采用了大量的最新技术,进一步完善了业务管理功能,整个产品在管理功能、易用性、数据容量、数据安全性等方面都有了很大的提高。 二、系统需求分析 本系统的设计模拟一般医院的汽车销售管理系统内容,经过充分的系统分析和调研,本系统主要包括的信息有3类:汽车商品信息、汽车进货信息以及汽车销售信息。 在传统的销售管理工作中,往往是用人工清点的方式来掌握仓库中的汽车商品、使用手工记账的方式来掌握商品的进货和销售情况。这种方式在数量较少、库存变换少的情况下,不失为一种好的方法。但是,随着每天所发生的进货和销售情况纷繁复杂,如果借助人工来记录和管理,

5、将会耗费大量的时间,而且容易出现错误,造成管理上的混乱。 具体而言,汽车销售管理系统需要实现一下的需求:(1) 能够对医院过拥有的各种汽车的基础信息进行维护和管理。汽车的基础信息包括:汽车的顺序号、汽车名称、汽车规格、计量单位、备注信息、库存数量等。系统需要能够对汽车信息进行添加、修改和删除,也可以以图形的方式显示出现汽车的库存数量的比较。(2) 跟踪各种汽车的的进货信息。汽车的进货信息包括顺序号、汽车名称、进货数量、进货价格、进货日期、备注等。系统还需要能够对进货信息进行添加、修改和删除,也可以按照一定的条件来进行查询。(3) 跟踪各种汽车的销售信息。汽车的销售信息包括顺序号、汽车名称、顾客

6、名称、购买数量、售出价格、销售日期、备注等。系统需要能够对销售信息进行添加、修改和删除,也可以按照一定的条件来进行查询。3、 界面设计设计主界面美观,方便实用:四、概念结构设计本阶段的主要任务是将需求分析得到的用户需求抽象为信息结构结构(即概念模型)设计概念结构通常有四类方法:自顶向下、自底向上、逐步扩张和混合策略。我在这里采用自底向上方法。概念设计结果如下:(某公司轿车销售管理系统的基本ER图)五、逻辑结构设计 逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与sql所支持的数据模型相符合的逻辑结构。1E-R图向关系模型转换由概念设计的E-R图可得一般关系模型如下厂商(厂商

7、号,厂商名,地址,电话,信用度)客户(客户号,客户名,地址,电话,信用度)发货单(货单号,细节号,产品号,客户号,数量,日期,金额,折扣)收款单(客户号,定单号,收据号,收款金额,收款日期)定单(定单号,细节号,产品号,厂商号,数量,日期,金额)付款(厂商号,定单号,发票号,支付金额,支付日期)用户(用户ID,用户名,密码,用户类型,权限)员工(员工号,姓名,性别,部门,职务,电话)产品(产品号,产品名,厂商号,单价,库存量) 2数据模型的优化数据库逻辑设计的结果不是唯一的.为进一步提高数据库应用系统的性能,我们还应该根据应用需要适当的修改,调整数据模型的结构,这就是数据模型的优化。(1) 数

8、据依赖举例R厂商厂商号->厂商名,厂商号->地址,厂商号->电话R用户用户ID>用户名,用户ID>密码,用户ID>用户类型,用户ID>权限,用户类型>权限(2) 对数据依赖进行极小化处理,消除冗余联系举例 上述关系中,发货单中存在冗余联系(具体是细节号、折扣等),因此我们可以增加一个发货细节单和折扣规则单。(3) 按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖,传递函数依赖,多值依赖等,确定各关系分别属于第几范式举例上述关系中,用户表存在非主属性传递依赖,因此用户表属于2NF。我们可以增加一个用户权限表来消除该表中非主属性传递

9、依赖。3. 逻辑设计最终结果如下:(UserType表)(Users表)(Staff表)(共13个表,其他截图略)六、系统结构设计1在关系模式存取方法选择之前,我们首先要对要运行的事务进行详细分析,获得选择物理数据库设计所需要的参数。同时,还要知道每个事务在各关系上运行的频率和性能要求。(1) 对于数据库查询事务,我们需要得到如下信息:查询的关系、查询条件/连接条件涉及的属性、查询的投影属性A、查询发货厂商名、产品、发货数量(>100)和日期事务、查询的关系:厂商表、发货单表、产品表、查询条件所涉及的属性:厂商号、发货数量、产品号 III、连接条件所涉及的属性:厂商号、产品号 IV、查询

10、的投影属性:厂商名、产品名、发货数量、发货日期(2) 对于数据更新事务,我们需要得到如下信息:被更新的关系、每个关系上的更新操作条件涉及的属性、修改操作要改变的属性值B、对发货事务、被更新的关系:发货表、每个关系上的更新操作条件所涉及的属性:无III、需要改的属性值:货单号、产品号、发货数量、发货日期2. 关系模式存取方法选择(即建立哪些存储路径)C、对carsale建立索引对厂商表上的厂商号、发货表的产品号、产品表的产品号等建立索引,因为他们经常在查询条件和连接条件中出现根据事务查询中的厂商表建立索引如下:CREATE UNIQUE INDEX FaPa_no ON Factory(Fa_n

11、o);D、对carsale建立聚簇索引 对产品表的厂商号、付款表的厂商号、收款表的客户号等建立聚簇索引,因为他们在其关系表中的值重复率很高 对产品表的产品号、发货表的产品号、订单表的产品号等建立聚簇索引,因为他们经常出现在相等比较条件中 根据事务查询中产品表建立聚簇索引如下 CREATE CLUSTER INDEX ProFa_no ON Product(Fa_no);E、对carsale确定数据的存放位置 为提高系统性能,我们根据应用情况将数据的易变部分和稳定部分、经常存取部分和存取频率较低部分分开存放。即我们把表和索引放在不同的磁盘上。F、对carsale确定系统配置使用数据库的用户数(我

12、们只要设置比较少的用户数);同时打开的数据库对象数(用户同时操作对象不超过3个);内存分配参数(运行exe文件需要5M内存);缓冲区分配参数(略);数据库的大小(预留500M数据存储空间)等。G、对carsale物理结构的评价 数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果产生多种方案。经过我们的细致评价,得出上述系统配置作为carsale的数据库物理结构。七、详细设计数据的载入和应用程序的调试(1)由于该系统尚未投入使用,我们仅象征性地载入少量数据(轿车信息表导入实验数据) (客户信息表导入实验数据)(订单表导入实验数据)(生产商表导入实验数据)【应用程

13、序的调试】数据库应用程序的设计应该与数据库设计同时进行,鉴于VB简单易用,我们选择VB作为应用程序的设计语言。因此在组织数据入库的同时还要调试应用部分代码:部分代码 A 进货信息列表窗体代码 Private Sub cmdAdd_Click()frmStock.mbAddMode = TruefrmStock.Show vbModalEnd SubPrivate Sub cmdDelete_Click()On Error GoTo errHandlerDim l As Longl = grdList.TextMatrix(grdList.Row, 1)gConn.Execute "d

14、elete from stock where 顺序号=" & lUnload MeLoad MeMe.SQL = "select * from stock"Me.ShowExit SuberrHandler: MsgBox Err.Description, vbCritical, "错误"End SubPrivate Sub cmdEdit_Click()frmStock.mnSerial = CLng(grdList.TextMatrix(grdList.Row, 1)frmStock.mbAddMode = TruefrmStock

15、.Show vbModalEnd SubPrivate Sub cmdFind_Click()frmFind.SQL = mRs.SourcefrmFind.Show vbModalUnload MeLoad MeIf Trim(frmFind.msResultSQL) <> "" Then Me.SQL = "select * from stock where" & frmFind.msResultSQLEnd IfMe.ShowUnload frmFindEnd SubPrivate Sub cmdShowAll_Click()U

16、nload MeLoad MeMe.SQL = "select * from stock"Me.ShowEnd SubPrivate Sub Form_Load()Dim i As IntegerWith grdList .Cols = 8 .TextMatrix(0, 1) = "" .TextMatrix(0, 2) = "汽车名称" .TextMatrix(0, 3) = "供应商名称" .TextMatrix(0, 4) = "进货数量" .TextMatrix(0, 5) = &quo

17、t;商品单价" .TextMatrix(0, 6) = "进货日期" .TextMatrix(0, 7) = "备注" .FixedRows = 1 For i = 0 To .Cols - 1 .ColAlignment(i) = 0 Next i .FillStyle = flexFillRepeat .Col = 0 .Row = 0 .RowSel = 1 .ColSel = .Cols - 1 .CellAlignment = 4 .ColWidth(0) = 100 .ColWidth(1) = 0 .ColWidth(2) = 1

18、000 .ColWidth(3) = 1000 .ColWidth(4) = 1000 .ColWidth(5) = 1000 .ColWidth(6) = 1000 .ColWidth(7) = 1000 .Row = 1End WithSet mRs = New ADODB.RecordsetEnd SubPrivate Sub Form_Resize()fraManage.Left = (Me.ScaleWidth - fraManage.Width) / 2fraManage.Top = Me.ScaleHeight - 200 - fraManage.HeightgrdList.To

19、p = 200grdList.Width = Me.ScaleWidth - 200grdList.Left = Me.ScaleLeft + 100grdList.Height = Me.ScaleHeight - fraManage.Height - grdList.Top - 200End SubPrivate Sub Form_Unload(Cancel As Integer)If mRs.State <> adStateClosed Then mRs.CloseEnd Sub B 进货信息编辑窗体代码 Private Sub cmdCancel_Click()If mbC

20、hange Then If MsgBox("保存当前记录的变化吗?", vbOKCancel + vbExclamation, "警告") = vbOK Then Call cmdOK_Click End IfEnd IfUnload MeUnload frmStockListLoad frmStockListfrmStockList.SQL = "select * from stock"frmStockList.ShowEnd SubPrivate Sub cmdOK_Click()On Error GoTo errHandlerI

21、f txtIntem(3).Text = "" Then MsgBox "字段不能为空,而且只能输入数字", vbCritical, "错误"End IfIf txtIntem(4).Text = "" Then MsgBox "字段不能为空,而且只能输入数字", vbCritical, "错误"End IfIf Trim(cboItem) = "" Then MsgBox "必须选择汽车名称", vbCritical, "错

22、误" cboItem.SetFocus Exit SubEnd IfIf Not IsDate(Trim(txtIntem(5) Then MsgBox "请输入正确的日期格式!", vbOKOnly + vbExclamation, "警告" txtIntem(5).SetFocus Exit SubEnd IfIf Not mbAddMode Then gConn.Execute "delete from stock where 顺序号='" & mnSerial & "'&qu

23、ot;End IfDim rs As New ADODB.Recordsetrs.Open "select * from stock", gConn, adOpenDynamic, adLockOptimisticrs.AddNewrs("汽车名称") = cboItem.TextDim i As IntegerFor i = txtIntem.LBound To txtIntem.UBound rs.Fields(i).Value = txtIntem(i)Next irs.Updaters.ClosemnQuantity = CInt(txtInte

24、m(3) - mnQuantitygConn.Execute "update products set 库存数量=库存数量+" & mnQuantity & "where 汽车名称='" & cboItem.Text & "'"If mbAddMode Then mbChange = True MsgBox "添加进货信息成功!继续添加下一条进货信息", vbOKOnly + vbExclamation, "添加进货信息" Unload Me Me

25、.Show vbModalElse Unload Me frmStockList.SQL = "select * from stock" frmStockList.ShowEnd IfExit SuberrHandler: MsgBox Err.Description, vbCritical, "错误"End SubPrivate Sub Form_Load()On Error GoTo errHandlerDim rs As New ADODB.Recordsetrs.Open "select distinct 汽车名称 from products", gConn, adOpenKeysetIf Not rs.EOF Then cboItem.Clear Do While Not rs.EOF cboItem.AddItem rs("汽车名称") rs.MoveNext LoopElse MsgBox "当前数据库不包含任何的汽车信息。请先设置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论