版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++“诊所信息管理系统设计”课设报告目录一、题目和要求………1二、系统总体设计……………………11、需求分析……………………12、系统功能模块划分…………1三、详细设计…………21、数据结构设计………………22、函数规划设计………………3四、程序运行演示……………………161、登陆………………………162、查询信息…………………173、账单信息…………………184、增加信息…………………19五、总结反思…………20六、源代码……………20一、题目和要求1、题目:“诊所信息管理系统设计”2、问题描述:完成小型诊所的简单信息管理程序,掌握类的设计以及继承和派生的应用。二、系统总体设计1、需求分析1.1功能要求设计人类(Person类)和医生类(Doctor类),在此基础上,通过增加患者和账单,使它们公用于表示一家诊所的信息管理。(1)在一条医生记录中,包括医生的专业说明(specialty),如内科医生(surgeon)、儿科医生(pediatrician)、产科医生(obstetrician)及全科医生(generalpractitioner)。(2)Doctor记录还含有诊费(office_vist_fee)。(3)在一条患者记录中,包括该患者产生的药费(drug_fee),患者的诊费(即医生的诊费)。(4)在一条账单记录中,包括一条患者对象、该患者对应得主治医生、该患者产生的诊费和药费。(5)应用程序能够显示出诊所中每个患者的信息和对应主治医生的信息。(6)能够统计出所有患者的总费用。1.2问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。2、系统功能模块划分诊所信息管理系统诊所信息管理系统登陆退出系统查询信息账单信息增加信息增加账单信息查询账单信息统计总费用查询医生信息查询患者信息增加医生信息增加患者信息退出系统返回上一页返回上一页返回上一页三、详细设计1、数据结构设计1.1类设计分别定义了person人类、doctor医生类、HuanZhe患者类以及zhangdan帐单类;在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()用于统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。1.1.1person人类{protected: stringname; stringsex; intage; doubleoffice_vist_fee;};1.1.2doctor医生类{public: voidinput();//增加医生信息 voidzhangdanKind();//按姓名查询医生信息private: stringspeicialty;};1.1.3HuanZhe患者类{public: voidzhangdanKind();//按姓名查询患者信息 voidinput();//增加患者信息private: doubledrug_fee;};1.1.4zhangdan账单类{public: voidtotl_pay(); voidaddzhangdan(); //增加账单信息 voidzhangdanKind(); //按姓名查询账单信息 private: stringname; doubledrug_fee; doubleoffice_vist_fee; doubletotl_fee;};1.2类之间的关系在该系统中医生与患者都有数据成员姓名(name)、性别(sex)、年龄(age)以及诊费(office_vist_fee);所以把这些数据成员定义在基类person人类中,doctor医生类与HuanZhe患者类公有继承于基类person人类。2、函数规划设计在doctor医生类中,包含了成员函数input()增加医生信息,zhangdanKind()按姓名查询医生信息;在HuanZhe患者类中,包含了成员函数input()增加患者信息,zhangdanKind()按姓名查询患者信息;在zhangdan帐单类中,包含了成员函数totl_pay()用于统计该系统中所有患者的总费用,addzhangdan()增加账单信息,zhangdanKind()按姓名查询账单信息。在该系统中,还包含了普通函数adding()实现增加信息界面,search()实现查询信息界面,zhangdanxinxi()实现账单信息界面,landing()验证用户登陆,登陆成功显示欢迎信息,surface()实现诊所信息管理系统主界面。其中adding()增加信息界面包括了1、增加医生信息2、增加患者信息0、返回上一页;select()查询信息界面包括了1、查询医生信息2、查询患者信息0、返回上一页;zhangdanxinxi()账单信息界面包括了1、增加账单信息2、查询账单信息3、统计总费用0、返回上一页;surface()诊所信息管理系统主界面包括了1、查询信息2、账单信息3、增加信息4、统计总费用0、退出系统;main()主函数界面包括了1、用户登录0、退出系统。在这些界面的实现中用switch()语句做选择。2.1增加医生信息voiddoctor::input(){ cout<<"*****主治医生基本信息*****"<<endl; fstreamoutdoctor("医生.txt",ios::out|ios::app);//以写方式打开文件 if(!outdoctor) cout<<"打开文件失败!"<<endl; else { cout<<"姓名:"; cin>>name;outdoctor<<name<<""; cout<<"性别:"; cin>>sex;outdoctor<<sex<<"";cout<<"年龄:"; cin>>age;outdoctor<<age<<""; cout<<"诊费:"; cin>>office_vist_fee;outdoctor<<office_vist_fee<<""; cout<<"专业说明:"; cin>>speicialty;outdoctor<<speicialty<<endl; outdoctor.close(); }}2.2按姓名查询医生信息voiddoctor::zhangdanKind(){ fstreamindoctor("医生.txt",ios::in);//以读方式打开文件 if(!indoctor) { cout<<"打开文件失败!"<<endl;return; }intline=0; stringarr[100][5];//定义一个string类型的二维数组,用来保存从文本内读取的信息memset(arr,0,sizeof(arr));//将数组清空 while(!indoctor.eof())//文件不为空的条件设置 { cout<<"2"<<endl; indoctor>>arr[line][0]>>arr[line][1]>>arr[line][2]>>arr[line][3]>>arr[line][4]; line++;} stringmz;cout<<"请输入要查询的医生姓名:"; cin>>mz; for(inti=0;i<line;i++) { if(arr[i][0]==mz) { cout<<"医生姓名:"<<arr[i][0]<<""<<"性别:"<<arr[i][1]<<""<<"年龄:"<<arr[i][2]<<""<<"诊费:"<<arr[i][3]<<"元"<<""<<"专业:"<<arr[i][4]<<endl; return; } } cout<<"记录中没有此医生信息!"<<endl; cout<<"是否继续查询y/n:"<<endl;chart; cin>>t;if(t=='y') zhangdanKind(); else return;}2.3增加患者信息voidHuanZhe::input(){ cout<<"*****患者基本信息*****"<<endl; fstreamoutH("患者.txt",ios::out|ios::app);//以写方式打开文件 if(!outH) cout<<"打开文件失败!"<<endl; else { cout<<"姓名:"; cin>>name;outH<<name<<""; cout<<"性别:"; cin>>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:"<<endl; chart; cin>>t; if(t=='y') input(); else return;}2.4按姓名查询患者信息voidHuanZhe::zhangdanKind(){ fstreaminH("患者.txt",ios::in);//以读方式打开文件 if(!inH) { cout<<"打开文件失败!"<<endl; return; } stringarr[100][5];//定义一个string类型的二维数组,用来保存从文本内读取的信息intline=0; memset(arr,0,sizeof(arr));////将数组清空 while(!inH.eof())//文件不为空的条件设置 { inH>>arr[line][0]>>arr[line][1]>>arr[line][2]>>arr[line][3]>>arr[line][4];//文件流读取数据 line++; } stringmz; cout<<"请输入要查询的患者姓名:"; cin>>mz; for(inti=0;i<line;i++) { if(arr[i][0]==mz) { cout<<"患者姓名:"<<arr[i][0]<<""<<"性别:"<<arr[i][1]<<""<<"年龄:"<<arr[i][2]<<""<<"诊费:"<<arr[i][3]<<"元"<<""<<"药费:"<<arr[i][4]<<"元"<<endl; return; } } cout<<"记录中没有此患者的信息!"<<endl; cout<<"是否继续查询y/n:"<<endl;chart; cin>>t;if(t=='y') zhangdanKind(); else return;}2.5增加账单信息voidzhangdan::addzhangdan(){ fstreamoutfile1("账单.txt",ios::out|ios::app);//以写方式打开文件 if(!outfile1) cout<<"打开文件失败!"<<endl; else { cout<<"患者姓名:"; cin>>name; outfile1<<name<<""; cout<<"主治医生:"; cin>>name; outfile1<<name<<""; cout<<"诊费:"; cin>>office_vist_fee; outfile1<<office_vist_fee<<""; cout<<"药费:"; cin>>drug_fee; outfile1<<drug_fee<<""; cout<<"总费用:"; cin>>totl_fee; outfile1<<totl_fee<<endl; outfile1.close(); } chart; cout<<"是否继续添加账单信息y/n:"<<endl; cin>>t; if(t=='y') addzhangdan(); else return;}2.6查询账单信息voidzhangdan::zhangdanKind(){ fstreaminfile1("账单.txt",ios::in);//以读方式打开文件 if(!infile1) { cout<<"打开文件失败!"<<endl; return; } stringarr[100][5];//定义一个string类型的二维数组,用来保存从文本内读取的信息 intline=0; memset(arr,0,sizeof(arr));//将数组清空 while(!infile1.eof())//文件不为空的条件设置 { infile1>>arr[line][0]>>arr[line][1]>>arr[line][2]>>arr[line][3]>>arr[line][4];//文件流读取数据 line++; } stringmz; cout<<"请输入要查询的患者姓名:"; cin>>mz; for(inti=0;i<line;i++) { if(arr[i][0]==mz) { stringxm; xm=arr[i][1]; cout<<"患者姓名:"<<arr[i][0]<<""<<"医生姓名:"<<arr[i][1]<<""<<"诊费:"<<arr[i][2]<<"元"<<""<<"药费:"<<arr[i][3]<<"元"<<""<<"总费用:"<<arr[i][4]<<"元"<<endl; fstreamindoctor("医生.txt",ios::in);//以读方式打开文件 if(!indoctor) { cout<<"打开文件失败!"<<endl; return; } intl=0; memset(arr,0,sizeof(arr));//将数组清空 while(!indoctor.eof())//文件不为空的条件设置 { indoctor>>arr[l][0]>>arr[l][1]>>arr[l][2]>>arr[l][3]>>arr[l][4];//文件流读取数据 l++; } for(intj=0;j<l;j++) { if(arr[j][0]==xm) { cout<<"医生姓名:"<<arr[j][0]<<""<<"性别:"<<arr[j][1]<<""<<"年龄:"<<arr[j][2]<<""<<"诊费:"<<arr[j][3]<<""<<"专业:"<<arr[j][4]<<endl; } } fstreaminH("患者.txt",ios::in);//以读方式打开文件 if(!inH) { cout<<"打开文件失败!"<<endl; return; } intlin=0; memset(arr,0,sizeof(arr));//将数组清空 while(!inH.eof())//文件不为空的条件设置 { inH>>arr[lin][0]>>arr[lin][1]>>arr[lin][2]>>arr[lin][3]>>arr[lin][4];//文件流读取数据 lin++; } for(intz=0;z<lin-1;z++) { if(arr[i][0]==mz) { cout<<"患者姓名:"<<arr[z][0]<<""<<"性别:"<<arr[z][1]<<""<<"年龄:"<<arr[z][2]<<""<<"诊费:"<<arr[z][3]<<""<<"药费:"<<arr[z][4]<<endl; } } return; } } cout<<"记录中没有此患者的帐单信息!"<<endl; cout<<"是否继续查询y/n:"<<endl; chart; cin>>t; if(t=='y') zhangdanKind(); else return;}2.7统计总费用voidzhangdan::totl_pay(){ fstreaminfile1("账单.txt",ios::in);//以读方式打开文件 if(!infile1) { cout<<"打开文件失败!"<<endl; return; } doublearr[100][3];//定义一个double类型的二维数组,用来保存从文本内读取的信息 stringarrs[100][2];//定义一个string类型的二维数组,用来保存从文本内读取的信息 memset(arr,0,sizeof(arr));//将数组清空 intline=0; while(!infile1.eof())//文件不为空的条件设置 { infile1>>arrs[line][0]>>arrs[line][1]>>arr[line][0]>>arr[line][1]>>arr[line][2];//文件流读取数据 line++; } doublea; doublez=0.0; for(inti=0;i<line-1;i++) { a=arr[i][2];; z=z+a; } cout<<"所有患者的总费用为:"<<z<<"元"<<endl; infile1.close();}2.8登陆voidlanding(){ stringname,code; cout<<"\t\t用户名:"; cin>>name; if(name!="yangqing") { cout<<"\t\t☆********★该管理员不存在☆********★"<<endl; landing(); } else { cout<<"\t\t密码:"; cin>>code; if("123456789"==code) { cout<<"\t\t\t☆********★成功登入☆********★"<<endl; } else { cout<<"\t\t☆********★密码错误,请重新输入☆********★"<<endl; cout<<"\t\t☆********★密码☆********★:"; cin>>code; } }}2.9增加信息界面voidadding(){ inta; doctord; HuanZhew; cout<<endl; cout<<endl; cout<<"\t\t$***********增加信息界面*********$"<<endl; cout<<"\n"; cout<<"\t\t$*********************************$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$1.增加医生信息$\n"; cout<<"\t\t$2.增加患者信息$\n"; cout<<"\t\t$0.返回上一页$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$*********************************$\n";cout<<"请输入您选择的数字(0-2):"; cin>>a;switch(a) { case1:d.input();break; case2:w.input();break; case0:break; default:cout<<"输入数字错误!"<<endl; }}2.10查询信息界面voidsearch(){ intb; doctord; HuanZhew; cout<<endl; cout<<endl; cout<<"\t\t$***********查询信息界面*********$"<<endl; cout<<"\n"; cout<<"\t\t$*********************************$\n"; cout<<"\t\t$$\n";cout<<"\t\t$1.查询医生信息$\n"; cout<<"\t\t$2.查询患者信息$\n"; cout<<"\t\t$0.返回上一页$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$*********************************$\n";cout<<"请输入您选择的数字<0-2>:"; cin>>b; switch(b) { case1:d.zhangdanKind();break; case2:w.zhangdanKind();break; case0:break; default:cout<<"输入数字错误!"<<endl; }}2.11账单信息界面voidzhangdanxinxi(){ intc; zhangdanz; cout<<endl; cout<<endl; cout<<"\t\t$*********账单信息*********$"<<endl; cout<<"\n"; cout<<"\t\t$**********************************$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$1.增加账单信息$\n"; cout<<"\t\t$2.查询账单信息$\n"; cout<<"\t\t$3.统计总费用$\n"; cout<<"\t\t$0.返回上一页$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$**********************************$\n";cout<<"请输入您选择的数字<0-3>:"; cin>>c; switch(c) { case1:z.addzhangdan();break; case2:z.zhangdanKind();break; case3:z.totl_pay();break; case0:break; default:cout<<"输入数字错误!"<<endl; }}2.12主界面voidsurface(){ landing();//登陆 intchoice; cout<<"\n\n"; while(1) { cout<<"\t\t★***★***☆欢迎使用诊所信息管理系统☆***★***★"<<endl; cout<<"\n"; cout<<"\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$1.查询信息2.账单信息$\n"; cout<<"\t\t$3.增加信息0.退出系统$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"; zhangdana; cout<<"请输入您选择的数字<0-4>:"; cin>>choice; switch(choice) { case1:search();break; case2:zhangdanxinxi();break; case3:adding();break; case0:cout<<"\t\t☆★☆★☆★☆欢迎下次使用本系统☆★☆★☆★☆"<<endl;exit(0); default:cout<<"输入数字错误!"<<endl; } }}2.13主函数voidmain(){ intw; cout<<"\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$1.登录$\n"; cout<<"\t\t$0.退出系统$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$$$$$$$$$$$**********☆***********$$$$$$$$$$\n"; while(1) { cout<<"请输入数字<0/1>:"; cin>>w; switch(w) { case1:surface();break; case0:exit(0);default:cout<<"输入数字错误!"<<endl; } }}四、程序运行演示1、登陆2、查询信息2.1查询医生信息2.2查询患者信息3、账单信息3.1查询账单信息统计总费用4、增加信息4.1增加医生信息4.2增加患者信息五、总结反思经过几个星期的C++课程设计的训练,我学到了很多,最主要的一点是怎样去运用自己学过的知识,怎样去找到你所需要的资料,并在短时间把它运用到具体的实践中,运用到你所需要的方面。这个过程是很艰难的,要花费很多的时间和精力,但是,在事情过后,自己就会发现自己已经在这个过程中学到了自己想要的东西,这种获得是更深刻的。在做这个C++课程设计的时候,我原先也是学的不怎么好,什么是输入输出流,如何对文件进行操作,什么是继承与派生,等等,可以说是忘得差不多了。然而,在这门课程设计中,这些方面却是特别重要的,可以说,掌握了这个,你就完全可以完成自己的任务。这就要求我们要自己去学,自己去探索。当然,看书、问同学是必不可少的,还有,身边有非常丰富的网络资源给我们好好利用,百度就是个很不错的地方。这样就从另一方面锻炼了我们检索知识获取信息的能力,在这个过程中,可以学到的是一种提升自我的能力。在本次课程设计中,我发现我对知识的运用不是那么准确,也就是说我对知识掌握的不够熟练。课本上有的知识却不会运用,虽然在本次C++课程设计中,显示出一些我知识上的漏洞,经过这次编写诊所信息管理系统,我发现我熟练掌握了类的定义以及继承与派生,并对文件操作有了初步的掌握,课下还应该继续努力,争取熟练掌握一门编程设计语言,在次基础上,在学习多种编程语言,以便以后可以用到工作中去。当然,期间我也遇到了一些棘手的问题,在“账单.txt”中,我希望能读取它每个患者账单的总费用并把它们求和,但是尝试了多次,检查了多次,读取文件内容的while循环一直是死循环,无法读取,终于,我发现了问题所在,并把代码修改了一下,完美解决了问题。通过这次的课程设计,我的诊所信息管理系统完美告终,让我进一步的了解到C++在我们日常生活中的重要性,而且,也更进一步的激发了我学习这门语言的兴趣。经过这次的训练,我相信自己以后会用更多的时间来把这门语言学好,掌握好这门必修的基础语言。六、源代码#include<iostream>#include<fstream>#include<string>usingnamespacestd;classperson//人类{protected: stringname; stringsex; intage; doubleoffice_vist_fee;};classdoctor:publicperson//医生类{public: voidinput();//增加医生信息 voidzhangdanKind();//按姓名查询医生信息private: stringspeicialty;};voiddoctor::input()//增加医生信息{ cout<<"*****主治医生基本信息*****"<<endl; fstreamoutdoctor("医生.txt",ios::out|ios::app);//以写方式打开文件 if(!outdoctor) cout<<"打开文件失败!"<<endl; else { cout<<"姓名:"; cin>>name;outdoctor<<name<<""; cout<<"性别:"; cin>>sex;outdoctor<<sex<<"";cout<<"年龄:"; cin>>age;outdoctor<<age<<""; cout<<"诊费:"; cin>>office_vist_fee;outdoctor<<office_vist_fee<<""; cout<<"专业说明:"; cin>>speicialty;outdoctor<<speicialty<<endl; outdoctor.close(); }}voiddoctor::zhangdanKind()//按姓名查询医生信息{ fstreamindoctor("医生.txt",ios::in);//以读方式打开文件 if(!indoctor) { cout<<"打开文件失败!"<<endl;return; }intline=0; stringarr[100][5];//定义一个string类型的二维数组,用来保存从文本内读取的信息memset(arr,0,sizeof(arr));//将数组清空 while(!indoctor.eof())//文件不为空的条件设置 { indoctor>>arr[line][0]>>arr[line][1]>>arr[line][2]>>arr[line][3]>>arr[line][4]; line++;} stringmz;cout<<"请输入要查询的医生姓名:"; cin>>mz; for(inti=0;i<line;i++) { if(arr[i][0]==mz) { cout<<"医生姓名:"<<arr[i][0]<<""<<"性别:"<<arr[i][1]<<""<<"年龄:"<<arr[i][2]<<""<<"诊费:"<<arr[i][3]<<"元"<<""<<"专业:"<<arr[i][4]<<endl; return; } } cout<<"记录中没有此医生信息!"<<endl; cout<<"是否继续查询y/n:"<<endl;chart; cin>>t;if(t=='y') zhangdanKind(); else return;}classHuanZhe:publicperson//患者类{public: voidzhangdanKind();//按姓名查询患者信息 voidinput();//增加患者信息private: doubledrug_fee;};voidHuanZhe::input(){ cout<<"*****患者基本信息*****"<<endl; fstreamoutH("患者.txt",ios::out|ios::app);//以写方式打开文件 if(!outH) cout<<"打开文件失败!"<<endl; else { cout<<"姓名:"; cin>>name;outH<<name<<""; cout<<"性别:"; cin>>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:"<<endl; chart; cin>>t; if(t=='y') input(); else return;}voidHuanZhe::zhangdanKind(){ fstreaminH("患者.txt",ios::in);//以读方式打开文件 if(!inH) { cout<<"打开文件失败!"<<endl; return; } stringarr[100][5];//定义一个string类型的二维数组,用来保存从文本内读取的信息intline=0; memset(arr,0,sizeof(arr));////将数组清空 while(!inH.eof())//文件不为空的条件设置 { inH>>arr[line][0]>>arr[line][1]>>arr[line][2]>>arr[line][3]>>arr[line][4];//文件流读取数据 line++; } stringmz; cout<<"请输入要查询的患者姓名:"; cin>>mz; for(inti=0;i<line;i++) { if(arr[i][0]==mz) { cout<<"患者姓名:"<<arr[i][0]<<""<<"性别:"<<arr[i][1]<<""<<"年龄:"<<arr[i][2]<<""<<"诊费:"<<arr[i][3]<<"元"<<""<<"药费:"<<arr[i][4]<<"元"<<endl; return; } } cout<<"记录中没有此患者的信息!"<<endl; cout<<"是否继续查询y/n:"<<endl;chart; cin>>t;if(t=='y') zhangdanKind(); else return;}classzhangdan //帐单类{public: voidtotl_pay(); voidaddzhangdan(); //增加账单信息 voidzhangdanKind(); //按姓名查询账单信息 private: stringname; doubledrug_fee; doubleoffice_vist_fee; doubletotl_fee;};voidzhangdan::totl_pay(){ fstreaminfile1("账单.txt",ios::in);//以读方式打开文件 if(!infile1) { cout<<"打开文件失败!"<<endl; return; } doublearr[100][3];//定义一个double类型的二维数组,用来保存从文本内读取的信息 stringarrs[100][2];//定义一个string类型的二维数组,用来保存从文本内读取的信息 memset(arr,0,sizeof(arr));//将数组清空 intline=0; while(!infile1.eof())//文件不为空的条件设置 { infile1>>arrs[line][0]>>arrs[line][1]>>arr[line][0]>>arr[line][1]>>arr[line][2];//文件流读取数据 line++; } doublea; doublez=0.0; for(inti=0;i<line-1;i++) { a=arr[i][2];; z=z+a; } cout<<"所有患者的总费用为:"<<z<<"元"<<endl; infile1.close();}voidzhangdan::addzhangdan(){ fstreamoutfile1("账单.txt",ios::out|ios::app);//以写方式打开文件 if(!outfile1) cout<<"打开文件失败!"<<endl; else { cout<<"患者姓名:"; cin>>name; outfile1<<name<<""; cout<<"主治医生:"; cin>>name; outfile1<<name<<""; cout<<"诊费:"; cin>>office_vist_fee; outfile1<<office_vist_fee<<""; cout<<"药费:"; cin>>drug_fee; outfile1<<drug_fee<<""; cout<<"总费用:"; cin>>totl_fee; outfile1<<totl_fee<<endl; outfile1.close(); } chart; cout<<"是否继续添加账单信息y/n:"<<endl; cin>>t; if(t=='y') addzhangdan(); else return;}voidzhangdan::zhangdanKind(){ fstreaminfile1("账单.txt",ios::in);//以读方式打开文件 if(!infile1) { cout<<"打开文件失败!"<<endl; return; } stringarr[100][5];//定义一个string类型的二维数组,用来保存从文本内读取的信息 intline=0; memset(arr,0,sizeof(arr));//将数组清空 while(!infile1.eof())//文件不为空的条件设置 { infile1>>arr[line][0]>>arr[line][1]>>arr[line][2]>>arr[line][3]>>arr[line][4];//文件流读取数据 line++; } stringmz; cout<<"请输入要查询的患者姓名:"; cin>>mz; for(inti=0;i<line;i++) { if(arr[i][0]==mz) { stringxm; xm=arr[i][1]; cout<<"患者姓名:"<<arr[i][0]<<""<<"医生姓名:"<<arr[i][1]<<""<<"诊费:"<<arr[i][2]<<"元"<<""<<"药费:"<<arr[i][3]<<"元"<<""<<"总费用:"<<arr[i][4]<<"元"<<endl; fstreamindoctor("医生.txt",ios::in);//以读方式打开文件 if(!indoctor) { cout<<"打开文件失败!"<<endl; return; } intl=0; memset(arr,0,sizeof(arr));//将数组清空 while(!indoctor.eof())//文件不为空的条件设置 { indoctor>>arr[l][0]>>arr[l][1]>>arr[l][2]>>arr[l][3]>>arr[l][4];//文件流读取数据 l++; } for(intj=0;j<l;j++) { if(arr[j][0]==xm) { cout<<"医生姓名:"<<arr[j][0]<<""<<"性别:"<<arr[j][1]<<""<<"年龄:"<<arr[j][2]<<""<<"诊费:"<<arr[j][3]<<""<<"专业:"<<arr[j][4]<<endl; } } fstreaminH("患者.txt",ios::in);//以读方式打开文件 if(!inH) { cout<<"打开文件失败!"<<endl; return; } intlin=0; memset(arr,0,sizeof(arr));//将数组清空 while(!inH.eof())//文件不为空的条件设置 { inH>>arr[lin][0]>>arr[lin][1]>>arr[lin][2]>>arr[lin][3]>>arr[lin][4];//文件流读取数据 lin++; } for(intz=0;z<lin-1;z++) { if(arr[i][0]==mz) { cout<<"患者姓名:"<<arr[z][0]<<""<<"性别:"<<arr[z][1]<<""<<"年龄:"<<arr[z][2]<<""<<"诊费:"<<arr[z][3]<<""<<"药费:"<<arr[z][4]<<endl; } } return; } } cout<<"记录中没有此患者的帐单信息!"<<endl; cout<<"是否继续查询y/n:"<<endl; chart; cin>>t; if(t=='y') zhangdanKind(); else return;}voidlanding()//登陆{ stringname,code; cout<<"\t\t用户名:"; cin>>name; if(name!="yangqing") { cout<<"\t\t☆********★该管理员不存在☆********★"<<endl; landing(); } else { cout<<"\t\t密码:"; cin>>code; if("123456789"==code) { cout<<"\t\t\t☆********★成功登入☆********★"<<endl; } else { cout<<"\t\t☆********★密码错误,请重新输入☆********★"<<endl; cout<<"\t\t☆********★密码☆********★:"; cin>>code; } }}voidadding()//增加信息界面{ inta; doctord; HuanZhew; cout<<endl; cout<<endl; cout<<"\t\t$***********增加信息界面*********$"<<endl; cout<<"\n"; cout<<"\t\t$*********************************$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$1.增加医生信息$\n"; cout<<"\t\t$2.增加患者信息$\n"; cout<<"\t\t$0.返回上一页$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$*********************************$\n";cout<<"请输入您选择的数字(0-2):"; cin>>a;switch(a) { case1:d.input();break; case2:w.input();break; case0:break; default:cout<<"输入数字错误!"<<endl; }}voidsearch()//查询信息界面{ intb; doctord; HuanZhew; cout<<endl; cout<<endl; cout<<"\t\t$***********查询信息界面*********$"<<endl; cout<<"\n"; cout<<"\t\t$*********************************$\n"; cout<<"\t\t$$\n";cout<<"\t\t$1.查询医生信息$\n"; cout<<"\t\t$2.查询患者信息$\n"; cout<<"\t\t$0.返回上一页$\n"; cout<<"\t\t$$\n"; cout<<"\t\t$*********************************$\n";cout<<"请输入您选择的数字<0-2>:"; cin>>b; switch(b) { case1:d.zhangdanKind();break; case2:w.zhangdanKind();break; case0:break; defaul
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮海战役知识题目与答案
- 计算机初级典型试题及详细答案
- 国家公务员面试试题及解析
- 2026年工程质量监督检查实务考试试卷试题及答案
- 2026年电气安全隐患排查处置考试试卷试题及答案
- 2026年畜牧兽医实验室生物安全管理规范题库及答案
- 2026年餐饮原料索证索票培训考试试卷试题及答案
- 2026年未成年人保护中心社工招聘试题(含答案)
- 弘扬长征精神 争做时代新人-中小学纪念长征胜利90周年红色诵读展演活动方案
- 2026年食品安全管理员企业考试题(含答案)
- 数学小讲师课件
- 监理内部安全培训记录
- 无人机测绘操控员 国家职业技能标准
- 水力发电运行值班员作业指导书
- GJB827B--2020军事设施建设费用定额
- 种植义齿制作技术
- 2025至2030年中国家用美容电器具行业发展监测及投资前景预测报告
- 2025卫生职称疾病控制正高高级职称历年考试试题及答案
- (新教材)2025年秋期人教版一年级上册数学全册核心素养教案(教学反思无内容+二次备课版)
- 汉服妆造培训
- 地产渠道市场培训课件
评论
0/150
提交评论