医院候诊管理系统C++复习进程.docx
《医院候诊管理系统C++复习进程.docx》由会员分享,可在线阅读,更多相关《医院候诊管理系统C++复习进程.docx(50页珍藏版)》请在咨信网上搜索。
医院候诊管理系统C++ 【附录一】源代码 HOSPITAL.CPP #include"hospital.h" #define Max 1000000 //最多支持的挂号的人数 long renshu[5]= {0,0,0,0,0}; //存放各科室人数 long I=0; //数组下标 long L=0; long Ghsr=0; //用于存放挂号的收入! using namespace std; struct Patient //定义患者结构体 { char num[6]; //患者编号 char time[8] = ""; //挂号日期,初始化0 int sex = 0; //性别 1为男,2为女 int age = 0; //年龄 char room = '0'; //所挂号的科室 char jz[4] = "否"; //是否是急诊,默认值否 char zp; //专家门诊还是普通门诊 } P[Max],Q[Max]; //最多存放1000000个 struct Age //年龄段结构体 { int e = 0; //儿童 enfant 1-14 int y = 0; //青年 young people 15-25 int m = 0; //中年 wrinkly 26-55 int o = 0; //老年 old folks 55以上 }; struct ghfl { int drrs = 0; //当日号人数 int yyrs = 0; //预约人数 int jzrs = 0; //急诊人数 } G; struct Paixu //定义各科室就诊人数排序结构体 { char name[6]; //科室名称 int money; //本科收入 struct Age a ; //Age 结构体类型的成元 } J[5]; //一共5个科室 void clear() { system("cls"); //清屏 system("date/t"); //显示日期 } //--------------分科室函数------------------ void hospital::room(char room) { clear(); switch(room) { case '1': renshu[0]++; cout<<'\t'<<"\n\t请到第5就诊室!\n\n\t您的前面还有 " << renshu[0]-1 << " 人\n\n\t"; break; case '2': renshu[1]++; cout<<'\t'<<"\n\t请到第4就诊室!\n\n\t您的前面还有 " << renshu[1]-1<< " 人\n\n\t"; break; case '3': renshu[2]++; cout<<'\t'<<"\n\t请到第3就诊室!\n\n\t您的前面还有 " << renshu[2]-1<< " 人\n\n\t"; break; case '4': renshu[3]++; cout<<'\t'<<"\n\t请到第2就诊室!\n\n\t您的前面还有 " << renshu[3]-1<< " 人\n\n\t"; break; case '5': renshu[4]++; cout<<'\t'<<"\n\t请到第1就诊室!\n\n\t您的前面还有 " << renshu[4]-1<< " 人\n\n\t"; break; } } //--------------挂当日号函数------------------ int hospital::gdrh() { char temp[1000] = ""; //为了避免输入多个字符时会产生的错误 if(input() == -1) { return 1; //如果在input里面选择了返回则返回 } //tj(); //调用统计计算前面有几人 room(P[I-1].room); //分科室 G.drrs++; //挂当日号人数+1 system("pause"); //暂停 return 1; } //--------------查看挂号人数函数------------------ int hospital::ghrs() { char temp[100]=""; clear(); cout<<"\n\n\n\t\t\t各类挂号情况一览表\n"; cout << "\t==================================================\n"; cout << "\n\n\t" << "\t挂当日号的人数为----" << G.drrs; cout << "\n\n\t" << "\t挂预约号的人数为----" << G.yyrs; cout << "\n\n\t" << "\t挂急诊号的人数为----" << G.jzrs; cout << "\n\n\n\t==================================================\n\t"; system("pause"); return(1); } //--------------挂急诊号函数------------------ int hospital::gjzh() { if(-1 == input()) { return 1; //返回 } clear(); //清屏 switch(P[I-1].room) { case '1': renshu[0]++; cout<<'\t'<<"\n\t请到第1急诊室!\n\n\t"; break; case '2': renshu[1]++; cout<<'\t'<<"\n\t请到第2急诊室!\n\n\t"; break; case '3': renshu[2]++; cout<<'\t'<<"\n\t请到第3急诊室!\n\n\t"; break; case '4': renshu[3]++; cout<<'\t'<<"\n\t请到第4急诊室!\n\n\t"; break; case '5': renshu[4]++; cout<<'\t'<<"\n\t请到第5急诊室!\n\n\t"; break; } G.jzrs++; //急诊号人数+1 strcpy( P[I-1].jz,"是"); system("pause"); return 1; } //--------------查看挂号收入函数------------------ int hospital::ghsr() { int i=0; char temp[100]=""; char temp1='/'; clear(); cout<<"\n\n\n\t\t\t挂号情况一览表\n"; cout << "\t==================================================\n"; cout<<"\t今天的挂号费收入为: "<<Ghsr<<" 元"; cout << "\n\t==================================================\n"; for(i=0; i<5; i++) cout<<"\n\n\t"<<J[i].name<<"的收入为: "<<J[i].money ; cout << "\n\t==================================================\n\t"; system("pause"); return(1); } //--------------查看年龄比函数------------------ int hospital::nlb() { long sum[5]; int i; char temp[100]=""; clear(); cout<<"\n\n\t\t\t 各科室患者年龄层人数\n\n"; cout<<"\t\t儿 童\t 青 年\t 中 年\t 老 年\t 总 和\n\n"; cout<<"\t\t(1-14)\t(15-25)\t(26-55)\t(56以上)(1-100)\n"; cout<<" =============================================================\n\n"; for(i=0; i<5; i++) //求出各科室就诊的总人数 sum[i]=J[i].a.e+J[i].a.y+J[i].a.m+J[i].a.o ; for(i=0; i<5; i++) { cout <<'\t'<<J[i].name<<'\t'<<J[i].a.e<<"\t "<<J[i].a.y<<"\t "<<J[i].a.m<<"\t "<<J[i].a.o<<"\t "<<sum[i]; cout<<"\n\n"; } cout<<" =============================================================\n\t"; system("pause"); return(1); } //--------------查看各科就诊比例------------------ int hospital::jzrs() { int i=0; char temp[100]=""; clear(); cout<<"\n\n\n\t\t\t各科就诊人数一览表\n"; cout << "\t=================================================="; for(i=0; i<5; i++) cout<<"\n\n\t"<<i+1<<". "<<J[i].name<<"的就诊人数为: "<<renshu[i] ; cout << "\n\t==================================================\n\t"; system("pause"); return(1); } //--------------挂号向导函数------------------ int hospital::ghxd() { clear(); //清屏 char gn, temp[1000]=""; //为了避免输入多个字符时会产生的错误 cout << "\n\n\t\t\t====挂号向导====\n\n"; cout << "\t\t以下仅供参考,如疑问请咨询医护人员!\n\n"; cout << "\t===科室============================包含内容===================\n\n" ; cout << "\t 内科\t\t呼吸,消化,泌尿,心脏,免疫,血液,内分泌,神经,肾,等\n\n"; cout << "\t 外科\t\t感染,心胸,肝胆,外伤,微创,普外,肛肠,整形,等\n\n"; cout << "\t 骨科\t\t骨折,骨质增生,风湿,关节,四肢,骨神经,等\n\n"; cout << "\t 口腔科\t牙齿,牙龈,颌面,舌,淋巴,口腔溃疡,等\n\n"; cout << "\t 皮肤科\t癣类,疱疹,皮炎,皮肤瘙痒,癍类,痘类,等\n\n"; cout << "\t==============================================================\n\t"; system("pause"); return 1; } //--------------预约挂号功能函数------------------ int hospital::yygh() { char str_1[5],str_2[5],str[50],gn; //保存系统时间与预约不同天数及系统时间 int m=1,n=0; if(-1==input()) return 1; struct tm *mytime; time_t LocalTime; LocalTime=time(NULL); mytime=localtime(&LocalTime); strftime(str,sizeof(str),"%c",mytime); //接收系统当前时间,格式09/04/15 do { clear(); if(m-n==0) { cout << "\n\n\n请挂当天号......\n\n"; system("pause"); return 1; } else { char date[8]; int flag=1; while(flag==1) { clear(); memset(str_1,'\0',sizeof(str_1)); memset(str_2,'\0',sizeof(str_2)); cout << "==================================================\n"; cout<< "\n\t注意:预约挂号只能预约七天以内\n\n"<<endl; cout<< "\t请输入日期(格式:月(00)/日(00)/年(00):"; cin>>date; strcpy(P[I].time, date); for(int j=0,r=0; j<strlen(date); j++) //保存不同天数 { if(str[j]!=date[j]) { if((j==3||j==4)&&(date[j]-'0')>=0&&(date[j]-'0')<=9) { str_1[r]=str[j]; str_2[r]=date[j]; r++; flag=0; } else { flag=1; clear(); cout<<"\n\n\n请输入正确的日期格式......\n\n"; system("pause"); break; } } } } sscanf(str_2,"%d",&m); //字符串转换为数字 sscanf(str_1,"%d",&n); } } while(m-n>7||m-n<=0); cout<< "\n\t请"<<m-n<<"天之后前来就诊,谢谢!\n\n\t"; //不同天数相减 G.yyrs++; //预约挂号人数+1 switch(P[I-1].room) { case '1': renshu[0]++; break; case '2': renshu[1]++; break; case '3': renshu[2]++; break; case '4': renshu[3]++; break; case '5': renshu[4]++; break; } Q[L].zp=P[I-1].zp; Q[L].age=P[I-1].age; strcpy(Q[L].jz,P[I-1].jz); strcpy(Q[L].num,P[I-1].num); Q[L].room=P[I-1].room; Q[L].sex=P[I-1].sex; strcpy(Q[L].time, P[I-1].time); L++; system("pause"); return 1; } //--------------统计功能函数------------------ void hospital::tj() { long i=0,m; struct Paixu t; m=I; strcpy(J[0].name,"内科"); //J结构体数组赋初值 strcpy(J[1].name,"外科"); strcpy(J[2].name,"骨科"); strcpy(J[3].name,"皮肤科"); strcpy(J[4].name,"口腔科"); for(i=0; i<5; i++) //各科室各年龄段人数初值为0 { J[i].a.e=0; J[i].money = 0; J[i].a.y=0; J[i].a.m=0; J[i].a.o=0; } Ghsr = 0; for(i=0; i<m; i++) { if(P[i].zp=='Y')Ghsr+=10,J[P[i].room-'1'].money+=10; //统计挂号收入:专家 else if(P[i].zp == 'N') Ghsr+=5,J[P[i].room-'1'].money+=5; //统计挂号收入:普通 if (P[i].age<=14) //统计各科室各年龄段人数 J[P[i].room-'1'].a.e++; else if (P[i].age <=25) J[P[i].room-'1'].a.y++; else if(P[i].age <=55) J[P[i].room-'1'].a.m++; else J[P[i].room-'1'].a.o++; } } //--------------输入功能函数------------------ int hospital::input() { char room2='/',cls1='0',zp2,sex2,qr; int age2=0,i=0; char room1[1000]=""; char zp1[1000]=""; char sex1[1000]=""; char age1[1000]=""; char cls[1000]=""; char temp[6]=""; char temp1[6]=""; while(I<Max) //重复输入记录 { strcpy(room1,""); strcpy(zp1,""); strcpy(sex1,""); strcpy(age1,""); strcpy(cls,""); strcpy(temp,""); strcpy(temp1,""); room2='/'; sex2='/'; zp2='/'; cls1='0'; age2=0; qr='/'; while((room2<'1' || room2 > '5') && room2!='r' ) { clear(); cout<<"\n\n\t\t\t\t请选择科室\n\n"; cout << "\n\t=============================================================\n"; cout<<"\n\t\t1.内科"; cout<<"\t\t2.外科"; cout<<"\t\t3.骨科\n\n"; cout<<"\t\t4.皮肤科"; cout<<"\t5.口腔科"; cout<<"\tr.返回!"; cout << "\n\n\t=============================================================\n"; cout<< "\n\t请选择所要挂科室的编号:"; cin>>room1; //输入放在临时变量temp中 if (strlen(room1)==1) room2=tolower(room1[0]); } if (room2=='r') return(-1); while(zp2!='Y'&&zp2!='N') //选择专家门诊吗 { clear(); cout<<"\n\n\n普通门诊: 5元 \n专家门诊: 10元\n\n\n您是否要挂专家门诊(Y/N):"; cin>>zp1; if (strlen(zp1)==1) zp2=toupper(zp1[0]); //变成大写,以避免系统区分大小写 } while(sex2!='1'&&sex2!='2') //选择性别1为男,2为女 { clear(); cout<<"\n\n\n\t性 别 (1.男 2.女):"; cin>>sex1; if (strlen(sex1)==1) sex2=sex1[0]; } while(age2<=0||age2>150) //输入的年龄在1--150之间 { clear(); cout<<"\n\n\n\t年 龄:"; cin>>age1; if (strlen(age1)<=3) age2=atoi(age1); //将字符型的age1转换成整型赋给age2; } ltoa(I+1,temp,10); //计算当前患者编号 if(strlen(temp)<6) for(i=0; i<6-strlen(temp); i++) strcat(temp1,"0"); strcat(temp1,temp); // 输出患者信息以确认输入是否正确 while(cls1!='1'&&cls1!='2'&&cls1!='r') { clear(); cout<<"\n\n\n\t\t\t您的输入的信息如下,请确认是否正确!\n\n\n\n"; cout<<"\t编 号\t 性 别\t年 龄\t所挂科室\t专家门诊\t挂号费\n\n"; cout<<'\t'<<temp1; //编号 if (sex2=='1') cout<<'\t'<<" 男"; //性别 else if(sex2 =='2') cout<<'\t'<<" 女"; cout<<'\t'<<age2; //年龄 switch(room2) //科室 { case '1': cout<<'\t'<<"内 科"; break; case '2': cout<<'\t'<<"外 科"; break; case '3': cout<<'\t'<<"骨 科"; break; case '4': cout<<'\t'<<"皮肤科"; break; case '5': cout<<'\t'<<"口腔科"; break; } if (zp2=='Y') //是否为专家门诊 cout<<"\t\t"<<" 是"; else cout<<"\t\t"<<"不 是"; if (zp2=='Y') //挂号费用 cout<<"\t\t"<<"10"; else cout<<"\t\t"<<"5"; cout<<"\n\n================================================================================"; cout<<"\n\n\t\t1.重新填写!\t\t2.信息正确!"; cout<<"\n\n\n请输入您要选择菜单项(1,2):"; cin>>cls; if (strlen(cls)==1) cls1=tolower(cls[0]); //变为小写字母 } if (cls1=='2') { P[I].age =age2; P[I].room=room2; strcpy(P[I].num,temp1); P[I].sex=sex2-'0'; P[I].zp=zp2; I++; return 0; } } //重复输入记录(完) } //--------------挂号功能菜单函数------------------ int hospital::gh_menu() { int qu[5],i,fh; //qu数组用于接收返回值 i数值下标 fh返回的开关 char gn, temp[1000]=""; //为了避免输入多个字符时会产生的错误,例:123,-2等等 //调用统计功能函数求出所需要的值 do //控制返回操作 { for(i=0; i<5; i++) qu[i]=2; //返回时重新赋初值 fh=0; i=0; gn='0'; strcpy(temp,""); clear(); while(gn!='1'&&gn!='2'&&gn!='3'&&gn!='4'&&gn!='q'&&gn!='r') //只能输入1、2或者3 { clear(); cout<<"\n\n\n\t\t\t===请选择您需要的功能===\n"; cout << "\n\t=====- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 医院 候诊 管理 系统 C+ 复习 进程
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文