诊所信息管理系统C++课程设计报告(共32页).doc

上传人:飞****2 文档编号:16668068 上传时间:2022-05-18 格式:DOC 页数:32 大小:2.35MB
返回 下载 相关 举报
诊所信息管理系统C++课程设计报告(共32页).doc_第1页
第1页 / 共32页
诊所信息管理系统C++课程设计报告(共32页).doc_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《诊所信息管理系统C++课程设计报告(共32页).doc》由会员分享,可在线阅读,更多相关《诊所信息管理系统C++课程设计报告(共32页).doc(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上 课程设计成果 学院: 计算机工程学院 班 级: 学生姓名: 学 号: 设计地点(单位) B5-101 ERP实验室 设计题目: 诊所信息管理系统设计 完成日期:2016 年 6 月 25 日 指导教师评语: 成绩(五级记分制): 教师签名: 目 录1需求分析随着经济的迅速发展,人们的生活水平得到显著提高。医疗服务行业也在人们生活中占据了最重要的一环,随着医改的实施,看病难,看病贵的问题得到了解决,所以为了存储患者信息以及医生信息,为了小型诊所管理的正规化,方便化,诊所信息管理系统在此背景下诞生。面对发展的需要通过专门的管理系统来系统化、规范化以及高效地实现小型诊所管

2、理。并且随着计算机技术的快速发展,计算机的应用逐渐普及和深入,同时计算机软件的需求特日益增长,C+语言是当前最流行的和实用的计算机程序语言。模拟诊所信息管理系统就是对存储患者信息以及医生信息在个人PC上的编程实现。本系统采用了用户身份的注册、登陆、增加信息、查询信息、帐单信息以及统计所有患者的总费用等功能。并分析在现实生活中遇到的问题并得到解决。1.1 问题描述完成小型诊所的简单信息管理程序,掌握类的设计以及继承和派生的应用。1.2 主体功能设计人类(Person类)和医生类(Doctor类),在此基础上,通过增加患者和账单,使它们公用于表示一家诊所的信息管理。(1)在一条医生记录中,包括医生

3、的专业说明(specialty),如内科医生(surgeon)、儿科医生(pediatrician) 、产科医生(obstetrician)及全科医生(general practitioner)。(2)Doctor记录还含有诊费(office_vist_fee)。(3)在一条患者记录中,包括该患者产生的药费(drug_fee) ,患者的诊费(即医生的诊费)。(4)在一条账单记录中,包括一条患者对象、该患者对应得主治医生、该患者产生的诊费和药费。(5)应用程序能够显示出诊所中每个患者的信息和对应主治医生的信息。(6)能够统计出所有患者的总费用。1.3 问题的解决方案根据系统功能要求,可以将问题解

4、决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。1.4开发环境开发系统:Windows 系统,处理器要求最低奔腾处理器,内存32m,建议在i5处理器,128m内存配置下调试。编译集成软件:Microsoft Visual C+ 6.0编译器。Microsoft Visual C+ 6.0编译器。是一个强大的C/C+软件开发工具,操作简单,

5、使用非常广泛,为很多程序员的首选开发工具。2 概要设计2.1 数据设计2.1.1 类设计分别定义了person人类、doctor医生类、HuanZhe患者类以及帐单类;在person人类中,包含了数据成员姓名(name)、性别(sex)、年龄(age)以及诊费(office_vist_fee);在doctor医生类中,增加了数据成员医生的专业说明(drug_fee),包含了成员函数input()增加医生信息,zhangdanKind()按姓名查询医生信息;在HuanZhe患者类中,增加了数据成员患者的药费(drug_fee),包含了成员函数input()增加患者信息,zhangdanKind(

6、)按姓名查询患者信息;在zhangdan帐单类中,包含了数据成员姓名(name)、诊费(office_vist_fee)、药费(drug_fee)、总费用(totl_fee),包含了成员函数totl_pay()用于把总费用从D:bb.txt文件移到D:cc.txt,pay()统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。2.1.2 类之间的关系在该系统中医生与患者都有数据成员姓名(name)、性别(sex)、年龄(age)以及诊费(office_vist_fee);所以把这些数据成员定义在基类person人类中,docto

7、r医生类与HuanZhe患者类公有继承于基类person人类。2.1.3 函数设计在doctor医生类中,包含了成员函数input()增加医生信息,zhangdanKind()按姓名查询医生信息;在HuanZhe患者类中,包含了成员函数input()增加患者信息,zhangdanKind()按姓名查询患者信息;在zhangdan帐单类中,包含了成员函数totl_pay()用于把总费用从D:bb.txt文件移到D:cc.txt,pay()统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。在该系统中,还包含了普通函数addinfo

8、r()增加信息界面实现,select()查询信息界面实现,zhangdanxinxi() 账单信息界面实现,add_zhuce()实现注册用户,welcome()验证用户登陆,登陆成功显示欢迎信息,Please()诊所信息管理系统主界面的实现。2.2 结构设计2.2.1 系统流程图图2.1 系统流程图2.2.2 界面设计addinfor()增加信息界面包括了1. 增加医生信息2. 增加患者信息0. 退出;select()查询信息界面包括了1. 查询医生信息2. 查询患者信息0. 退出;zhangdanxinxi() 账单信息界面包括了1. 增加账单信息2. 查询账单信息0. 退出;Please

9、()诊所信息管理系统主界面包括了1.查询信息2.账单信息3.增加信息4.统计总费用0.退出系统;main()主函数界面包括了1.用户登录2.用户注册0.退出系统。在这些界面的实现中用switch()语句做选择。3 详细设计3.1 类实现class person /人类protected:string name;char sex;int age;double office_vist_fee;public:person() person() ;class doctor : public person /医生类private:char speicialty15;public:doctor() voi

10、d input(); /增加医生信息void zhangdanKind() ; /按姓名查询医生信息doctor() ;class HuanZhe : public person /患者类private:double drug_fee; public:HuanZhe()void input() ; /增加患者信息void zhangdanKind(); /按姓名查询患者信息HuanZhe() ;class zhangdan /帐单类string name;double drug_fee;double office_vist_fee;double totl_fee;public:zhangdan

11、() void totl_pay() ; /用于把总费用从D:bb.txt文件移到D:cc.txtvoid pay() ; /实现统计所有患者总费用void zhangdanKind() ;/按姓名查询账单信息zhangdan() ;3.2 主函数实现void main()/主函数/system(color 3F);int w;couttt*n;couttt n;couttt n;couttt 1.用户登录 n;couttt 2.用户注册 n;couttt 0.退出系统 n;couttt n;couttt n;couttt*n;while(1)cout请输入数字:; cinw;switch(w

12、)case 1:Please(); break; case 2:add_zhuce(); break; case 0:exit(0); default: cout输入数字错误!endl;3.3 模块设计增加医生信息如图3.1所示; 图3.1 增加医生信息函数流程图图按姓名查询医生信息如图3.2所示3.2 按姓名查询医生信息函数流程图账单类如图3.3所示图3.3 账单函数统计所有患者总费用如图3.4所示图3.4 统计所有患者总费用函数增加账单信息如图3.5所示图3.5 增加账单信息函数实现注册用户如图3.6所示图3.6 实现注册用户按姓名查询账单如图3.7所示图3.7按姓名查询账单函数验证用户登

13、陆,登陆成功显示欢迎信息如图3.8所示图3.8 登录成功显示欢迎函数4 系统测试4.1 测试数据序号输入内容说明截图12,zhangsan,输2注册,输入姓名及密码,显示成功图4.121输1进入登录界面图4.231登录后显示诊所信息管理系统主界面图4.343在总界面输3进增加信息界面图4.451,lisi,f,32,4.5,erkeyisheng输入要增加医生的相关信息图4.562,wangfang,m,12,4.5,10输入要增加患者的相关信息图4.671在总界面输1进入查询界面图4.781,lisi输1查询医生信息界面,输入姓名得相关信息图4.892,wangfang输2查询患者信息界面,

14、输入姓名得相关信息图4.9102主界面输2进入帐单信息界面图4.10111,wangfang,lisi,4.5,10,14.5输1进入增加账单界面,输入相关信息图4.11122,wangfang输2进入查询账单界面,输患者姓名得到查询结果图4.12134在主界面输4进入统计总费用界面图4.13140在主界面输0退出系统图4.144.2测试结果1.用户注册与登陆(1)用户注册界面如图4.1所示。图 4.1(2)用户登陆界面如图4.2所示。图 4.22诊所信息管理系统主界面如图4.3所示。图 4.33增加信息界面如图4.4所示。图 4.4(1)增加医生信息如图4.5所示。图4.5(2)增加患者信息

15、如图4.6所示。图 4.64查询信息界面如图4.7所示。图 4.7(1)查询医生信息如图4.8所示。图 4.8(2)查询患者信息如图4.9所示。图 4.95帐单信息界面如图4.10所示。图 4.10(1)增加帐单信息如图4.11所示。图 4.11(2)查询帐单信息如图4.12所示。图 4.126统计功能实现如图4.13所示。图 4.13(7)退出系统界面如图4.14所示。图4.144.3 课程设计过程中遇到的问题(1)在switch语句中注意break和return的使用,用return会出现Press any key to coninue导致没有执行完的程序结束。(2)数据类型在类中设的与后

16、来添加的类型不一致,导致错误。(3)写入文件与输出时出现错误。5 总结经过一个多星期的C+课程设计的训练,我学到了很多,最主要的一点是怎样去运用自己学过的知识,怎样去找到你所需要的资料,并在短时间把它运用到具体的实践中,运用到你所需要的方面。这个过程是很艰难的,要花费很多的时间和精力,但是,在事情过后,自己就会发现自己已经在这个过程中学到了自己想要的东西,这种获得是更深刻的。在做这个C+课程设计的时候,我原先也是学的不怎么好,什么是结构体数据,什么是定义类型,怎样在一个main函数中调用别的定义函数,等等,可以说是忘得差不多了。然而,在这门课程设计中,这些方面却是特别重要的,可以说,掌握了这个

17、,你就完全可以完成自己的任务。这就要求我们要自己去学,自己去探索。当然,看书、问同学是必不可少的,还有,身边有非常丰富的网络资源给我们好好利用,百度就是个很不错的地方。这样就从另一方面锻炼了我们检索知识获取信息的能力,在这个过程中,可以学到的是一种提升自我的能力。当然,由于个人能力所限,这份课程设计有一些别的方面还是要参考人家的的资料,在读懂别人材料的同时,自己取人所长,补己之短,经过多次的调试,总结,最后交出一份自己比较满意的答卷。在本次课程设计中,我发现我对知识的运用不是那么准确,也就是说我对知识掌握的不够熟练。课本上有的知识却不会运用,虽然在本次C+课程设计中,显示出一些我知识上的漏洞,

18、经过这次编写诊所信息管理系统,我发现我熟练掌握了类的定义以及继承与派生,并对文件操作有了初步的掌握,课下还应该继续努力,争取熟练掌握一门编程设计语言,在次基础上,在学习多种编程语言,以便以后可以用到工作中去。通过这次的课程设计,终于我的诊所信息管理系统完美告终,让我进一步的了解到C+在我们日常生活中的重要性,而且,也更进一步的激发了我学习这门语言的兴趣.经过这次的训练,我相信自己以后会用更多的时间来把这门语言学好,掌握好这门必修的基础语言。参考文献1李素若,杜华兵编,C+面向对象程序设计.中国水利水电出版社.2013年.2谭浩强编,C+面向对象程序设计.北京:清华大学出版社,2006年.3安志

19、远,贾振华主编,C+程序设计基础.北京:高等教育出版社,2009.64王超,C+程序设计.北京:地质出版社,2006.825王继明,C+程序设计与应用开发M.北京:清华出版社,2008.附录 源程序代码#include #include #include #include #include using namespace std;class person /人类protected:string name;char sex;int age;double office_vist_fee;public:person() person() ;class doctor : public person /

20、医生类private:char speicialty15;public:doctor() void input() /增加医生信息char t;cout*主治医生基本信息*endl;fstream outfile(D:aa.txt,ios:out|ios:app); /以写方式打开文件if(! outfile)cout打开文件失败!endl;elsecoutname; outfilename ;coutsex;if(sex=m|sex=M)outfile男 ;else if(sex=f|sex=F)outfile女 ;elsecoutsex;if(sex=m|sex=M)outfile男 ;e

21、lse if(sex=f|sex=F)outfile女 ; coutage; outfileage ;coutoffice_vist_fee; outfileoffice_vist_fee ; coutspeicialty; outfilespeicialtyendl;outfile.close();cout是否继续添加医生信息Y/N.:t; if(t=y)input();elsereturn;void zhangdanKind() /按姓名查询医生信息char t;fstream infile2(D:aa.txt,ios:in); /以读方式打开文件if(! infile2)cout打开文件

22、失败!arrline0arrline1arrline2arrline3arrline4;line+;string na; coutna;for(int i=0;iline;i+)if(arri0=na)cout 医生姓名:arri0 性别:arri1 年龄:arri2 诊费:arri3元 专业:arri4endl;return;cout记录中没有此医生信息!endl;cout是否继续查询Y/N.:t; if(t=y)zhangdanKind();elsereturn;doctor() ;class HuanZhe : public person /患者类private:double drug_

23、fee; public:HuanZhe()void input() /增加患者信息char t;cout*患者基本信息*endl;fstream outfile(D:ee.txt,ios:out|ios:app); /以写方式打开文件if(! outfile)cout打开文件失败!endl;elsecoutname; outfilename ;coutsex;if(sex=m|sex=M)outfile男 ;else if(sex=f|sex=F)outfile女 ;elsecoutsex;if(sex=m|sex=M)outfile男 ;else if(sex=f|sex=F)outfile

24、女 ; coutage; outfileage ;coutoffice_vist_fee; outfileoffice_vist_fee ; coutdrug_fee; outfiledrug_feeendl;outfile.close();cout是否继续添加患者信息Y/N.:t; if(t=y)input();elsereturn;void zhangdanKind() /按姓名查询患者信息char t;fstream infile2(D:ee.txt,ios:in); /以读方式打开文件if(! infile2)cout打开文件失败!arrline0arrline1arrline2arr

25、line3arrline4; /文件流读取数据line+;string na; coutna;for(int i=0;iline;i+)if(arri0=na)cout 患者姓名:arri0 性别:arri1 年龄:arri2 诊费:arri3元 药费:arri4元endl;return;cout记录中没有此患者的信息!endl;cout是否继续查询Y/N.:t; if(t=y)zhangdanKind();elsereturn;HuanZhe() ;class zhangdan /帐单类string name;double drug_fee;double office_vist_fee;do

26、uble totl_fee;public:zhangdan() void totl_pay() /用于把总费用从D:bb.txt文件移到D:cc.txtstring a;fstream infile1(D:bb.txt,ios:in); /以读方式打开文件if(! infile1)cout打开文件失败!arrline0arrline1arrline2arrline3arrline4; /文件流读取数据line+;for(int i=0;iline;i+)fstream outfile4(D:cc.txt,ios:out|ios:app); /以写方式打开文件if(! outfile4)cout

27、打开文件失败!endl;elsea=arri4;outfile4aendl;outfile4.close();infile1.close();void pay() /实现统计所有患者总费用double a;double z=0.0;fstream infile4(D:cc.txt,ios:in); /以读方式打开文件if(! infile4)cout打开文件失败!sline; /文件流读取数据line+;for(int i=0;iline-1;i+)a=si;z=z+a;cout所有患者的总费用为:z元endl;infile4.close();void addzhangdan() / 增加账单信息fstream outfile3(D:bb.txt,ios:out|ios:app); /以写方式打开文件if(! outfile3)cout打开文件失败!endl;elsecoutname; outfile3name ;coutna

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com