河 南 城 建 学 院
实习报告
实 习 类 别: 数据库应用课程设计
实 习 课 题: 药品管理系统
系 别: 测绘与城市空间信息系
专 业: 测绘工程
姓 名 学 号:
指 导 教 师:
完 成 时 间: 20##年12月
目录
1本组课题及任务分配...............................2
2系统需求及调查分析...............................3
3系统设计.........................................4
3.1系统总体设计流程图...........................4
3.2系统详细设计.................................5
3.3数据库设计...................................6
4系统实施.........................................8
4.1启动功能.....................................8
4.2登录界面.....................................9
4.3主界面界面..................................10
4.4信息查询界面................................10
4.5信息管理界面................................11
4.6打印界面....................................12
4.7系统管理....................................13
4.8关于........................................17
4.9退出界面 ...................................18
5设计体会........................................19
6参考书目........................................20
1本组课题及任务分配
本组课题:药品管理系统
任务分配:
0000:用户表、药品信息表、生产信息表、供应商信息表、登陆页面及最后的修改美化。
0000:启动界面、用户注册表单、注销用户表单、修改密码表单及其退出表单。
0000:生产厂家信息查询表单、供应商信息查询表单、药品信息查询表单以及关于表单。
0000:生产厂家信息管理表单、供应商信息管理表单、药品信息管理表单以及帮助表单。
2.系统要求及调查分析
2.1系统要求
经过对药品管理的要求分析,可知要完成此系统需要时系统具有以下一些基本的功能,以便适合用户操作及管理。
(1)系统用户在初始化药品管理的时候的时候,要能添加药品,建立药品库,对所有药品实行编码并生成相应的编号。药品添加要把药品所有信息进行添加,包括药品编号、药品通用名、剂型、规格、生产地址、适应症等内容;对于添加的药品数据信息也可以进行相应的修改,或者删除,全凭用户需要。
(2)系统用户需要能使用正确的密码登陆进入主程序,并且在主程序中能对密码进行修改以及添加新用户和注销以往用户。
(3)系统能够准确的查询和管理生产厂家信息,生产厂家信息,包括生产厂家编号、公司全称、地址、电话、联系人等内容;对于添加的生产厂家信息也可以进行相应的修改或者删除以上各种操作全可凭用户的需求而定。
(4)系统能够准确的查询和管理供应商信息,包括供应商编号、全称、地址、联系电话、联系人、开户银行等内容;对于添加的供应商信息可以由用户进行相应的修改或者删除等操作,全由用户需求而定。
(5)除以上系统主要需求外还需要以下内容完成系统,其中包括启动页面,在系统操作时的帮助和关于系统的信息,以及最后的退出页面。
2.2调查分析
通过对药品管理系统的分析和功能的需求,经调查分析后可知系统需要以下表格及内容来充实各个方面的信息和完成一些基本的实践性操作。
(1)药品信息,包括药品编号、药品通用名、剂型、规格、生产地址、适应症等内容;
(2)用户信息,包括用户名及密码等内容;
(3)生产厂家信息,包括生产厂家编号、公司全称、地址、电话、联系人等内容;
(4)供应商信息表,包括供应商编号、全称、地址、联系电话、联系人、开户银行等内容;
3.系统设计
3.1系统总体设计流程图
3.2系统详细设计
由上节系统设计流程图可知系统的大概流程,又经过对药品管理的要求分析,及系统需求可知要完成此系统需要时系统具有以下一些基本的功能,以便适合用户操作及管理。也就是药品管理系统的详细设计有如下内容。
(1)点击快捷方式后能够显现出启页面并顺序显示出登陆表单以便于下一步的操作。
(2)系统用户在初始化药品管理的时候的时候,要能添加药品,建立药品库,对所有药品实行编码并生成相应的编号。药品添加要把药品所有信息进行添加,包括药品编号、药品通用名、剂型、规格、生产地址、适应症等内容;
对于添加的药品数据信息也可以进行相应的修改,或者删除,全凭用户需要。
(3)系统能够准确的查询和管理生产厂家信息,生产厂家信息,包括生产厂家编号、公司全称、地址、电话、联系人等内容;
对于添加的生产厂家信息也可以进行相应的修改或者删除以上各种操作全可凭用户的需求而定;
(4)系统能够准确的查询和管理供应商信息,包括供应商编号、全称、地址、联系电话、联系人、开户银行等内容;
对于添加的供应商信息可以由用户进行相应的修改或者删除等操作,全由用户需求而定;
(5)系统用户需要能使用正确的密码登陆进入主程序,并且在主程序中能对密码进行修改以及添加新用户和注销以往用户;
(6)具有一个关于页面,能够显示对本系统的帮助选项以及关于本系统的一些信息;
(7)系统能够正常的退出,并且有一个退出页面,显示是否确定退出以免操作失误;
3.3数据库设计
3.3.1.用户表
3.3.2.药品信息表
3.3.3.生产厂家信表
3.3.4.供应商信息表
注:以上都是数据库中相关表,通过各个表的属性给对应的表中添加相应的数据,再导入到程序中进行添加,查询,修改,删除,插入等功能。每个表之间建立存储过程以及触发器来进行手动的查询,存储。
4.系统实施
4.1启动界面
4-1.启动页面
启动代码:this.timer1.Interval=100
Public i as Integer
i=1
转入登录页面代码:i=i+1
if i=20 then
do form 登录表单.scx
thisform.release
Endif
4.2.登录界面
4-2.登录页面
登录代码:count=count+1
loca for ALLTRIM(用户表.用户名)==alltrim(thisform.combo1.value)
IF thisform.text1.Value==""
MESSAGEbox("输入不能为空!")
else
if found()and ALLTRIM(用户表.密码)==alltrim(thisform.text1.value)
DO FORM 主界面.scx
release thisform
else
if count<3 then
=messagebox("输入有误!",48,"警告")
else
messagebox("对不起您是非法用户,系统将自动退出!",48,"警告")
quit
endif
endif
Endif
4.3.主界面界面
4-3.主界面
代码:thisform.windowstate=0
do 主菜单.mpr with this,"T"
thisform.release
4.4.信息查询界面
4-4.生产厂家信息查询
代码:cz=ALLTRIM(Thisform.Text1.value)
n=RECNO()
GO TOP
SCAN
IF 生产厂家信息表.编号=cz OR 生产厂家信息表.公司全称=cz
Thisform.Text1.value=""
Thisform.Text1.SetFocus
Thisform.Refresh
RETURN
ENDIF
ENDSCAN
MESSAGEBOX("该生产厂家信息不存在!",0,"查找失败")
GO n
Thisform.Text1.Value=""
Thisform.Text1.SetFocus
Thisform.Refresh
4.5.信息管理界面
4-5.供应商信息管理
4.6.打印界面
4-6-1.打印界面
代码:
report form 药品信息报表 noco for 通用名=thisform.combo1.value prev
report form 供应商信息报表 noco for 全称=thisform.combo2.value prev
report form 生产厂家信息报表 noco for 公司全称=thisform.combo3.value prev
2-6-2.打印界面预览
4.7.系统管理
4.7.1.修改密码界面
4-7-1.修改密码
代码:if empty(thisform.text4.value)
mess=messagebox("用户名不能为空!",48,"警告")
else
if empty(thisform.text1.value)
mess=messagebox("旧密码不能为空!",48,"警告")
else
if empty(thisform.text2.value)
mess=messagebox("新密码不能为空!",48,"警告")
else
if empty(thisform.text3.value)
mess=messagebox("重复密码不能为空!",48,"警告")
else
if alltrim(thisform.text2.value)<>alltrim(thisform.text3.value) or len(alltrim(thisform.text2.value))<>len(alltrim(thisform.text3.value))
mess=messagebox("二次密码不一致!",48,"警告")
else
locate for alltrim(用户名)==alltrim(thisform.text4.value) and alltrim(密码)==alltrim(thisform.text1.value)
if eof()
mess=messagebox("密码错误,系统将取消你的修改权利!",48,"警告")
thisform.release
else
repl 密码 with alltrim(thisform.text3.value)
mess=messagebox("密码修改成功!",48,"信息")
thisform.release
endif
endif
endif
endif
endif
endif
4.7.2.用户注册界面
4-7-2.用户注册
代码:use 用户表 excl
public u1,pw1
u1=allt(thisform.text1.value)
pw1=allt(thisform.text2.value)
if empty(thisform.text1.value)
messagebox ("用户名不能为空!",48+0,"添加新用户")
thisform.text1.setfocus
else
locate for allt(用户名)==u1
if found()
messagebox("该用户名已存在",48+0,"添加新用户")
thisform.text1.setfocus
else
if thisform.text2.value==thisform.text3.value
tempstr=''
for i=1 to len(trim(pw1))
tempchr=bitxor(asc(subs(pw1,i,1)),123)
tempstr=tempstr+chr(tempchr)
endfor
dimension b(1,2)
b[1,1]=u1
b[1,2]=tempstr
append from array b
messagebox("添加成功",48+0,"添加新用户")
release thisform
else
messagebox("两次密码输入不一致,请重新输入",48+0,"添加新用户")
thisform.text3.setfocus
endif
endif
endif
4.7.3.注销用户界面
4-7-3.注销用户
代码:USE 用户表.dbf EXCLUSIVE
LOCATE ALL FOR 用户名=ALLTRIM(thisform.Text1.value)
IF EOF()
MESSAGEBOX("注销用户不存在!",48,"温馨提示")
ELSE
IF thisform.Text1.Value==""
MESSAGEBOX("注销不能为空!",48,"温馨提示")
else
a=messagebox("是否删除?",4+32+0,"温馨提示")
if a=6
dele ALL FOR 用户名=ALLTRIM(thisform.Text1.value)
pack
messagebox("删除成功!")
ENDIF
ENDIF
thisform.Refresh
4.8.关于
4.8.1.帮助界面
2-8-1.帮助
4.8.2.关于界面
4-8-2.关于界面
4.9.退出界面
4-9.退出
代码:quit
以上即为系统实施的主要内容,包括每一功能模块的表单界面、实现功能、表单控件及主要属性、事情相应代码、程序文件等
5.设计体会
为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行再创造,学校特安排我们进行为期三周的数据库应用课程设计实习,并安排了指导老师帮助辅导,让我们在规范化、严谨化、实用化上面有了很大进展。
在此次药品管理系统程序开发过程中,有很多东西值得我们思考并总结。
开发过程大体可分为以下几个步骤:
(1)思考总体设计方案:总体结构和模块外部设计,功能分配。思考要实现整个程序大体需要的几个模块和其中用到的代码语言,数据库语言基本操作符、语句等。
(2)画出总体设计方案流程图:用流程图的形式展现我们的基本编程思想。
(3)流程图具体化:即将流程图中的几大模块的具体实现思考清楚,可以用流程图的形式展现.并想好实现的关键代码。
(4)编辑程序代码:这是一个至关重要复杂而且需要反复修改的环节,在此环节中你将发现总体设计和模块思想会存在很多问题,需不断改进.如何实现各函数功能,达到预期效果也将是一项繁复的工作。
(5)代码的调试:在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。
(6)最后修饰:程序可以正确运行之后,再不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化.增强程序的新意与可行性。
通过这次课程设计,使我们更加熟悉的掌握了数据库语言的运用。帮助我们熟悉了更多数据库语言及其功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验.我们每个人都通过课程设计对理论知识的理解进一步加深,也对学科间的相互联系真正做到了学以致用。另一方面对收集资料、查阅文献、方案制定等实践能力也得到了很好的锻炼,促进了我对所学知识的应用能力;同时,发现问题、分析归纳、综合比较的逻辑分析能力、处理问题等能力也得到了很好的提高。也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。
6.参考书目
(1)谢维成等编写的《Visual FoxPro 6.0实用教程》 清华大学出版社
(2)李雁翎等编写的《Visual FoxPro应用基础与面向对象程序设计教程》 高等教育出版社
(3)明日科技、周桓、徐微等编写的《Visual FoxPro 数据库系统开发精选案例》 人民邮电出版社
(4)陈林、陈艳华、魏珉等编写的《Visual FoxPro 数据库开发实例精粹》 电子工业出版社