C++“诊所信息管理系统设计”课设报告_第1页
C++“诊所信息管理系统设计”课设报告_第2页
C++“诊所信息管理系统设计”课设报告_第3页
C++“诊所信息管理系统设计”课设报告_第4页
C++“诊所信息管理系统设计”课设报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一、题目和要求 1二、系统总体设计 11、需求分析 12、系统功能模块划分 1三、详细设计 21、数据结构设计 22、函数规划设计 3四、程序运行演示 161、登陆 162、查询信息 173、账单信息 184、增加信息 19五、总结反思 20六、源代码 20-1 - / 31、题目和要求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 )能够统

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

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

5、、药费(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() ; /按姓名查询医生信息private:string speicialty;1.1.3 H

6、uanZhe 患者类按姓名查询患者信息 增加患者信息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_fee;1 2 类之间的关系在该系统中医生与患者都有数据成员姓名( nam

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

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

9、增加账单信息 2 、查询账单信息3 、统计总费用0、返回上一页; surface() 诊所信息管理系统主界面包括了 1、查询信息2 、账单信息3、增加信息4、统计总费用0 、退出系统; main() 主函数界面包括了1 、用户登录0、退出系统。在这些界面的实现中用switch() 语句做选择。2.1 增加医生信息void doctor:input()cout<<"* 主治医生基本信息*"<<endl;fstream outdoctor(" 医生 .txt",ios:out|ios:app); / 以写方式打开文件if(!outdo

10、ctor)cout<<" 打开文件失败! "<<endl;elsecout<<" 姓名 :"cin>>name;outdoctor<<name<<" "cout<<" 性别 :"cin>>sex;outdoctor<<sex<<" "cout<<" 年龄 :"cin>>age;outdoctor<<age<<&

11、quot; "cout<<" 诊费 :"cin>>office_vist_fee;outdoctor<<office_vist_fee<<" "cout<<" 专业说明 :"cin>>speicialty;outdoctor<<speicialty<<endl;outdoctor.close();2.2 按姓名查询医生信息void doctor:zhangdanKind()fstream indoctor(" 医生 .t

12、xt",ios:in); / 以读方式打开文件- 3 - / 31if(!indoctor)( cout<<"打开文件失败!"<<endl;return;)int line=0;string arr1005; /定义一个string类型的二维数组,用来保存从文本内读取的信息memset(arr,0,sizeof(arr); /将数组清空while(!indoctor.eof() /文件不为空的条件设置( cout<<"2"<<endl;indoctor>>arrline0>>

13、;arrline1>>arrline2>>arrline3>>arrline4; line+;)string mz;cout<<"请输入要查询的医生姓名:";cin>>mz;for(int i=0;i<line;i+)( if(arri0=mz) (cout<<"医生姓名:"<<arri0 <<""<<" 性另k"<<arri1<<"" <<&qu

14、ot; 年 龄:"<<arri2<<" "<<" 诊费:"<<arri3<<"元"<<" "<<"专业:"<<arri4<<endl;return;)cout<<"记录中没有此医生信息!"<<endl;cout<<"是否继续查询 y/n:"<<endl;char t;cin>>t;

15、zhangdanKindQ;elsereturn;)2.3 增加患者信息void HuanZhe:input()(cout«"* 患者基本信息 *"«endl;以写方式打开文件fstream outH(" 患者,txt",ios:out|ios:app); /if(!outH)cout<"打开文件失败!"<<endl;else(cout«"姓名cin»name; outH«name«"cout<<"性别:cin

16、87;sex;outH«sex«")cout«"年龄cin»age; outH«age«"cout«"诊费cin»office_vist_fee; outH«office_vist_fee«""cout«"药费cin»drug_fee; outH«drug_fee«endl;outH.close();cout«"是否继续添加患者信息y/n:"«en

17、dl;chart;cin»t;if(t='y')-#- / 31input();elsereturn;2.4 按姓名查询患者信息void HuanZhe:zhangdanKind()fstream inH(" 患者 .txt",ios:in); / 以读方式打开文件if(!inH)cout<<" 打开文件失败! "<<endl;return;string arr1005; /定义一个 string 类型的二维数组 , 用来保存从文本内读取的信息int line=0;memset(arr,0,sizeof(

18、arr); /将数组清空while(!inH.eof() / 文件不为空的条件设置 inH>>arrline0>>arrline1>>arrline2>>arrline3>>arrline4;/ 文件流读取数据line+;string mz;cout<<" 请输入要查询的患者姓名 :"cin>>mz;for(int i=0;i<line;i+)if(arri0=mz)cout<<" 患者姓名 :"<<arri0 <<"

19、"<<" 性别 :"<<arri1<<" "<<" 年龄:"<<arri2<<" "<<" 诊费:"<<arri3<<"元"<<" "<<" 药费:"<<arri4<<" 元"<<endl;return;cout<<"

20、记录中没有此患者的信息!"<<endl;cout<<" 是否继续查询 y/n:"<<endl;char t;cin>>t;if(t='y')zhangdanKind();elsereturn;2.5 增加账单信息void zhangdan:addzhangdan()以写方式打开文件fstream outfile1(" 账单 .txt",ios:out|ios:app); /if(!outfile1)cout<<" 打开文件失败! "<<e

21、ndl;elsecout<<" 患者姓名 :"cin>>name;outfile1<<name<<" "cout<<" 主治医生 :"cin>>name;outfile1<<name<<" "cout<<" 诊费 :"cin>>office_vist_fee;outfile1<<office_vist_fee<<" "cout<

22、<" 药费 :"cin>>drug_fee;outfile1<<drug_fee<<" "cout<<" 总费用 :"cin>>totl_fee;outfile1<<totl_fee<<endl;out();char t;cout<<" 是否继续添加账单信息y/n:"<<endl;cin>>t;if(t='y')addzhangdan();elsereturn;2.6 查询账

23、单信息void zhangdan:zhangdanKind() fstream infile1(" 账单 .txt",ios:in); / 以读方式打开文件if(!infile1)cout<<" 打开文件失败! "<<endl;return ;string arr1005; / 定义一个 string 类型的二维数组 ,用来保存从文本内读取的信息int line=0;memset(arr,0,sizeof(arr); / 将数组清空while(!in() / 文件不为空的条件设置infile1>>arrline0>

24、;>arrline1>>arrline2>>arrline3>>arrline4; /文件流读取数据line+;string mz;cout<<" 请输入要查询的患者姓名 :"cin>>mz;for(int i=0;i<line;i+)- 9 - / 31if(arri0=mz)string xm;xm=arri1;cout<<”患者女名:"<<arri0 <<""<<"费:"<<arri2&l

25、t;<" 元"<<" "<<"药费:"<<arri3<<" fstream indoctor(" 医生.txt",ios:in); /医生姓名:"<<arri1<<" "<<"元"<<" "<<"总费用:"<<arri4<<"以读方式打开文件元"<<

26、endl;if(!indoctor)(cout<<"打开文件失败!"<<endl;return ;int l=0;memset(arr,0,sizeof(arr); /while(!indoctor.eof() /(将数组清空文件不为空的条件设置indoctor>>arrl0>>arrl1>>arrl2>>arrl3>>arrl4; / l+;文件流读取数据for(int j=0;j<l;j+) (if(arrj0=xm)(cout<<"医生姓名:"&l

27、t;<arrj0<<" "<<" 性别:"<<arrj1<<" "<<" 龄:"<<arrj2<<" "<<" 诊费:"<<arrj3<<" "<<"专业:"<<arrj4<<endl;fstream inH(" 患者.txt",ios:in); /以读方式

28、打开文件if(!inH)(cout<<"打开文件失败! "<<endl;return ; int lin=0; memset(arr,0,sizeof(arr); /将数组清空while(!inH.eof() /文件不为空的条件设置(inH>>arrlin0>>arrlin1>>arrlin2>>arrlin3>>arrlin4; / 数据lin+; for(int z=0;z<lin-1;z+) ( if(arri0=mz) (文件流读取- 11 - / 31cout<<

29、" 患者姓名 :"<<arrz0<<" "<<" 性别 :"<<arrz1<<" "<<"龄:"<<arrz2<<" "<<" 诊费:"<<arrz3<<" "<<"药费:"<<arrz4<<endl; return;cout<<"

30、; 记录中没有此患者的帐单信息!"<<endl;cout<<" 是否继续查询 y/n:"<<endl;char t;cin>>t;if(t='y')zhangdanKind();elsereturn;2.7 统计总费用void zhangdan:totl_pay()fstream infile1(" 账单 .txt",ios:in); / 以读方式打开文件if(!infile1)cout<<" 打开文件失败! "<<endl;return

31、 ;double arr1003; /定义一个double 类型的二维数组, 用来保存从文本内读取的信息string arrs1002;/定义一个string 类型的二维数组, 用来保存从文本内读取的信息memset(arr,0,sizeof(arr); / 将数组清空int line=0;while(!in() / 文件不为空的条件设置文件流infile1>>arrsline0>>arrsline1>>arrline0>>arrline1>>arrline2; /读取数据line+;double a;double z=0.0;for

32、(int i=0;i<line-1;i+)a=arri2;z=z+a;cout<<"所有患者的总费用为:"<<z<<"元"<<endl;in();2.8 登陆void landing()string name,code;cout<<"tt 用户名 :"cin>>name;if(name!="yangqing")cout<<"tt *该管理员不存在 * "<<endi;landing();else

33、cout<<"tt 密码 :"cin>>code;if("123456789"=code)cout<<"ttt * 成功登入 * ”<<endl;else- 17 - / 31cout<<"ttcout<<"tt*密码错误,请重新输入密码 *:"* "<<endl;cin>>code;2.9 增加信息界面void adding()int a;doctor d;HuanZhe w;cout<<endl

34、;cout<<endl;cout<<"tt$*增加信息界面*$"<<endl;cout<<"n"cout<<"tt$*$n"cout<<"tt$n"cout<<"tt$1.增加医生信息$n"cout<<"tt$2.增加患者信息$n"cout<<"tt$0.返回上一页$n"cout<<"tt$n"cout<<

35、"tt$*$n"cout<<" 请输入您选择的数字(0-2):"cin>>a;switch(a)case 1: d.input(); break;case 2: w.input(); break;case 0: break;default: cout<<" 输入数字错误 !"<<endl;2.10 查询信息界面void search()int b;doctor d;HuanZhe w; cout<<endl; cout<<endl;cout<<&quo

36、t;tt$*查询信息界面cout<<"n"cout<<"tt$*$n"cout<<"tt$n"cout<<"tt $1.查询医生信息cout<<"tt$2.查询患者信息cout<<"tt$0.返回上一页cout<<"tt$n"cout<<"tt$*$n"*$"<<endl;$n"$n"$n"cout<<&qu

37、ot; 请输入您选择的数字<0-2>:"cin>>b;switch(b)case 1:d.zhangdanKind();break;case 2:w.zhangdanKind();break;case 0:break;default:cout<<" 输入数字错误!"<<endl;2.11 账单信息界面void zhangdanxinxi() int c;zhangdan z;cout<<endl;cout<<endl;$*账单信息 *$"<<endl;-19- / 31c

38、out<<"n"cout<<"tt$*$n"cout<<"tt$n"cout<<"tt$1.增加账单信息$n"cout<<"tt$2.查询账单信息$n"cout<<"tt$3.统计总费用$n"cout<<"tt$0.返回上一页$n"cout<<"tt$n"cout<<"tt$*$n"cout<<&q

39、uot;请输入您选择的数字<0-3>:"cin>>c;switch(c) case 1:z.addzhangdan();break;case 2:z.zhangdanKind();break;case 3:z.totl_pay();break;case 0:break;default: cout<<"输入数字错误!"<<endl;2.12主界面void surface()landing(); / 登陆int choice;cout<<"nn"while(1)cout<<&q

40、uot;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"cout&l

41、t;<"tt$n"zhangdan a;cout<<"请输入您选择的数字<0-4>:"cin>>choice;switch(choice)case 1:search(); break;case 2:zhangdanxinxi(); break;case 3:adding(); break;"«endl; exit(O);case O:cout«"tt欢迎下次使用本系统default:cout«"输入数字错误!"«endl;)2.13主

42、函数void main()(int w;cout«"tt$n"cout«"tt$n"cout«"tt$n"cout«"tt$1.登录$n"cout«"tt$0.退出系统$n"cout«"tt$n"cout«"tt$n"COUtvv"tt$* *$肝;while(1)(cout«"请输入数字cin»w;switch (w)(case 1:surfac

43、e(); break;case 0:exit(0);default: cout«"输入数字错误!"«endl;)四、程序运行演示- 25 - / 312、查询信息2.1 查询医生信息入您选f性别:次迎 :闲人勿砌匚十+课设诊册口13119诊所,己乂2.2 查询患者信息3、账单信息3.1查询账单信息H:悯人勿动c + +课设诊所Debug诊所.exew。.返回上一页选查有查 您要空 人人中继 需录否 圭宿主宿EfDIE喜孟, 2S >:k信 7WF <0姓帐胡孟内 查底 要名名 As 雪牛 *第医医生强:E呼元总,费用元性时勇总V-K>

44、.一口士一工4 比 TH =十 一 引'W 才斗 ,欢迎使用诊所信息管理系统一$ $抬专找专抬抬s抬$s"s抬抬$s抬s抬抬fs"S抬辫打打SS 缢笔典提的数字 届-4”.3.2统计总费用H 闲人勿动c十+课设、诊所Debug诊所.exR看善神肯制声*声苒看着*辞*苒*首希黄若辞*苒*片希甘邦首J增加士自 J U_i >三自.垸计总费用-遗向上一页=:M? M? *3B =* 薨 X 注 M?E W H M; * W IT W H M; * WW ;M M 裁皆辎嘱霸黑棠欢迎使用诊所信息管理系统+$抬抬转抬$抬抬抬升$抬抬S抬$抬抬抬$抬抬抬升升圭;蛤鳖迹静性

45、数字<1>1 .查询信息3 .增加信息2, 目.影充4、增加信息4.1增加医生信息;1?JfKMJCBlKJtNKMMMJOtJtICJIXMM JOf K M X M JC Jt * K X M:$KMK MM羊治医生 够;张辉$ XMMMM WMM增li百息%界-面吐闲人勿妙:+ +课设诊所口?6119诊所后入已息统 Hi "2 0悬息 =受一一m 查憎* 1 3$ $ $ $ $林科$抬抬帖好$S抬抬辩抬梏抬$3的抬拈抬升抬 0-4:31.±0-2:l 看息X -住自te:4.2增加患者信息H 闲人勿郎c + + 课设诊所 Debu g诊所.EMB等FaM

46、MMMR M M Mi:m/M MM MM M日置8栏目信页 生者一 医双迎使用诊所信息管理系统:抬$抬抬G抬抬器s抬外抬辫抬抬抬抬抬皴匕馨抬抬抬五、总结反思经过几个星期的C+M程设计的训练,我学到了很多,最主要的一点是怎样去运用自己学过的知识,怎样去找到你所需要的资料,并在短时间把它运用到具体的实践中 , 运用到你所需要的方面。这个过程是很艰难的,要花费很多的时间和精力,但是,在事情过后,自己就会发现自己已经在这个过程中学到了自己想要的东西,这种获得是更深刻的。在做这个C+课程设计的时候,我原先也是学的不怎么好,什么是输入输出流,如何对文件进行操作,什么是继承与派生, 等等, 可以说是忘得差

47、不多了。 然而, 在这门课程设计中 , 这些方面却是特别重要的,可以说,掌握了这个, 你就完全可以完成自己的任务。这就要求我们要自己去学,自己去探索。当然, 看书、问同学是必不可少的,还有, 身边有非常丰富的网络资源给我们好好利用 , 百度就是个很不错的地方。这样就从另一方面锻炼了我们检索知识获取信息的能力, 在这个过程中 , 可以学到的是一种提升自我的能 力。在本次课程设计中,我发现我对知识的运用不是那么准确,也就是说我对知识掌握的不够熟练。课本上有的知识却不会运用,虽然在本次C+程设计中,显示出一些我知识上的漏洞,经过这次编写诊所信息管理系统,我发现我熟练掌握了类的定义以及继承与派生,并对

48、文件操作有了初步的掌握,课下还应该继续努力,争取熟练掌握一门编程设计语言,在次基础上,在学习多种编程语言,以便以后可以用到工作中去。当然,期间我也遇到了一些棘手的问题,在“账单.txt ”中,我希望能读取它每个患者账单的总费用并把它们求和,但是尝试了多次,检查了多次,读取文件内容的 while 循环一直是死循环,无法读取,终于,我发现了问题所在,并把代码修改了一下,完美解决了问题。通过这次的课程设计,我的诊所信息管理系统完美告终,让我进一步的了解到C+啦我们日常生活中的重要性,而且,也更进一步的激发了我学习这门语言的兴趣。经过这次的训练,我相信自己以后会用更多的时间来把这门语言学好,掌握好这门

49、必修的基础语言。六、源代码#include<iostream>#include<fstream>#include<string> using namespace std;class person / 人类 protected:string name;string sex;int age;double office_vist_fee;class doctor:public person / public:void input(); /void zhangdanKind() ; / private:string speicialty;void doctor:in

50、put() /增加医生信息按姓名查询医生信息医生类增加医生信息cout<<"* 主治医生基本信息*"<<endl;以写方式打开文件fstream outdoctor(" 医生 .txt",ios:out|ios:app); / if(!outdoctor)cout<<" 打开文件失败! "<<endl;elsecout<<" 姓名 :"cin>>name;outdoctor<<name<<" "cou

51、t<<" 性别 :"cin>>sex;outdoctor<<sex<<" "cout<<" 年龄 :"cin>>age;outdoctor<<age<<" "cout<<" 诊费 :"cin>>office_vist_fee;outdoctor<<office_vist_fee<<" " cout<<" 专业说明

52、 :"cin>>speicialty;outdoctor<<speicialty<<endl;outdoctor.close();void doctor:zhangdanKind() / 按姓名查询医生信息 以读方式打开文件fstream indoctor(" 医生 .txt",ios:in); / if(!indoctor)cout<<" 打开文件失败! "<<endl;return;int line=0;string arr1005; / 定义一个 string 类型的二维数组 ,

53、 用来保存从文本内读取的信息memset(arr,0,sizeof(arr); /将数组清空while(!indoctor.eof() /文件不为空的条件设置indoctor>>arrline0>>arrline1>>arrline2>>arrline3>>arrline4; line+;string mz;cout<<" 请输入要查询的医生姓名 :"cin>>mz;for(int i=0;i<line;i+)(if(arri0=mz)(cout<<"医生姓名:&

54、quot;<<arri0<<""<<"性另ij :"<<arri1<<"" <<"年龄:"<<arri2<<" "<<" 诊费:"<<arri3<<" 元"<<" "<<"专业:"<<arri4<<endl;return;cout<&

55、lt;"记录中没有此医生信息!"<<endl;cout<<"是否继续查询 y/n:"<<endl;char t;cin>>t;if(t='y')zhangdanKind();elsereturn;class HuanZhe:public person / 患者类public:void zhangdanKind(); /按姓名查询患者信息void input(); /增加患者信息private:double drug_fee;void HuanZhe:input()cout<<&q

56、uot;*患者基本信息 *"<<endl;fstream outH(" 患者.txt",ios:out|ios:app); /以写方式打开文件if(!outH)cout<<"打开文件失败!"<<endl;elsecout<<"姓名:";cin>>name; outH<<name<<""cout<<"性别:"cin>>sex;outH<<sex<<"

57、;"cout<<"年龄:";cin>>age; outH<<age<<""cout<<"诊费:";cin>>office_vist_fee; outH<<office_vist_fee<<""cout<<"药费:";cin>>drug_fee; outH<<drug_fee<<endl;outH.close();cout<<&quo

58、t; 是否继续添加患者信息y/n:"<<endl;char t;cin>>t;if(t='y')input();elsereturn;void HuanZhe:zhangdanKind()fstream inH(" 患者 .txt",ios:in); / 以读方式打开文件if(!inH) cout<<" 打开文件失败! "<<endl;return;string arr1005; /定义一个 string 类型的二维数组 , 用来保存从文本内读取的信息int line=0;mems

59、et(arr,0,sizeof(arr); /将数组清空while(!inH.eof() / 文件不为空的条件设置 inH>>arrline0>>arrline1>>arrline2>>arrline3>>arrline4;/ 文件流读取数据line+;string mz;cout<<" 请输入要查询的患者姓名 :"cin>>mz;for(int i=0;i<line;i+) if(arri0=mz)cout<<" 患 者 姓 名 :"<<a

60、rri0<<""<<" 性 别 :"<<arri1<<""<<" 年龄:"<<arri2<<" "<<" 诊费:"<<arri3<<"元"<<" "<<"药费:"<<arri4<<"元"<<endl;return;cou

61、t<<" 记录中没有此患者的信息!"<<endl;cout<<" 是否继续查询 y/n:"<<endl;char t;cin>>t;if(t='y')zhangdanKind();elsereturn;- 29 - / 31/ 帐单类/ 增加账单信息/ 按姓名查询账单信息class zhangdanpublic:void totl_pay();void addzhangdan();void zhangdanKind();private:string name;double dru

62、g_fee;double office_vist_fee;double totl_fee;void zhangdan:totl_pay() fstream infile1(" 账单 .txt",ios:in); / 以读方式打开文件if(!infile1)cout<<" 打开文件失败! "<<endl;return ;double arr1003; /定义一个double 类型的二维数组, 用来保存从文本内读取的信息string arrs1002;/定义一个string 类型的二维数组, 用来保存从文本内读取的信息memset(a

63、rr,0,sizeof(arr); /将数组清空int line=0;while(!in() / 文件不为空的条件设置infile1>>arrsline0>>arrsline1>>arrline0>>arrline1>>arrline2;/ 文件流读取数据line+;double a;double z=0.0;for(int i=0;i<line-1;i+)a=arri2;z=z+a;cout<<"所有患者的总费用为:"<<z<<"元"<<e

64、ndl;in();void zhangdan:addzhangdan()以写方式打开文件fstream outfile1(" 账单 .txt",ios:out|ios:app); /if(!outfile1)cout<<" 打开文件失败! "<<endl;elsecout<<" 患者姓名 :"cin>>name;outfile1<<name<<" "cout<<" 主治医生 :"cin>>name;outfile1<<name<<" "cout<<" 诊费 :"cin>>office_vist_fee;outfile1<<office_vist_fee<<" "cout<<" 药费 :&quo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论