患者住院管理系统 C,C++_第1页
患者住院管理系统 C,C++_第2页
患者住院管理系统 C,C++_第3页
患者住院管理系统 C,C++_第4页
患者住院管理系统 C,C++_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

患者住院管理系统系统需求分患者住院管理系统是根据某医院对患者住院管理的实际信息进行编写的,主要目的是为了方便医院对病人的情况进行快速地查询和修改,以提高医院的管理系统性,方便医务人员的工作。如今的医院更趋近于人性化,病人的各种详细情况都会被储存到住院管理系统中。另一方面,医院对医生,护士,专家的管理也更为严格。因此我们的住院管理系统中不仅包含了病人的详细信息,还有医务人员的详细信息。这也是对病人更加负责的设计。住院管理系统是一个对内的系统,为了保护病人及医院方的权益,只能由内部人员运行。为了方便内部人员对系统进行管理,系统实现了信息的录入,修改和删除功能。这次课题的主要功能有:病人信息的增加,删除,显示,修改以及科室的查找医生,专家和护士信息的增加,删除,显示,修改。信息主要包括:姓名、性别、年龄、简介、身高、体重、入院日期。病人信息还有科室、床号、基本费用。医生还有科室、工作经验.专家还有科工作经验、对应患者。护士还有负责的工作。所有信息都可保存,读取。系统功能模块四、总体设计1、系统功能分析:由于我们的四个类(患者、专家、医生、护士)的大部分public信息操作使用模板相同,故接下来以患者为例:(1)人物信息添加患者信息包括客患者的姓名、性别、年龄、病情介绍、床号、科室、住院每日消费、身高、体重、入院日期等。这些内容在添加时会被写进"PATIENT.txt,作为医院的信息记录;(2)患者信息查询该功能分为科室信息查询、编号信息查询、所有信息查询。科室信息查询、编号信息查询显示的是分别是储存在文本”PATIENT.txt”里的信息,所有信息查询则则显示"PATIENT.txt"文本里的信息,同时对当前状态判断和显示。(3)患者信息修改该功能包括修改患者姓名、修改床号、修改入院日期等各项信息,每一项都能修改后将新的数据存储在原先的文本中,从而保证下次读取的是修改后的数据。(4)删除患者信息该项功能是在患者出院时,能够将患者的信息删除(存储在"PATIENT.tx七里的信息),从而保证下次其他患者入住该医院时能够重新输入信息。该患者住院管理系统就是以以上4点作为主要功能,并在此基础上通过子菜单进行功能拓展,以增进系统的人性化,使得该系统的整体功能符合患者住院管理的要求。类的描述该患者住院管理系统共定义了有几个类,包括样式类、人物基类。人物基类派生出病人、医生、护士、专家等类。这几个类的定义以及相互之间的关系具体关系如下图所示:样式类template<typenameT>

inttrans(chara)intInputform(intaa,intbb)样式类在该系统中作为操作函数模板,没有进行继承和派生,而是实例化为不同类型的链表,通过该链表的数据域用储从文件中读取到的数据,并且可对数据进行处理,例如查询,删除,排序,使得对文件中数据的操作变得简单而又方便。人物基类(PEOPLE)charName[10];charIntroduction[10];charGender;intAge;DateBrith;intHeight;intWeight;病人

charEvent[10];intPlace;医生护士intCost;专家VoidPATIENT::Add()charEvent[10];charKeshi[10];charEvent[10];voidPATIENT::Revise()intCareer;voidPATIENT::Set()charPatient1[10];voidPATIENT::Show()intCareer;VoidPATIENT::Add()VoidPATIENT::Add()VoidPATIENT::Add()voidPATIENT::Revise()voidPATIENT::Set()voidPATIENT::Revise()voidPATIENT::Revise()voidPATIENT::Show()voidPATIENT::Set()voidPATIENT::Set()如上所示:voidPATIENT::Show()voidPATIENT::Show()人物基类包含了人物所需的最基本的信息,即姓名、简介、性别、年龄、入院日期、身高、体重。病人的属性除了继承了人物基类的属性以外,又增加了有关病人的信息,即客人的科室、床号、每日基本费用。同时增加了add、revise、set、show,用以增加(修改、设置、显示)病人信息。医生的属性除了继承了人物基类的属性以外,也增加了有关医生的信息,即医生的科室和工作经验。专家的属性除了继承了人物基类的属性以外,又增加了有关专家的信息,即专家的负责科室、对应病人、工作经验。护士的属性除了继承了人物基类的属性以外,又增加了有关病人的信息,即护士的负责的床位、工作经验。这5类都会在从文件中读取数据时,作为类型将链表模板类实例化,从而用链表读取这三个类的对象存储在文件中的的数据,并对数据进行适当的操作。各功能菜单介绍(由于四类类似,故以病人为例)主菜单L病人菜单增加病人删除显示所有修改按科室查删除所有返回上一病人找病人层Add()Delete()Show()Revise()Research()Deleteall()Goto()(1)进入系统时退出系统时载入文件里的数据保存数据到文件Load()Save()(2)NODEP.h是主函数功能界面,调用该患者住院管理系统后,首先通过实际情况的要求,在这一界面通过调用switch函数完成类划分,然后再进入病人页面后通过选择性调用单独的功能函数进入该函数界面,在这四个函数里调用响应的函数,完成如上表所示的第3层功能菜单的主要功能。AddP(P*head)是病人信息录入的功能函数界面主界面,首先调用AddP(P*head),在该函数中通过实际需求的选择,调用该函数来实现新病人信息添加的功能。SearchP(P*head)是病人信息查询的功能函数界面,在该界面下,首先调用SearchP(P*head)函数,在该函数中通过实际情况的需求选择调用,来完成查询病人信息。ReviseT(T*head)是病人信息修改功能函数界面,进入该界面后,首先调用ReviseP(P*head)函数,然后再根据实际情况的需求,选择调用PATIENT.h里的函数:实现修改病人信息。DeleteP(P*head)是出院删除信息功能函数界面,处于该界面时,可通过调用DeleteP(P*head))函数,删除存储在"PATIENT.txt"里的病人信息。•••(ShowP();LoadP();SaveP()..)系统功能模块的划分与设计,各功能函数的说明4.1系统功能模块的划分与设计该函数主要分为5个模块:类定义模块、系统功能函数定义模块、功能函数的调用函数定义模块,各个层次界面函数模块、主函数模块。类定义模块该模块主要是人物基类以及派生出的病人、医生、专家、护士的定义以及函数说明,各类同属于该模块,但又相互独立,在这模块中,这5个类的定义以及说明集中在5个相互独立的部分,各自完成自己功能,以方便函数的修改及调用。(2)系统功能函数定义模块该模块的函数不属于以上4各类中的任何一个,主要是关于读写文件操作的函数,例如:check(),这些函数不用建立类的实例,而是直接调用该函数,操作文件的相关信息。(3)功能函数的调用函数定义模块该模块主要包括AddP(P*head)、SearchP(P*head)、ReviseT(T*head)、DeleteP(P*head)、ShowP(P*head);LoadP(P*head);SaveP(P*head)函数体的定义,但这并非是实际操作数据的函数,而是一些通过选择调用类的方法或系统功能函数的函数。(4)各个层次界面函数模块该模块的函数内部主要是调用cout,实现操作界面的输出,将该项作为单独的函数模块主要是考虑到使系统更加简洁明了,不必每次输出界面时繁琐的调用cout语句。(5)主函数模块该部分主要功能是更具实际情况实现对功能函数AddP(P*head)、SearchP(P*head)、ReviseT(T*head)、DeleteP(P*head)、ShowP(P*head);LoadP(P*head);SaveP(P*head)的调用。五、详细设计与实现1、people基类People基类charName[10];charIntroduction[10];//简介charGender;intAge;Date;//入院日期intHeight;//身高intWeighE/体重为了使doctor,patient,nurse,profession都能调用people中该people基类作为一个模板,的public为了使doctor,patient,nurse,profession都能调用people中2、doctor类Doctor类charEvent[10];//负责的科室intCareer;//工作经验(年)VoidDOCTOR::Revise()Doctor类是由people派生而来的,除了有姓名,简介,性别,日期,身高,体重这些基本信息外,还添加了负责的科室和工作经验,并且还添加7voidDOCTOR::Revise()来修改医生信息。3、patient类Patient类charEvent[10];//科室intPlace;//住院床号intCost;//基本费用voidPATIENT::Revise()Patient类是由people派生而来的,除了有姓名,简介,性别,日期,身高,体重这些基本信息外,还添加了负责的科室,住院床号和基本费用,并且还添加了voidPATIENT::Revise()来修改医生信息。4、profession类Profession类charEvent[10];//负责的科室voidPROFESSION::Revisse()Pronfession类是由people派生而来的,除了有姓名,简介,性别,日期,身高,体重这些基本信息外,还添加了负责的科室,对应的病人和工作经验,并且还添加了voidPROFESSION::Revise()来修改医生信息。5、nurse类Nurse类charEvent[10];//负责的科室voidNURSE::Revise()Nurse类是由people派生而来的,除了有姓名,简介,性别,日期,身高,体重这些基本信息夕卜,还添加了负责的科室,对应的病人和工作经验,并且还添加了voidNURSE::Revise()来修改医生信息。六、运行结果1、系统的所有功能主界面I"G\Uiers\Administrator^Deakt口时建善住院管理靠统-副本\Dehug\MA]N.eMe"§"信一司据“人数一1嘉“s,g:系§"信一司据“人数一1嘉“s,g:系.."人牛安士示除出一病决去-护显黑一„J.?„=病病房=H人有找有匚=病所查="tn除示改室除回一一一一增删显堂一一二

m*2*?*4y珂*7=Pleaseinputlifchoice.■"C:\IJ-sers:\AdministratDr^De^ktop\_串.者住浣管基紊沸-剖^\Debug\M/iINje^e":201302221折:土:201302221折:土ZM35骨II1)G)期斗:F::cK一一一J:广-(--C--(-一一l」irr毛别龄介高重r姓性昔算人野霉明用宰号本人入人入人IAIA料房基lit:.■(2)删除"C:\Users\ALdminiistratDiADesktop^M者住充管里季统-g(ll$\Debug\MAIN.exe"inputtheNo.uu^nnadelete:扶二<F/M>:Mfit:骨折身蜀《cm):159稼量(KG〉:9t»入院^期3卯mmdd>:2013-0723基本.黄月:109i/uanDuuwciiILLudeleLeiL?<NZT>半:(3)显示所有病人(4)2013-07-232013-02-22"C:\J-^rs'Adn'"';tra:or\je涯詹住浣萱迫妄洗-§![^\Debug\MAIN.exe^j染AI>■---0子K516麻>:折-一一ZM35骨|||>月莒,,:F,;<u<Krr-;^-l--(----((EL--(----(iLL-J高笑#雷院至号本工富境VL量院堂号本按XJ----------r]..■-1■■.—..IL—------------_■]■-1■'----■_-勺&.孑.110yVF吸谯55外但2@四>□'、--:<y迎K二九%上n>G>期叩N月,,:F,,;:c:Km:■■费四续M-te__1E-l--r-.•铤修改"SUsersVAdmi成traERSskt即瞧者住院管理素宛-iJ^Debug'vMAINjexe"蛉介姓基间<F/M):F=29:上呼吸垣感染<cm>:IGO<WC>:E5日期S罗-nni-dd〉:2013-07-23=「争吸苴:2费用:20^uanhonseiilieitenumb.nt:iiai*eijise_i.Nameb.Introduntionc.Genderd-Cost(otherhntteinsexxfc>Aigee.DatefeHeightg=Weighth.Keshii.BedNo姓名:李三(5)科室查找_nC\Users\Administratc-r\Desktop\MWffi^BS^^-slt^XDebugXMAIN.exeninputtheclassuwant骨科"C:\Users\AdministratDrXDesttcp'L皇君住务管区^妹-国AIN用巴1.2医生r-K1.2医生r-K有-':'查^-*-扪朕示弘至除回增HII显修科理Pleaseinputurchoice.*suredeleteallPATIENTdata?<V/N>n_"C:MJ^ersMdministratar\DesktcipV^^住院管理至浇-副本\Debug\MAIN,ex£「XMMKXMMKXMMKXM:<XMMKXXM邪除示改除回XX

b情删显修矍"心『*2瑕*4*5*6『Pleaseinputili*chozee.(1)增加医生骨科主治医生,:201202骨科主治医生,:20120223II

m785纱砰:1:63肩0-寐/M21+II1>G>职」:10.■<F-;<c<K-n至>姓芸间彖嘉家AAAtA.A聂云刖jl-l-l-l-iM<<^--krrr--krrr-4-.rr-4-.rh-4-*4-.rrr--krrr-...-IJ1一请请清请青请请输工)2/|\I"C;\UseiiT\Admiinii£trator\De£ktop\^Wffi^®3^^-§J^,Debug\MAIN.exa"inputCheHo.uwannadelete卷小明另!tF/M"M塞薯士生士师,骨科主治医生■:局《珈):16S重<KG):E0»期3阳?—miiTd):2010-08-05谯:W验尊〉:10yearsuvmnttodeleteit?>=陈某<FZrt>:rt;竺博士生导师,骨科主治医生.%H<yyyy-mrn-ad>:2010-08-05匚玲验《年〉=±0ye<irs2012-82-232002-03-22"C:\Ussirs'AdministnaMrXD巴ktop谴者住浣管是至统-^]^\.Debyg\MAIN.exe"(4)删除所有医生-No姓隹简年船半1--S->隹-:5GV2-乎;5871算y骨Sr二>r评G>^^<l(l=ts经L®肮=栏.3出司龄介-O^-S-K-U^fe导5二G..H1李*如M华>:G>^^意Mms经任'nC:\Ustrs\Admini5tratorV3esktop\l者住院管券貌-副砂Debug'^AIMexE右生牛K医医M-王有有一*阮所^-*-„„加除示改除IDI*增删显修删返Pleaseinputupchoice»suredeletealljudgfedata?<^/N>1.3专家增加专家险b土+土显刁、所有专涿修改©■冢*2*3*4*6************村**分*溶*增加专家险b土+土显刁、所有专涿修改©■冢(1)增加专家"■CAUs^\Admirii5trmtMD或ktop健者住院管理至貌-副^\Debug\MA]N.exe"2QQQQIQI5yy科子.X外骨席25<:E:ynflrn正:>_K应验名别餐等重芸—姓!aaaaaaab^主后主扃主-B土乓主长主呈后.■_.ss.印T-(2)删除_"C:\Uiers\AdministratcryDeskt:p'^住院萱定系统-§!l^\Debug\MAIN,e^e'theNo,uuannadelete:小明<F/M>:M::着士生导师,骨科三治医生。<UII|>:169<](G>:GO日期3火一nn-dd):2010-08-05节耳笔渭并算验<=〉:10years.uanttodeleteit?<N/¥>(3)显示所有专家''□'上邱"出11<,垃闩:。1/'・口已沁冲.建寺主浣管建妄密-^$\Debug,,MA]N.eice"华>:小455专mG)ffi科人驱-<F--%昌病经.1瓷琴高M院责应作.2奇*、INO姓Wi回W入负对工INO姓间辛5各1660ITilTi科20

十骨三-

y:>

3室告,主骨科方面尤为突出2000-02-22陈驾专:[!)某>:5J-=-_=l71io<ytjyy-ii[i-dd>:室:骨科=王麻子华>:小455专mG)ffi科人驱-<F--%昌病经.1瓷琴高M院责应作.2奇*、INO姓Wi回W入负对工INO姓间辛5各1660ITilTi科20

十骨三-

y:>

3室告,主骨科方面尤为突出2000-02-22陈驾专:[!)某>:5J-=-_=l71io<ytjyy-ii[i-dd>:室:骨科=王麻子2000-01-0125vears(5)删除所有专家□S"C:'Use^\Adm'-'stiiTor..De:ktcp涯善住浣■曾建至统-副本\Debug\MAIN.s-xer一加除示改除回一一一增删尿修黑一一-二*|*1"|*3|*4|*5“*一*一一一一家一专*M„二家B专层一一所三一Pleaseinputnrchoice.5sui'edeletcallPROFESSIONdata?<V/H>ji1.4护士*€MX护层心十有有-户所勺“供示液除回“增ffi!l昱修%MMX=165易与人构通.1

x:<s

i___^

请也3<cni><KG>=60JVWiumiidd>=20126222"C:\U^e-3\r\dnr'stra:o-\Cesktc『度善住注彗建熹燃-i!]^\Debijg\MAIN.exe"inputtlacNo-u.wannadeLcte1址<FZM>:F:24谆必温柔善良,善于和病.人交乔身昌〈cm):165tt<<KG>:53DoILdd>:2012-02-22(3)显示所有"C:\lfcer5\AdministratcrADesktop\B者住院菅建至统-§H^\Debug\MAIN.exe".1鬲龄介吉蚩院责.2一昂龄介高重院主强INO姓间餐入负INO姓^^间慕入负请.F5F善16莉>:小F/M24■■-C-■-G>期工<CKms5F善1660HIJ>:柔■;小现温源期工意-sCKm^y(4)修改"CiXUsers^Adminr5trator\Desktop^考住院管建亲携■副本,Deb廿gLMAIN削史"f龄:24<1■:温栾善艮,雪十却病人奁摘。昌《cm,165重《KG"53『另口期《yyyy-mm-dd>:2012-02-22否需否需choosetheitefnuuanttoreuise-a.Namet.Introductionc.Genderd.flgee.Datef.Heightg.Weighth.Keshi<otrierhottensexit>请输入姓名:夏利.

拶群士增1l[p户十衽2.州睡输一昱小所有言一修改.拶群士Pleastinputu.rchuice-Esm'edeleteallstuffdata?<YzH>间』"C:\Users\Administratcr\Desktop\B^4i^.^SM^-S!]K\Debog\MAIN.exer,.1名别箕间』"C:\Users\Administratcr\Desktop\B^4i^.^SM^-S!]K\Debog\MAIN.exer,.1名别箕4童院宰号本.2名M龄商量匮至号本困基0N5019三;.折.■张ZM胃m留骨1用-^--a<K日•:■§F必60.0豹直0y顶1-nyJL2匹>:呼•:■7吸李ZM29上mW卷#用:a::a^s:iff2013-07-23'CiXUsers'^AdmmistratorXDesIctopV^者住院管皇至炼-副^'.DebLig\MAIN.exe''T1=小明cf/h>:ri'CiXUsers'^AdmmistratorXDesIctopV^者住院管皇至炼-副^'.DebLig\MAIN.exe''T1=小明cf/h>:ri:酱士生导师,骨科主治医生。<GHk>;1C0<HG>:6ES期《阳阳-inn-dd〉:2010-08-05科室渭科经验《年):10^eaps:李华<F/MJ:M:36:硕士生导师n<cn>:165<MG>=G5日期<yysy-mm-dd>:2002-03-22'"室川乎吸道:12i/eai's姓奇小华O:尊治各种疑赃杂症,在骨科方面尤为突出.身茴《cm》:165ft董司C〉,G6[期《阳阳-mni-dd〉=2000-02-22斯室逍科荷人£张二空验(年)iSe^ears:小莉<FZM>=F:24:温柔善良,善于和病人父流。Ccm>=1G5<MG>:53日期<yysy-mm-dd>:观说-咀-找1.6删除所有数据"CfyUsers^dministrato^DesktopWWffi^^eSM^-BI^.Debug\M.yN.exer,有墓人生示ls£病医专护里III退人数fi自.j

■l-_dPleaseinputilpchoice-1.7退出系统"C:\Users\Adm而尚成。代D乾ktopM者生琮菅舞至城-§!^..Debug\MAIN,eMe"._■=■回Dauwannasauethedata?<¥/H>七、程序清单主函数://MAIN.cpp#include<iostream>#include<string>#include<vector>#include"PATIENT.h"#include"cstring"#include"PEOPLE.h"#include"PROFESSION.h"#include"MENU.h"#include<fstream>#include<stdio.h>#include<stdlib.h>#include<iomanip>#include<conio.h>#include"NODEP.h"#include"NODEPR.h"#include"NODEN.h"#include"NODED.h"usingnamespacestd;intmain(){P*headP=newP;//新建链表读入数据headP->next=NULL;//新建链表读入数据LoadP(headP);//新建链表读入数据PR*headPR=newPR;//新建链表读入数据headPR->next=NULL;//新建链表读入数据LoadPR(headPR);//新建链表读入数据D*headD=newD;//新建链表读入数据headD->next=NULL;//新建链表读入数据LoadD(headD);//新建链表读入数据N*headN=newN;//新建链表读入数据headN->next=NULL;//新建链表读入数据LoadN(headN);//新建链表读入数据system("PAUSE");inti1,i2;chari3;while(1){AAA:Printmenumain();i1=Inputform(1,7);switch(i1){case1://病人选项while(1){Printmenu1();i2=Inputform(1,7);switch(i2){case1://新增病人system("cls");AddP(headP);break;case2://删除病人system("cls");Delete<P>(headP);break;case3:〃显示所有system("cls");ShowP(headP);system("PAUSE");break;case4:〃修改system("cls");ShowP(headP);Revise<P>(headP);break;case5:system("cls");SearchP(headP);system("PAUSE");break;case6:cout<<"suredeleteallPATIENTdata?(Y/N)"<<endl;cin>>i3;if(i3=='Y'||i3=='y'){Deleteall<P>(headP);}break;case7:gotoAAA;}}break;case2://医生选项while(1){Printmenu2();i2=Inputform(1,6);switch(i2){case1://新增医生system("cls");AddD(headD);break;case2://删除医生system("cls");Delete<D>(headD);break;case3:〃显示所有system("cls");ShowD(headD);system("PAUSE");break;case4://修改system("cls");ShowD(headD);Revise<D>(headD);break;case5:cout<<"suredeletealljudgedata?(Y/N)"<<endl;cin>>i3;if(i3=='Y'lli3=='y'){Deleteall<D>(headD);}break;case6:gotoAAA;}}case3:〃专家选项while(1){Printmenu3();i2=Inputform(1,6);switch(i2){case1://新增专家system("cls");AddPR(headPR);break;case2://删除专家system("cls");Delete<D>(headD);break;case3:〃显示所有system("cls");ShowPR(headPR);system("PAUSE");break;case4://修改system("cls");ShowPR(headPR);Revise<PR>(headPR);break;case5:cout<<"suredeleteallPROFESSIONdata?(Y/N)"<<endl;cin>>i3;if(i3=='Y'||i3=='y'){Deleteall<PR>(headPR);}break;case6:gotoAAA;}}break;case4://护士选项while(1)Printmenu4();i2=Inputform(1,6);switch(i2){case1://新增护士system("cls");AddN(headN);break;case2://删除护士system("cls");Delete<N>(headN);break;case3:〃显示所有system("cls");ShowN(headN);system("PAUSE");break;case4://修改system("cls");ShowN(headN);Revise<N>(headN);break;case5:cout<<"suredeleteallstuffdata?(Y/N)"<<endl;cin>>i3;if(i3=='Y'||i3=='y'){Deleteall<N>(headN);}break;case6:gotoAAA;}break;case5://显示所有人选项system("cls");ShowP(headP);ShowD(headD);ShowPR(headPR);ShowN(headN);system("PAUSE");gotoAAA;case6://删除所有数据Deleteall<P>(headP);Deleteall<PR>(headPR);Deleteall<N>(headN);Deleteall<D>(headD);gotoAAA;case7://退出系统选项system("cls");cout<<"Douwannasavethedata?(Y/N)"<<endl;cin>>i3;if(i3=='Y'||i3=='y'){SaveP(headP);SaveN(headN);SavePR(headPR);SaveD(headD);}cout<<"退出系统"<<endl;return0;}}系统调用函数:

//MENU.h#ifndef_MENU_h_#define_MENU_h_#include"iostream"voidPrintmenumain();voidPrintmenu1();voidPrintmenu2();voidPrintmenu3();voidPrintmenu4();voidPrintmenu4()(*"<<endl;*"<<endl;*"<<endl;*"<<endl;*"<<endl;*"<<endl;*"<<endl;*"<<endl;choice."<<endl;}voidPrintmenu3()system("cls");-Lsystem("cls");-L//"业业业业业业业业业业业业业业业业业业业cout<<*******************cout<<"*1.增加护士cout<<"*2.删除cout<<"*3.显示所有cout<<"*4.修改cout<<"*5.删除所有护士cout<<"*6.返回上一层-L//"业业业业业业业业业业业业业业业业业业业cout<<*******************cout<<"PleaseinputurcoutW‘******************"«endI;cout«"*1.增加专家*"«endI;cout«"*2.删除*"«endI;cout«"*3.显示所有专家*"«endI;cout«"*4.修改*"«endI;cout«"*5.删除所有专家*"«endI;cout«"*6.返回上一层*"«endI;coutW11******************11«endI;cout«"PIeaseinputurchoice."«endI;}voidPrintmenu2()(system("cIs");coutW11******************11«endI;cout«"*1.增加医生*"«endI;cout«"*2.删除*"«endI;cout«"*3.显示所有医生*"«endI;cout«"*4.修改*"«endI;cout«"*5.删除所有医生*"«endI;cout<<"*6.返回上一层*"<<endl;-L//"业业业业业业业业业业业业业业业业业业Hcout<<******************<<endl;cout<<"Pleaseinputurchoice."<<endl;}voidPrintmenu1()(system("cls");._L//''业业业业业业业业业业业业业业业业业业>1cout<<******************<<endl;cout<<"*1.增加病人*"<<endl;cout<<"*2.删除*"<<endl;cout<<"*3.显示所有病人*"<<endl;cout<<"*4,修改*"<<endl;cout<<"*5.科室查找*"<<endl;cout<<"*6.删除所有病人*"<<endl;cout<<"*7.返回上一层*"<<endl;-L//"业业业业业业业业业业业业业业业业业业Hcout<<******************<<endl;cout<<"Pleaseinputurchoice."<<endl;}voidPrintmenumain()(-L//"业业业业业业业业业业业业业业业业业业业cout<<*******************TOC\o"1-5"\h\zcout<<"*1.病人*"<<endl;cout<<"*2,医生*"<<endl;cout<<"*3.专家*"<<endl;cout<<"*4,护士*"<<endl;cout<<"*5.显示所有人员信息*"<<endl;cout<<"*6.删除所有数据*"<<endl;cout<<"*7,退出系统*"<<endl;._L//''业业业业业业业业业业业业业业业业业业业cout<<*********************"<<endl;cout<<"Pleaseinputurchoice."<<endl;}/*main()(Printmenumain();}*/#endif//DATE.h#ifndef_DATE_h_#define_DATE_h#include<iostream>#include<iomanip>#include"TRANSFORM.h"usingnamespacestd;namespace(constintDAYS_BEFORE_MONTH[]={0,31,59,90,120,151,181,212,243,273,304,334,365};}classDate//日期{public:Date(intyear=0,intmonth=0,intday=0);intGetYear(){returnY;}intGetMonth(){returnM;}intGetDay(){returnD;}voidSet();//设置日期DateGetDate()//返回日期{returnDate(Y,M,D);}voidShow();//显示日期boolisLeapYear()const{returnY%4==0&&Y%100!=0||Y%400==0;}intdistance(constDate&date)returntotalDays-date.totalDays;}protected:intY,M,D;inttotalDays;};Date::Date(intyear,intmonth,intday):Y(year),M(month),D(day){intyears=year-1;totalDays=years*365+years/4-years/100+years/400+DAYS_BEFORE_MONTH[month-1]+day;if(isLeapYear()&&month>2)totalDays++;}voidDate::Show(){cout.fill('0');cout<<setw(4)<<Y<<'-'<<setw(2)<<M<<'-'<<setw(2)<<D<<endl;}voidDate::Set(){intyear,month,day;while(1){year=transform();month=transform();day=transform();if(month>12||month<1||day<1||day>31)cout<<"日期错误请重新输入"<<endl;elsebreak;}Y=year;M=month;D=day;}/*main()Datea;a.Set();a.Show();}*/#endif//TRANSFORM.h#ifndef_TRANS_H_//只能返回整形的输入#define_TRANS_H_#include"iostream"#include"cstring"#include"string"usingnamespacestd;inttransform();template<typenameT>Tadencifang(Ta,intn);inttrans(chara);intInputform(intaa,intbb);inttransform(){charstr[10];inta=0;while(1){cin>>str;inti=strlen(str);for(intn=0;i!=0;){a=trans(str[n]);if(a==10)break;n++;i--;}if(i==0)break;}inti=strlen(str);intaa=0;for(intn=0;i!=0;){aa+=trans(str[n])*adencifang(10,i-1);i--;n++;}returnaa;}template<typenameT>Tadencifang(Ta,intn)//a的n次方{Tsum=a;if(n-1==-1)sum=1;for(intj=0;j<n-1;j++){sum=sum*a;}returnsum;}inttrans(chara){switch(a){case'1':return1;case'0':return0;case'2':return2;case'3':return3;case'4':return4;case'5':return5;case'6':return6;case'7':return7;case'8':return8;case'9':return9;default:cout<<"Inputerror.Pleasetryagain."<<endl;return10;}}intInputform(intaa,intbb){intaa1;while(1){aa1=transform();if(aa1<aa||aa1>bb){cout<<"Inputerror.Pleasetryagain."<<endl;}elsebreak;}returnaa1;}/*voidmain(){inta;a=adencifang(10,2);cout<<a;}*/#endif人物基类//PEOPLE.h#ifndef_PEOPLE_h_#define_PEOPLE_h_#include"DATE.h"#include"TRANSFORM.h"#include"string"#include"iostream"usingnamespacestd;classPeople{protected:charName[10];charIntroduction[10];//简介charGender;intAge;DateBrithy/入院日期intHeight;//身高intWeight;//体重public:voidSetName(){cout<<"请输入姓名:";cin>>Name;}voidSetGender(){stringgender;cout<<"请输入性别(F/M):";while(1)cin>>gender;if(gender!="F"&&gender!="f"&&gender!="M"&&gender!="m")cout<<"格式错误请重新输入(F/M):";elsebreak;}if(gender=="m")Gender='M';if(gender=="M")Gender='M';if(gender=="f")Gender='F';if(gender=="F")Gender='F';}voidSetAge()//需要完善{cout<<"请输入年龄:";Age=transform();}voidSetIntroduction(){cout<<"请输入简介:”;cin>>Introduction;}voidSetHeight(){cout<<"请输入身高(m):";Height=transform();}voidSetWeight(){cout<<"请输入体重(KG):";Weight=transform();}voidSetBrith()cout<<"请输入入院日期(yyyymmdd):";Brith.Set();}stringGetName(){returnName;}stringGetIntroduction()//返回简介{returnIntroduction;}charGetGender(){returnGender;}intGetAge(){returnAge;}DateGetBrith()//返回出生日期{returnBrith;}intGetHeight()//返回身高{returnHeight;}intGetWeight()//返回体重{returnWeight;}voidSet();//设置voidShow();//显示所有信息};voidPeople::Set(){People::SetName();People::SetGender();People::SetAge();People::SetIntroduction();People::SetHeight();People::SetWeight();People::SetBrith();}voidPeople::Show(){cout<<"姓名:"<<Name<<endl;cout<<"性别(F/M):"<<Gender<<endl;cout<<"年龄:"<<Age<<endl;cout<<"简介:"<<Introduction<<endl;cout<<"身高(m):"<<Height<<endl;cout<<"体重(KG):"<<Weight<<endl;cout<<"入院日期(yyyy-mm-dd):";Brith.Show();}#endif人物基类派生类//PATIENT.h#ifndef_PATIENT_h#define_PATIENT_h#include"DATE.h"#include"string"#include"iostream"#include"PEOPLE.h"#include"TRANSFORM.h"usingnamespacestd;classPATIENT:publicPeople{protected:charEvent[10];//科室intPlace;//住院床号intCost;//基本费用public:stringGetEvent()//科室{returnEvent;}intGetPlace()//住院床号{returnPlace;}intGetCost()//基本费用{returnCost;}voidSetEvent(){cout<<"输入科室:”;cin>>Event;}voidSetPlace(){cout<<"输入床号:";Place=transform();}cout<<"输入基本费用:";Cost=transform();}voidShow();voidRevise();voidSet();//设置数据};voidPATIENT::Revise(){stringi;chari1;system("cls");PATIENT::Show();cout<<"是否需要修改?(N/Y)”;cin>>i;if(i==”Y”||i==”y”){while(1){cout<<"choosetheitemuwanttorevise."<<endl;cout<<"a.Nameb.Introductionc.Genderd.Agee.Datef.Heightg.Weighth.Keshii.BedNo.j.Cost(otherbottemsexit)"<<endl;cin>>i1;switch(i1){case'a':case'A':People::SetName();break;case'b':case'B':People::SetIntroduction();break;case'c':case'C':People::SetGender();break;case'd':case'D':People::SetAge();break;case'e':case'E':People::SetBrith();break;case'f:case'F':People::SetHeight();break;case'g':case'G':People::SetWeight();break;case'h':case'H':PATIENT::SetEvent();break;case'i':case'I':PATIENT::SetPlace();break;case'j':case'J':PATIENT::SetCost();break;}cout<<"是否需要继续修改?(N/Y)”;cin>>i;if(i==”N”||i==”n”)break;}/*while(1){system("cls");PATIENT::Show();cout<<"是否需要继续修改?(N/Y)”;cin>>i;if(i=='N'||i=='n'){cout<<"choosetheitemuwanttorevise."<<endl;cout<<"a.Nameb.Introductionc.Genderd.Agee.Datef.Heightg.Weighth.Keshii.BedNo.j.Cost(otherbottemsexit)";cin>>i;switch(i){case'a':case'A':People::SetName();break;case'b':case'B':People::SetIntroduction();break;case'c':case'C':People::SetGender();break;case'd':case'D':People::SetAge();break;case'e':case'E':People::SetBrith();break;case'f:case'F':People::SetHeight();break;case'g':case'G':People::SetWeight();break;case'h':case'H':PATIENT::SetEvent();break;case'i':case'I':PATIENT::SetPlace();break;case'j':case'J':PATIENT::SetCost();break;}}if(i=='N'||i=='n')break;}*/}}voidPATIENT::Set(){People::Set();PATIENT::SetEvent();PATIENT::SetPlace();PATIENT::SetCost();PATIENT::Revise();}People::Show();cout<<"科室:"<<Event<<endl;cout<<"床号:"<<Place<<endl;cout<<"基本费用:"<<Cost<<"yuan"<<endl;}/*voidmain(){PATIENTa;a.Set();a.Show();}*/#endif//DOCTOR.h#ifndef_DOCTOR_h_#define_DOCTOR_h_#include"DATE.h"#include"string"#include"iostream"#include"PEOPLE.h"usingnamespacestd;classDOCTOR:publicPeople{protected:charEvent[10];//负责的科室intCareer;//工作经验(年)public:stringGetEvent()//负责的科室{returnEvent;intGetCareer()//工作经验(年){returnCareer;}voidSetEvent(){cout<<"输入负责的科室:";cin>>Event;}voidSetCareer(){cout<<"X作经验(年):”;Career=transform();}voidShow();//显示数据voidRevise();voidSet();//设置数据};voidDOCTOR::Revise(){chari;system("cls");DOCTOR::Show();cout<<"是否需要修改?(N/Y)”;cin>>i;if(i=='Y'||i=='y'){cout<<"choosetheitemuwanttorevise."<<endl;cout<<"a.Nameb.Introductionc.Genderd.Agee.Datef.Heightg.Weighth.Keshii.Career(otherbottemsexit)"<<endl;cin>>i;switch(i){case'A':People::SetName();break;case'b':case'B':People::SetIntroduction();break;case'c':case'C':People::SetGender();break;case'd':case'D':People::SetAge();break;case'e':case'E':People::SetBrith();break;case'f:case'F':People::SetHeight();break;case'g':case'G':People::SetWeight();break;case'h':case'H':DOCTOR::SetEvent();break;case'i':case'I':DOCTOR::SetCareer();break;}while(1){system("cls");DOCTOR::Show();cout<<"是否需要继续修改?(N/Y)”;cin>>i;if(i=='Y'lli=='y'){cout<<"choosetheitemuwanttorevise."<<endl;cout<<"a.Nameb.Introductionc.Genderd.Agee.Datef.Heightg.Weighth.Keshii.Career(otherbottemsexit)";cin>>i;switch(i){case'A':People::SetName();break;case'b':case'B':People::SetIntroduction();break;case'c':case'C':People::SetGender();break;case'd':case'D':People::SetAge();break;case'e':case'E':People::SetBrith();break;case'f:case'F':People::SetHeight();break;case'g':case'G':People::SetWeight();break;case'h':case'H':DOCTOR::SetEvent();break;case'i':case'I':DOCTOR::SetCareer();break;}}if(i=='N'||i=='n')break;}}}voidDOCTOR::Set(){People::Set();DOCTOR::SetEvent();DOCTOR::SetCareer();DOCTOR::Revise();}voidDOCTOR::Show(){People::Show();cout<<"负责的科室:"<<Event<<endl;cout<<”工作经验(年):"<<Career<<"years"<<endl;}/*main(){DOCTORa;a.Set();a.Show();}*/#endif//PROFESSION.h#ifndef_PROFESSION_h_#define_PROFESSION_h_#include"DATE.h"#include"string"#include"TRANSFORM.h"#include"iostream"#include"PEOPLE.h"usingnamespacestd;classPROFESSION:publicPeople{protected:charKeshi[10];//负责的科室charPatient1[10];//对应的病人•intCareer;//X作经验(年)public:voidSetKeshi(){cout<<"输入负责的科室:";cin>>Keshi;}voidSetPatient1()cout<<"输入对应患者:";cin>>Patient1;}voidSetCareer(){cout<<”工作经验(年):”;Career=transform();}stringGetKeshi()//负责的科室{returnKeshi;}stringGetPatient1()//负责的科室{returnPatient1;}intGetCareer()//X作经验(年){returnCareer;}voidShow();//显示数据voidRevise();voidSet();//设置数据};voidPROFESSION::Revise(){chari;system("cls");PROFESSION::Show();cout<<"是否需要修改?(N/Y)”;cin>>i;if(i=='Y'||i=='y'){cout<<"choosetheitemuwanttorevise."<<endl;cout<<"a.Nameb.Introductionc.Genderd.Agee.Datef.Heightg.Weighth.Keshii.Patientj.Career(otherbottemsexit)"<<endl;cin>>i;switch(i){case'a':case'A':People::SetName();break;case'b':case'B':People::SetIntroduction();break;case'c':case'C':People::SetGender();break;case'd':case'D':People::SetAge();break;case'e':case'E':People::SetBrith();break;case'f':case'F':People::SetHeight();break;case'g':case'G':People::SetWeight();break;case'h':case'H':PROFESSION::SetKeshi();break;case'i':case'I':PROFESSION::SetPatient1();break;case'j':case'J':PROFESSION::SetCareer();break;}while(1){system("cls");PROFESSION::Show();cout<<"是否需要继续修改?(N/Y)”;cin>>i;if(i=='Y'lli=='y'){cout<<"choosetheitemuwanttorevise."<<endl;cout<<"a.Nameb.Introductionc.Genderd.Agee.Brithf.Heightg.Weighth.Keshii.Patientj.Career(otherbottemsexit)";cin>>i;switch(i){case'a':case'A':People::SetName();break;case'b':case'B':People::SetIntroduction();break;case'c':case'C':People::SetGender();break;case'd':case'D':People::SetAge();break;case'e':case'E':People::SetBrith();break;case'f':case'F':People::SetHeight();break;case'g':case'G':People::SetWeight();break;case'h':case'H':PROFESSION::SetKeshi();break;case'i':case'I':PROFESSION::SetPatient1();break;case'j':case'J':PROFESSION::SetCareer();break;}}if(i=='N'lli=='n')break;}}}voidPROFESSION::Set()People::Set();PROFESSION::SetKeshi();PROFESSION::SetPatient1();PROFESSION::SetCareer();PROFESSION::Revise();}voidPROFESSION::Show(){People::Show();cout<<"负责的科室:"<<Keshi<<endl;cout<<"对应病人:"<<Patient1<<endl;cout<<”工作经验(年):"<<Career<<"years"<<endl;}/*voidmain(){PROFESSIONa;a.Set();a.Show();}*/#endif//NURSE.h#ifndef_NURSE_h_#define_NURSE_h_#include"DATE.h"#include"string"#include"iostream"#include"PEOPLE.h"usingnamespacestd;classNURSE:publicPeopleprotected:charEvent[10];//负责的科室public:stringGetEvent()//负责的科室{returnEvent;}voidSetEvent(){cout<<"负责的科室:";cin>>Event;}voidShow();//显示数据voidRevise();voidSet();//设置数据};voidNURSE::Revise(){chari;system("cls");NURSE::Show();cout<<"是否需要修改?(N/Y)”;cin>>i;if(i=='Y'||i=='y'){cout<<"choosetheitemuwanttorevise."<<endl;cout<<"a.Nameb.Introductionc.Genderd.Agee.Datef.Heightg.Weighth.Keshi(otherbottemsexit)"<<endl;cin>>i;switch(i){case'a':case'A':People::SetName();break;case'b':case'B':People::SetIntroduction();break;case'c':case'C':People::SetGender();break;case'd':case'D':People::SetAge();break;case'e':case'E':People::SetBrith();break;case'f:case'F':People::SetHeight();break;case'g':case'G':People::SetWeight();break;case'h':case'H':NURSE::SetEvent();break;}while(1){system("cls");NURSE::Show();cout<<"是否需要继续修改?(N/Y)”;cin>>i;if(i=='Y'lli=='y'){cout<<"choosetheitemuwanttorevise."<<endl;cout<<"a.Nameb.Introductionc.Genderd.Agee.Datef.Heightg.Weighth.Keshi(otherbottemsexit)";cin>>i;switch(i){case'a':case'A':People::SetName();break;case'b':case'B':People::SetIntroduction();break;case'c':case'C':People::SetGender();break;case'd':case'D':People::SetAge();break;case'e':case'E':People::SetBrith();break;case'f:case'F':People::SetHeight();break;case'g':case'G':People::SetWeight();break;case'h':case'H':NURSE::SetEvent();break;}}if(i=='N'||i=='n')break;}}}voidNURSE::Set(){People::Set();NURSE::SetEvent();NURSE::Revise();}voidNURSE::Show(){People::Show();cout<<"负责的工作:"<<Event<<endl;}/*main(){NURSEa;a.Set();a.Show();}*/#endif系统功能//NODEP.h#ifndef_NODEP_H_#define_NODEP_H_#include<iostream>#include<string>#include<vector>#include"PATIENT.h"#include"PEOPLE.h"#include<fstream>#include<stdio.h>#include<stdlib.h>#include<iomanip>#include<conio.h>usingnamespacestd;structP{public:P*next;PATIENTAA;};voidInsertP(P*front,P*back,P*self);/插入voidAddP(P*head);//从第一名开始排序添加病人voidShowP(P*head);//显示所有病人信息voidDeleteP(P*head);//删除某个病人信息voidReviseP(P*head);//(修改某个病人信息voidSaveP(P*head);/^"PATIENT.txt”储存病人信息voidLoadP(P*head);//从"PATIENT.txt犊取病人信息voidSearchP(P*head);//查找voidDeleteallP(P*head);template<typenameT>voidDeleteall(T*head);template<typenameT>voidDelete(T*head);template<typenameT>voidRevise(T*head);template<typenameT>voidRevise(T*head){cout<<"请输入要修改人员的编号”;intnumber;cin>>number;T*temp1=head;for(inti=1;1;i++){temp1=temp1->next;if(temp1==NULL){cout<<"nosuchapeople."<<endl;system("PAUSE");break;}if(number==i){temp1->AA.Revise();break;}}}template<typenameT>voidDelete(T*head)cout<<"inputtheNo.uwannadelete";intnumber;cin>>number;T*temp1=head->next;T*temp2=head;charchoice;for(inti=1;1;i++){if(number==i){temp1->AA.Show();cout<<"Douwanttodeleteit?(N/Y)"<<endl;cin>>choice;if(choice=='Y'||choice=='y'){temp2->next=temp1->next;deletetemp1;break;}elsebreak;}if(temp1->next==NULL)break;temp2=temp1;temp1=temp1->next;}}template<typenameT>voidDeleteall(T*head){T*temp1=head->next;T*temp;for(;1;){if(temp1==NULL){break;}else{temp=temp1;temp1=temp1->next;deletetemp;}}head->next=NUL

温馨提示

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

评论

0/150

提交评论