收藏 分享(赏)

C++“诊所信息管理系统设计”课设报告.doc

上传人:精品资料 文档编号:8219978 上传时间:2019-06-15 格式:DOC 页数:31 大小:261.50KB
下载 相关 举报
C++“诊所信息管理系统设计”课设报告.doc_第1页
第1页 / 共31页
C++“诊所信息管理系统设计”课设报告.doc_第2页
第2页 / 共31页
C++“诊所信息管理系统设计”课设报告.doc_第3页
第3页 / 共31页
C++“诊所信息管理系统设计”课设报告.doc_第4页
第4页 / 共31页
C++“诊所信息管理系统设计”课设报告.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、目录一、题目和要求 1二、系统总体设计 11、需求分析 12、系统功能模块划分 1三、详细设计 21、数据结构设计 22、函数规划设计 3四、程序运行演示 161、登陆 162、查询信息 173、账单信息 184、增加信息 19五、总结反思 20六、源代码 20- 1 -一、题目和要求1、题目:“诊所信息管理系统设计”2、问题描述:完成小型诊所的简单信息管理程序,掌握类的设计以及继承和派生的应用。二、系统总体设计1、需求分析1.1 功能要求设计人类(Person 类)和医生类(Doctor 类) ,在此基础上,通过增加患者和账单,使它们公用于表示一家诊所的信息管理。(1)在一条医生记录中,包括

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

3、求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。2、系统功能模块划分- 2 -诊所信息管理系统登陆 退出系统查询信息 账单信息 增加信息增加账单信息查询账单信息统计总费用查询医生信息查询患者信息增加医生信息增加患者信息退出系统返回上一页返回上一页返回上一页三、详细设计1、数据结构设计11 类设计分别定义了 person 人

4、类、doctor 医生类、HuanZhe 患者类以及 zhangdan 帐单类;在 person 人类中,包含了数据成员姓名(name) 、性别(sex) 、年龄(age)以及诊费(office_vist_fee) ;在 doctor医生类中,增加了数据成员医生的专业说明(drug_fee) ,包含了成员函数 input()增加医生信息,zhangdanKind()按姓名查询医生信息;在 HuanZhe 患者类中,增加了数据成员患者的药费(drug_fee) ,包含了成员函数 input()增加患者信息,zhangdanKind()按姓名查询患者信息;在 zhangdan 帐单类中,包含了数据

5、成员姓名(name) 、诊费(office_vist_fee) 、药费(drug_fee) 、总费用(totl_fee) ,包含了成员函数 totl_pay()用于统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。1.1.1 person 人类protected:string name;string sex;int age;double office_vist_fee;1.1.2 doctor医生类public:void input(); /增加医生信息void zhangdanKind() ; /按姓名查询医生信息- 3 -

6、private:string speicialty;1.1.3 HuanZhe患者类public:void zhangdanKind(); /按姓名查询患者信息void input(); /增加患者信息private:double drug_fee; ;1.1.4 zhangdan 账单类public:void totl_pay();void addzhangdan(); / 增加账单信息void zhangdanKind(); /按姓名查询账单信息private:string name;double drug_fee;double office_vist_fee;double totl_fe

7、e;12 类之间的关系在该系统中医生与患者都有数据成员姓名(name) 、性别(sex) 、年龄(age)以及诊费(office_vist_fee) ;所以把这些数据成员定义在基类 person 人类中,doctor 医生类与 HuanZhe 患者类公有继承于基类 person 人类。2、 函数规划设计在 doctor 医生类中,包含了成员函数 input()增加医生信息,zhangdanKind()按姓名查询医生信息;在 HuanZhe 患者类中,包含了成员函数 input()增加患者信息,zhangdanKind()按姓名查询患者信息;在 zhangdan 帐单类中,包含了成员函数 tot

8、l_pay()用于统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。在该系统中,还包含了普通函数adding()实现增加信息界面,search()实现查询信息界面,zhangdanxinxi()实现账单信息界面,landing()验证用户登陆,登陆成功显示欢迎信息,surface()实现诊所信息管理系统主界面。其中 adding()增加信息界面包括了 1、增加医生信息 2、增加患者信息 0、返回上一页;select()查询- 4 -信息界面包括了 1、查询医生信息 2、查询患者信息 0、返回上一页;zhangdanxinxi(

9、) 账单信息界面包括了 1、增加账单信息 2、查询账单信息 3、统计总费用 0、返回上一页;surface()诊所信息管理系统主界面包括了 1、查询信息 2、账单信息 3、增加信息 4、统计总费用 0、退出系统;main()主函数界面包括了 1、用户登录 0、退出系统。在这些界面的实现中用 switch()语句做选择。2.1 增加医生信息void doctor:input()coutname;outdoctorsex;outdoctorage;outdoctoroffice_vist_fee;outdoctorspeicialty;outdoctorarrline0arrline1arrlin

10、e2arrline3arrline4;line+;string mz;coutmz;for(int i=0;it;- 6 -if(t=y)zhangdanKind();elsereturn;2.3 增加患者信息void HuanZhe:input()coutname; outHsex;outHage; outHoffice_vist_fee; outHdrug_fee; outHt;if(t=y)- 7 -input();elsereturn;2.4 按姓名查询患者信息void HuanZhe:zhangdanKind()fstream inH(“患者.txt“,ios:in); /以读方式打

11、开文件if(!inH)coutarrline0arrline1arrline2arrline3arrline4; /文件流读取数据line+;string mz;coutmz;for(int i=0;it;if(t=y)zhangdanKind();elsereturn;2.5 增加账单信息void zhangdan:addzhangdan()fstream outfile1(“账单.txt“,ios:out|ios:app); /以写方式打开文件if(!outfile1)coutname;outfile1name;outfile1office_vist_fee;outfile1drug_fe

12、e;outfile1totl_fee;outfile1t;if(t=y)addzhangdan();elsereturn;2.6 查询账单信息void zhangdan:zhangdanKind()fstream infile1(“账单.txt“,ios:in); /以读方式打开文件if(!infile1)coutarrline0arrline1arrline2arrline3arrline4; /文件流读取数据line+;string mz;coutmz;for(int i=0;iarrl0arrl1arrl2arrl3arrl4; /文件流读取数据l+;for(int j=0;jarrli

13、n0arrlin1arrlin2arrlin3arrlin4; /文件流读取数据lin+;for(int z=0;zt;if(t=y)zhangdanKind();elsereturn;2.7 统计总费用void zhangdan:totl_pay()fstream infile1(“账单.txt“,ios:in); /以读方式打开文件if(!infile1)coutarrsline0arrsline1arrline0arrline1arrline2; /文件流读取数据line+;double a;double z=0.0;for(int i=0;iname;if(name!=“yangqin

14、g“)coutcode;if(“123456789“=code)coutcode;2.9 增加信息界面void adding()int a;doctor d;HuanZhe w;couta;switch(a)case 1: d.input(); break;case 2: w.input(); break;case 0: break;default: cout:“;cinb;switch(b)case 1:d.zhangdanKind();break;case 2:w.zhangdanKind();break;case 0:break;default:cout:“;cinc;switch(c)

15、case 1:z.addzhangdan();break;case 2:z.zhangdanKind();break;case 3:z.totl_pay();break;case 0:break;default: cout:“;cinchoice;switch(choice)case 1:search(); break;- 15 -case 2:zhangdanxinxi(); break;case 3:adding(); break;case 0:cout:“; cinw;switch(w)case 1:surface();break;case 0:exit(0);default: cout

16、#include#includeusing namespace std;class person /人类protected:string name;string sex;int age;double office_vist_fee;- 21 -class doctor:public person /医生类public:void input(); /增加医生信息void zhangdanKind() ; /按姓名查询医生信息private:string speicialty;void doctor:input() /增加医生信息coutname;outdoctorsex;outdoctorage

17、;outdoctoroffice_vist_fee;outdoctorspeicialty;outdoctorarrline0arrline1arrline2arrline3arrline4;line+;string mz;coutmz;for(int i=0;it;if(t=y)zhangdanKind();elsereturn;class HuanZhe:public person /患者类public:void zhangdanKind(); /按姓名查询患者信息void input(); /增加患者信息private:double drug_fee; ;void HuanZhe:inp

18、ut()coutname; outHsex;outHage; outHoffice_vist_fee; outHdrug_fee; outHt;if(t=y)input();elsereturn;void HuanZhe:zhangdanKind()fstream inH(“患者.txt“,ios:in); /以读方式打开文件if(!inH)coutarrline0arrline1arrline2arrline3arrline4; /文件流读取数据line+;string mz;coutmz;for(int i=0;it;if(t=y)zhangdanKind();elsereturn;- 2

19、4 -class zhangdan /帐单类public:void totl_pay();void addzhangdan(); / 增加账单信息void zhangdanKind(); /按姓名查询账单信息private:string name;double drug_fee;double office_vist_fee;double totl_fee;void zhangdan:totl_pay()fstream infile1(“账单.txt“,ios:in); /以读方式打开文件if(!infile1)coutarrsline0arrsline1arrline0arrline1arrl

20、ine2; /文件流读取数据line+;double a;double z=0.0;for(int i=0;iname;outfile1name;outfile1office_vist_fee;outfile1drug_fee;outfile1totl_fee;outfile1t;if(t=y)addzhangdan();elsereturn;void zhangdan:zhangdanKind()fstream infile1(“账单.txt“,ios:in); /以读方式打开文件if(!infile1)coutarrline0arrline1arrline2arrline3arrline4

21、; /文件流读取数据line+;string mz;coutmz;for(int i=0;iarrl0arrl1arrl2arrl3arrl4; /文件流读取数据l+;for(int j=0;jarrlin0arrlin1arrlin2arrlin3arrlin4; /文件流读取数据lin+;for(int z=0;zt;if(t=y)zhangdanKind();elsereturn;void landing() /登陆string name,code;coutname;if(name!=“yangqing“)coutcode;if(“123456789“=code)coutcode;voi

22、d adding() /增加信息界面int a;- 28 -doctor d;HuanZhe w;couta;switch(a)case 1: d.input(); break;case 2: w.input(); break;case 0: break;default: cout:“;cinb;switch(b)case 1:d.zhangdanKind();break;case 2:w.zhangdanKind();break;case 0:break;- 29 -default:cout:“;cinc;switch(c)case 1:z.addzhangdan();break;case

23、2:z.zhangdanKind();break;case 3:z.totl_pay();break;case 0:break;default: cout“输入数字错误!“endl;void surface() /主界面landing(); /登陆int choice;cout“nn“;while(1)cout“tt *欢迎使用诊所信息管理系统*“endl;cout“n“;cout“tt$n“;cout“tt$ $n“;cout“tt$ $n“;cout“tt$ 1.查询信息 2.账单信息 $n“;cout“tt$ 3.增加信息 0.退出系统 $n“;cout“tt$ $n“;cout“tt$ $n“;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报