_数据库实训-轿车销售管理系统.doc_第1页
_数据库实训-轿车销售管理系统.doc_第2页
_数据库实训-轿车销售管理系统.doc_第3页
_数据库实训-轿车销售管理系统.doc_第4页
_数据库实训-轿车销售管理系统.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

轿车销售管理系统学号:11041216 班级:计算机科学与技术11-2姓名:张文涛引言:本系统采用Visual Basic 6.0 和SQL Server 2008来建立一个简单的轿车销售管理系统。基本功能包括:轿车信息管理、客户信息管理、员工信息管理等功能。详细描述如下:1系统用户管理功能:用户根据姓名和密码登录系统。登录用户分为两个等级:普通用户和管理员用户。(1)普通用户:只有查看轿车信息、客户信息、员工信息等功能;(2)管理员用户(admin):除了以上功能外,同时还有添加用户、修改用户密码和删除用户的功能。2轿车信息管理功能:录入所销售的轿车的编号、型号、品牌、价格、保修期等信息,同时支持对轿车信息的添加、修改、删除和查询功能。3客户信息管理功能:录入购买的客户的姓名、性别、年龄、联系方式、所购车型号、购车价格等信息,同时支持对客户信息的添加、修改、删除和查询功能。4员工信息管理功能:录入员工的员工号、姓名、性别等信息,同时支持对员工信息的添加、修改、删除和查询功能。一、系统功能系统的控制流程图如下所示:登录修改用户密码查询用户密码系统用户删除系统用户管理功能轿车信息管理功能客户信息管理功能员工信息管理功能轿车信息查询轿车信息添加轿车信息修改轿车信息删除客户信息查询客户信息添加客户信息修改客户信息删除员工信息查询员工信息添加员工信息修改员工信息删除系统用户添加本系统主要需要实现对轿车信息、客户信息和员工信息的管理。具体实现的功能包括:1系统用户管理功能:用户根据姓名和密码登录系统。登录用户分为两个等级:普通用户和管理员用户。(1)普通用户:只有查看轿车信息、客户信息、员工信息等功能;(2)管理员用户(Adimn):除了以上功能外,同时还有添加用户、修改用户密码和删除用户的功能。2轿车信息管理功能: 录入所销售的轿车的编号、型号、品牌、价格、保修期等信息,同时支持对轿车信息的添加、修改、删除和查询、统计功能。3客户信息管理功能:录入购买的客户的姓名、性别、年龄、联系方式、所购车型号、购车价格等信息,同时支持对客户信息的添加、修改、删除和查询、统计功能。4员工信息管理功能:录入员工的员工号、姓名、性别等信息,同时支持对员工信息的添加、修改、删除和查询、统计功能。二、概念模型设计系统用户员工信息客户信息轿车信息管理用户名密 码用户等级类型描述用户级别轿车型号轿车编号轿车品牌轿车价格轿车保修期轿车具体描述客户编号客户年龄客户职业身份证号客户电话客户住址购车价格购车型号客户性别客户姓名员工编号员工性别员工姓名员工电话员工职务员工生日员工地址进入公司时间所在部门用E-R图描述本系统的数据库设计。三、数据库设计1数据库设计创建“轿车销售管理系统”数据库,库名为CarSaleSys,其中数据文件初始大小为1MB,最大大小不受限制,允许数据库自动增长,增长方式是按10%增长;日志文件初始大小为1MB,最大大小不受限制,增长方式是按10%增长。CarSaleSys系统中包含5个数据库表:用户信息表Users、用户类型表UserType、轿车信息表Car、客户信息表Customer、员工信息表Staff。2数据库表设计数据库中各表的结构分别如下:(1)Users表字段名称数据类型是否允许空值约束说明User_namevarchar(10)主键用户名User_pwdvarchar(20)用户密码User_typesmallint外键用户等级(2)UserType表字段名称数据类型是否允许空值约束说明User_typesmallint主键用户等级(限制用户权限)Type_discriptionvarchar(50)唯一值类型描述(3)Car表字段名称数据类型是否允许空值约束说明Car_idint主键轿车编号Car_namevarchar(20)主键轿车型号Car_brandvarchar(20)轿车品牌Car_priceint轿车价格Car_timevarchar(10)轿车保修期Car_infovarchar(100)轿车具体描述(4)Customer表字段名称数据类型是否允许空值约束说明Customer_idint主键客户编号Customer_namevarchar(10)客户姓名Customer_sexvarchar(2)客户性别Customer_ageint客户年龄Customer_occupvarchar(10)客户职业Customer_numvarchar(20)身份证号Customer_telvarhcar(10)客户电话Customer_addrvarchar(20)客户住址Buy_carvarchar(20)外键购车型号Buy_pricevarchar(10)购车价格Infovarchar(100)备注(客户的其他信息)(5)Staff表字段名称数据类型是否允许空值约束说明Staff_ifint主键员工编号Staff_namevarchar(10)员工姓名Staff_sexvarchar(2)员工性别Staff_birthdatetime(8)员中生日Staff_intimedatetime(8)进入公司时间Staff_departvarchar(10)所在部门Staff_titlevarchar(10)员工职务Staff_telvarchar(10)员工电话Staff_addrvarchar(20)员工住址3数据库表内容数据库中各表的数据内容分别如下:(1)Users表(2)UserType表(3)Car表(4)Customer表(5)Staff表四、VB开发设计一)登录界面设计1程序界面当系统运行时,首先启动轿车销售管理登录界面Frm_login。设置多窗体的启动窗体为Frm_login。程序运行界面如下,根据运行界面添加相应控件及进行相应属性的设置。注意:添加一个Adodc1,设置Adodc控件的ConnectionString属性,在属性页中选择“使用ODBC数据源名称”。2登陆界面代码Public PasswordKey As StringPublic namekey As StringPublic try_times As IntegerPrivate Sub cmd_Yes_Click() Dim j As Single If txtUname = Then MsgBox 请输入用户名 txtUname.SetFocus Exit Sub End If If txtUpwd = Then MsgBox 请输入密码 txtUpwd.SetFocus Exit Sub End If namekey = Trim(txtUname.Text) PasswordKey = Trim(txtUpwd.Text) Adodc1.RecordSource = select * from Users where User_name= + namekey + Adodc1.Refresh If Adodc1.Recordset.EOF = True Then MsgBox 用户不存在 try_times = try_times + 1 If try_times = 3 Then MsgBox 您已经三次尝试进入本系统,均不成功,系统将关闭 Exit Sub Else Exit Sub End If End If If PasswordKey Adodc1.Recordset.Fields(1) Then MsgBox 密码错误 try_times = try_times + 1 If try_times = 3 Then MsgBox 您已经三次尝试进入本系统,均不成功,系统将关闭 Exit Sub Else Exit Sub End If End If If Adodc1.Recordset.Fields(2) = 1 Then frm_Main.Menu_addcar.Enabled = False frm_Main.Menu_addcus.Enabled = False frm_Main.Menu_addemp.Enabled = False frm_Main.Menu_adduser.Enabled = False frm_edit_car.cmdChange = False frm_edit_car.cmdDel = False frm_edit_cus.cmdChange = False frm_edit_cus.cmdDel = False Frm_edit_emp.cmdChange = False Frm_edit_emp.cmdDel = False frm_Main.Menu_edit_user.Enabled = False ElseIf Adodc1.Recordset.Fields(2) 0 Then MsgBox (用户类型错误) Exit Sub End If Unload Me frm_Main.Show End Sub(2) 轿车销售管理系统的主界面1程序界面主界面具体设置如下表:主菜单及下级子菜单属性设置,然后添加对应的窗体,修改窗体名称属性。级别菜单名称单击链接窗口主菜单系统用户管理MenuUser子菜单添加用户Menu_adduserFrm_adduser.show查看/修改密码Menu_edit_userFrm_edit_user.show主菜单轿车信息管理Menu_carinfo子菜单查看轿车信息Menu_quecarFrm_quecar.show修改/删除轿车信息Menu_edit_carFrm_edit_car.show增加轿车信息Menu_addcarFrm_addcar.show主菜单客户信息管理Menu_customerinfo子菜单查看客户信息Menu_quecusFrm_quecus.show修改/删除客户信息Menu_edit_cusFrm_edit_cus.show增加客户信息Menu_addcusFrm_addcus.show主菜单员工信息管理Menu_ employeeinfo子菜单查看员工信息Menu_queempFrm_queemp.show修改/删除员工信息Menu_modiempFrm_edit_emp.show增加员工信息Menu_addempFrm_addemp.show主菜单退出系统Menu_exit2主要代码:Private Sub Menu_addcar_Click() Frm_addcar.ShowEnd SubPrivate Sub Menu_addcus_Click() Frm_addcus.ShowEnd SubPrivate Sub Menu_addemp_Click() Frm_addemp.ShowEnd SubPrivate Sub Menu_adduser_Click() Frm_adduser.ShowEnd SubPrivate Sub Menu_edit_car_Click() Frm_edit_car.ShowEnd SubPrivate Sub Menu_edit_cus_Click() Frm_edit_cus.ShowEnd SubPrivate Sub Menu_edit_use_Click() Frm_edit_user.ShowEnd SubPrivate Sub Menu_modiemp_Click() Frm_edit_emp.ShowEnd SubPrivate Sub Menu_quecar_Click() Frm_quecar.ShowEnd SubPrivate Sub Menu_quecus_Click() Frm_quecus.ShowEnd SubPrivate Sub Menu_queemp_Click() Frm_queemp.ShowEnd Sub(三)系统用户管理功能1添加用户窗体在轿车销售管理系统的主界面中,单击“添加用户”选项,启动frm_adduser.show,进入“添加用户”界面,如下所示: 单击“取消”按钮,将触发cmd_cancel_click事件,不保存输入文本框的内容而直接返回到主界面。单击“确定”按钮,将触发cmd_ok_click事件,把输入的用户信息添加到SQL Server对应的数据库表中。具体代码如下:主要代码:Private Sub cmdYes_Click()Dim usertype As Integer数据有效性检查If txtUname = Then MsgBox 请输入用户名 txtUname.SetFocus Exit SubEnd IfAdodc1.RecordSource = select * from Users where User_name= + Trim(txtUname.Text) + Adodc1.RefreshIf Adodc1.Recordset.EOF = False Then MsgBox 已经有此用户,请重新输入 txtUname.SetFocus Exit SubElse If txtUpwd = Then MsgBox 请输入密码 txtUpwd.SetFocus Exit Sub End If If txtURpwd = Then MsgBox 请确认密码 txtURpwd.SetFocus Exit Sub ElseIf txtURpwd.Text txtUpwd.Text Then MsgBox 密码不一致 txtURpwd.SetFocus Exit Sub End If If Option1 = True Then usertype = 0 ElseIf Option2 = True Then usertype = 1 Else MsgBox 请选择用户类型 Exit Sub End If If Len(txtUpwd) 6 Then MsgBox 密码长度不能小于6 txtUpwd.SetFocus txtUpwd.SelStart = 0 txtUpwd.SelLength = Len(txtUpwd) Exit Sub End If 添加新用户 Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(0).Value = Trim(txtUname.Text) Adodc1.Recordset.Fields(1).Value = Trim(txtUpwd.Text) Adodc1.Recordset.Fields(2).Value = usertype Adodc1.Recordset.Update Adodc1.Refresh MsgBox 用户增加成功 Unload Me End ifEnd Sub2“查看/修改密码”窗体单击“查看修改密码”选项,启动Frm_edit_User.show,进入“用户列表”界面,如下图所示。主要代码:下面的Form_Load()事件代码,是在窗体加载时用代码连接数据库,不用设置Adodc控件的ConnectionString属性。可以添加一个模块,在模块中定义一个连接字符串函数,然后在Form_Load()事件中调用连接函数conStr。注意:后面涉及Adodc控件的连接都可以用一行代码“Adodc1.ConnectionString = cnStr”调用在模块中已经定义的连接字符串函数。Private Sub Cmd_del_Click() Dim username As String If Adodc1.Recordset.EOF = True Then MsgBox 请选择记录 Exit Sub End If 通过Adodc1.Recordset.Fields()读取Adodc1记录源中的当前数据 username = Adodc1.Recordset.Fields(0) 询问用户是否确认删除 If MsgBox(是否删除当前行?, vbYesNo, 确认) = vbYes Then Adodc1.RecordSource = Select * From Users Where User_name = + username + Adodc1.Refresh Adodc1.Recordset.Delete Adodc1.Recordset.Update End If 刷新DataGrid表格的内容 Adodc1.RecordSource = SELECT u.User_name, u.User_Pwd, t.Type_discription As User_disc FROM Users u, UserType t Where t.User_type = u.User_type Adodc1.RefreshEnd SubPrivate Sub Cmd_modi_Click()If Adodc1.Recordset.EOF = True Then MsgBox 请选择记录 Exit Sub End If 通过Adodc1.Recordset.Fields()读取Adodc1记录源中的当前数据 Frm_modiuser.oldPwd = Adodc1.Recordset.Fields(1) Frm_modiuser.username = Adodc1.Recordset.Fields(0) Frm_modiuser.ShowEnd SubPrivate Sub Form_Load() Dim i As Integer Adodc1.RecordSource = SELECT u.User_name, u.User_Pwd, t.Type_discription As User_disc FROM Users u, UserType t Where t.User_type = u.User_type Adodc1.RefreshEnd Sub修改密码界面如下:修改密码代码如下:Private Sub cmdYes_Click() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset cnn.ConnectionString = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=CarSaleSys;Data Source=(local) cnn.ConnectionString = MStr() cnn.Open Set rs = cnn.Execute(select count(*) from Users where User_name= + Trim(txtUname.Text) + and User_pwd= + Trim(txtOldpwd.Text) + ) If txtUname.Text = Then MsgBox (请输入用户名) Exit Sub End If If txtOldpwd.Text = Then MsgBox (请输入旧密码) Exit Sub End If If txtNpwd.Text = Then MsgBox (请输入新密码) Exit Sub End If If txtRpwd.Text = Then MsgBox (请确认新密码) Exit Sub End If If txtRpwd.Text txtNpwd.Text Then MsgBox (新密码与确认密码不正确) Exit Sub End If If rs.EOF Then MsgBox (请确认用户名,密码) Exit Sub Else Set rs = cnn.Execute(update Users set User_pwd= + Trim(txtNpwd.Text) + where User_name= + Trim(txtUname.Text) + ) If Not rs.EOF Then MsgBox (数据更新成功) Unload Me Exit Sub Else MsgBox (未知错误) Unload Me Exit Sub End If End If End Sub(四)轿车信息管理功能1轿车信息查询(1)程序运行界面(2)主要代码Private Sub cmdYes_Click() If Option1 = True Then If txtxinghao.Text Then Adodc1.RecordSource = select Car_name,Car_brand,Car_price,Car_time,Car_info from Car where Car_name like % + Trim(txtxinghao.Text) + % Adodc1.Refresh End If End If If Option2 = True Then If txtpinpai.Text Then Adodc1.RecordSource = select Car_name,Car_brand,Car_price,Car_time,Car_info from Car where Car_brand like % + Trim(txtpinpai.Text) + % Adodc1.Refresh End If End If If Option3 = True Then If txtLow.Text And txtUp.Text Then Adodc1.RecordSource = select Car_name,Car_brand,Car_price,Car_time,Car_info from Car where Car_price between + Trim(txtLow.Text) + and + Trim(txtUp.Text) + Adodc1.Refresh End If End IfEnd SubPrivate Sub Form_Load()Adodc2.RecordSource = select count(*) from CarAdodc2.RefreshText1.Text = Adodc2.Recordset.Fields(0)End SubPrivate Sub Option1_Click() Call fresh txtxinghao.Text = txtpinpai.Text = txtLow.Text = txtUp.Text = txtxinghao.Enabled = True txtpinpai.Enabled = False txtLow.Enabled = False txtUp.Enabled = FalseEnd SubPublic Sub fresh() Adodc1.RecordSource = select Car_name,Car_brand,Car_price,Car_time,Car_info from car Adodc1.RefreshEnd SubPrivate Sub Option3_Click() txtName.Text = txtName.Enabled = False txtBrand.Text = txtBrand.Enabled = False txtPrice.Enabled = TrueEnd Sub2轿车信息修改与删除(1)程序运行界面(2)主要代码修改记录:Private Sub cmdChange_Click()curId = Adodc1.Recordset.Fields(0)Adodc1.Recordset.Fields(1).Value = Trim(txtxinghao.Text)Adodc1.Recordset.Fields(2).Value = Trim(txtpinpai.Text)Adodc1.Recordset.Fields(3).Value = Val(Trim(txtprice.Text)Adodc1.Recordset.Fields(4).Value = Trim(txttime.Text)Adodc1.Recordset.Fields(5).Value = Trim(txtinfo.Text)Adodc1.Recordset.UpdateMsgBox (轿车记录已修改)Adodc1.RecordSource = select * from CarAdodc1.RefreshDo While Adodc1.Recordset.Fields(0) curId Adodc1.Recordset.Move (1) LoopEnd SubPrivate Sub cmdDel_Click()Adodc1.Recordset.DeleteAdodc1.Recordset.UpdateMsgBox (轿车记录已删除)Adodc1.RecordSource = select * from CarAdodc1.RefreshEnd SubPrivate Sub cmdFirst_Click() Adodc1.Recordset.MoveFirst cmdhead.Enabled = False cmdNext.Enabled = TrueEnd SubPrivate Sub cmdhead_Click() If cmdNext.Enabled = False Then cmdNext.Enabled = True End If Adodc1.Recordset.MovePrevious If Adodc1.Recordset.Fields(0) = firstId Then cmdhead.Enabled = False End IfEnd SubPrivate Sub cmdLast_Click() Adodc1.Recordset.MoveLast cmdNext.Enabled = False cmdhead.Enabled = TrueEnd SubPrivate Sub cmdnext_Click() If cmdhead.Enabled = False Then cmdhead.Enabled = True End If Adodc1.Recordset.MoveNext If Adodc1.Recordset.Fields(0) = lastId Then cmdNext.Enabled = False End If End SubPrivate Sub Form_Load() Adodc1.RecordSource = select * from Car Adodc1.Refresh If Adodc1.Recordset.RecordCount 0 Then Adodc1.Recordset.MoveLast lastId = Adodc1.Recordset.Fields(0) Adodc1.Recordset.MoveFirst firstId = Adodc1.Recordset.Fields(0) End If cmdhead.Enabled = False If Adodc1.Recordset.RecordCount = 1 Then cmdNext.Enabled = False End IfEnd Sub3轿车信息录入(1)程序运行界面(2)主要代码Private Sub cmdYes_Click() Dim txtID As Integer Adodc1.RecordSource = select * from car order by Car_id asc Adodc1.Refresh If txtpinpai.Text = Then MsgBox (请输入汽车品牌) Exit Sub End If If txtprice.Text = Then MsgBox (请输入汽车价格) Exit Sub End If If txtxinghao.Text = Then MsgBox (请输入汽车型号) Exit Sub End If If txttime.Text = Then MsgBox (请输入汽车保修期) Exit Sub End If Adodc1.Recordset.AddNew Adodc1.Recordset.Fields(1).Value = Trim(txtxinghao.Text) Adodc1.Recordset.Fields(2).Value = Trim(txtpinpai.Text) Adodc1.Recordset.Fields(3).Value = Val(Trim(txtprice.Text) Adodc1.Recordset.Fields(4).Value = Trim(txttime.Text) Adodc1.Recordset.Fields(5).Value = Trim(txtinfo.Text) Adodc1.Recordset.Update Adodc1.Refresh MsgBox (汽车信息添加完成) Unload MeEnd Sub(五)客户信息管理功能在客户信息系统中需要设计实现如下所示功能。1单击“查看客户信息”选项,启动frm_queCus.Show,进入“查询顾客”界面。主要代码Private Sub cmdYes_Click() If Option1 = True Then If txtname.Text Then Adodc1.RecordSource = select * from Customer where Customer_name like % + Trim(txtname.Text) + % Adodc1.Refresh Else MsgBox (请输入查询条件) End If End If If Option2 = True Then If txtsex.Text Then Adodc1.RecordSource = select * from Customer where Customer_sex like % + Trim(txtsex.Text) + % Adodc1.Refresh Else MsgBox (请输入查询条件) End If End If If Option3 = True Then If txtxinghao.Text Then Adodc1.RecordSource = select * from Customer where Buy_car like % + Trim(txtxinghao.Text) + % Adodc1.Refresh Else MsgBox (请输入查询条件) End If End IfEnd Sub2单击“修改/删除客户信息”选项,启动frm_edit_Cus.Show,进入编辑客户信息界面。主要代码:修改:Private Sub cmdChange_Click()If txtname.Text = Then MsgBox (客户姓名不能为空) Exit SubEnd IfIf txtsex.Text = Then MsgBox (客户性别不能为空) Exit SubEnd IfIf txtxinghao.Text = Then MsgBox (购车型号不能为空) Exit SubEnd IfIf txtprice.Text = Then MsgBox (购车价格不能为空) Exit SubEnd Ifconn.ConnectionString = MStr()conn.OpenSet rs = conn.Execute(select count(*) from Car where Car_name= + Trim(txtxinghao.Text) + )If rs.EOF Then MsgBox (没有该汽车型号,请添加该汽车型号) Exit SubEnd IfcurId = Adodc1.Recordset.Fields(0)Adodc1.Recordset.Fields(1).Value = Trim(txtname.Text)Adodc1.Recordset.Fields(2).Value = Trim(txtsex.Text)Adodc1.Recordset.Fields(3).Value = Trim(txtage.Text)Adodc1.Recordset.Fields(4).Value = Trim(txtjob.Text)Adodc1.Recordset.Fields(5).Value = Trim(txtnum.Text)Adodc1.Recordset.Fields(6).Value = Trim(txttel.Text)Adodc1.Recordset.Fields(7).Value = Trim(txtaddr.Text)Adodc1.Recordset.Fields(8).Value = Trim(txtxinghao.Text)Adodc1.Recordset.Fields(9).Value = Trim(txtprice.Text)Adodc1.Recordset.Fields(10).Value = Trim(txtinfo.Text)Adodc1.Recordset.UpdateMsgBox (客户信息已修改)Adodc1.RecordSource = select * from CustomerAdodc1.RefreshDo While Adodc1.Recordset.Fields(0) curId Adodc1.Recordset.Move (1) LoopEnd SubPrivate Sub cmdDel_Click()Adodc1.Recordset.DeleteAdodc1.Recordset.UpdateMsgBox (客户信息已删除)Adodc1.RecordSource = select * from CustomerAdodc1.RefreshEnd SubPrivate Sub cmdFirst

温馨提示

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

评论

0/150

提交评论