数据库SQL课程设计 1.docx
《数据库SQL课程设计 1.docx》由会员分享,可在线阅读,更多相关《数据库SQL课程设计 1.docx(24页珍藏版)》请在冰豆网上搜索。
数据库SQL课程设计1
辽宁工业大学
数据库应用技术课程设计说明书
题目:
采购管理系统
学院(系):
软件学院
专业班级:
软件工程113班
学号:
111301076
学生姓名:
安凯辰
指导教师:
佟玉军
教师职称:
副教授
起止时间:
2011.12.19-2011.12.31
辽宁工业大学课程设计(论文)任务书
院(系):
软件学院教研室:
软件工程
学号
111301076
学生姓名
安凯辰
专业班级
软件工程113班
设计题目
采购管理系统
设计技术
参数
1.题目要达到的目标:
完成系统的登陆、数据的插入删除修改统计等基本操作。
2.数据库:
SQLSERVER2005。
3.所使用的语言、工具:
VB6.0+SQLSERVER2005+WINDOWSXP。
4.所采用的技术、系统结构:
ADO数据库联接技术,系统结构为C/S结构。
设
计
要
求
1.教师布置实习任务和要求时,不得缺席,并做好记录。
2.上机前预先把所有的源程序编写好。
3.上机时不得迟到,不得缺席,爱护设备,认真调试程序。
4.仔细查阅相关资料,认真完成思考题。
5.按要求书写设计任务书,并按要求按版打印,不得雷同。
工作量
二周
工
作
计
划
周一听取教师布置设计的任务及要求。
周二学生查阅相关资料,进行数据库设计。
周三至周五:
详细设计与界面设计。
周一至周四程序设计与上机,调试源程序。
周五书写课程设计任务书。
参考资料
《数据库应用技术》
《数据库应用技术实验指导书》自编
《数据库应用技术课程设计指导书》等自编
指导教师评语
教师:
学生:
说明:
此表一式四份,学生、指导教师、教研室、系部各一份。
可加附页。
2011年12月31
目录
第一章概述4
第二章问题定义5
第三章需求分析6
第四章数据库设计9
第五章界面设计13
第六章设计总结21
参考文献22
第一章概述
采购管理系统可帮助采购人员完成采购物料从采购计划的制订、采购申请、采购询价、采购订单、订单等采购业务的全部过程,每一业务都能有效控制。
采购人员在向供应商发出采购令前不必像以前那样,繁琐地填写大量的各种表格,只需审查系统所产生的每一期间内的采购计划即可。
如遇生产计划变更,采购计划相应变化。
采购人员因有了及时准确的计划信息,他们可从烦琐的事务作业中出来,用更多的时间和精力来进行价值分析,选项择货源和开发更多的合格供应商。
有效地采购计划的实施及采购成本的变动情况,帮助采购人员选择最佳的供应,确保采购工作高质量、高效率、低成本地执行,内存王。
第二章问题定义
总体来说,系统的目标是提高采购的管理水平,提高采购费用结算的自动化水平,提高工作效率,加大采购员采购费用的透明度。
具体的目标包括(具体功能):
1.系统设置:
操作员管理、操作员密码修改、数据备份、数据恢复、操作员权限设置。
2.采购管理:
采购员管理、供应商管理、采购材料管理、采购订单管理、订单信息查询。
3.到货管理:
到货信息管理、到货信息查询。
4.库存管理:
库存信息维护、库存信息查询、库存信息维护。
5.退货管理:
退货信息维护、退货信息查询。
6.打印报表:
打印到货信息、打印退货信息、打印库存信息。
7.关闭系统:
退出系统、重新登录。
其中涉及到的数据库包含8个表,即货物信息表Table_cgb、订货信息表Table_cgdd、采购员信息表Table_cgyxx、到货信息表Table_dhb、供应商信息表Table_gysxx、收货信息表Table_kcb、退货信息表Table_thb、管理员信息表Table_xxdl。
由于本系统涉及到许多数据的处理,这就需要有一个强大的后台数据库管理系统支持。
目前主要的数据库有:
VisualBasic6.0、SQLServer等。
第三章需求分析
一、数据库需求分析
用户需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。
收集基本数据、数据结构、数据处理的流程,组成一份详尽的数据字典,为以后的具体设计打下基础。
在仔细录入有关采购员信息和货物信息的基础上,将得到数据流程图。
数据库包含8个表,即货物信息表Table_cgb、订货信息表Table_cgdd、采购员信息表Table_cgyxx、到货信息表Table_dhb、供应商信息表Table_gysxx、收货信息表Table_kcb、退货信息表Table_thb、管理员信息表Table_xxdl。
针对一般采购信息管理系统的需求,通过对采购员订货及到货,收货,退货过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
货物基本信息:
货物编号、货物名称、供应商编号、供应商名称、单价、单位、结算币、采购员编号、采购员姓名、联系人、电话、采购日期、备注。
货物订货信息:
单号、货物名称、批号、供应商编号、收货日期、发单时间、单位、币种、单价、数量、金额、备注、是否到货、状态。
采购员的基本信息:
采购员编号、姓名、性别、年龄、民族、籍贯、学历、电话、现住址。
到货信息:
到货单号、单号、货物名称、批号、供应商编号、收货日期、发单日期、单位、单价、订单数量、报损数量、报溢数量、数量、到货日期、备注、是否到货、状态。
供应商信息:
供应商编号、供应商姓名、简称、传真、电话、E-mail、联系人、联系人电话、地址。
收货信息:
货物编号、单号、货物名称、批号、供应商编号、收货日期、单位、单价、数量、报损数量、报溢数量、金额、到货日期、入库信息、状态、备注。
退货信息:
退货单号、单号、货物名称、批号、供应商姓名、收货日期、单位、单价、数量、到货日期、货物备注、退货日期、退货原因、状态。
管理员信息:
id、用户名、口令、系统维护、采购管理、到货管理、退货管理、库存管理、报表统计。
二、数据流图
图3.1采购管理系统数据流图
三、数据字典:
货物基本信息表=货物编号+货物名称+供应商编号+供应商名称+单价+单位+结算币+采购员编号+采购员姓名+联系人+电话+采购日期+备注
货物订货信息=单号+货物名称+批号+供应商编号+收货日期+发单时间+单位+币种+单价+数量+金额+备注+是否到货+状态
采购员的基本信息=采购员编号+姓名+性别+年龄+民族+籍贯+学历+电话+现住址
到货信息=到货单号+单号+货物名称+批号+供应商编号+收货日期+发单日期+单位+单价+订单数量+报损数量+报溢数量+数量+到货日期+备注+是否到货+状态
供应商信息=供应商编号+供应商姓名+简称+传真+电话+E-mail+联系人+联系人电话+地址
收货信息=货物编号+单号+货物名称+批号+供应商编号+收货日期+单位+单价+数量+报损数量+报溢数量+金额+到货日期+入库信息+状态+备注
退货信息=退货单号+单号+货物名称+批号+供应商姓名+收货日期+单位+单价+数量+到货日期+货物备注+退货日期+退货原因+状态
管理员信息=id+用户名+口令+系统维护+采购管理+到货管理+退货管理+库存管理+报表统计
三、功能结构图:
图3.2采购管理系统模块
第四章数据库设计
一、概念设计:
概念结构设计是通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,它数据库设计的关键。
货物基本信息包括:
货物编号、货物名称、供应商编号、供应商名称、单价、单位、结算币、采购员编号、采购员姓名、联系人、电话、采购日期、备注。
图4.1货物信息E-R图
货物订货信息包括:
单号、货物名称、批号、供应商编号、收货日期、发单时间、单位、币种、单价、数量、金额、备注、是否到货、状态。
图4.2订货信息E-R图
管理员信息包括:
id、用户名、口令、系统维护、采购管理、到货管理、退货管理、库存管理、报表统计。
图4.3管理员信息E-R图
二、逻辑设计:
逻辑设计的目的是把概念数据模型转化为数据库管理系统可以处理的逻辑模型。
也即将由ER图表示的概念模型转换为DBMS通用的逻辑模型,如关系模型,然后对其进行优化。
以关系模型为目标的逻辑结构设计方法是将ER实体图中概念模型映射为关系模型,并且包括一组关系定义,映射的步骤如下:
(1)把ER实体图中的每个实体变换为一个关系模型。
(2)变换每个关系:
多对多模型需要加一个单独的关系模型;而一对一的或者一对多的联系可用在实体中增加属性(此处为外键)来模型化。
(3)E-R图中的属性可转换为关系的属性。
客户预定客房,客户支付金额给收银员,收银员受管理员管理,客户登记信息到管理员,客房的房间类型选择通过管理员管理。
下面列出几个主要的数据库表设计:
货物(货物编号,货物名称,供应商编号,供应商名称,单价,单位,结算币,采购员编号,采购员姓名,联系人,电话,采购日期,备注)
表4.1货物信息
序号
中文名
字段
类型
备注
Cargo_ID
货物编号
10
int
主键
Cargo_Name
货物名称
50
varchar
Supplier_ID
供应商编号
10
int
Supplier_Name
供应商姓名
50
varchar
Cargo_UPrice
单价
8
float
Unit
单位
50
varchar
Currency
结算币
50
varchar
Buyer_ID
采购员编号
10
int
Buyer_Name
采购员姓名
50
varchar
Linkman
联系人
50
varchar
Phone
电话
50
varchar
Buy_Data
采购日期
8
datetime
Remark
备注
50
text
订购货物(单号、货物名称、批号、供应商编号、收货日期、发单时间、单位、币种、单价、数量、金额、备注、是否到货、状态)
表4.2订货信息
序号
中文名
字段名
类型
备注
No
单号
10
Int
主键
Cargo_Name
货物名称
50
Varchar
Steppind_ID
批号
50
Varchar
Supplier_ID
供应商编号
50
Varchar
Receipt_Data
收货日期
8
Datetime
Issuance_Data
发单时间
8
Datetime
Unit
单位
50
Varchar
Currency
币种
50
Varchar
Cargo_UPrice
单价
10
Float
Count
数量
4
Int
Figure
金额
8
Float
Remark
备注
50
Text
Arrival
是否到货
2
Real
State
状态
10
Char
三、物理设计
该信息管理系统可以在Windows2000Server平台上运行,开发工具采用VisualBasic语言开发。
其工作流程为:
用户登录通过权限判断,普通用户不能浏览、阅读和查询信息,指定用户可以操作,可以进行信息录入、修改和删除的操作。
系统的主要功能特点有:
系统登录表单,该表单的功能是在系统被访问之前,要对进入系统的用户进行安全性检查,防止非法用户进行系统破坏数据及威胁系统安全,避免不必要的损失。
只有合法的用户在输入正确的密码后方可进入系统。
主界面,在该界面窗口中,共有文件、数据、关于等所有系统功能,用户可以操作菜单的方式快捷地使用系统。
更改密码:
使用本表单可以方便地修改用户的密码,以防密码泄露后对数据的安全性造成威胁。
第五章界面设计
一、登陆窗口如下所示:
系统登入后,首先出现用户登录窗体,用户首先等如用户名然后输入密码。
如果用户3次输入密码不正确,将退出程序:
图5.1系统登录界面
实现登录窗口功能的程序代码如下:
DimitmXAsListItem'定义一个ListItem对象
Dima
Dimkey,iAsString'定义字符串变量
PrivateSubCommand1_Click()
IfText2.Text="mr"AndText1.Text="mingrisoft"Then
frm_main.Check1.Value=1
frm_main.Check2.Value=1
frm_main.Check3.Value=1
frm_main.Check4.Value=1
frm_main.Check5.Value=1
frm_main.Check6.Value=1
frm_main.StatusBar1.Panels.Item(3).Text="当前操作员:
mr"
UnloadMe
frm_main.Show
Else
Adodc1.RecordSource="select*fromTable_xxdlwhere用户名='"&Text2.Text&"'"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
IfTrim(Text1.Text)=Trim(Text4.Text)Then
frm_main.Check1.Value=Adodc1.Recordset.Fields("系统维护")
frm_main.Check2.Value=Adodc1.Recordset.Fields("采购管理")
frm_main.Check3.Value=Adodc1.Recordset.Fields("到货管理")
frm_main.Check4.Value=Adodc1.Recordset.Fields("退货管理")
frm_main.Check5.Value=Adodc1.Recordset.Fields("库存管理")
frm_main.Check6.Value=Adodc1.Recordset.Fields("报表统计")
frm_main.StatusBar1.Panels.Item(3).Text="当前操作员:
"+Adodc1.Recordset.Fields("用户名")
frm_main.Text1.Text=Adodc1.Recordset.Fields("用户名")
frm_main.Show
UnloadMe
Else
MsgBox"密码不正确,请您确认后重新输入"
Text1.Text=""
Text1.SetFocus
Ifi>2Then
MsgBox"对不起,您已经3次利用错误的口令登录本系统,请您重新登录并且输入正确的口令!
!
",64,"采购管理系统"
End
Else
i=i+1
EndIf
EndIf
Else
MsgBox"对不起没有此用户的信息"
Text2.Text=""
Text1.Text=""
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
Me.Left=(Screen.Width-Me.Width)/2
Me.Top=(Screen.Height-Me.Height)/2
Adodc1.RecordSource="select*fromTable_xxdl"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
ListView1.Enabled=True
ListView1.ListItems.Clear
Adodc1.Recordset.MoveFirst
DoWhileAdodc1.Recordset.EOF=False
key=Text3.Text
SetitmX=ListView1.ListItems.Add(,,key,1)
Adodc1.Recordset.MoveNext
Loop
Else
ListView1.Enabled=False
EndIf
i=1
EndSub
PrivateSubListView1_DblClick()
Text2.Text=ListView1.SelectedItem
Text1.SetFocus
EndSub
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then
CallCommand1_Click
Else
EndIf
EndSub
PrivateSubText2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then
Text1.SetFocus
Else
EndIf
EndSub
二、主界面
单击主界面上的各个按钮,可以进入相应的界面中:
图5.1采购管理系统主界面
实现代码如下:
DimiAsInteger
Dimc
PrivateSubCGCLGL_Click()
frm_cgclgl.Show
EndSub
PrivateSubCGDDGL_Click()
frm_cgdd.Show
EndSub
PrivateSubCGYGL_Click()
frm_cgygl.Show
EndSub
PrivateSubCZYGL_Click()
frm_YHGL.Show
EndSub
PrivateSubDDXXCX_Click()
frm_ddxx_cx.Show
EndSub
PrivateSubDHXX_Click()
Ifi=0Ori>1Then'如果i=0代表窗体启动时首先点击到货菜单
i=i+2'步长为2,越过打印库存信息和打印退货信息而引起的错误信息
DataEnvironment1.rsCom_dhxx.Open"select*fromTable_dhb"
IfDataEnvironment1.rsCom_dhxx.RecordCount>0Then
DataRep_dhxx.Show
Else
DataEnvironment1.rsCom_dhxx.Close
MsgBox"没有到货信息",64,"采购管理系统"
EndIf
ElseIfi=1Then
DataEnvironment1.rsCom_dhxx.Close
DataEnvironment1.rsCom_dhxx.Open"select*fromTable_dhb"
IfDataEnvironment1.rsCom_dhxx.RecordCount>0Then
DataRep_dhxx.Show
Else
DataEnvironment1.rsCom_dhxx.Close
MsgBox"没有到货信息",64,"采购管理系统"
EndIf
Else
EndIf
EndSub
PrivateSubDHXXCX_Click()
frm_dhxx_cx.Show
EndSub
PrivateSubDHXXWH_Click()
frm_dhb.Show
EndSub
PrivateSubEND_Click()
c=MsgBox("确认要退出采购管理系统吗?
",33,"采购管理系统")
Ifc=vbOKThen
End
Else
EndIf
EndSub
PrivateSubForm_Activate()
IfCheck1.Value=1Then
STSZ.Enabled=True
ElseIfCheck1.Value=0Then
STSZ.Enabled=False
Else
EndIf
IfCheck2.Value=1Then
CGGL.Enabled=True
ElseIfCheck2.Value=0Then
CGGL.Enabled=False
Else
EndIf
IfCheck3.Value=1Then
DHGL.Enabled=True
ElseIfCheck3.Value=0Then
DHGL.Enabled=False
Else
EndIf
IfCheck4.Value=1Then
THGL.Enabled=True
ElseIfCheck4.Value=0Then
THGL.Enabled=False
Else
EndIf
IfCheck5.Value=1Then
XSGL.Enabled=True
ElseIfCheck5.Value=0Then
XSGL.Enabled=False
Else
EndIf
IfCheck6.Value=1Then
BBTJ.Enabled=True
ElseIfCheck6.Value=0Then
BBTJ.Enabled=False
Else
EndIf
EndSub
PrivateSubForm_Load()
Me.Left=(Screen.Width-Me.Width)/2
Me.Top=(Screen.Height-Me.Height)/2
i=0
EndSub
PrivateSubGYSGL_Click()
frm_gysgl.Show
EndSub
PrivateSubKCTJ_Click()
frm_kctj.Show
EndSub
PrivateSubKCXX_Click()
Ifi=0Ori=1Then'如果首先点击库存菜单,那么i值变为1,代表首先点击的不是退货菜单
i=i+1
Else
EndIf
DataEnvironment1.rsCom_kcxx.Open"select*fromTable_kcb"
IfDataEnvironment1.rsCom_kcxx.RecordCount>0Then
DataRep_kcxx.Show
Else
DataEnvironment1.rsCom_kcxx.Close
i=i+2'如果没有打印的信息,i值就跳过1
MsgBox"没有库存信息",64,"采购管