




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 专业课程设计报告题 目:医院住院部信息管理系统 专 业软件工程 学生姓名班级学号指导教师指导单位南京邮电大学计算机学院日 期2014-6-9至2014-6-20 评 分 细 则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简 短 评 语教师签名: 年 月 日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格23 / 23文档可自由编辑打印一课题名称:医院住院部信息管理系统二设计目标:按照软件工程的规范,以SQL Server 2000为后台
2、数据库,建议以delphi为前端开发工具,设计并实现一个医院住院部信息管理系统。三需求描述:医院的住院部管理非常复杂,它涉及众多诸如病人的信息、每天的具体费用、住院期间的总费用等问题,因此,设计本系统,完成病人住院登记、每天费用录入、费用查询、总费用统计等功能,具体需求如下:1 住院登记,用于录入住院病人的信息,包括编号、姓名、性别、年龄、病房号、床号、住院日期、工作单位、病因、预交押金等信息,同时可浏览、添加、删除、编辑记录。2 费用录入,用于录入病人每天费用清单,包括编号、姓名、护理等级、结算日期、护理费、床位费、注射费、药费、治疗费、手术费等,同时可浏览、添加、删除、编辑记录。3 费用查
3、询,提供主从界面,当在主表中浏览病人信息时,从表中将显示当前对应记录病人的所有费用记录。4 总费用统计,在此页面中单击“开始统计”按钮,表格中将依次显示各病人的预交押金、总费用以及剩余或赊欠的费用,同时,文本框将显示催款名单,若无人欠款,将显示“没有任何病人赊欠费用”。四具体设计本次实验以SQL Server 2000为后台数据库,以delphi7.0为前端开发工具,OS为WinXP sp1系统。住院部信息管理系统用一个数据库和两张表进行存储两张表的内容如下:数据库:医院住院管理表:1、基本信息表 基本信息 用于录入存储住院病人的信息,包括编号、姓名、性别、年龄、病房号、床号、住院日期、工作单
4、位、病因等信息 具体设置如下 2医院信息表医院信息 用于录入病人每天费用清单,包括编号、姓名、护理等级、预交押金,结算日期、护理费、床位费、注射费、药费、治疗费、手术费等具体设置如下 其中,总费用=(手术费 + 治疗费 + 护理费 + 床位费 + 注射费 + 药费) 剩余费用=(预约金 - 总费用)(当为-的时候为赊欠)在前端Delphi开发中最终用到了5个form。分别为登录,导航,住院登记,费用录入,信息查询和总揽统计。五详细设计系统自动生成的:1.program Project1;uses Forms, Unit1 in 'Unit1.pas' Form1, Unit3
5、in 'Unit3.pas' Form3, Unit4 in 'Unit4.pas' Form4, Unit5 in 'Unit5.pas' Form5, Unit7 in 'Unit7.pas' Form7, Unit2 in 'Unit2.pas' Form2;$R *.resbegin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm3, Form3); Application
6、.CreateForm(TForm4, Form4); Application.CreateForm(TForm5, Form5); Application.CreateForm(TForm7, Form7); Application.CreateForm(TForm2, Form2); Application.Run;end.2.Form1登陆界面确认按钮被单击判断edit1和edit2的数据,当为admin密码为admin进入导航(管理员权限)为123密码为123,进入普通用户界面仅支持查询procedure TForm1.Button1Click(Sender: TObject);beg
7、in if edit1.Text = '' then begin showmessage('账号不能为空'); exit; end; if edit2.Text = '' then begin showmessage('密码不能为空'); exit; end; if (Edit1.Text = 'admin') and (Edit2.Text = 'admin') then begin Form4.Button1.Enabled := True; /from4下的空间Button1属性Enabled
8、为true,admin可调用。若为false则没有权限,下同。 Form4.Button2.Enabled := True; Form4.Button3.Enabled := True; Form4.Button4.Enabled := True; Form7.Button2.Enabled := True; Form4.Show; end else /对于普通用户"123"而言只有查询的权限 if(Edit1.Text = '123') and (Edit2.Text = '123') then begin Form4.Button1.En
9、abled := False; Form4.Button2.Enabled := False; Form7.Button2.Enabled := false; Form4.Show; exit; End /判断帐号密码是否正确 else begin showmessage('账号密码不正确'); endend;3.导航界面ForM4procedure TForm4.Button1Click(Sender: TObject);begin Form5.show;end;procedure TForm4.Button2Click(Sender: TObject);begin Form
10、7.show;end;procedure TForm4.Button3Click(Sender: TObject);begin Form2.show;end;procedure TForm4.Button4Click(Sender: TObject);begin Form3.Show;end;单击不同按钮则进入不同的界面进行操作(普通用户按钮124不可用)4.Form5住院登记文本框输入相符内容,点登记则完成登记登记按钮代码如下procedure TForm5.Button2Click(Sender: TObject);begin /先做好保护工作 if edit1.Text = '&
11、#39; then begin showmessage('编号不能为空!'); exit; end; /先查看是否已经有病人信息 ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select *'); ADOQuery1.SQL.Add('from 医院信息'); ADOQuery1.SQL.Add('where 编号='''+Edit1.Text+ ''''); ADOQuery1.Prepared; ADOQuer
12、y1.Open; ADOQuery1.Active:=true; if ADOQuery1.RecordCount>0 then begin /有该信息就弹出一个提示框,然后推出该函数的执行 messageBox(0,'已有该病人的信息','Error!',mb_OK); exit; end; /当不存在该病人信息时 ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('insert into 基本信息 values('); ADOQuery1.SQL.Add(''
13、''+Edit1.Text+''''+','); /编号 ADOQuery1.SQL.Add(''''+Edit2.Text+''''+','); /姓名 ADOQuery1.SQL.Add(''''+Edit3.Text+''''+','); /性别 ADOQuery1.SQL.Add(''''+Edit4.Text+''&
14、#39;'+','); /年龄 ADOQuery1.SQL.Add(''''+Edit5.Text+''''+','); /工作单位 ADOQuery1.SQL.Add(''''+Edit7.Text+''''+','); /病房号 ADOQuery1.SQL.Add(''''+Edit8.Text+''''+','); /床号 AD
15、OQuery1.SQL.Add(''''+edit10.text+''''+','); /住院日期 ADOQuery1.SQL.Add(''''+Edit9.Text+''''+')'); /病因 ADOQuery1.ExecSQL; /把DBGrid框的内容进行更新 ADOQuery2.Close; ADOQuery2.Open; ADOQuery2.Active:=true;end;查询功能:输入对应编号,在文本框中显示相应信息;p
16、rocedure TForm5.Button6Click(Sender: TObject);begin if edit1.Text = '' then begin showmessage('编号不能为空!'); exit; end; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select *'); ADOQuery1.SQL.Add('from 基本信息'); ADOQuery1.SQL.Add('where 编号='''+Ed
17、it1.Text+ ''''); ADOQuery1.Prepared; ADOQuery1.Open; ADOQuery1.Active:=true; if ADOQuery1.RecordCount=0 then begin /有该信息就弹出一个提示框,然后推出该函数的执行 messageBox(0,'没有该病人的信息','Error!',mb_OK); exit; end; ADOQuery1.Close; Adoquery1.sql.clear; Adoquery1.sql.add('select 编号 from
18、基本信息 where 编号=''' + Edit1.Text + ''''); Adoquery1.Open; Edit1.text:=adoquery1.fieldbyname('编号').AsString; ADOQuery1.Close; Adoquery1.sql.clear; Adoquery1.sql.add('select 姓名 from 基本信息 where 编号=''' + Edit1.Text + ''''); Adoquery1.Open
19、; edit2.text:=adoquery1.fieldbyname('姓名').AsString; ADOQuery1.Close; Adoquery1.sql.clear; Adoquery1.sql.add('select 性别 from 基本信息 where 编号=''' + Edit1.Text + ''''); Adoquery1.Open; Edit3.text:=adoquery1.fieldbyname('性别').AsString; ADOQuery1.Close; Adoqu
20、ery1.sql.clear; Adoquery1.sql.add('select 年龄 from 基本信息 where 编号=''' + Edit1.Text + ''''); Adoquery1.Open; Edit4.text:=adoquery1.fieldbyname('年龄').AsString; ADOQuery1.Close; Adoquery1.sql.clear; Adoquery1.sql.add('select 工作单位 from 基本信息 where 编号=''
21、39; + Edit1.Text + ''''); Adoquery1.Open; Edit5.text:=adoquery1.fieldbyname('工作单位').AsString; ADOQuery1.Close; Adoquery1.sql.clear; Adoquery1.sql.add('select 住院日期 from 基本信息 where 编号=''' + Edit1.Text + ''''); Adoquery1.Open; edit10.text:=adoquer
22、y1.fieldbyname('住院日期').AsString; ADOQuery1.Close; Adoquery1.sql.clear; Adoquery1.sql.add('select 病房号 from 基本信息 where 编号=''' + Edit1.Text + ''''); Adoquery1.Open; Edit7.text:=adoquery1.fieldbyname('病房号').AsString; ADOQuery1.Close; Adoquery1.sql.clear; A
23、doquery1.sql.add('select 床号 from 基本信息 where 编号=''' + Edit1.Text + ''''); Adoquery1.Open; Edit8.text:=adoquery1.fieldbyname('床号').AsString; ADOQuery1.Close; Adoquery1.sql.clear; Adoquery1.sql.add('select 病因 from 基本信息 where 编号=''' + Edit1.Text +
24、''''); Adoquery1.Open; Edit9.text:=adoquery1.fieldbyname('病因').AsString;end;(同样能将信息输出到右边的DBGrid1里)修改按钮:功能:先查询,将要修改的数据填写到对面文本框,点修改即可,对应DBGRID也会修改并显示修改后的内容。代码实现如下:procedure TForm5.Button4Click(Sender: TObject);begin if application.MessageBox('您确定要修改数据嘛?','危险',MB
25、_OKCANCEL) =IDCANCEL then exit; /先查看是否已经有改信息 ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select *'); ADOQuery1.SQL.Add('from 基本信息'); ADOQuery1.SQL.Add('where 编号='''+Edit1.Text+''''); ADOQuery1.Prepared; ADOQuery1.Open; ADOQuery1.Active:=tr
26、ue; if ADOQuery1.RecordCount=0 then begin /没有该航班信息就弹出一个提示框,然后推出该函数的执行 messageBox(0,'无该病人的信息','Error!',mb_OK); exit; end; /当该信息存在时则可以将其信息更新到表中 ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('update 基本信息 set' ); ADOQuery1.SQL.Add('编号='+''''+Edit
27、1.Text+''''+','); ADOQuery1.SQL.Add('姓名='+''''+Edit2.Text+''''+','); ADOQuery1.SQL.Add('性别='+''''+Edit3.Text+''''+','); ADOQuery1.SQL.Add('年龄='+''''+Edit4.T
28、ext+''''+','); ADOQuery1.SQL.Add('工作单位='+''''+Edit5.Text+''''+','); ADOQuery1.SQL.Add('住院日期='+''''+edit10.text+''''+','); ADOQuery1.SQL.Add('病房号='+''''+Edit
29、7.Text+''''+','); ADOQuery1.SQL.Add('床号='+''''+Edit8.Text+''''+','); ADOQuery1.SQL.Add('病因='+''''+Edit9.Text+''''); ADOQuery1.SQL.Add(' where '); ADOQuery1.SQL.Add('编号='+
30、39;'''+Edit1.Text+'''');ADOQuery1.ExecSQL;ADOQuery2.Close; ADOQuery2.Open; ADOQuery2.Active:=true;删除按钮:功能,输入对应编号删除代码如下procedure TForm5.Button3Click(Sender: TObject);begin if application.MessageBox('您确定要修改数据嘛?','危险',MB_OKCANCEL) =IDCANCEL then exit; /先做好保护工
31、作 if edit6.Text = '' then begin showmessage('编号不能为空!'); exit; end; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select *'); ADOQuery1.SQL.Add('from 基本信息'); ADOQuery1.SQL.Add('where 编号='''+Edit6.Text+ ''''); ADOQuery1.Prepare
32、d; ADOQuery1.Open; ADOQuery1.Active:=true; if ADOQuery1.RecordCount=0 then begin /有该信息就弹出一个提示框,然后推出该函数的执行 messageBox(0,'没有该病人的信息','Error!',mb_OK); exit; end; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('delete from 基本信息'); ADOQuery1.SQL.Add('where 编号=''
33、;'+Edit6.Text+ ''''); /编号 ADOQuery1.ExecSQL; /把DBGrid框的内容进行更新 ADOQuery2.Close; ADOQuery2.Open; ADOQuery2.Active:=true; end;刷新按钮只是重置下表格内容,代码省略5.费用录入FORM7和住院登记一样,插入文本框的数据,通过费用录入可以将对应数据插入数据库中费用录入代码如下:procedure TForm7.Button4Click(Sender: TObject);begin if edit3.Text = '' the
34、n begin showmessage('编号不能为空!'); exit; end; /先查看是否已经有病人信息 ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select *'); ADOQuery1.SQL.Add('from 医院信息'); ADOQuery1.SQL.Add('where 编号='''+Edit3.Text+ ''''); ADOQuery1.Prepared; ADOQuery1.Open;
35、 ADOQuery1.Active:=true; if ADOQuery1.RecordCount>0 then begin /有该信息就弹出一个提示框,然后推出该函数的执行 messageBox(0,'已有该病人的信息','Error!',mb_OK); exit; end; /当该航班信息不存在时则可以将其信息插入flight表中 ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('insert into 医院信息 values('); ADOQuery1.SQL.Add(&
36、#39;'''+Edit3.text+''''+','); /编号 ADOQuery1.SQL.Add(''''+Edit4.Text+''''+','); /护理等级 ADOQuery1.SQL.Add(Edit12.Text+','); /预约金 ADOQuery1.SQL.Add(''''+Edit2.Text+''''+','); /结算日期
37、 ADOQuery1.SQL.Add(Edit5.Text+','); /护理费 ADOQuery1.SQL.Add(Edit7.Text+','); /床位费 ADOQuery1.SQL.Add(Edit8.Text+','); /注射费 ADOQuery1.SQL.Add(Edit10.Text+','); /药费 ADOQuery1.SQL.Add(Edit6.Text+','); /治疗费 ADOQuery1.SQL.Add(Edit9.Text+')'); /手术费 ADOQuery1.E
38、xecSQL; /把DBGrid框的内容进行更新 ADOQuery2.Close; ADOQuery2.Open; ADOQuery2.Active:=true;end;修改按钮同住院修改功能:代码如下procedure TForm7.Button1Click(Sender: TObject);begin if application.MessageBox('您确定要修改数据嘛?','危险',MB_OKCANCEL) =IDCANCEL then exit; /先查看是否已经有改航班信息 ADOQuery1.Close; ADOQuery1.SQL.Clear;
39、 ADOQuery1.SQL.Add('select *'); ADOQuery1.SQL.Add('from 医院信息'); ADOQuery1.SQL.Add('where 编号='''+Edit1.Text+''''); ADOQuery1.Prepared; ADOQuery1.Open; ADOQuery1.Active:=true; if ADOQuery1.RecordCount=0 then begin /没有该航班信息就弹出一个提示框,然后推出该函数的执行 messageBox(0
40、,'无该病人的信息','Error!',mb_OK); exit; end; /当该航班信息存在时则可以将其信息更新到flight表中 ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('update 医院信息 set' ); ADOQuery1.SQL.Add('结算日期='+''''+Edit2.Text+''''+','); ADOQuery1.SQL.Add('编号='
41、;+''''+Edit3.Text+''''+','); ADOQuery1.SQL.Add('护理等级='+''''+Edit4.Text+''''+','); ADOQuery1.SQL.Add('护理费='+Edit5.Text+','); ADOQuery1.SQL.Add('治疗费='+Edit6.Text+','); ADOQuery1.SQL.
42、Add('床位费='+Edit7.Text+','); ADOQuery1.SQL.Add('注射费='+Edit8.Text+','); ADOQuery1.SQL.Add('手术费='+Edit9.Text+','); ADOQuery1.SQL.Add('药费='+Edit10.Text+','); ADOQuery1.SQL.Add('预约金='+Edit12.Text); ADOQuery1.SQL.Add(' where '); ADOQuery1.SQL.Add('编号='+''''+Edit1.Text+'''');ADOQuery1.ExecSQL;/把DBGrid框的内容进行更新 ADOQuery2.Close; ADOQuery2.Open; ADOQuery2.Active:=true; Form7.Button1.Enabled :=true; Form7.Button2.Enabled :
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 60287-2-2:1995 EN-D Electric cables - Calculation of the current rating - Part 2: Thermal resistance - Section 2: A method for calculating reduction factors for groups o
- 音乐b级考试试题及答案
- 仪表培训考试试题及答案
- 六一周系列活动方案
- 六一外卖联动活动方案
- 六一教育教学活动方案
- 医学超声考试试题及答案
- 六一活动亲子diy活动方案
- 六一活动接球活动方案
- 六一活动评比活动方案
- 《安全生产法》修订、《刑法修正案》解读
- 21春国家开放大学《建筑工程估价》形考任务1-4参考答案
- 法学毕业论文3000范文
- 《两办意见》《八条硬措施》《煤矿安全生产条例》考试试题
- 2024年装饰装修合同上诉状
- JTG-T-3833-2018公路工程机械台班费用定额
- 智慧食堂综合解决方案课件【2022版】
- 卓越绩效自评报告模板
- 2024年中考化学答题技巧与模板构建专题05 物质的转化与推断(解析版)
- 中外石油文化智慧树知到期末考试答案2024年
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
评论
0/150
提交评论