1、西安邮电大学课程设计报告 2西安郵電大學综合应用软件课程设计报告题 目: 中小型超市管理系统 学院名称:计算机学院专业名称:班 级:学号:学生姓名 :指导教师:时间: 2013年09月09日 至 2013年09月23日得分项百分比得分题目的新颖程度及难度5语言的难度及熟悉程度5设计结果(机器上验收)60设计文档20设计过程态度10总评(五级制)一、课程设计目的该系统实现了“中小型超市管理系统”的工作流程,并让我熟悉了这类信息管理系统的开发原理及流程。在设计过程中,能够深入地理解面向对象设计方法的优越性,获得这些方面的相关经验。二、课程设计内容针对一般超市管理系统的需求,通过对超市管理工作过程的
2、内容分析与设计中所要承担的任务,设计出下面的数据项和数据结构:(1)商品信息查询:包括商品号、商品名称、单价、商品类型、库存量、厂商等信息。 (2)销售记录查询:包括销售号、销售职工号、商品号和消费总额等信息。(3)销售员工信息表,包含的数据项有职工号、姓名、性别、联系电话和用户类型等(4)查询的同时也可以进行添加、删除员工信息,商品信息等。 三、软硬件环境及系统所采用的体系结构系统开发工具前台为 VB6.0,后台数据库为SQL Server2000.四、需求分析系统大致分为四个功能模块。系统的每一个功能模块都包含了多个功能。功能权限实现了对这些功能点的权限控制:登录模块 大老板模块 管理员模
3、块 收银员模块 登录模块:登录模块主要进行用户权限的验证,只有具备一定权限的人才能登录到系统,这样才能保证系统的安全。同时不同的用户有不同的权限。大老板模块:该模块主要是查看商品,员工,供应商的信息管理员模块:该模块管理了商品和销量的信息,以方便随时查询,并及时录入售出商品的信息收银员模块:这模块是系统的前台销售模块,一般收银员都是在这个界面操作以实现对顾客的购买商品信息的登记 收款等业务。五、系统设计 1系统结构图(功能模块图)A.总框图B.大老板模块:C管理员模块:D.收银员模块:2.数据库设计A.商品的属性如下,由此可以设计出表: B.员工的信息如下,由此可以设计出表:C.供应商的信息如
4、下,由此可以设计出表: D.订单的信息如下,由此可以设计出表:另外建立了一个关系图,把销售和库存联系起来,结果如下: 六、系统的实施为了提高软件操作安全性,用户进入系统前,需进行身份验证,通过此窗体输入个人信息以验证身份。如果用户名和密码都正确,单击对应的登录按钮,则进入系统,如果输入错误,则会提示密码错误,重新输入。 结果如下: 1.进入boss界面:2.进入管理员界面: 3.进入收银员界面: 七、系统评价及心得体会1、对自己的超市管理系统的总体设计的评价:系统与数据库的链接成功有效,数据的增、删、查、改都能正常无误的运行。界面友好,操作简单方便,基本的功能都有实现。合理之处:能根据用户的职
5、位的不同进入不同的操作界面。数据的增、删、查、改都能运行,界面友好。不足之处:相关的数据信息不够多,对于相关信息的描述不够充分。对各种错误的操作给出的错误提示不够充分,考虑数据的关联性不充足。2.出现的问题及解决方法:在设计中出现了输入查询的商品编号后,没有结果的错误情况,最后经过上网查资料,找参考书,问同学,解决了问题,原来是datagrid控件没有设置属性,虽然是个小问题,但我也收获不少。八、参考文献1.数据库系统原理与应用. 孟彩霞,张荣,乔平安编著 人民邮电出版社 2008九源代码:在数据库中建表的源代码create table emp( empno char(10) primary
6、key not null, empname varchar(10) not null, empsex char(2) check(empsex in(男,女) not null, empsort char(10) not null, empho char(20) not null,);create table goods( gno char(8) primary key not null, gname char(10) not null, gsort char(10) not null, gsupname char(20) not null, gstock char(10) not null,
7、 gprice char(10) not null, );create table supply( ssno char(10) primary key not null, sname char(20) not null, spho char(20) not null, sadd char(20) not null,);create table denglu( yonghu char(8) primary key not null, pass char(10) not null,);create table orders( orderno char(20) primary key, gno ch
8、ar(8) foreign key references goods(gno), empno char(10)foreign key references emp(empno), quantity int not null, ordersum real,);create trigger orders_inserton orders after insertAS update goods set gstock=gstock-(select quantity from inserted) where gno in (select gno from inserted);在VB中,实现具体功能的代码(
9、8个界面,共8段代码):1.Private Sub Command2_Click()Dim s As String 管理员登录Dim t As Strings = select * from denglu where yonghu = & Text1 & Adodc1.RecordSource = s t = Trim(Text2.Text) Adodc1.Refresh If Adodc1.Recordset.BOF Then 没有找到 该条记录 MsgBox 账户错误,重新输入, vbExclamation, 警告 Text1.Text = Text1.SetFocusElse If t
10、= Trim(Adodc1.Recordset.Fields(pass) Then Unload Me Form7.Show Else MsgBox 密码错误,重新输入, vbExclamation, 警告 Text2.Text = Text2.SetFocus Text1.Enabled = False 更改密码时,不能更改帐户,否则还是refresh会自动恢复,受很大影响 End IfEnd IfEnd SubPrivate Sub Command3_Click()Dim s As StringDim t As String 收银员登录s = select * from denglu wh
11、ere yonghu = & Text1 & Adodc1.RecordSource = s t = Trim(Text2.Text) 否则两个字符串不相同,调试出来的Adodc1.Refresh If Adodc1.Recordset.BOF Then 没有找到 该条记录 MsgBox 账户错误,重新输入, vbExclamation, 警告 Text1.Text = Text1.SetFocusElse If t = Trim(Adodc1.Recordset.Fields(pass) Then 此处为什么要用t和spassword比较呢,因为sno正确,但是refresh之后,文本框就又
12、恢复到了新的记录源的第一条 记录,所以就是,text2的内容也就不是你刚刚输入进去的密码了,所以要用t暂时存储 Unload Me Form4.Show Else MsgBox 密码错误,重新输入, vbExclamation, 警告 Text2.Text = Text2.SetFocus Text1.Enabled = False 更改密码时,不能更改帐户,否则还是refresh会自动恢复,受很大影响 End IfEnd IfEnd SubPrivate Sub Command4_Click()End 退出End SubPrivate Sub Command1_Click()Dim s As
13、 StringDim t As String 老板登录s = select * from denglu where yonghu = & Text1 & Adodc1.RecordSource = s t = Trim(Text2.Text) Adodc1.Refresh If Adodc1.Recordset.BOF Then 没有找到 该条记录 MsgBox 账户错误,重新输入, vbExclamation, 警告 Text1.Text = Text1.SetFocusElse If t = Trim(Adodc1.Recordset.Fields(pass) Then Unload Me
14、 Form2.Show Else MsgBox 密码错误,重新输入, vbExclamation, 警告 Text2.Text = Text2.SetFocus Text1.Enabled = False 更改密码时,不能更改帐户,否则还是refresh会自动恢复,受很大影响 End IfEnd IfEnd SubPrivate Sub Form_Load()End Sub2.进入老板界面Private Sub Command1_Click()End 退出End SubPrivate Sub Command2_Click()Form2.Hide 显示供应商信息Form5.ShowEnd Sub
15、Private Sub Command3_Click()Form2.Hide 显示员工信息Form6.ShowEnd SubPrivate Sub Command4_Click()Form2.Hide 显示商品信息Form3.ShowEnd SubPrivate Sub Form_Load()Form2.Picture = LoadPicture(D:娱乐电脑壁纸12.jpg)End Sub3.进入商品信息管理界面:Private Sub Command1_Click()EndEnd SubPrivate Sub Command2_Click()Form3.HideForm8.ShowEnd
16、SubPrivate Sub delete_Click()Me.Adodc1.Recordset.deleteMsgBox 删除成功!, vbOKOnly, 提示Me.Adodc1.RefreshEnd SubPrivate Sub DataGrid1_Click() Dim strSno As String Dim strSelect As String strSno = Trim(Form3.Text2.Text) strSelect = select * from goods where goods.gno = & strSno & Adodc1.RecordSource = strSe
17、lect Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 Call DataGrid1_Click End SubPrivate Sub Form_Load()Form3.Picture = LoadPicture(D:娱乐电脑壁纸13.jpg)End SubPrivate Sub new_Click()Me.Adodc1.Recordset.AddNewEnd SubPrivate Sub save_Click()Me.Adodc1.Recordset.Update MsgBox 存储成功!, vbOKOnly, 提示End Sub4.进入销
18、售信息界面:Private Sub Command1_Click()EndEnd SubPrivate Sub Form_Load()Form4.Picture = LoadPicture(D:娱乐电脑壁纸14.jpg)End Sub5.进入供应商信息界面:Private Sub Command1_Click()EndEnd SubPrivate Sub Command2_Click()Form5.HideForm2.ShowEnd SubPrivate Sub Form_Load()Form5.Picture = LoadPicture(D:娱乐电脑壁纸15.jpg)End Sub6.进入员
19、工信息管理界面:Private Sub Command1_Click()Form6.HideForm2.ShowEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub delete_Click()Me.Adodc1.Recordset.deleteMsgBox 删除成功!, vbOKOnly, 提示Me.Adodc1.RefreshEnd SubPrivate Sub Form_Load()Form6.Picture = LoadPicture(D:娱乐电脑壁纸16.jpg)End SubPrivate Sub new_Click()M
20、e.Adodc1.Recordset.AddNewEnd SubPrivate Sub save_Click() Me.Adodc1.Recordset.Update MsgBox 存储成功!, vbOKOnly, 提示End Sub7.进入管理员操作界面Private Sub Command1_Click()Form7.HideForm3.ShowEnd SubPrivate Sub Command2_Click()Form7.HideForm4.ShowEnd SubPrivate Sub Form_Load()Form7.Picture = LoadPicture(D:娱乐电脑壁纸17.
21、jpg)End Sub8.进入按商品编号查询的界面:Private Sub Command1_Click() Dim strSno As String Dim strSelect As String strSno = Trim(Form8.Text1.Text) strSelect = select * from goods where goods.gno = & strSno & Adodc1.RecordSource = strSelect Adodc1.Refresh Set DataGrid1.DataSource = Adodc1End SubPrivate Sub Command2_Click()Form8.HideForm3.ShowEnd SubPrivate Sub DataGrid1_Click()End SubPrivate Sub Form_Load()Form8.Picture = LoadPicture(D:娱乐电脑壁纸18.jpg)End Sub