西安邮电大学课程设计报告 (2)

西安郵電大學

综合应用软件课程设计报告

学院名称 : 专业名称 : 班 级 : 学

号 :

题 目: 中小型超市管理系统

计算机学院

2013年09月09日

学生姓名 : 指导教师 :

时间 :

至 2013年09月23日

一、 课程设计目的

该系统实现了“中小型超市管理系统”的工作流程,并让我熟悉了这类信息管理系统的开发原理及流程。在设计过程中, 能够深入地理解面向对象设计方法的优越性, 获得这些方面的相关经验。

二、课程设计内容

针对一般超市管理系统的需求,通过对超市管理工作过程的内容分析与设计中所要承担的任务,设计出下面的数据项和数据结构:

(1)商品信息查询:包括商品号、商品名称、单价、商品类型、库存量、厂商等信息。

(2)销售记录查询:包括销售号、销售职工号、商品号和消费总额等信息。 (3)销售员工信息表,包含的数据项有职工号、姓名、性别、联系电话和用户类型等

(4)查询的同时也可以进行添加、删除员工信息,商品信息等。 三、软硬件环境及系统所采用的体系结构

系统开发工具前台为 VB6.0,后台数据库为SQL Server2000.

四、需求分析

系统大致分为四个功能模块。系统的每一个功能模块都包含了多个功能。功能权限实现了对这些功能点的权限控制:①.登录模块 ②大老板模块 ③.管理员模块 ④.收银员模块

①.登录模块:登录模块主要进行用户权限的验证,只有具备一定权限的人才能登录到系统,这样才能保证系统的安全。同时不同的用户有不同的权限。

②.大老板模块:该模块主要是查看商品,员工,供应商的信息 ③.管理员模块:该模块管理了商品和销量的信息,以方便随时查询,并及时录入售出商品的信息

④.收银员模块:这模块是系统的前台销售模块,一般收银员都是在这个界面操作以实现对顾客的购买商品信息的登记 收款等业务。

五、系统设计

1

A. 总框图

B.

C

D.

2. 数据库设计

A.

B. 员工的信息如下,由此可以设计出表:

C. 供应商的信息如下,由此可以设计出表:

D. 订单的信息如下,由此可以设计出表:

另外建立了一个关系图,把销售和库存联系起来,结果如下:

六、系统的实施

为了提高软件操作安全性,用户进入系统前,需进行身份验证,通过此窗体输入个人信息以验证身份。如果用户名和密码都正确,单击对应的登录按钮,则进入系统,如果输入错误,则会提示密码错误,重新输入。 结果如下:

1. 进入boss 界面:

2. 进入管理员界面:

3. 进入收银员界面:

七、系统评价及心得体会

1、对自己的超市管理系统的总体设计的评价:系统与数据库的链接成功有效,数据的增、删、查、改都能正常无误的运行。界面友好,操作简单方便,基本的功能都有实现。

合理之处:能根据用户的职位的不同进入不同的操作界面。数据的增、删、查、改都能运行,界面友好。

不足之处:相关的数据信息不够多,对于相关信息的描述不够充分。对各种错误的操作给出的错误提示不够充分,考虑数据的关联性不充足。

2. 出现的问题及解决方法:在设计中出现了输入查询的商品编号后,没有结果的错误情况,最后经过上网查资料,找参考书,问同学,解决了问题,原来是datagrid 控件没有设置属性,虽然是个小问题,但我也收获不少。

八、参考文献

[1].数据库系统原理与应用. 孟彩霞, 张荣, 乔平安编著 人民邮电出版社 2008

九.源代码:

在数据库中建表的源代码

create table emp ( empno char(10) primary 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, 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 char(8) foreign key references goods(gno), empno char(10)foreign key references emp(empno), quantity int not null, ordersum real, );

create trigger orders_insert on orders after insert AS update goods set gstock=gstock-(select quantity from inserted) where gno in (select gno from inserted);

在VB 中,实现具体功能的代码(8个界面,共1. Private Sub Command2_Click()

Dim s As String Dim t As String

s = "select * from denglu where yonghu = '" & Text1 & "'" Adodc1.RecordSource = s

t = Trim(Text2.Text)

8段代码): 管理员登录

Adodc1.Refresh

If Adodc1.Recordset.BOF Then ' 没有找到 该条记录

MsgBox "账户错误,重新输入", vbExclamation, "警告" Text1.Text = "" Text1.SetFocus Else

If t = Trim(Adodc1.Recordset.Fields("pass")) Then Unload Me Form7.Show Else

MsgBox "密码错误,重新输入", vbExclamation, "警告" Text2.Text = "" Text2.SetFocus

Text1.Enabled = False ' 更改密码时,不能更改帐户,否则还是refresh 会自动恢复,受很大影响 End If End If End Sub

Private Sub Command3_Click() Dim s As String Dim 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.SetFocus Else

If t = Trim(Adodc1.Recordset.Fields("pass")) Then

' 此处为什么要用t 和spassword 比较呢,因为sno 正确,但是refresh 之后,文本框就又恢复到了新的记录源的第一条 记录,所以就是,text2的内容也就不是你刚刚输入进去的密码了,所以要用t 暂时存储 Unload Me Form4.Show Else

MsgBox "密码错误,重新输入", vbExclamation, "警告" Text2.Text = "" Text2.SetFocus

Text1.Enabled = False ' 更改密码时,不能更改帐户,否则还是refresh 会自动恢复,受很大影响 End If End If End Sub

Private Sub Command4_Click()

End 退出 End Sub

Private Sub Command1_Click()

Dim s As String

Dim 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.SetFocus Else

If t = Trim(Adodc1.Recordset.Fields("pass")) Then Unload Me Form2.Show Else

MsgBox "密码错误,重新输入", vbExclamation, "警告" Text2.Text = "" Text2.SetFocus

Text1.Enabled = False ' 更改密码时,不能更改帐户,否则还是refresh 会自动恢复,受很大影响 End If End If

End Sub

Private Sub Form_Load()

End Sub

2. 进入老板界面

Private Sub Command1_Click()

End 退出 End Sub

Private Sub Command2_Click()

Form2.Hide 显示供应商信息 Form5.Show End Sub

Private Sub Command3_Click()

Form2.Hide 显示员工信息

Form6.Show

End Sub

Private Sub Command4_Click()

Form2.Hide 显示商品信息 Form3.Show End Sub

Private Sub Form_Load()

Form2.Picture = LoadPicture("D:\娱乐\电脑壁纸\12.jpg") End Sub

3. 进入商品信息管理界面:

Private Sub Command1_Click() End End Sub

Private Sub Command2_Click() Form3.Hide Form8.Show

End Sub

Private Sub delete_Click() Me.Adodc1.Recordset.delete

MsgBox "删除成功!", vbOKOnly, "提示" Me.Adodc1.Refresh End Sub

Private 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 = strSelect Adodc1.Refresh

Set DataGrid1.DataSource = Adodc1 Call DataGrid1_Click

End Sub

Private Sub Form_Load()

Form3.Picture = LoadPicture("D:\娱乐\电脑壁纸\13.jpg") End Sub

Private Sub new_Click()

Me.Adodc1.Recordset.AddNew End Sub

Private Sub save_Click()

Me.Adodc1.Recordset.Update

MsgBox "存储成功!", vbOKOnly, "提示" End Sub

4. 进入销售信息界面:

Private Sub Command1_Click() End

End Sub

Private Sub Form_Load()

Form4.Picture = LoadPicture("D:\娱乐\电脑壁纸\14.jpg") End Sub

5. 进入供应商信息界面:

Private Sub Command1_Click()

End

End Sub

Private Sub Command2_Click()

Form5.Hide

Form2.Show

End Sub

Private Sub Form_Load()

Form5.Picture = LoadPicture("D:\娱乐\电脑壁纸\15.jpg") End Sub

6. 进入员工信息管理界面:

Private Sub Command1_Click()

Form6.Hide

Form2.Show

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub delete_Click()

Me.Adodc1.Recordset.delete

MsgBox "删除成功!", vbOKOnly, "提示"

Me.Adodc1.Refresh

End Sub

Private Sub Form_Load()

Form6.Picture = LoadPicture("D:\娱乐\电脑壁纸\16.jpg") End Sub

Private Sub new_Click()

Me.Adodc1.Recordset.AddNew

End Sub

Private Sub save_Click()

Me.Adodc1.Recordset.Update

MsgBox "存储成功!", vbOKOnly, "提示"

End Sub

7. 进入管理员操作界面

Private Sub Command1_Click()

Form7.Hide

Form3.Show

End Sub

Private Sub Command2_Click()

Form7.Hide

Form4.Show

End Sub

Private Sub Form_Load()

Form7.Picture = LoadPicture("D:\娱乐\电脑壁纸\17.jpg") End Sub

8. 进入按商品编号查询的界面:

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 = Adodc1

End Sub

Private Sub Command2_Click()

Form8.Hide

Form3.Show

End Sub

Private Sub DataGrid1_Click()

End Sub

Private Sub Form_Load()

Form8.Picture = LoadPicture("D:\娱乐\电脑壁纸\18.jpg") End Sub

西安郵電大學

综合应用软件课程设计报告

学院名称 : 专业名称 : 班 级 : 学

号 :

题 目: 中小型超市管理系统

计算机学院

2013年09月09日

学生姓名 : 指导教师 :

时间 :

至 2013年09月23日

一、 课程设计目的

该系统实现了“中小型超市管理系统”的工作流程,并让我熟悉了这类信息管理系统的开发原理及流程。在设计过程中, 能够深入地理解面向对象设计方法的优越性, 获得这些方面的相关经验。

二、课程设计内容

针对一般超市管理系统的需求,通过对超市管理工作过程的内容分析与设计中所要承担的任务,设计出下面的数据项和数据结构:

(1)商品信息查询:包括商品号、商品名称、单价、商品类型、库存量、厂商等信息。

(2)销售记录查询:包括销售号、销售职工号、商品号和消费总额等信息。 (3)销售员工信息表,包含的数据项有职工号、姓名、性别、联系电话和用户类型等

(4)查询的同时也可以进行添加、删除员工信息,商品信息等。 三、软硬件环境及系统所采用的体系结构

系统开发工具前台为 VB6.0,后台数据库为SQL Server2000.

四、需求分析

系统大致分为四个功能模块。系统的每一个功能模块都包含了多个功能。功能权限实现了对这些功能点的权限控制:①.登录模块 ②大老板模块 ③.管理员模块 ④.收银员模块

①.登录模块:登录模块主要进行用户权限的验证,只有具备一定权限的人才能登录到系统,这样才能保证系统的安全。同时不同的用户有不同的权限。

②.大老板模块:该模块主要是查看商品,员工,供应商的信息 ③.管理员模块:该模块管理了商品和销量的信息,以方便随时查询,并及时录入售出商品的信息

④.收银员模块:这模块是系统的前台销售模块,一般收银员都是在这个界面操作以实现对顾客的购买商品信息的登记 收款等业务。

五、系统设计

1

A. 总框图

B.

C

D.

2. 数据库设计

A.

B. 员工的信息如下,由此可以设计出表:

C. 供应商的信息如下,由此可以设计出表:

D. 订单的信息如下,由此可以设计出表:

另外建立了一个关系图,把销售和库存联系起来,结果如下:

六、系统的实施

为了提高软件操作安全性,用户进入系统前,需进行身份验证,通过此窗体输入个人信息以验证身份。如果用户名和密码都正确,单击对应的登录按钮,则进入系统,如果输入错误,则会提示密码错误,重新输入。 结果如下:

1. 进入boss 界面:

2. 进入管理员界面:

3. 进入收银员界面:

七、系统评价及心得体会

1、对自己的超市管理系统的总体设计的评价:系统与数据库的链接成功有效,数据的增、删、查、改都能正常无误的运行。界面友好,操作简单方便,基本的功能都有实现。

合理之处:能根据用户的职位的不同进入不同的操作界面。数据的增、删、查、改都能运行,界面友好。

不足之处:相关的数据信息不够多,对于相关信息的描述不够充分。对各种错误的操作给出的错误提示不够充分,考虑数据的关联性不充足。

2. 出现的问题及解决方法:在设计中出现了输入查询的商品编号后,没有结果的错误情况,最后经过上网查资料,找参考书,问同学,解决了问题,原来是datagrid 控件没有设置属性,虽然是个小问题,但我也收获不少。

八、参考文献

[1].数据库系统原理与应用. 孟彩霞, 张荣, 乔平安编著 人民邮电出版社 2008

九.源代码:

在数据库中建表的源代码

create table emp ( empno char(10) primary 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, 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 char(8) foreign key references goods(gno), empno char(10)foreign key references emp(empno), quantity int not null, ordersum real, );

create trigger orders_insert on orders after insert AS update goods set gstock=gstock-(select quantity from inserted) where gno in (select gno from inserted);

在VB 中,实现具体功能的代码(8个界面,共1. Private Sub Command2_Click()

Dim s As String Dim t As String

s = "select * from denglu where yonghu = '" & Text1 & "'" Adodc1.RecordSource = s

t = Trim(Text2.Text)

8段代码): 管理员登录

Adodc1.Refresh

If Adodc1.Recordset.BOF Then ' 没有找到 该条记录

MsgBox "账户错误,重新输入", vbExclamation, "警告" Text1.Text = "" Text1.SetFocus Else

If t = Trim(Adodc1.Recordset.Fields("pass")) Then Unload Me Form7.Show Else

MsgBox "密码错误,重新输入", vbExclamation, "警告" Text2.Text = "" Text2.SetFocus

Text1.Enabled = False ' 更改密码时,不能更改帐户,否则还是refresh 会自动恢复,受很大影响 End If End If End Sub

Private Sub Command3_Click() Dim s As String Dim 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.SetFocus Else

If t = Trim(Adodc1.Recordset.Fields("pass")) Then

' 此处为什么要用t 和spassword 比较呢,因为sno 正确,但是refresh 之后,文本框就又恢复到了新的记录源的第一条 记录,所以就是,text2的内容也就不是你刚刚输入进去的密码了,所以要用t 暂时存储 Unload Me Form4.Show Else

MsgBox "密码错误,重新输入", vbExclamation, "警告" Text2.Text = "" Text2.SetFocus

Text1.Enabled = False ' 更改密码时,不能更改帐户,否则还是refresh 会自动恢复,受很大影响 End If End If End Sub

Private Sub Command4_Click()

End 退出 End Sub

Private Sub Command1_Click()

Dim s As String

Dim 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.SetFocus Else

If t = Trim(Adodc1.Recordset.Fields("pass")) Then Unload Me Form2.Show Else

MsgBox "密码错误,重新输入", vbExclamation, "警告" Text2.Text = "" Text2.SetFocus

Text1.Enabled = False ' 更改密码时,不能更改帐户,否则还是refresh 会自动恢复,受很大影响 End If End If

End Sub

Private Sub Form_Load()

End Sub

2. 进入老板界面

Private Sub Command1_Click()

End 退出 End Sub

Private Sub Command2_Click()

Form2.Hide 显示供应商信息 Form5.Show End Sub

Private Sub Command3_Click()

Form2.Hide 显示员工信息

Form6.Show

End Sub

Private Sub Command4_Click()

Form2.Hide 显示商品信息 Form3.Show End Sub

Private Sub Form_Load()

Form2.Picture = LoadPicture("D:\娱乐\电脑壁纸\12.jpg") End Sub

3. 进入商品信息管理界面:

Private Sub Command1_Click() End End Sub

Private Sub Command2_Click() Form3.Hide Form8.Show

End Sub

Private Sub delete_Click() Me.Adodc1.Recordset.delete

MsgBox "删除成功!", vbOKOnly, "提示" Me.Adodc1.Refresh End Sub

Private 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 = strSelect Adodc1.Refresh

Set DataGrid1.DataSource = Adodc1 Call DataGrid1_Click

End Sub

Private Sub Form_Load()

Form3.Picture = LoadPicture("D:\娱乐\电脑壁纸\13.jpg") End Sub

Private Sub new_Click()

Me.Adodc1.Recordset.AddNew End Sub

Private Sub save_Click()

Me.Adodc1.Recordset.Update

MsgBox "存储成功!", vbOKOnly, "提示" End Sub

4. 进入销售信息界面:

Private Sub Command1_Click() End

End Sub

Private Sub Form_Load()

Form4.Picture = LoadPicture("D:\娱乐\电脑壁纸\14.jpg") End Sub

5. 进入供应商信息界面:

Private Sub Command1_Click()

End

End Sub

Private Sub Command2_Click()

Form5.Hide

Form2.Show

End Sub

Private Sub Form_Load()

Form5.Picture = LoadPicture("D:\娱乐\电脑壁纸\15.jpg") End Sub

6. 进入员工信息管理界面:

Private Sub Command1_Click()

Form6.Hide

Form2.Show

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub delete_Click()

Me.Adodc1.Recordset.delete

MsgBox "删除成功!", vbOKOnly, "提示"

Me.Adodc1.Refresh

End Sub

Private Sub Form_Load()

Form6.Picture = LoadPicture("D:\娱乐\电脑壁纸\16.jpg") End Sub

Private Sub new_Click()

Me.Adodc1.Recordset.AddNew

End Sub

Private Sub save_Click()

Me.Adodc1.Recordset.Update

MsgBox "存储成功!", vbOKOnly, "提示"

End Sub

7. 进入管理员操作界面

Private Sub Command1_Click()

Form7.Hide

Form3.Show

End Sub

Private Sub Command2_Click()

Form7.Hide

Form4.Show

End Sub

Private Sub Form_Load()

Form7.Picture = LoadPicture("D:\娱乐\电脑壁纸\17.jpg") End Sub

8. 进入按商品编号查询的界面:

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 = Adodc1

End Sub

Private Sub Command2_Click()

Form8.Hide

Form3.Show

End Sub

Private Sub DataGrid1_Click()

End Sub

Private Sub Form_Load()

Form8.Picture = LoadPicture("D:\娱乐\电脑壁纸\18.jpg") End Sub


相关文章

  • 电路与系统专业硕士研究生培养方案
  • 电路与系统专业硕士研究生培养方案 华中师范大学信息技术系 2005年10月 一.培养目标 本专业主要培养德.智.体全面发展的,适应社会主义现代化建设需要的电路与系统学专业专门人才,其具体要求是: 1. 较好地掌握马克思主义基本原理,坚持党的 ...查看


  • 论文相似性检测报告
  • 论文相似性检测报告 报告编号:301baab5-bd1b-401a-80e4-a3c001726053题 名:301baab5-bd1b-401a-80e4-a3c001726053报告编号: 作 者:46,441原文字数: 论文相似性检测 ...查看


  • 通信工程主要课程
  • 通信工程主要课程详解 1.课程名称:电路分析 课程简介:本课程主要介绍集总电路中电压.电流的约束关系:独立电流.电压变量的分析方法:大规模电路分析方法:分解方法及单口网络:简单非线性电阻电路的分析:电容元件与电感元件:一.二阶电路:交流动态 ...查看


  • 移动应用开发实验室开放式管理模式探讨
  • 科技论坛 ·53· 移动应用开发实验室开放式管理模式探讨 张荣 (西安邮电大学计算机学院,陕西西安710121) 摘要:针对高等院校在近年来培养学生综合素质和创新能力方面的要求,剖析了实验室教学管理中普遍存在的问题,介绍了我校近年来对移动应 ...查看


  • 电子信息类专业对比
  • 三大电子类专业就业前景解析 发布时间:2009-9-7 0:00:00 作者:佚名 来源:转载 浏览量:329 [字体:大 中 小] 如今,我们正在进入一个数字化时代.3G手机给用户带来全新的体验,我们的电脑屏幕变化多端,数字电视深入人心. ...查看


  • 温度报警器 1
  • 课程设计报告 基于基于AT89c52单片机温度 报警器的设计 院 系 电子信息工程学院 专 业班 级 2 姓 名 摘 要 (居中,黑体 小三字体,段前17磅,段后0磅,行距1.25) 随着传感器在生产生活中更加广泛的应用,一种新型的数字式温 ...查看


  • 参考文献范例
  • 参考文献 [1] 冯昊. ASP动态网页设计与上机指导[M]北京:清华大学出版社,2002 [2] 杨冀川. ASP动态网站设计实战[M]北京:机械工业出版社,2000 [3] 沈大林. Dreamweaver Flash Firework ...查看


  • 大学专业推荐
  • 专业推荐 1.成都理工大学(原成都地质学院)--石油工程.资源勘探工程.核工程 2.成都信息工程学院(原成都气象学院)--气象专业 3.西安理工大学(原陕西机械学院)--机械类.印刷.水利水电工程 4.哈尔滨理工大学(原哈尔滨电机学院)-- ...查看


  • 拉格朗日乘数法中方程组的解法
  • ValueEngineering・211・ 拉格朗日乘数法中方程组的解法 TheSolutionsoftheEquationsinLagrangeMultiplierMethod 孔祥凤KongXiangfeng (西安邮电学院理学院,西安 ...查看


热门内容