汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx

上传人:b****6 文档编号:19575354 上传时间:2023-01-07 格式:DOCX 页数:14 大小:151.38KB
下载 相关 举报
汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx_第1页
第1页 / 共14页
汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx_第2页
第2页 / 共14页
汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx_第3页
第3页 / 共14页
汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx_第4页
第4页 / 共14页
汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx

《汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

汽车销售管理系统的设计实现与汽车4S店销售管理软件的应用Word文档下载推荐.docx

这种方式在数量较少、库存变换少的情况下,不失为一种好的方法。

但是,随着每天所发生的进货和销售情况纷繁复杂,如果借助人工来记录和管理,将会耗费大量的时间,而且容易出现错误,造成管理上的混乱。

具体而言,汽车销售管理系统需要实现一下的需求:

(1)能够对医院过拥有的各种汽车的基础信息进行维护和管理。

汽车的基础信息包括:

汽车的顺序号、汽车名称、汽车规格、计量单位、备注信息、库存数量等。

系统需要能够对汽车信息进行添加、修改和删除,也可以以图形的方式显示出现汽车的库存数量的比较。

(2)跟踪各种汽车的的进货信息。

汽车的进货信息包括顺序号、汽车名称、进货数量、进货价格、进货日期、备注等。

系统还需要能够对进货信息进行添加、修改和删除,也可以按照一定的条件来进行查询。

(3)跟踪各种汽车的销售信息。

汽车的销售信息包括顺序号、汽车名称、顾客名称、购买数量、售出价格、销售日期、备注等。

系统需要能够对销售信息进行添加、修改和删除,也可以按照一定的条件来进行查询。

3、界面设计

设计主界面美观,方便实用:

 

四、概念结构设计

本阶段的主要任务是将需求分析得到的用户需求抽象为信息结构结构(即概念模型)

设计概念结构通常有四类方法:

自顶向下、自底向上、逐步扩张和混合策略。

我在这里采用自底向上方法。

概念设计结果如下:

(某公司轿车销售管理系统的基本E-R图)

五、逻辑结构设计

逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与sql所支持的数据模型相符合的逻辑结构。

1.E-R图向关系模型转换

由概念设计的E-R图可得一般关系模型如下

厂商(厂商号,厂商名,地址,电话,信用度)

客户(客户号,客户名,地址,电话,信用度)

发货单(货单号,细节号,产品号,客户号,数量,日期,金额,折扣)

收款单(客户号,定单号,收据号,收款金额,收款日期)

定单(定单号,细节号,产品号,厂商号,数量,日期,金额)

付款(厂商号,定单号,发票号,支付金额,支付日期)

用户(用户ID,用户名,密码,用户类型,权限)

员工(员工号,姓名,性别,部门,职务,电话)

产品(产品号,产品名,厂商号,单价,库存量)

2.数据模型的优化

数据库逻辑设计的结果不是唯一的.为进一步提高数据库应用系统的性能,我们还应该根据应用需要适当的修改,调整数据模型的结构,这就是数据模型的优化。

(1)数据依赖举例

R厂商={厂商号->

厂商名,厂商号->

地址,厂商号->

电话}

R用户={用户ID->

用户名,用户ID->

密码,用户ID->

用户类型,用户ID->

权限,用户类型->

权限}

(2)对数据依赖进行极小化处理,消除冗余联系举例

上述关系中,发货单中存在冗余联系(具体是细节号、折扣等),因此我们可以增加一个发货细节单和折扣规则单。

(3)按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖,传递函数依赖,多值依赖等,确定各关系分别属于第几范式举例

上述关系中,用户表存在非主属性传递依赖,因此用户表属于2NF。

我们可以增加一个用户权限表来消除该表中非主属性传递依赖。

3.逻辑设计最终结果如下:

(UserType表)

(Users表)

(Staff表)

(共13个表,其他截图略)

六、系统结构设计

1.在关系模式存取方法选择之前,我们首先要对要运行的事务进行详细分析,获得选择物理数据库设计所需要的参数。

同时,还要知道每个事务在各关系上运行的频率和性能要求。

(1)对于数据库查询事务,我们需要得到如下信息:

查询的关系、查询条件/连接条件涉及的属性、查询的投影属性

A、查询发货厂商名、产品、发货数量(>

100)和日期事务

Ⅰ、查询的关系:

厂商表、发货单表、产品表

Ⅱ、查询条件所涉及的属性:

厂商号、发货数量、产品号

、连接条件所涉及的属性:

厂商号、产品号

、查询的投影属性:

厂商名、产品名、发货数量、发货日期

(2)对于数据更新事务,我们需要得到如下信息:

被更新的关系、每个关系上的更新操作条件涉及的属性、修改操作要改变的属性值

B、对发货事务

Ⅰ、被更新的关系:

发货表

Ⅱ、每个关系上的更新操作条件所涉及的属性:

、需要改的属性值:

货单号、产品号、发货数量、发货日期

2.关系模式存取方法选择(即建立哪些存储路径)

C、对carsale建立索引

对厂商表上的厂商号、发货表的产品号、产品表的产品号等建立索引,因为他们经常在查询条件和连接条件中出现

根据事务查询中的厂商表建立索引如下:

CREATEUNIQUEINDEXFaPa_noONFactory(Fa_no);

D、对carsale建立聚簇索引

对产品表的厂商号、付款表的厂商号、收款表的客户号等建立聚簇索引,因为他们在其关系表中的值重复率很高

对产品表的产品号、发货表的产品号、订单表的产品号等建立聚簇索引,因为他们经常出现在相等比较条件中

根据事务查询中产品表建立聚簇索引如下

CREATECLUSTERINDEXProFa_noONProduct(Fa_no);

E、对carsale确定数据的存放位置

为提高系统性能,我们根据应用情况将数据的易变部分和稳定部分、经常存取部分和存取频率较低部分分开存放。

即我们把表和索引放在不同的磁盘上。

F、对carsale确定系统配置

使用数据库的用户数(我们只要设置比较少的用户数);

同时打开的数据库对象数(用户同时操作对象不超过3个);

内存分配参数(运行exe文件需要5M内存);

缓冲区分配参数(略);

数据库的大小(预留500M数据存储空间)等。

G、对carsale物理结构的评价

数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果产生多种方案。

经过我们的细致评价,得出上述系统配置作为carsale的数据库物理结构。

七、详细设计

数据的载入和应用程序的调试

(1)由于该系统尚未投入使用,我们仅象征性地载入少量数据

(轿车信息表导入实验数据)

(客户信息表导入实验数据)

(订单表导入实验数据)

(生产商表导入实验数据)

【应用程序的调试】

数据库应用程序的设计应该与数据库设计同时进行,鉴于VB简单易用,我们选择VB作为应用程序的设计语言。

因此在组织数据入库的同时还要调试应用

部分代码:

部分代码

A进货信息列表窗体代码

PrivateSubcmdAdd_Click()

frmStock.mbAddMode=True

frmStock.ShowvbModal

EndSub

PrivateSubcmdDelete_Click()

OnErrorGoToerrHandler

DimlAsLong

l=grdList.TextMatrix(grdList.Row,1)

gConn.Execute"

deletefromstockwhere顺序号="

&

l

UnloadMe

LoadMe

Me.SQL="

select*fromstock"

Me.Show

ExitSub

errHandler:

MsgBoxErr.Description,vbCritical,"

错误"

PrivateSubcmdEdit_Click()

frmStock.mnSerial=CLng(grdList.TextMatrix(grdList.Row,1))

PrivateSubcmdFind_Click()

frmFind.SQL=mRs.Source

frmFind.ShowvbModal

IfTrim(frmFind.msResultSQL)<

>

"

"

Then

Me.SQL="

select*fromstockwhere"

frmFind.msResultSQL

EndIf

UnloadfrmFind

PrivateSubcmdShowAll_Click()

PrivateSubForm_Load()

DimiAsInteger

WithgrdList

.Cols=8

.TextMatrix(0,1)="

.TextMatrix(0,2)="

汽车名称"

.TextMatrix(0,3)="

供应商名称"

.TextMatrix(0,4)="

进货数量"

.TextMatrix(0,5)="

商品单价"

.TextMatrix(0,6)="

进货日期"

.TextMatrix(0,7)="

备注"

.FixedRows=1

Fori=0To.Cols-1

.ColAlignment(i)=0

Nexti

.FillStyle=flexFillRepeat

.Col=0

.Row=0

.RowSel=1

.ColSel=.Cols-1

.CellAlignment=4

.ColWidth(0)=100

.ColWidth

(1)=0

.ColWidth

(2)=1000

.ColWidth(3)=1000

.ColWidth(4)=1000

.ColWidth(5)=1000

.ColWidth(6)=1000

.ColWidth(7)=1000

.Row=1

EndWith

SetmRs=NewADODB.Recordset

PrivateSubForm_Resize()

fraManage.Left=(Me.ScaleWidth-fraManage.Width)/2

fraManage.Top=Me.ScaleHeight-200-fraManage.Height

grdList.Top=200

grdList.Width=Me.ScaleWidth-200

grdList.Left=Me.ScaleLeft+100

grdList.Height=Me.ScaleHeight-fraManage.Height-grdList.Top-200

PrivateSubForm_Unload(CancelAsInteger)

IfmRs.State<

adStateClosedThenmRs.Close

B进货信息编辑窗体代码

PrivateSubcmdCancel_Click()

IfmbChangeThen

IfMsgBox("

保存当前记录的变化吗?

vbOKCancel+vbExclamation,"

警告"

)=vbOKThen

CallcmdOK_Click

EndIf

UnloadfrmStockList

LoadfrmStockList

frmStockList.SQL="

frmStockList.Show

PrivateSubcmdOK_Click()

IftxtIntem(3).Text="

MsgBox"

字段不能为空,而且只能输入数字"

vbCritical,"

IftxtIntem(4).Text="

IfTrim(cboItem)="

必须选择汽车名称"

cboItem.SetFocus

ExitSub

IfNotIsDate(Trim(txtIntem(5)))Then

请输入正确的日期格式!

vbOKOnly+vbExclamation,"

txtIntem(5).SetFocus

IfNotmbAddModeThen

gConn.Execute"

deletefromstockwhere顺序号='

mnSerial&

'

DimrsAsNewADODB.Recordset

rs.Open"

gConn,adOpenDynamic,adLockOptimistic

rs.AddNew

rs("

)=cboItem.Text

Fori=txtIntem.LBoundTotxtIntem.UBound

rs.Fields(i).Value=txtIntem(i)

Nexti

rs.Update

rs.Close

mnQuantity=CInt(txtIntem(3))-mnQuantity

updateproductsset库存数量=库存数量+"

mnQuantity&

where汽车名称='

cboItem.Text&

IfmbAddModeThen

mbChange=True

添加进货信息成功!

继续添加下一条进货信息"

添加进货信息"

UnloadMe

Me.ShowvbModal

Else

frmStockList.SQL="

frmStockList.Show

selectdistinct汽车名称fromproducts"

gConn,adOpenKeyset

IfNotrs.EOFThen

cboItem.Clear

DoWhileNotrs.EOF

cboItem.AddItemrs("

rs.MoveNext

Loop

当前数据库不包含任何的汽车信息。

请先设置汽车信息!

Me.Caption=Me.Caption&

添加"

txtIntem(5)=Format(Date,"

yyyy-mm-dd"

txtIntem(3)=0

txtIntem(4)=10

mnQuantity=0

修改"

rs.Open"

select*fromstockwhere顺序号="

mnSerial

IfNotrs.EOFThen

cboItem.Text=rs("

DimiAsInteger

Fori=txtIntem.LBoundTotxtIntem.UBound

txtIntem(i)=rs.Fields(i).Value

mnQuantity=rs("

rs.Close

mbChange=False

PrivateSubtxtIntem_Change(IndexAsInteger)

mbChange=True

PrivateSubtxtIntem_GotFocus(IndexAsInteger)

txtIntem(Index).SelStart=0

txtIntem(Index).SelLength=Len(txtIntem(Index))

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1