ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:446.82KB ,
资源ID:4702217      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4702217.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(医院管理系统设计报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

医院管理系统设计报告.docx

1、医院管理系统设计报告廿喩钏技识畧University off Soence 恳 Technology BeifingC语言课程设计报告机房名称 逸夫楼804 时 间 2011年7月11日至7月22日 学 院计算机与通信工程学院 专业班级 信息1010 姓 名 蔺云雷樊晓灿倪森 学 号 41050300 41050302 41050295 指导教师 刘莲英 4医院管理系统设计报告经过一个学期的学习, 我们对C语言及应用已有了初步了解。 在本次课程设计中, 我们又将其理论与实践相结合, 在实践中巩固我们已有的理论知识, 同时在实践中不断学习新的知识,从而增强自身的软件设计的能力。 在本次的课程设计

2、中,通过我们三个人的共同努力,以及同学老师的帮助, 我们最终顺利完成了任务。 但我们并没有单纯的把它当做一个任务来 做,我们本着巩固知识,不断学习的目的来完成本次的课程设计。本次课程设计总结如下:1.1开发背景当今时代是飞速发展的信息时代。 在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。 计算机的最大好处在于利用它能够进行信息管理, 使用计算机进行信息控制,不仅提高了工作效率, 而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关, 系统的开发是系统管理的前提。而医院信息管理系统则是这类信息管

3、理系统的最佳体现, 对于我们这类具有实验性质的实践项目来说是最合适不过的了。随着计算机技术的发展以及计算机网络的逐渐普及,英特网成为人们查找信息的重要场 所。二十一世纪是信息的时代,所以信息的交换和信息流通显得特别重要。因此,医院场所 使用计算机来管理成为必然。医院作为一种服务性机构,需要统计和保存的病人及医生资料繁多, 包含很多的信息数据的管理,现今,有很多的小型医院都是初步开始使用, 甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、 表格等纸介质的手工处理,对于病人的住院情况(如住院天数、病历保存的天数)的统计和核实等往往采用对病历号的人 工检查进行,

4、大量应用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据 繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的医院 有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信 息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。部 分小型医院采取手工方式对病人住院情况进行人工管理, 由于信息比较多,对病人管理工作混乱而又复杂;一般住院情况只记录在病人的病历本上, 病床的相关资料在文件中, 医院的工作人员和管理员也只是当时对它比较清楚, 时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力

5、。如要对很长时间以前的住院信息进行更改就更加 困难了。基于这众多的问题,有必要建立一个医院管理系统,使医院管理工作规范化,系统化, 程序化,避免医院管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的 查询和修改病人住院及出院情况。建立管理信息系统是一个很好的解决办法,因为随着社会生产力的迅速发展和科学技 术的突飞猛进,一个集计算机技术、通迅技术、数据库技术、信息技术、现代管理理论为一 体的系统开发方法已经逐渐成熟, 我们完全能够结合自己的实际情况开发出实用的管理信息 系统,来指导我们的学习。 为此,我们组经讨论后一致决定在不与其他小组撞车的前提下通过自主开发这一医院信息管理系统,

6、 达到为医护人员减轻负担, 为患者提供方便,从而提高医院工作效率的目的。1.2开发工具本系统主要利用 VC+6.0作前端的应用开发工具,利用 c语言实现相应的功能,利用Win dowsXP作为系统平台。1.3系统运行环境本系统的运行环境是中文版 win32平台上运行。分为住院手续办理(zhuyuan)和出院手续办理(chuyuan),主函数为程序的核心,调用前面 15个函数,我们把函数都进行了分组,主界面调用 1查询系统,2管理系统,3手续办理系统。其中:1查询系统直接调用查询函数 (chaxun),对病人信息及住院信息进行查询。2管理系统为医院的核心,它记录了医院所有人员的相关信息,它分为病

7、床管理系统, 医生管理系统和病人管理系统,分别调用相应的函数其中病床管理系统为医院病床信息的统计,它分为增加病床( addbed),去掉病床(deibed),修改病床资料(changebed),病床统计(bedcount)四个函数;医生管理系统为医院病床信息的统 计,它分为增加医护人员( addemploy),删除医护人员(delemploy),修改医护人员资料 (changeemploy),医护人员统计(employcount)四个函数;病人管理系统为医院病人信息的统 计,它分为申请新病例(addpatient),删除老病例(delpatient),住院情况统计(zhuyuancount),

8、 病历号统计(patientcount)四个函数.3手续办理系统为病人而设立, 是病人住院信息的载体.具体的功能模块图如下:管理系统小型医院信息管理系统需实现功能: 力求通过本系统,实现以下要求1 对医生的个人资料进行编辑, 查询病床的占用情况从而更有利于系统工作人员掌握病床的信息。2对病人的病历信息、住院信息进行编辑、查询,并且查询病历的基本情况。3管理人员对医院工作人员及病床的信息进行添加和删除。 目标:A.通过数字化,使医院工作所需人力减少;B.提高医院信息管理系统的响应速度;C.加快相关信息的流动速度,提高效率;D.通过实际的工程实践,使我们对数据库的认识水平提高,完成课程要求。可行性

9、分析:开发上的可能性:介于管理系统相比之下只需调用函数,读取,记录,保存文件的相关操作即可,制作过 程不算过于复杂,属于我组人员水平范围之内, 研究过程中不会遇到解决不了的困难, 因此此课题的的开发是完全可行的操作上的可能性:考虑到医院的工作人员部分电脑水平有限, 因此我小组在制作程序时, 尽量把整个操作界面控制的一目了然,相关链接符合逻辑结构思维,操作起来容易上手,一看就懂,不用在 学习操作上下太大功夫,因此,应该会受广大医院欢迎 管理上的可行性这个开发是我们作为数据库课程实践的一项应用工程,任课老师对此十分的重视 希望在课程规定时间内将该数据库系统开发出来, 当然如能投入使用更好,以使我们

10、在巩固课堂所学理论知识的基础上对实践有所了解, 对医院管理的数字化及现代化能起到一些创新促进作用。虽然如今一些大型的医院管理系统基本上已经很先进了, 但作为信息管理系统的代表,这次的小型医院信息管理系统的开发对本科学生数据库理论的实践还是有一定帮助的, 因此这个系统在管理上是可行的。三、总体设计 3F手续办理流程图如下:I F2管理系统11 r查询系统1输入病历号出院手续办理住院手续办理1医生管理系统1I病床管理系统0 11 r结束2 T查询病人信息查 询 住 院 信 息从主函数开始,进入主界面,首先是选择要进行的操作,包括查询系统,管理系统和手续办理系统。若选择查询系统,则要首先输入要查询病

11、人的病历号,由于要查询的文件 是关联的,则还要选择具体要查询的信息(住院信息 /病人信息),也可以从此子菜单里直接返回主菜单。若选择管理系统,则可以对病床,医生和病人的信息进行添加,删除和修 改以及统计等操作。从三个子管理系统都可以返回管理系统界面,进而回到主菜单。手续 办理系统包括住院手续和出院手续的办理, 从手续办理界面和办理子菜单都可以直接返回主菜单。再从主菜单退出系统。整个系统大致就是这样的流程。四.详细设计本系统主要利用在主函数中调用各个函数来实现系统的主要功能, 在三个子系统(查询系统、管理系统、住院手续)中都可以再次调用其相关的函数。(1)、在查询系统中,通过 switch语句,

12、选择要查询的信息,选择1 ”则进入查询住院信息,选择“ 2”则进入查询病人信息,选择“ 0”则退出查询系统。其函数代码如下:chaxun()/*进入查询系统*/char ch5;int patie ntnu m,ture,i, n=0;FILE *fp,*fp2; /*定义指针变量*/fp=fopen(patient.txt,r); /*将fp指针指向以只读方式打开的 patient.txt文件*/printf(请输入你要查找的病历号 n);scan f(%d,&patie ntnu m);for(i=0;fread(&patie nti,sizeof(struct patie nt),1,f

13、p)!=0;i+) /* 判断是否存在相应的病历号*/if(patientnum=patienti.patientnum) /* 判断存在病历号 */doprin tf(n);prin tf(n);prin tf(n);prin tf(tt 欢迎进入查询系统! n);prin tf(tt= = = =1: 查询住院信息= = = = n);prin tf(tt= = = =2: 查询病人信息= = = = n);prin tf(tt= = = =0: = = = = n);prin tf(tt n);printf(”请输入0-2,其他输入非法! );scan f(%s,&ch5);switch

14、(ch5)case 1: fclose(fp);fp2=fope n(record.txt,r );for(i=0;fread( &zhuyua ni,sizeof(structzhuyua n),1,fp2)!=0;i+)if(zhuyua ni.patie ntnum=patie ntnum)printf(病历号:%d,病床号:%s,病床高度:%d, 病床等级:%d,是否能调节高度 (1 表示能 2 表示不 能):%dn,zhuyuani.patientnum,zhuyuani.lendbook,zhuyuani.bedh,zhuyuani.bednum,zhu yua ni.bedor)

15、;printf(按任意键返回:n);getch();fclose(fp2);return FALSE;fclose(fp2);return FALSE;break;case 2:printf(第%d个病人的病例号: %d姓名:%s年龄:%d性别 : %s 患 病 类 型 :%s 电 话 号码:%sn,n+1,patienti.patientnum,patienti.patientname,patienti.patientclass,patienti.patients ex,patie nti.patie ntleve,patie nti.patie nttage);fclose(fp);pri

16、ntf(按任意键返回:n);getch();break;case 0:break; default:printf(无此操作 n”);getch();break;while(ch5!=0);return FALSE;return FALSE;printf(没有你要查找的病历号”);fclose(fp); return FALSE;(2)、在管理系统中,同样是利用 switch语句来选择要进行的管理操作,由于可以针对病床、医生、病人进行管理,则将管理系统又分成了三个模块,并对每一个子管理模块分成了 4个操作功能,由于这三个子管理模块的功能基本相同,在这里只列出医生管理模块的相应 的功能,其他模块的

17、可参照上面的模块图。在医生管理部分,包括增加医护人员、删除医护人员、修改医护人员资料、医护人员统 计几个部分,增加医护人员可以新增医护人员,同时添加关于医生的编号、医生的姓名、医 生的年龄、医生的性别、医生的科目和医生的工资。要实现此功能,主要依靠以下的函数:addemploy() /*函数名,增加医生信息 */FILE *fp; /*定义一个文件指针 */char choice=y; /*定义字符常量,用于下面的判断 */int i=1;fp=fope n(employ.txt,a+); /* 将指针指向文件 employ.txt*/while(choice=y|choice=Y) /*使用

18、循环语句,当确定要输入医生信息时,执行循环体*/printf(”请你输入医生号码n); /*输入对应的医生信息*/sca nf(%d, &employi.emplo ynu m); printf(请你输入医生名n);sca nf(%s,employi.emplo yn ame); printf(请输入医生年龄n);sca nf(%d, &employi.employage); printf(请你输入性别n);sca nf(%s,employi.employsex); printf(请你输入医生的科目n);sca nf(%s,employi.employleve); printf(请输入医生的工

19、资n);sca nf(%d, &employi.employtage);fwrite(&employi,sizeof(struct employ),1,fp); /*将医生的信息写入 fp 对应的文件中*/printf(是否要输入下个医生信息 ? n);scan f(%s, &choice);printf(按任意键返回n”); fclose(fp); /* 关闭文件 */在删除医生信息模块,可以将没用的医生信息删除, 以节省空间,也更便于医生信息的管理。只要输入要删除的医生姓名, 即可自动弹出提醒语句, 提醒操作者是否真的要删除该医生的信息,只要选择“ y”即可完成删除操作。具体的程序代码如下

20、:delemploy() /*函数名,删除医生信息 */FILE *fp,*fp2; /*定义文件指针,用于对文件的操作 */int i;char emplo yn ame10,choice;fp=fope n(employ.txt,r);fp2=fope n(bedl.txt,w);printf(请输入你要删除的医生名n);printf(如果你输入的医生存在, 系统自动删除该信息! 如果不存在,系统不做任何改动n);sca nf(%s,emplo yn ame);for(i=0;fread(&employi,sizeof(struct employ),1,fp)!=0;i+) /*读取医生的

21、信息 */*判断是否存在该医生的/*将医生的信息写到fp2所if(strcmp(emplo yn ame,employi.emplo yn ame)!=0) 信息,若存在,则执行语句 A*/fwrite( &employi,sizeof(struct employ),1,fp2);指向的文件中*/fclose(fp);fclose(fp2);printf(是否真的要删除该医生信息?删除后的所有信息将无法恢复 Y/Nn);scan f(%s,&choice); /*提醒操作者是否真的要执行删除操作 */ if(choice=y|choice=Y)fp=fopen(employ.txt,w); /

22、* 清空 employ.txt 中的信息 */fp2=fopen(bedl.txt,r); /*以只读的方式打开 fp2所指向的文件bed1.txt*/for(i=0;fread(&employi,sizeof(struct employ),1,fp2)!=0;i+)fwrite(&employi,sizeof(struct employ),1,fp); /* 读取 fp2 的信息,写入 fp 中*/fclose(fp);fclose(fp2); /*关闭两个文件*/fp2=fopen(bedl.txt,w); /*清空 bed1.txt 中的内容 */fclose(fp2);printf(按

23、任意键返回n);getch();return TRUE;elseprintf(”按任意键返回n); getch();修改医护人员资料模块:首先按要求输入要修改的医生的名字, 判断确有此人以后便可以针对该医生的编号、名字、年龄、工资和科目进行修改,以实现更全面的对于医生信息的 管理。实现本功能的程序代码如下:/*函数名,修改医生资料 */return FALSE;cha ngemploy()FILE *fp,*fp2;char emplo yn ame10,choice;int i;fp=fope n(employ.txt,r);fp2=fope n(bedl.txt,w);printf(请你输

24、入要修改的医生的名字 n ”);sca nf(%s,emplo yn ame);/*读取医生信息*/for(i=0;fread(&employi,sizeof(struct employ),1,fp)!=0;i+)if(strcmp(employi.emplo yn ame,emplo yn ame)=0) /* 若存在该医生,贝 U执行修改医生信息*/printf(你所要修改的医生的资料如下,请选择你要修改的内容 n);printf(n,employi.employnum,employi.employname,employi.employage,employi.emplscan f(%s,&

25、choice);switch(choice) /*选择要修改的内容 */ case 1:printf(请输入新的医生号n);sca nf(%d, &employi.emplo ynu m);fwrite( &employi,sizeof(struct employ),1,fp2);break;case 2:printf(”请输入新的医生姓名n);sca nf(%s,employi.emplo yn ame);fwrite( &employi,sizeof(struct employ),1,fp2); break;case 3:printf(请输入新的年龄n);sca nf(%d, &emplo

26、yi.employage);fwrite( &employi,sizeof(struct employ),1,fp2); break;case 4:printf(请输入新的医生工资n);sca nf(%d, &employi.employtage);fwrite( &employi,sizeof(struct employ),1,fp2); break;case 5:printf(请输入新的医生科目n);sca nf(%s,employi.employleve);fwrite( &employi,sizeof(struct employ),1,fp2); break;case 0:break;

27、default:printf(没有这样的操作);break;con ti nue;fwrite(&employi,sizeof(struct employ),1,fp2);fclose(fp);fclose(fp2);fp=fope n(employ.txt,w);fp2=fope n(bedl.txt,门;for(i=0;fread(&employi,sizeof(struct employ),1,fp2)!=0;i+)fwrite(&employi,sizeof(struct employ),1,fp); /*将修改后的资料写入 fp 所指向的文件中*/fclose(fp);fclose(

28、fp2);fp2=fope n(bedl.txt,w); /* 清空文件中的信息 */fclose(fp2);printf(按任意键返回n”);getchar();return;在最后的医生统计功能模块中, 主要是统计所有医生的信息, 并列出医生的信息。 该功能比较简单,所以函数也比较简单,代码相对较少。如下:employcount() /*医生信息统计*/FILE *fp;int i,n=0;fp=fopen(employ.txt,r); /* 以只读的方式打开文件 employ.txt*/for(i=0;fread(&employi,sizeof(struct employ),1,fp)!

29、=0;i+) /* 读取医生信息 */printf(第%d医生的信息如下:n医生号:%d医生名:%s年龄:%d性别:%s 科 目: %s 工资:dn ”, n+1,employi.emplo ynu m,employi.emplo yn ame,employi.employage,employi.e mploysex,employi.employleve,employi.employtage);n+; /*输出医生信息*/fclose(fp); /* 关闭文件 */printf(目前共有 %d个医生n,n);printf(按任意键返回n);整个管理系统模块大致就是以这样的模式进行的, 在对病床和病人的管理都类似。而主菜单中的手续办理模块, 在这里则不做详细的介绍。 只要输入病历号和所在病床号

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1