收藏 分销(赏)

诊所信息管理系统设计.doc

上传人:丰**** 文档编号:4101604 上传时间:2024-07-29 格式:DOC 页数:32 大小:49.04KB 下载积分:12 金币
下载 相关 举报
诊所信息管理系统设计.doc_第1页
第1页 / 共32页
诊所信息管理系统设计.doc_第2页
第2页 / 共32页


点击查看更多>>
资源描述
#include〈iostream〉 #include〈fstream> //输入输出文件流类 #include〈string〉 using namespace std; class person //人类 { public: person() {} ~person() {} //析构函数,释放资源 protected: string name; char sex; int age; double office_vist_fee; //诊费 }; class doctor:public person //医生类 { private: char speicialty[15]; //专业说明 public: doctor() {} void input() //增加医生信息 { char t; cout〈<"*****主治医生基本信息*****"<〈endl; //fstream outfile() 打开文件aa.txt,并建立链接,aa.txt是一个输出文件,接收从内存输出数据 //ios::out 以输出的方式打开文件 //ios::app 以输出的方式打开文件,写入的数据添加在文件末尾 fstream outfile("D:\\aa。txt”,ios::out|ios::app); if(!outfile) cout<<”打开文件失败!"〈<endl; else { cout〈〈”姓名”; cin〉〉name; outfile<<name<<” "; cout<〈”性别:"; cin〉>sex; if(sex=='m'||sex=='M') outfile<〈"男"<〈” "; else if(sex==’f’||sex==’F') outfile〈<”女”<<” "; else { cout<<"请重新输入性别:”; cin〉>sex; if(sex==’m’||sex=='M’) outfile〈<”男”<〈” ”; else if(sex=='f’||sex==’F') outfile〈<"女”<<" "; } cout〈<”年龄:”; cin>〉age; outfile<<age<<" "; cout<<"诊费:”; cin〉〉office_vist_fee; //向磁盘文件aa。txt输入数据 outfile〈<office_vist_fee<〈" "; cout<<"专业说明:"; cin〉〉speicialty; outfile<〈speicialty〈<endl; outfile。close(); //关闭文件 } cout<<”是否继续添加医生信息 Y/N。。。。。。:"<〈endl; cin〉〉t; if(t==’y’) input(); //返回继续添加 else return ; } void zhangdanKind() //按姓名查询医生信息 { char t; //定义输入输出文件流,以输入的方式打开磁盘文件aa.txt fstream infile2(”D:\\aa.txt",ios::in); //以读方式打开文件 if(!infile2) { cout<<”打开文件失败!"<〈endl; return; } int line=0; string arr[100][100]; //定义一个string类型的二维数组,用来保存文本内读取的信息 //char型初始化函数 memset(arr,0,sizeof(arr)); //将数组清空 //eof()函数到文件结尾可以返回true,而之前返回的均为false,while(true)-〉while(false),循环结束 while(!infile2。eof()) //文件不为空的条件设置 { infile2>>arr[line][0]〉>arr[line][1]>>arr[line][2]〉>arr[line][3]〉>arr[line][4]; line++; } string na; cout〈〈”请输入要查询的医生姓名:”; cin>〉na; for(int i=0;i〈line;i++) { if(arr[i][0]==na) { cout<〈"医生姓名:”〈〈arr[i][0]〈〈" ”〈〈"性别:"〈〈arr[i][1]〈<” ”<<"年龄:”<〈arr[i][2]〈〈" "<<"诊费:”<<arr[i][3]<<”元"〈<" "〈<”专业:”〈<arr[i][4]<〈endl; return; } } cout〈〈"记录中没有此医生信息!”<<endl; cout〈<”是否继续查询 Y/N。.。.。:"<〈endl; cin〉>t; if(t=='y') zhangdanKind(); else return; } ~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; else { cout〈<”姓名"; cin〉〉name; outfile〈<name<〈” "; cout<〈"性别:”; cin〉〉sex; if(sex==’m’||sex==’M’) outfile〈〈”男”〈〈" "; else if(sex==’f'||sex=='F') outfile〈〈"女"<<" "; else { cout<〈"请重新输入性别:"; cin>>sex; if(sex==’m'||sex==’M') outfile<<”男”<〈" "; else if(sex==’f'||sex==’F') outfile<<”女”〈〈” "; } cout<<"年龄:”; cin>〉age; outfile〈〈age<<" "; cout<〈”诊费:"; cin〉〉office_vist_fee; outfile<〈office_vist_fee<<" "; cout〈<"药费:"; cin>〉drug_fee; outfile<〈drug_fee〈〈endl; outfile。close(); } cout〈<"是否继续添加患者信息 Y/N.。..。。:"〈<endl; cin>>t; if(t==’y’) input(); else return ; } void zhangdanKind() //按姓名查询患者信息 { char t; fstream infile2(”D:\\ee。txt",ios::in); //以读方式打开文件 if(!infile2) { cout〈〈"打开文件失败!"<<endl; return; } string arr[100][100]; int line=0; memset(arr,0,sizeof(arr)); //将数组清空 while(!infile2.eof()) //文件不为空的条件设置 { //文件流读取数据 infile2>〉arr[line][0]〉〉arr[line][1]〉>arr[line][2]〉>arr[line][3]>>arr[line][4];//文件流读取数据 line++; } string na; cout〈<"请输入要查询的患者姓名:"; cin>〉na; for(int i=0;i〈line;i++) { if(arr[i][0]==na) { cout〈〈"患者姓名:"〈〈arr[i][0]〈<” "〈<"性别:”<〈arr[i][1]<〈" "〈〈”年龄:"〈〈arr[i][2]<〈” "<〈"诊费:”<<arr[i][3]<〈"元"〈<” "〈<"药费:"〈〈arr[i][4]<〈"元"<〈endl; return; } } cout〈<"记录中没有此患者信息!”〈〈endl; cout〈<”是否继续查询 Y/N....。:”<<endl; cin〉〉t; if(t==’y’) zhangdanKind(); else return; } ~HuanZhe() {} }; class zhangdan //账单类 { private: string name; double drug_fee; double office_vist_fee; double totl_fee; public: zhangdan() {} void totl_pay() //用于把总费用从“D;\\bb.txt”文件转移到"D:\\cc.txt” { string a; fstream infile1(”D:\\bb。txt”,ios::in); //以读方式打开文件 if(!infile1) { cout<<"打开文件失败!”<〈endl; return; } string arr[100][100]; int line=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++; } for(int i=0;i<line;i++) { fstream outfile4("D:\\cc.txt”,ios::out|ios::app); //以写的方式打开文件 if(! outfile4) cout<〈”打开文件失败!"<〈endl; else a=arr[i][4]; outfile4<<a〈〈endl; outfile4。close(); } infile1。close(); } void pay() //实现统计所有患者总费用 { double a; double z=0.0; fstream infile4("D:\\cc。txt”,ios::in); //以读方式打开文件 if(! infile4) { cout〈<”打开文件失败!"<<endl; return; } double s[100]; int line=0; while(!infile4.eof()) //文件不为空的条件设置 { infile4〉〉s[line]; //文件流读取数据 line++; } for(int i=0;i〈line—1;i++) { a=s[i]; z=z+a; } cout〈〈”所有患者的总费用为:"〈〈z<<”元”〈〈endl; infile4。close(); } void addzhangdan() //增加账单信息 { fstream outfile3(”D:\\bb。txt",ios::out|ios::app); //以写方式打开文件 if(!outfile3) cout〈〈”打开文件失败!”<〈endl; else { cout<<"患者姓名:"; cin>>name; outfile3<〈name<<" ”; cout〈〈"主治医生:"; cin〉>name; outfile3〈<name〈〈" ”; cout〈〈"诊费:"; cin〉〉office_vist_fee; outfile3<〈office_vist_fee〈<" "; cout〈〈”药费:”; cin〉〉drug_fee; outfile3〈<drug_fee<〈” ”; cout<〈”总费用:"; cin〉>totl_fee; outfile3〈<totl_fee〈〈endl; outfile3。close(); } char t; cout<〈”是否继续添加账单信息 Y/N...。.:”<〈endl; cin〉〉t; if(t=='y') addzhangdan(); else return; } void zhangdanKind() //按姓名查询账单信息 { char t; fstream infile1(”D:\\bb.txt”,ios::in); //以读方式打开文件 if(!infile1) { cout〈〈"打开文件失败!"<〈endl; return; } string arr[100][100]; //定义一个string类型的二维数组,用来保存从文本内读取信息 int line=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++; } string na; cout<〈”请输入要查询的患者姓名:”; cin〉〉na; for(int i=0;i〈line;i++) { if(arr[i][0]==na) { string xm; xm=arr[i][1]; cout<<"患者姓名:"<<arr[i][0]<<" "〈<”医生姓名:"<〈arr[i][1]〈〈” ”〈<”诊费:"〈〈arr[i][2]〈〈"元”<〈" ”〈〈"药费:”〈<arr[i][3]<〈"元"〈〈" ”<〈”总费用:”〈<arr[i][4]〈〈"元"〈〈endl; fstream infile2(”D:\\aa.txt”,ios::in); //以读方式打开文件 if(!infile2) { cout〈<”打开文件失败!"<〈endl; return; } int l=0; memset(arr,0,sizeof(arr)); //将数组清空 while(!infile2。eof()) //文件不为空的条件设置 { infile2〉>arr[l][0]〉〉arr[l][1]〉〉arr[l][2]〉>arr[l][3]〉〉arr[l][4];//文件流读取数据 l++; } for(int j=0;j〈1;j++) { if(arr[j][0]==xm) { cout<<"医生姓名:"<〈arr[i][0]<〈" ”<<”性别:”<〈arr[i][1]〈<” ”〈<"年龄:”〈<arr[i][2]<<” ”<〈"诊费:”〈<arr[i][3]〈<"元”〈〈” ”〈<”专业:”〈〈arr[i][4]<〈endl; } } fstream infile3("D:\\ee.txt”,ios::in); //以读方式打开文件 if(!infile3) { cout<<"打开文件失败!"〈〈endl; return; } int lin=0; memset(arr,0,sizeof(arr)); //将数组清空 while(!infile3。eof()) //文件不为空的条件设置 { infile3>〉arr[lin][0]〉>arr[lin][1]>〉arr[lin][2]〉〉arr[lin][3]〉>arr[lin][4];//文件流读取数据 lin++; } for(int z=0;z<lin-1;z++) { if(arr[i][0]==na) { cout〈<”患者姓名:”<〈arr[z][0]〈<” ”<<”性别:"〈〈arr[z][1]〈<” "〈〈"年龄:”〈<arr[z][2]〈〈” "〈<"诊费:”〈<arr[z][3]<<"元”<<” ”〈<”药费:"〈<arr[z][4]〈<"元”〈〈endl; } } return; } } cout<〈”记录中没有此患者的账单信息!"〈<endl; cout〈〈"是否继续查询 Y/N.。。。。.:"〈〈endl; cin>〉t; if(t=='y’) zhangdanKind(); else return; } ~zhangdan() {} }; void add_zhuce() //实现注册用户 { string name,code,code1; fstream outfile5("D:\\dd.txt",ios::out|ios::app); //以写方式打开文件 if(!outfile5) cout〈〈”打开文件失败!”<<endl; else { cout<〈”※*********※请注册用户※*********※"<〈endl; cout<〈"请输入您的用户名:"; cin〉〉name; fstream infile6(”D:\\dd.txt”,ios::in); //以读方式打开文件 if(!infile6) { cout〈〈”打开文件失败!”<〈endl; return; } string a[100][2]; //定义一个string类型的二维数组,用来保存从文本内读取的信息 int line=0; memset(a,0,sizeof(a)); //将数组清空 while(!infile6。eof()) //文件不为空的条件设置 { infile6〉>a[line][0]>>a[line][1]; //文件流读取数据 line++; } for(int i=0;i<line;i++) { if(a[i][0]==name) { cout〈〈”此用户已存在!谢谢使用本系统注册用户界面!欢迎下次使用!"; exit(0); } } outfile5〈<name〈<" ”; cout〈<”请输入您的密码:”; cin〉>code; cout<〈"请再次输入您的密码:”; cin>>code1; if(code!=code1) { cout〈<"您两次输入的密码不一致!谢谢使用本系统注册用户界面!欢迎下次使用!"〈<endl; exit(0); } else outfile5〈<code1〈<endl; } cout<<”谢谢使用本系统注册用户界面!您已注册成功!”<<endl; outfile5。close(); } void welcome() //验证用户登陆,登陆成功显示欢迎信息 { string name,code; int mark=0; fstream infile(”D:\\dd.txt",ios::in); if(!infile) { cerr<〈"打开文件错误”<〈endl; return; } int line=0; string a[100][100]; memset(a,0,sizeof(a)); //将数组清空 while(!infile。eof()) //文件不为空的条件设置 { infile>>a[line][0]>>a[line][1]; //文件流读取数据 line++; } cout<<”\t\t※*********※用户名※*********※:”; cin〉〉name; int m=1; for(int i=0;i〈line;i++) { if(a[i][0]==name) { m=i; mark=i; break; } } if(m==0) { cout〈〈"\t\t※*********※该用户不存在,请注册用户※*********※:"; add_zhuce(); } cout〈<”\t\t※*********※密码※*********※:”; cin〉〉code; for(int j=0;j<2;j++) { if(a[mark][1]==code) { cout<<"成功登入※*********※”<〈endl; break; } else { cout〈<”密码错误,请重新输入※*********※”<〈endl; cout〈<"\t\t※*********※密码※*********※:"; cin〉〉code; } } } void addinfor() //增加信息界面实现 { int a; doctor d; HuanZhe w; 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) { case 1:d。input();break; //医生信息 case 2:w。input();break; //患者信息 case 0:break; default:cout<<”输入数字错误!"〈〈endl; } } void select() //查询信息界面实现 { int b; doctor d; HuanZhe w; 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) { case 1:d.zhangdanKind();break; case 2:w。zhangdanKind();break; case 0:break; default:cout〈〈”输入数字错误!"<〈endl; } } void zhangdanxinxi() //账单信息界面实现 { int c; zhangdan z; 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>〉c; switch(c) { case 1:z。addzhangdan();break; case 2:z.zhangdanKind();break; case 0:break; default:cout<〈”输入数字错误!”〈〈endl; } } void Please() //诊所信息管理系统主界面的实现 { welcome(); //验证用户登陆,登陆成功显示欢迎信息 int chiose; 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.增加信息 4.统计总费用 ※\n”; cout〈<"\t\t※ 0。退出系统 ※\n”; cout<〈”\t\t※ ※\n”; cout〈〈”\t\t※ ※\n"; cout<<”\t\t※********※*********※*********※*********※\n”; zhangdan a; cout<<”请输入您选择的数字〈0-4>:"; cin〉>chiose; switch(chiose) { case 1:select();break; case 2:zhangdanxinxi();break; case 3:addinfor();break; case 4:a。totl_pay();a。pay();break; case 0:cout〈〈”\t\t ※※※※※※※欢迎下次使用本系统※※※※※※※”〈〈endl;exit(0); default:cout<〈"输入数字错误!"〈<endl; } } } void main() //主函数 { int w; cout〈<"\t\t※********※*********※*********※*********※\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〈<”\t\t※********※*********※*********※*********※\n"; while(1) { cout〈<”请输入数字<0-2〉:”; cin〉>w; switch(w) { case 1:Please();break; case 2:add_zhuce();break; case 0:exit(0); default:cout〈〈”输入数字错误!”〈<endl; } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服