




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、哈尔滨工业大学(威海)数据库系统课程设计报告目录1绪论11.1 项目简介1.1.2设计目的1.1.3设计内容1.1.4应用范围1.2需求分析12.1数据需求1.2.2事务需求2.2.3详细功能分析2.2.4数据字典2.2.5开发运行环境3.2.6安全保障3.3概念设计33.1 实体及联系抽象3.3.2 E-R 图4.3.3关系模式5.4逻辑设计54.1各表功能5.4.2 各表结构 错误!未定义书签。4.3表关系图.1.15物理设计115.1 物理存储115.2完整性约束115.3 视图设计 错误!未定义书签。5.4 触发器设计 错误!未定义书签。6系统实现与维护136.1 模块 1 136.2
2、 模块 2176.3 模块3错误!未定义书签。7总结17.1系统实现程度1.7.2问题及难点1.7.3收获与体会1.哈尔滨工业大学(威海)数据库系统课程设计报告1绪论1.1项目简介近年来,中国医药行业迅速发展,药店企业多业态经营,仓储式大型超市、中等规 模超市、便利连锁综合发展。随着规模的扩大,传统的医药管理已经不能适应发展的需 要,很难在激烈的竞争中生存。通过对从事医药产品的零售、批发等工作企业的深入调 查,发现其业务主要包括企业药品销售、出入库管理、企业的财务、人事管理等。医药 管理是一项琐碎、复杂而又十分细致的工作。手工进行企业日常的药品销售、出入库的 工作,容易出现错账,而且费时费力。
3、1.2设计目的设计实验意义及所解决问题:我在设计中需要考虑和克服上述问题,实现企业管理 工作的系统化、规范化和自动化。为此要进行了建立数据库的必要性和可行性的分析, 需求分析,数据库的概念设计、逻辑设计、物理设计和数据库的实现、运行、维护以及 相应的前台的主要功能模块的开发。1.3设计内容数据库设计:12张表PB设计:30个窗口,12个数据窗口,一个菜单窗口,体现 12个表格之间的关系, 通过对脚本的撰写,在窗口中表现出来1.4应用范围本系统适用于医药单位对于货物的进销存以及管理员进行简单的管理。主要体现于 用户信息、进货信息、销售信息、商品信息等几方面的管理2需求分析2.1数据需求系统需要处
4、理哪些数据1管理员基本信息的输入,包括:管理员编号,管理员姓名,管理员密码2. 药品基本信息的输入,包括:商品编号,商品名称,商品价格,商品数量以及备 注3入库或退货基本信息的输入,包括:进货编号,商品名称,进货价格,进货数量 以及备注4.销售基本信息的输入,包括:销售编号,商品名称,销售价格,数量以及备注5.报表的生成2.2事务需求管理员可以对其他管理员的信息进行查询,可以通过程序对其他管理员的信息进行 修改和删除。还可以对所有使用所有操作。低级权限可以使用查询功能,不能修改和录入信息。2.4数据字典数据字典是描述系统流程图中所有数据流、数据存储、处理功能等信息的集合,其 包括4种条目;数据
5、流、数据结构、数据项。建立完善的数据字典是对所收集、整理的 数据的一种分析归档方式,为下一步建立数据库和处理数据做准备。药品销售管理系统数据字典卡片如下所示:名字:药品信息表别名:描述:对药品基本信息的描述定义:药品代码+药品名称+剂型+产地+规格+价格+保质期位置:基本表名字:客户信息表别名:描述:对客户基本信息的描述定义:客户代码+客户名称+联系人+地 址+电话+手机位置:基本表名字:仓库信息表别名:描述:对仓库存储信息的描述定义:药品代码+总数量+成本价位置:数据库名字:客户订单信息表别名:描述:对客户订单基本信息的描述定义:订单号+客户代码+商品代码+经 手人+日期位置:数据库名字:入
6、库单信息表别名:描述:对入库的药品基本信息的描述 定义:入库单号+药品代码+药品数量+ 经手人+日期位置:数据库名字:用户密码信息表别名:描述:对管理员及其密码基本信息的描 述定义:用户名+密码位置:基本表2.5开发运行环境所用DBMS、开发工具及编程语言等数据库:sql server2000开发工具:PB9.0使用语言:Power Script2.6安全保障如何保障系统的安全性进入主界面前,有登陆界面,只允许管理人员使用。设有使用权限,最低级权限只有查询权,高级权限可以使用所有操作。若登录时,用户姓名与密码匹配,则可使用此系统。若不匹配则无法正常操作3概念设计3.1实体及联系抽象药品实体 客
7、户实体属性 用户密码属性 系统实体联系4 / 27哈尔滨工业大学(威海)数据库系统课程设计报告3.2E-R 图数据库概念设计(E-R图)(1)药品实体属性图(2)客户实体属性图(3)用户密码属性图(4)系统实体联系图3.3关系模式把E-R图转换为关系模式,并画出关系模式图。尽量规范到3NF。药品信息(药品编号,药品名称,药品类别代号,售价,进价,库存量,供应商, 有效 期) 外码:药品类别代号、供应商 药品分类索引信息(药品类别代号,类别说明)员工信息(员工号,姓名,用户名,密码,职位,权限)客户信息(客户号,客户名称,联系人,联系方式,客户所在城市)供应商信息(供应商号,供应商名称,联系人,
8、联系方式,供应商所在城市)药品销售信息(销售编码,销售日期,药品编码,药品名称,单价,数量,供应商, 总额,销售员编码)外码:销售员编码、药品编码4逻辑设计4.1各表功能给出数据库所有表的名称及各自功能操作员表czy_tab:操作员编号,操作员级别,操作员姓名,密码当日报表drbb_tab :结账日期,操作员,销售总额,销售退货总额,入库总额,入库退 货总额29 / 27当月报表dybb_tab :结账日期,操作员,销售总额,销售退货总额,入库总额,入库退 货总额。供应商信息gysxx_tab :供应商编号,供应商名称,厂址,联系号码仓库信息kc_tab :供应商编号,供应商名称,药品编号,药
9、品名称,仓库名称,数量客户信息khxx_tab :客户编号,客户名称,联系电话 入库登记rkdj_tab :供应商编号,供应商名称,药品编号,药品名称,负责人,进价, 入库票号,入库日期,仓库名称,入库数量,金额。入库退货rkth_tab销售登记xsdj_tab销售退货xsth_tab员工信息ygxx_tab药品信息ypxx_tab4.2表关系图在SQL Server中直接找到关系图并截取出来诽脚5 mi 实nifA廿!I血駄 rMlW i-xl?fl.nHj 妊.7 h m 亦 11 他匸Cl 翡薩加midd 'l|亠孟if於畑舟 聽加a 如a5物理设计5.1物理存储1. 数据库文件
10、的存储位置120610116数据库备份;2. 备份:备份数据库文件3. 还原:120610116数据库备份;5.2完整性约束1. 主键约束:每个表都有1组主键,主键值不为空且不能重复外键值不能2. 外键约束:表的主键可做其他表的外键,但数据类型必须完全相同, 为空6系统实现与维护6.1模块1用户登录登陆代码:stri ng ls_id,ls_ name,ls_password,ls_permissio nstri ng ls_getpasswordls_id=sle_id.textselect "czy_tab"."czy","czy_tab&
11、quot;."pwd","czy_tab"."czyjb" in to:ls_ name,:ls_password,:ls_permissio n from"czy_tab"where"czy_tab"."czybh"=:ls_id;if sqlca.sqlcode<>0 the nsle_name.text="没找到!"sle_id.text=""sle_password.text=""sle_id.s
12、etfocus()returnend ifsle_ name.text=ls_ name ls_getpassword=trim(sle_password.text) ls_password=trim(ls_password)if len (ls_password)=0 the n ls_password=space(10)if len (ls_getpassword)=0 or isn ull(ls_getpassword) the n ls_getpassword=space(10)end ifif ls_getpassword<>ls_password then messag
13、ebox(警告","口令错误!") sle_password.text="" sle_password.setfocus() returnend ifgs_id=ls_idgs_n ame=ls_ namegs_password=ls_password gs_permissio n=ls_permissio n ope n( w_ma in)if gs_permission="1" thenma inmen u.m_S 售管理.m_ 销售登记.en abled=true ma inmen 口口_销售管理.m_ 销售退货.en
14、 abled=true mainmenu.m货管理.m_入库登记.enabled=true mainmenu.m货管理.m_入库退货.enabled=true mainmenu.m货管理.m_入库报表.enabled=true mainmenu.mj财务管理.m_当日结帐.enabled=true mainmenu.mj财务管理.m_当月结帐.enabled=true mainmenu.mj统管理.m_增删用户.enabled=true mainmenu.mj统管理.m_用户密码管理.enabled=true end ifif gs_permission<"1" th
15、enma inmen 口.口_销售管理.m_ 销售登记.en abled=false ma inmen u.m_S 售管理.m_ 销售退货.en abled=false mainmenu.mj货管理.m_入库登记.enabled=false mainmenu.mj货管理.m_入库退货.enabled=false mainmenu.mj货管理.m_入库报表.enabled=false mainmenu.mj财务管理.m_当日结帐.enabled=false mainmenu.mj财务管理.m_当月结帐.enabled=false mainmenu.mj系统管理.m_增删用户.enabled=fa
16、lse mainmenu.mj系统管理.m_用户密码管理.enabled=false end if修改密码密码确认代码:stri ng ls_oldpassword,ls_ newpassword,ls_re newpasswordls_oldpassword=trim(sle_oldpassword.text)ls_n ewpassword=trim(sle_ n ewpassword.text)ls_ren ewpassword=trim(sle_re newpassword.text)if len( gs_password)=0 or isnu ll(gs_password)the ng
17、s_password=space(10)end ifif len (ls_oldpassword)=O or isnu ll(ls_oldpassword)the nls_oldpassword=space(10)end ifif len(ls_newpassword)=O or isnull(ls_newpassword)thenls_n ewpassword=space(10)end ifif len (ls_re newpassword)=O or isnu ll(ls_re newpassword)the n ls_re newpassword=space(10)end if if l
18、en(ls_oldpassword)=0 or isnull(ls_oldpassword) then ls_n ewpassword=space(10)end ifif ls_oldpassword<>gs_password the nmessagebox("警告","旧口令不对!") sle_oldpassword.text二"" sle_oldpassword.setfocus() returnend ifif ls_n ewpassword<>ls_re newpassword the n messag
19、ebox("警告","两次输入的新口令不同!") sle_ newpassword.text二"" sle_re newpassword.text二""sle_ newpassword.setfocus()returnend ifupdate "czy_tab"set"pwd"=:ls_ newpasswordwhere"czy_tab"."czybh"=:gs_id;if sqlca.sqlcode<>0 the nrol
20、lback;messagebox(" 错误","修改口令失败,请重试!") returnend ifgs_password=ls_ newpassword commit;messagebox("提示","修改口令成功!")close(pare nt)6.2模块2目录财务管理:结账结账代码:/进行当日结帐统计stri ng xsze1,xsthze1,rkze1,rkthze1long xsze,xsthze,rkze,rkthze;l ong xsze2,xsthze2,rkze2,rkthze2/统计入库总额de
21、clare cursorl cursor for select je from rkdj_tab where rkrq=:em_1.text;ope n cursor1;fetch cursor1 into :rkze1;rkze=0do while sqlca.sqlcode=0rkze2=Ion g(rkze1)rkze=rkze+rkze2fetch cursor1 into :rkze1;loopclose cursor1;em_4.text=stri ng(rkze)/统计入库退货总额declare cursor2 cursor for select je from rkth_tab
22、 where thrq=:em_1.text;ope n cursor2;fetch cursor2 into :rkthze1;rkthze=0do while sqlca.sqlcode=0rkthze2=lo ng(rkthze1)rkthze=rkthze+rkthze2fetch cursor2 in to :rkthze1;loop close cursor2;em_5.text=stri ng(rkthze)/统计销售总额declare cursor3 cursor for select je from xsdj_tab where xsrq=:em_1.text; ope n
23、cursor3;fetch cursor3 in to :xsze1;xsze=0do while sqlca.sqlcode=0xsze2=Ion g(xsze1)xsze=xsze+xsze2fetch cursor3 in to :xsze1;loopclose cursor3;em_2.text=stri ng(xsze)/统计销售退货总额declare cursor4 cursor for select je from xsth_tab where thrq=:em_1.text;ope n cursor4;fetch cursor4 into :xsthze1;xsthze=0do
24、 while sqlca.sqlcode=0xsthze2=lo ng(xsthze1)xsthze=xsthze+xsthze2fetch cursor4 in to :xsthze1;loop close cursor4;em_3.text=stri ng(xsthze)stri ng jzrq8,czy8/选择数据select jzrq,czy into :jzrq8,:czy8 from drbb_tab where jzrq=:em_1.text;if jzrq8="" the nandifIon g(em_2.text)=0and Ion g(em_3.text
25、)=0and Ion g(em_4.text)=0Ion g(em_5.text)=0 the nmessagebox(""," 库中没有货物!")else/保存数据in sertin todrbb_tab(jzrq,czy,xsze,xsthze,rkze,rkthze)values(:em_1.text,:sle_operator name.text,:em_2.text,:em_3.text,:em_4.text,: em_5.text);stri ng sqldw_1.settra nsobject(sqlca)wheresql="se
26、lect jzrq,czy,xsze,xsthze,rkze,rkthzefrom drbb_tabjzrq='"+em_1.text+"”'dw_1.setsqlselect(sql)dw_1.retrieve()end ifelsemessagebox("","您已经结完帐了 !")end if入库登记保存代码:long totalslljelstri ng totalypbh,totalsl,totalsl2,je2stri ng gysbhO,gysmcO,ypbhO,ypmcO,fzrO,rkphO,ckmc
27、O,jjO,rkrqO,rkslO,jeOem_1.text=stri ng(today()gysbhO=stri ng(trim(sle_1.text)gysmc0=trim(sle_2.text)ypbh0=trim(sle_3.text)ypmc0=trim(sle_4.text)fzr0=trim(sle_5.text)jj0=trim(sle_6.text)rkph0=trim(sle_7.text)rkrq0=trim(em_1.text)ckmc0=trim(sle_8.text)rksl0=trim(sle_9.text) je1= lo ng(jjO)*lo ng(rkslO
28、)je2=stri ng(je1) em_2.text=je2je0=em_2.textin sertinto rkdj_tab(gysbh,gysmc,ypbh,ypmc,fzr,rkph,ckmc,jj,rkrq,rksl,je)values(:gysbh0,:gysmc0,:ypbh0,:ypmc0,:fzr0,:rkph0,:ckmc0,:jj0,:rkrq0,:rksl0,:je0);select ypbh,sl into :totalypbh,:totalsl2 from kc_tab where ypbh=:ypbh0;if totalypbh="" then
29、valuesinsertintokc_tab (gysbh,gysmc,ypbh,ypmc,ckmc,sl)(:gysbh0,:gysmc0,:ypbh0,:ypmc0,:ckmc0,:rksl0);elsetotalsl 1= lo ng(totalsl2)+lo ng(rksl0)totalsl=stri ng(totalsl1)update kc_tab set sl=:totalsl where ypbh=:ypbh0;end ifmessagebox("","登记成功!")销售登记保存代码:long totalslljelstring ypbh
30、,totalypbh,totalsl,totalsl2,je2stri ng khmc,ypbh1,ypmc,fzr,xsph,xsrq,ckmc,xsjg,xssl,jeem_1.text=stri ng(today()khmc=sle_1.textypbh 仁 sle_2.textypmc=sle_3.textfzr=sle_4.textxsph=sle_5.textxsrq=em_1.textckmc=sle_6.textxsjg=em_2.textxssl=sle_7.textje1= Ion g(xsjg)*l on g(xssl)je2=stri ng(je1)em_3.text=
31、je2je=em_3.textselect ypbh,sl into :totalypbh,:totalsl2 from kc_tab where ypbh=:ypbh1;if totalypbh="" thenmessagebox("","库中没有该货!")elseif Iong(totalsl2)>=long(xssl) thenvaluesin sert in to xsdj_tab (khmc,ypbh,ypmc,fzr,xsph,xsrq,ckmc,xsjg,xssl,je) (:khmc,:ypbh1,:ypmc,:fzr,:xsph,:xsrq,:ckmc,:xsjg,:xssl,:je);totalsl 1= lo ng(totalsl2)-lo ng(xssl)totalsl=stri ng(totalsll)update kc_tab set s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁省沈文新高考研究联盟2024-2025学年高二下学期开学检测语文试题(解析版)
- 教师考核考勤提案会发言稿
- 2024年特许金融分析师考试团队合作试题及答案
- 高中语文知识
- 广西钦州市第四中学2024-2025学年高一下学期2月考试地理试卷(解析版)
- 预防军人自杀
- 2024年特许金融分析师考试重点突破试题及答案
- 2024年特许金融分析师考试焦虑应对策略试题及答案
- 2024年特许金融分析师考试全站试题及答案
- 特许金融分析师考试准备试题及答案
- Thecleverpig教学课件(省一等奖)
- 英语专业本科毕业论文写作指导课件
- 利益冲突审查表
- 大学语文《西厢记》PPT课件
- 电气控制与plc应用技术》期末试卷c卷
- IPC-610C 标准讲解-文档资料
- 10kV工程交叉跨越钻越66kV及以上电压等级线路施工方案
- 万象网管OL使用指南
- 企业负责人建筑施工现场带班检查记录表
- T_CHES 22-2018 渡槽安全评价导则
- 环境生物学-第4章环境污染生物监测6ppt课件
评论
0/150
提交评论