




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 北 华 航 天 工 业 学 院基于C+的面向对象程序设计实例课程设计报告报告题目: 诊所信息管理系统设计 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机应用技术 作者所在班级: 11512 作 者 学 号: 20113051216 作 者 姓 名 : 王邵南 指导教师姓名: 斯庆巴拉 完 成 时 间 : 2012-6-20 北华航天工业学院教务处制课程设计任务书课题名称诊所信息管理系统完成时间2012-6-20指导教师斯庆巴拉职称教师学生姓名王邵南班 级11512总体设计要求和技术要点设计人类(Person类)和医生类(Doctor类),在此基础上,通过增加患者和账单,使它们公用于表示一家诊所的信息管理。(1)在一条医生记录中,包括医生的专业说明(specialty),如内科医生(surgeon)、儿科医生(pediatrician) 、产科医生(obstetrician)及全科医生(general practitioner)。(2)Doctor记录还含有诊费(office_vist_fee)。(3)在一条患者记录中,包括该患者产生的药费(drug_fee) ,患者的诊费(即医生的诊费)。(4)在一条账单记录中,包括一条患者对象、该患者对应得主治医生、该患者产生的诊费和药费。(5)应用程序能够显示出诊所中每个患者的信息和对应主治医生的信息。(6)能够统计出所有患者的总费用。工作内容及时间进度安排16月4日10日:布置任务,软件设计;26月11日18日:编写代码,上机调试;36月19、20、21日:软件验收,撰写课程设计报告;4各班在6月22日下午五点前将课程设计报告收齐并上交。课程设计成果1课程设计报告2源程序代码摘 要随着经济的迅速发展,人们的生活水平得到显著提高。医疗服务行业也在人们生活中占据了最重要的一环,随着医改的实施,看病难,看病贵的问题得到了解决,所以为了存储患者信息以及医生信息,为了小型诊所管理的正规化,方便化,诊所信息管理系统在此背景下诞生。面对发展的需要通过专门的管理系统来系统化、规范化以及高效地实现小型诊所管理。并且随着计算机技术的快速发展,计算机的应用逐渐普及和深入,同时计算机软件的需求特日益增长,C+语言是当前最流行的和实用的计算机程序语言。模拟诊所信息管理系统就是对存储患者信息以及医生信息在个人PC上的编程实现。本系统采用了用户身份的注册、登陆、增加信息、查询信息、帐单信息以及统计所有患者的总费用等功能。并分析在现实生活中遇到的问题并得到解决。关键词:系统设计 诊所 模拟系统 存储信息 目录课程设计任务书2摘 要3第一章 绪论511 课程设计的目的512 课程设计的背景和意义5121 课程设计的背景5122 课程设计的意义513 课程设计环境5第二章 需求分析621 问题描述622 功能要求623 问题的解决方案6第三章 系统设计731 数据设计7311 类设计7312 类之间的关系7313 函数设计732 结构设计8321 系统流程图8322 界面设计8第四章 系统实现941 类实现942 函数实现1043 主函数实现26第五章 系统测试2851 模块测试2852 课程设计过程中遇到的问题34总 结35致 谢36参考文献36附 录37第一章 绪论11 课程设计的目的(1)要求学生能够熟练掌握C+语言的基本知识和技能。(2)基本掌握面向对象程序设计的基本思路和方法。(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。12 课程设计的背景和意义121 课程设计的背景1. 理论研究基础(1)分析系统流程,并会画出流程图;(2)熟练掌握C+程序设计语言。2. 技术层面的支持C+面向对象程序设计中的类的声明与对象定义的熟练使用;以及继承、派生的熟练使用。122 课程设计的意义在经过了一个学期对C+程序设计的学习,课程设计可以很好的检验所学知识,对自身来说,是个查漏补缺的好时机,可以将所学知识进行复习与巩固,将前面所有知识综合起来,很好的联系在一起,有机结合,形成知识网络体系,将知识融会贯通,可以让自己进一步熟练掌握程序设计语言,并能熟练运用。13 课程设计环境软件:WindosXP系统,Microsoft Visual C+ 6.0编译器。硬件:联想 双核处理器,二G内存,二G独立显卡,80G硬盘。第二章 需求分析21 问题描述完成小型诊所的简单信息管理程序,掌握类的设计以及继承和派生的应用。22 功能要求设计人类(Person类)和医生类(Doctor类),在此基础上,通过增加患者和账单,使它们公用于表示一家诊所的信息管理。(1)在一条医生记录中,包括医生的专业说明(specialty),如内科医生(surgeon)、儿科医生(pediatrician) 、产科医生(obstetrician)及全科医生(general practitioner)。(2)Doctor记录还含有诊费(office_vist_fee)。(3)在一条患者记录中,包括该患者产生的药费(drug_fee) ,患者的诊费(即医生的诊费)。(4)在一条账单记录中,包括一条患者对象、该患者对应得主治医生、该患者产生的诊费和药费。(5)应用程序能够显示出诊所中每个患者的信息和对应主治医生的信息。(6)能够统计出所有患者的总费用。23 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。第三章 系统设计31 数据设计311 类设计分别定义了person人类、doctor医生类、HuanZhe患者类以及帐单类;在person人类中,包含了数据成员姓名(name)、性别(sex)、年龄(age)以及诊费(office_vist_fee);在doctor医生类中,增加了数据成员医生的专业说明(drug_fee),包含了成员函数input()增加医生信息,zhangdanKind()按姓名查询医生信息;在HuanZhe患者类中,增加了数据成员患者的药费(drug_fee),包含了成员函数input()增加患者信息,zhangdanKind()按姓名查询患者信息;在zhangdan帐单类中,包含了数据成员姓名(name)、诊费(office_vist_fee)、药费(drug_fee)、总费用(totl_fee),包含了成员函数totl_pay()用于把总费用从D:bb.txt文件移到D:cc.txt,pay()统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。312 类之间的关系在该系统中医生与患者都有数据成员姓名(name)、性别(sex)、年龄(age)以及诊费(office_vist_fee);所以把这些数据成员定义在基类person人类中,doctor医生类与HuanZhe患者类公有继承于基类person人类。313 函数设计在doctor医生类中,包含了成员函数input()增加医生信息,zhangdanKind()按姓名查询医生信息;在HuanZhe患者类中,包含了成员函数input()增加患者信息,zhangdanKind()按姓名查询患者信息;在zhangdan帐单类中,包含了成员函数totl_pay()用于把总费用从D:bb.txt文件移到D:cc.txt,pay()统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。在该系统中,还包含了普通函数addinfor()增加信息界面实现,select()查询信息界面实现,zhangdanxinxi() 账单信息界面实现,add_zhuce()实现注册用户,welcome()验证用户登陆,登陆成功显示欢迎信息,Please()诊所信息管理系统主界面的实现。32 结构设计321 系统流程图添加医生信息诊所信息管理系统登录添加账单信息查询账单信息注册添加信息查询信息账单信息退出系统添加患者信息查询医生信息查询患者信息 图3-2-1 系统流程图322 界面设计addinfor()增加信息界面包括了1. 增加医生信息2. 增加患者信息0. 退出;select()查询信息界面包括了1. 查询医生信息2. 查询患者信息0. 退出;zhangdanxinxi() 账单信息界面包括了1. 增加账单信息2. 查询账单信息0. 退出;Please()诊所信息管理系统主界面包括了1.查询信息2.账单信息3.增加信息4.统计总费用0.退出系统;main()主函数界面包括了1.用户登录2.用户注册0.退出系统。在这些界面的实现中用switch()语句做选择。第四章 系统实现41 类实现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() void 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() void totl_pay() ; /用于把总费用从D:bb.txt文件移到D:cc.txtvoid pay() ; /实现统计所有患者总费用void zhangdanKind() ;/按姓名查询账单信息zhangdan() ;42 函数实现class doctor : public person /医生类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男 ;else 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打开文件失败!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_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女 ; 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打开文件失败!arrline0arrline1arrline2arrline3arrline4; /文件流读取数据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;double 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打开文件失败!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 ;coutname; outfile3name ;coutoffice_vist_fee; outfile3office_vist_fee ;coutdrug_fee; outfile3drug_fee ;couttotl_fee; outfile3totl_feeendl;outfile3.close();char t;cout是否继续添加账单信息Y/N.:t; if(t=y)addzhangdan();elsereturn;void zhangdanKind() /按姓名查询账单信息char t;fstream infile1(D:bb.txt,ios:in); /以读方式打开文件if(! infile1)cout打开文件失败!arrline0arrline1arrline2arrline3arrline4; /文件流读取数据line+;string na; coutna;for(int i=0;iline;i+)if(arri0=na)string xm;xm=arri1;cout 患者姓名:arri0 医生姓名:arri1 诊费:arri2元 药费:arri3元 总费用:arri4元endl;fstream infile2(D:aa.txt,ios:in); /以读方式打开文件if(! infile2) cout打开文件失败!arrl0arrl1arrl2arrl3arrl4; /文件流读取数据 l+; for(int j=0;jl;j+) if(arrj0=xm) cout 医生姓名:arrj0 性别:arrj1 年龄:arrj2 诊费:arrj3 专业:arrj4endl; fstream infile3(D:ee.txt,ios:in); /以读方式打开文件 if(! infile3) cout打开文件失败!arrlin0arrlin1arrlin2arrlin3arrlin4; /文件流读取数据 lin+; for(int z=0;zlin-1;z+) if(arri0=na) cout 患者姓名:arrz0 性别:arrz1 年龄:arrz2 诊费:arrz3 药费:arrz4endl; return;cout记录中没有此患者的帐单信息!endl;cout是否继续查询Y/N.:t; if(t=y)zhangdanKind();elsereturn;zhangdan() ;void add_zhuce() /实现注册用户string name,code,code1;fstream outfile5(D:dd.txt,ios:out|ios:app); /以写方式打开文件if(! outfile5)cout打开文件失败!endl;elsecout*请注册用户*n; coutname;fstream infile6(D:dd.txt,ios:in); /以读方式打开文件if(! infile6)cout打开文件失败!aline0aline1; /文件流读取数据 line+;for(int i=0;iline;i+)if(ai0=name)cout此用户已存在!谢谢使用本系统注册用户界面!欢迎下次使用!endl;exit(0);outfile5name ;coutcode;coutcode1;if(code!=code1) cout您两次输入的密码不一致!谢谢使用本系统注册用户界面!欢迎下次使用!endl; exit(0);elseoutfile5code1endl;cout谢谢使用本系统注册用户界面!您已注册成功!endl;outfile5.close();void welcome() /验证用户登陆,登陆成功显示欢迎信息string name,code;int mark=0; fstream infile(D:dd.txt,ios:in);if(!infile)cerr打开文件错误aline0aline1; /文件流读取数据 line+; coutname; int m=-1; for(int i=0;iline;i+) if(ai0=name) m=i; mark=i;break; if(m=-1) couttt*该用户不存在,请注册用户*endl; add_zhuce(); coutcode; for(int j=0;j2;j+) if(amark1=code) cout成功登入*endl; break; else cout密码错误,请重新输入*endl; coutcode; void addinfor() /增加信息界面实现int a;doctor d;HuanZhe w;coutendl;coutendl;couttt *增加信息界面*endl;coutn;couttt *n;couttt n;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品试剂耗材管理制度
- 药品零售设备管理制度
- 药店双向通道管理制度
- 药店现金盘库管理制度
- 菜单员工食堂管理制度
- 设备事故相关管理制度
- 设备变更安全管理制度
- 设备工艺安全管理制度
- 设备机房钥匙管理制度
- 设备系统移动管理制度
- 学术诚信讲座
- 2024新人教版七年级上册英语单词表衡水体字帖
- 2024-2025学年全国中学生天文知识竞赛考试题库(含答案)
- 子宫颈机能不全临床诊治中国专家共识(2024年版)解读1
- 《准实验研究设计》课件
- 二年级下册口算题大全(全册可直接打印)
- 福建省厦门市2022-2023学年高一下学期期末考试语文试题(解析版)
- 高温熔融作业安全技术规范
- 角膜接触镜学智慧树知到期末考试答案章节答案2024年山东中医药大学
- 大学生职业生涯规划园艺专业
- 使用单位特种设备安全风险管控清单
评论
0/150
提交评论