数据库SQL课程设计 1Word下载.docx
《数据库SQL课程设计 1Word下载.docx》由会员分享,可在线阅读,更多相关《数据库SQL课程设计 1Word下载.docx(24页珍藏版)》请在冰点文库上搜索。
设
计
要
求
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图
管理员信息包括:
图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
供应商编号
Supplier_Name
供应商姓名
Cargo_UPrice
单价
8
float
Unit
单位
Currency
结算币
Buyer_ID
采购员编号
Buyer_Name
采购员姓名
Linkman
联系人
Phone
电话
Buy_Data
采购日期
datetime
Remark
text
订购货物(单号、货物名称、批号、供应商编号、收货日期、发单时间、单位、币种、单价、数量、金额、备注、是否到货、状态)
表4.2订货信息
字段名
No
单号
Int
Varchar
Steppind_ID
批号
Receipt_Data
收货日期
Datetime
Issuance_Data
发单时间
币种
Float
Count
数量
4
Figure
金额
Text
Arrival
是否到货
2
Real
State
状态
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
对不起,您已经3次利用错误的口令登录本系统,请您重新登录并且输入正确的口令!
!
64,"
采购管理系统"
End
i=i+1
EndIf
对不起没有此用户的信息"
Text2.Text="
EndSub
PrivateSubCommand2_Click()
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>
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
ListView1.Enabled=False
EndIf
i=1
PrivateSubListView1_DblClick()
Text2.Text=ListView1.SelectedItem
Text1.SetFocus
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=13Then
CallCommand1_Click
PrivateSubText2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
二、主界面
单击主界面上的各个按钮,可以进入相应的界面中:
图5.1采购管理系统主界面
实现代码如下:
DimiAsInteger
Dimc
PrivateSubCGCLGL_Click()
frm_cgclgl.Show
PrivateSubCGDDGL_Click()
frm_cgdd.Show
PrivateSubCGYGL_Click()
frm_cgygl.Show
PrivateSubCZYGL_Click()
frm_YHGL.Show
PrivateSubDDXXCX_Click()
frm_ddxx_cx.Show
PrivateSubDHXX_Click()
Ifi=0Ori>
1Then'
如果i=0代表窗体启动时首先点击到货菜单
i=i+2'
步长为2,越过打印库存信息和打印退货信息而引起的错误信息
DataEnvironment1.rsCom_dhxx.Open"
select*fromTable_dhb"
IfDataEnvironment1.rsCom_dhxx.RecordCount>
DataRep_dhxx.Show
DataEnvironment1.rsCom_dhxx.Close
没有到货信息"
ElseIfi=1Then
PrivateSubDHXXCX_Click()
frm_dhxx_cx.Show
PrivateSubDHXXWH_Click()
frm_dhb.Show
PrivateSubEND_Click()
c=MsgBox("
确认要退出采购管理系统吗?
33,"
Ifc=vbOKThen
PrivateSubForm_Activate()
IfCheck1.Value=1Then
STSZ.Enabled=True
ElseIfCheck1.Value=0Then
STSZ.Enabled=False
IfCheck2.Value=1Then
CGGL.Enabled=True
ElseIfCheck2.Value=0Then
CGGL.Enabled=False
IfCheck3.Value=1Then
DHGL.Enabled=True
ElseIfCheck3.Value=0Then
DHGL.Enabled=False
IfCheck4.Value=1Then
THGL.Enabled=True
ElseIfCheck4.Value=0Then
THGL.Enabled=False
IfCheck5.Value=1Then
XSGL.Enabled=True
ElseIfCheck5.Value=0Then
XSGL.Enabled=False
IfCheck6.Value=1Then
BBTJ.Enabled=True
ElseIfCheck6.Value=0Then
BBTJ.Enabled=False
i=0
PrivateSubGYSGL_Click()
frm_gysgl.Show
PrivateSubKCTJ_Click()
frm_kctj.Show
PrivateSubKCXX_Click()
Ifi=0Ori=1Then'
如果首先点击库存菜单,那么i值变为1,代表首先点击的不是退货菜单
DataEnvironment1.rsCom_kcxx.Open"
select*fromTable_kcb"
IfDataEnvironment1.rsCom_kcxx.RecordCount>
DataRep_kcxx.Show
DataEnvironment1.rsCom_kcxx.Close
i=i+2'
如果没有打印的信息,i值就跳过1
没有库存信息"
采购管