C语言课程设计报告医院专家门诊挂号系统_第1页
C语言课程设计报告医院专家门诊挂号系统_第2页
C语言课程设计报告医院专家门诊挂号系统_第3页
C语言课程设计报告医院专家门诊挂号系统_第4页
C语言课程设计报告医院专家门诊挂号系统_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

C语言课程设计报告医院专家门诊挂号系统华中科技大学计算机科学与技术学院C语言程序设计课程设计实验报告题目医院专家门诊挂号系统专业计算机科学与技术班级计算机XXX班学号XXXX姓名XXX成绩指导教师XXX完毕日期20XX年10月10日

一、系统功效模块图主菜单数据管理保存和读取统计查询删除修改录入各项信息统计科室、专家、挂号信息查询打印报表支持多核心字的搜索引擎退出添加

二、数据构造设计及使用方法阐明重要的三个构造(采用了十字交叉链表)科室信息的构造、专家信息的构造及挂号信息的构造。

分别以下/*科室信息*/structTroom{charnum[11];/*保存科室号*/charname[20];/*保存科室名*/charman[20];/*保存负责人*/chartel[12];/*保存电话*/inttot_reg;/*保存科室的总挂号量*/structTroom*next;/*保存指向下一种科室信息的指针*/structTpro*sub;/*保存指向专家信息的头指针*/};/*挂号信息构造体*/structTreg{charpro_num[11];/*保存专家编号*/charcase_num[15];/*保存病历号*/charpatient_name[20];/*保存患者姓名*/chardate[11];/*保存挂号日期*/charassistant[20];/*保存挂号人员*/intserial_num;/*保存挂号流水号*/floatfee;/*保存挂号费*/structTreg*next;/*保存指向下一种挂号信息的指针*/};/*专家信息构造体*/structTpro{charroom_num[11];/*保存科室号*/charnum[11];/*保存专家编号*/charname[20];/*保存姓名*/charbirth[11];/*保存出生日期*/charsex;/*保存性别*/chartel[12];/*保存电话*/charprofession[15];/*保存职称*/charsummary[50];/*保存介绍*/inttot_reg;/*保存专家的总挂号量*/structTpro*next;/*保存指向下一种专家信息的指针*/structTreg*sub;/*保存指向挂号信息的头指针*/};使用方法阐明图示以下head科室1科室2科室nNULL专家1基本信息专家2基本信息专家n基本信息专家1挂号统计链专家2挂号统计链专家n挂号统计链

三、程序构造流程图系统总体流程图开始主菜单录入信息修改信息插入信息删除信息保存文献读取文献查询信息统计数据打印报表退出系统科室信息专家信息挂号信息读入核心字多核心字搜索结束查询流程图查询信息输入核心字从信息总体中提取含有核心字的信息输出信息

四、各模块功效数据管理模块中包含录入信息、修改信息、插入信息和删除信息四大功效1、录入信息录入科室、专家、挂号信息;2、修改信息对科室、专家、挂号信息进行修改;3、添加信息添加科室或专家;4、删除信息取消科室或辞退专家。

统计查询模块中包含查询信息和统计数据1、查询信息可查询全部科室、专家和挂号信息,还能够查询某个特定的信息,使用多核心字匹配和KMP字符串匹配技术;2、统计数据有3种统计的信息可供查看(1)各科室的挂号量;(2)各专家的挂号量;(3)某天挂号的患者的基本信息。

保存和读取模块保存文献和读取文献;退出程序退出医院专家门诊挂号系统。

各功效函数的有关阐明见附录中的源程序清单。

五、实验成果整个程序运行起来很正常,没有出现bug,我这就把输出成果的截屏贴在下面科室基本信息(部分)专家基本信息(部分)挂号基本信息(部分)统计信息均精确无误各科室的挂号量各专家的挂号量某天挂号的基本信息

六、心得体会第一次写管理系统这样的大型程序,说真的,有点不习惯,以前的某些代码风格成了我这次课设的最大障碍。

例如说,以前写小程序由于普通只有一种主函数,因此诸多变量都是局部变量,而这次大型作业规定有诸多的函数互相交叉,共同完毕某些功效,因此必须要用全局变量。

尚有我的编程风格无意义的变量名使我吃了诸多苦头,诸多时候,我的变量名都混淆了,以至于我最后改的时候很麻烦。

这次课设,让我学了诸多东西,除了代码风格和编程习惯的优化之外,我的代码能力也明显提高了。

通过这次课设,我某些以前没有彻底掌握的东西都牢牢掌握了。

例如指针的灵活运用,函数之间的互相调用的代码级优化等等。

尽管我学到了诸多东西,但是对于这次大型作业我还是有一点遗憾,那就是代码的重复运用率不高,诸多几乎同样的代码在我的程序中出现了多次(毕竟是一种上午写出来的东西,这也不能怪我)。

原来我有心想优化一下,使重复运用率提高,但是由于ACM/ICPC将近,我全部时间都用在训练上,因此就算了。

但愿不会对我的课设的评价造成太大的影响。

路漫漫其修远兮,吾将上下而求索。

程序设计这条路还很长,我会继续走下去,不停自我完善,早日成为一种杰出的程序员。

七、参考文献全部资料均从百度而来附录程序清单/***************************************************************//*医院门诊挂号系统V1.01源代码*//*CopyrightbyXXX*//***************************************************************/includeincludeincludedefineTroom_lensizeofstructTroomdefineTpro_lensizeofstructTprodefineTreg_lensizeofstructTregdefineTLroom_lensizeofstructTLroomdefineTLpro_lensizeofstructTLprodefineTLreg_lensizeofstructTLregdefineRoom_in_mesputs“\n\t科室信息录入中...“defineSpe_in_mesputs“\n\t专家信息录入中...“defineReg_in_mesputs“\n\t挂号信息录入中...“/*挂号信息构造体*/structTreg{charpro_num[11];/*保存专家编号*/charcase_num[15];/*保存病历号*/charpatient_name[20];/*保存患者姓名*/chardate[11];/*保存挂号日期*/charassistant[20];/*保存挂号人员*/intserial_num;/*保存挂号流水号*/floatfee;/*保存挂号费*/structTreg*next;/*保存指向第一种专家信息的指针*/};/*专家信息构造体*/structTpro{charroom_num[11];/*保存科室号*/charnum[11];/*保存专家编号*/charname[20];/*保存姓名*/charbirth[11];/*保存出生日期*/charsex;/*保存性别*/chartel[12];/*保存电话*/charprofession[15];/*保存职称*/charsummary[50];/*保存介绍*/inttot_reg;/*保存专家的总挂号量*/structTpro*next;/*保存指向下一种专家信息的指针*/structTreg*sub;/*保存指向第一种挂号信息的指针*/};/*科室信息*/structTroom{charnum[11];/*保存科室号*/charname[20];/*保存科室名*/charman[20];/*保存负责人*/chartel[12];/*保存电话*/inttot_reg;/*保存科室的总挂号量*/structTroom*next;/*保存指向下一种挂号信息的指针*/structTpro*sub;/*保存指向第一种专家信息的指针*/};/*辅助变量*/structTLroom{structTroom*st;structTLroom*next;}*storep,*pp;structTLpro{structTpro*st;structTLpro*next;}*storeq,*qq;structTLreg{structTreg*st;structTLreg*next;}*storer,*rr;structTroom*p,*pl,*tempp,*headNULL;structTpro*q,*ql,*tempq;structTreg*r,*rl,*tempr;charrest[20],ret[5];intn;intflag,changed;voidMain_menu;voidShow_menu;voidWrite;voidSave;voidLoad;voidModify;voidInsert;voidDelete;voidSearch;voidStatistics;voidPrint;voidExit;voidSearch_room;voidSearch_room_with_numchar*;voidSearch_room_with_namechar*;voidSearch_room_with_manchar*;voidSearch_room_with_telchar*;voidSearch_pro;voidSearch_pro_with_numchar*;voidSearch_pro_with_namechar*;voidSearch_pro_with_telchar*;voidSearch_reg;voidSearch_reg_with_serial_numint;voidSearch_reg_with_case_numchar*;voidSort_room;voidSort_pro;voidShow_room;voidShow_room_with_reg;voidShow_pro;voidShow_pro_with_reg;voidShow_reg;voidPrint_room;voidPrint_pro;voidPrint_reg;char*Tostringint;voidPrnN;voidPrnB;voidPrnM;voidClearAll;voidClearp;voidClearq;voidClearr;voidcls;/***************************************************************//**************************主菜单***************************//***************************************************************/voidMain_menu{charcommand;do{do{Show_menu;commandgetchar;getsrest;cls;ifcommand9{puts“\n无此选项请重新选择“;printf“按ENTER以继续...“;getsrest;cls;}}whilecommand9;switchcommand{case1Write;break;case2Save;break;case3Load;break;case4Modify;break;case5Insert;break;case6Delete;break;case7Search;break;case8Statistics;break;case9Print;break;case0Exit;}}whilecommand0;}voidShow_menu{puts“欢迎进入医院门诊挂号系统“;puts“\n请选择\n“;puts“\t1录入数据\n“;puts“\t2保存文献\n“;puts“\t3载入文献\n”;puts“\t4修改数据\n“;puts“\t5插入数据\n“;puts“\t6删除数据\n“;puts“\t7查询信息\n“;puts“\t8统计数据\n“;puts“\t9输出报表\n“;puts“\t0退出系统\n“;}/***************************************************************//*************************录入信息**************************//***************************************************************/voidWrite{charcommand0,command1,command2;charcommand;ifchanged{puts“\n录入将覆盖原有信息,您尚未保存,与否保存Y/N“;commandgetchar;getsrest;cls;ifcommandY||commandySave;}headNULL;do{pstructTroom*mallocTroom_len;Room_in_mes;puts“\n请输入科室号“;getsp-num;cls;Room_in_mes;puts“\n请输入科室名“;getsp-name;cls;Room_in_mes;puts“\n请输入负责人姓名“;getsp-man;cls;Room_in_mes;puts“\n请输入电话“;getsp-tel;cls;p-subNULL;p-tot_reg0;p-nexthead;headp;puts“\n与否录入此科室的专家信息Y/N“;command1getchar;getsrest;cls;whilecommand1Y||command1y{qstructTpro*mallocTpro_len;strcpyq-room_num,p-num;Spe_in_mes;puts“\n请输入专家编号“;getsq-num;cls;Spe_in_mes;puts“\n请输入姓名“;getsq-name;cls;Spe_in_mes;puts“\n请输入出生日期,例XXXX/XX/XX“;getsq-birth;cls;Spe_in_mes;puts“\n请输入性别,MforMAN,WforWOMAN“;q-sexgetchar;getsrest;cls;Spe_in_mes;puts“\n请输入电话“;getsq-tel;cls;Spe_in_mes;puts“\n请输入职称“;getsq-profession;cls;Spe_in_mes;puts“\n请输入介绍“;getsq-summary;cls;q-subNULL;q-tot_reg0;q-nextp-sub;p-subq;puts“\n与否录入此专家的挂号信息Y/N“;command2getchar;getsrest;cls;whilecommand2Y||command2y{q-tot_reg;rstructTreg*mallocsizeofstructTreg;strcpyr-pro_num,q-num;Reg_in_mes;puts“\n请输入挂号流水号“;scanf“d“,getsrest;cls;Reg_in_mes;puts“\n请输入病历号“;getsr-case_num;cls;Reg_in_mes;puts“\n请输入患者姓名“;getsr-patient_name;cls;Reg_in_mes;puts“\n请输入挂号费(元)“;scanf“f“,getsrest;cls;Reg_in_mes;puts“\n请输入挂号时间,例XXXX/XX/XX“;getsr-date;cls;Reg_in_mes;puts“\n请输入挂号人员“;getsr-assistant;cls;r-nextq-sub;q-subr;puts“\n与否录入下一种挂号信息Y/N“;command2getchar;getsrest;cls;}p-tot_regq-tot_reg;puts“\n与否录入下一种专家信息Y/N“;command1getchar;getsrest;cls;}puts“\n与否录入下一种科室信息Y/N“;command0getchar;getsrest;cls;}whilecommand0Y||command0y;puts“\n录入成功“;printf“按ENTER以继续...“;getsrest;cls;changed1;}/***************************************************************//*************************保存文献**************************//***************************************************************/voidSave{FILE*fp,*fq,*fr;charfile1[20],file2[20],file3[20];do{puts“\n\t正在创立科室数据文献...“;puts“\n请输入文献名“;getsfile1;cls;iffpfopenfile1,“wb“NULL{puts“\n文献不能打开“;printf“按ENTER以继续...“;getsrest;cls;}}whilefpNULL;do{puts“\n\t正在创立专家数据文献...“;puts“\n请输入文献名“;getsfile2;cls;iffqfopenfile2,“wb“NULL{puts“\n文献不能打开“;printf“按ENTER以继续...“;getsrest;cls;}}whilefqNULL;do{puts“\n\t正在创立挂号数据文献...“;puts“\n请输入文献名“;getsfile3;cls;iffrfopenfile3,“wb“NULL{puts“\n文献不能打开“;printf“按ENTER以继续...“;getsrest;cls;}}whilefrNULL;forphead;p;pp-next{fwritep,Troom_len,1,fp;forqp-sub;q;qq-next{fwriteq,Tpro_len,1,fq;forrq-sub;r;rr-nextfwriter,Treg_len,1,fr;}}puts“\n保存成功“;printf“按ENTER以继续...“;getsrest;cls;changed0;fclosefp;fclosefq;fclosefr;}/***************************************************************//*************************读取文献**************************//***************************************************************/voidLoad{FILE*fp,*fq,*fr;intt;charfile1[20],file2[20],file3[20];ifchanged{charcommand;puts“\n您尚未保存,与否保存Y/N“;commandgetchar;getsrest;cls;ifcommandY||commandySave;}ClearAll;t0;do{puts“\n正在载入科室数据文献...“;t;puts“\n请输入文献名“;getsfile1;cls;iffpfopenfile1,“rb“NULL{puts“\n文献不能打开“;printf“按ENTER以继续...“;getsrest;cls;ift3{puts“\n读取失败,返回主菜单“;printf“按ENTER以继续...“;getsrest;cls;return;}}}whilefpNULL;t0;do{puts“\n正在载入专家数据文献“;puts“\n请输入文献名“;getsfile2;cls;iffqfopenfile2,“rb“NULL{puts“\n文献不能打开“;printf“按ENTER以继续...“;getsrest;cls;ift3{puts“\n读取失败,返回主菜单“;printf“按ENTER以继续...“;getsrest;cls;return;}}}whilefqNULL;t0;do{puts“\n正在载入挂号数据文献“;puts“\n请输入文献名“;getsfile3;cls;iffrfopenfile3,“rb“NULL{puts“\n文献不能打开“;printf“按ENTER以继续...“;getsrest;cls;ift3{puts“\n读取失败,返回主菜单“;printf“按ENTER以继续...“;getsrest;cls;return;}}}whilefrNULL;headNULL;whilefeoffp{pstructTroom*mallocTroom_len;freadp,Troom_len,1,fp;p-subNULL;iffeoffp{p-nexthead;headp;}}whilefeoffq{qstructTpro*mallocTpro_len;freadq,Tpro_len,1,fq;q-subNULL;Search_room_with_numq-room_num;iffeoffqp-subq;}}whilefeoffr{rstructTreg*mallocTreg_len;freadr,Treg_len,1,fr;forphead;p;pp-next{Search_pro_with_numr-pro_num;ifqbreak;}iffeoffrq-subr;}}puts“\n载入成功“;printf“按ENTER以继续...“;getsrest;cls;changed0;fclosefp;fclosefq;fclosefr;}/***************************************************************//*************************修改信息**************************//***************************************************************/voidModify{charcommand1,command2;intflag2;intt;while1{t0;do{puts“\n请选择您想修改的信息\n“;puts“\t1科室信息\n“;puts“\t2专家信息\n“;puts“\t3挂号信息\n“;printf“\t“;PrnM;puts“\n“;command1getchar;getsrest;cls;ifcommand13printf“按ENTER以继续...“;getsrest;cls;}}whilecommand13switchcommand1{case1printf“\n请提供科室的有关信息,“;flag0;Search_room;ifflagcontinue;ifp{t0;flag20;while1{do{puts“\n请选择您想修改的信息\n“;puts“\t1科室号\n“;puts“\t2科室名\n“;puts“\t3负责人\n“;puts“\t4电话\n“;printf“\t“;PrnB;puts“\n“;command2getchar;getsrest;cls;ifcommand24printf“按ENTER以继续...“;getsrest;cls;}}whilecommand24switchcommand2{case1puts“\n请输入新的科室号“;getsp-num;cls;forqp-sub;q;qq-nextstrcpyq-room_num,p-num;break;case2puts“\n请输入新的科室名“;getsp-name;cls;break;case3puts“\n请输入新的负责人姓名“;getsp-man;cls;break;case4puts“\n请输入新的电话“;getsp-tel;cls;break;caseBcasebflag21;;}ifflag2break;puts“\n修改成功“;printf“按ENTER以继续...“;getsrest;cls;changed1;}}else{puts“\n错误科室不存在“;t;ift5{puts“错误太多返回主菜单“;printf“按ENTER以继续...“;getsrest;cls;return;}printf“按ENTER以继续...“;getsrest;cls;continue;}break;case2printf“\n请提供专家所在科室的有关信息,“;flag0;Search_room;ifflagcontinue;ifp{printf“\n请提供专家的有关信息,“;flag0;Search_pro;ifflagcontinue;ifq{t0;flag20;while1{do{puts“\n请选择您想修改的信息\n“;puts“\t1专家编号\n“;puts“\t2姓名\n“;puts“\t3出生日期\n“;puts“\t4性别\n“;puts“\t5电话\n“;puts“\t6职称\n“;puts“\t7介绍\n“;printf“\t“;PrnB;puts“\n“;command2getchar;ge

温馨提示

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

评论

0/150

提交评论