医院门诊候诊管理系统.doc_第1页
医院门诊候诊管理系统.doc_第2页
医院门诊候诊管理系统.doc_第3页
医院门诊候诊管理系统.doc_第4页
医院门诊候诊管理系统.doc_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

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

文档简介

重庆科技学院C语言程序设计课程设计报告 学 院:_ 专业班级: 学生姓名: 学 号: 设计地点(单位)_ _ _设计题目:_医院门诊候诊管理系统_ 完成日期: 2013 年7月12日 指导教师评语: _ _成绩(五级记分制):_ _ 指导教师(签字):_ _ 重庆科技学院课程设计任务书设计题目:医院门诊候诊的队列管理程序学生姓名课程名称C语言程序设计课程设计专业班级地 点起止时间设计内容及要求【问题描述】要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设挂号时编码是连续的,但由于同一个门诊科目有3个诊室,其中35(含35)岁以上的在第一诊室,35岁以下男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单:【实现提示】1挂号2叫号3分诊室4显示各诊室队列信息5统计当天就诊的患者情况(要求按性别进行统计和按任意年龄区段进行统计)6结束程序选1时,提示用户在一行内输入姓名及挂号单编号;选2时,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除选3时,进行诊室分配选4时,按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室选5时,进行两种统计方法的选择,并进行必要的统计计算选6时,退出程序的运行要求15中每一个步骤完成后都能重新显示此选择菜单设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求具体进度详见“校内独立实践教学日程安排表”参考资料1何钦铭 颜晖.语言程序设计.高等教育出版社.2008年2谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:陈刘奎/焦晓军/陈应祖 2013年6月12日摘要目录1总体设计6 2详细设计7 3程序模块显示.8 4系统调试11 5结果分析12 6总结13 7程序源码14 1. 总体设计一系统功能分析:1:能实现挂号功能,在一行内输入病人的信息,输出挂号列表。2:能实现叫号功能,显示排在队列中第一位患者姓名、挂号单编号,将其从挂号序列中删除。3:可以根据病人的性别与年龄,分配诊室,并按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室。4:可以按性别进行统计和按任意年龄区段进行统计。5:上述功能都可以重复执行。二系统功能模块划分:1: 功能描述介绍2: 挂号3: 叫号4: 划分诊室 5:显示病人就诊信息6. 统计病人就诊信息2. 详细设计(1) :系统功能模块图 模块3:挂号 1:模块4:叫号模块2:首先介绍该程序的相关工功能及如何操作 2: 模块5:分配诊室 3:模块6:依队列顺序输出病人信息 4:模块7:分别根据年龄和性别统计 5: End _结束程序 6:3:程序模块显示:模块1:前端定义以及功能选择程序块:模块2:功能介绍introduce()函数:模块3:挂号功能input ()函数:模块4:叫号功能 jiaohao()函数模块5:分配诊室:fp()函数模块6:病人信息输出:statistic()函数模块7;统计功能:type_statistic()函数End :结束程序4系统调试调试过程中遇到的问题有如下一些:1. switch语句的case只是一个入口,后面要加break;2:出现错误“missing ; before type”(1) :可能是应为将变量的申明放在输入输出之前(2) :少了符号3:很多次连续使用输入函数接受数据时,后面一个函数接受的数据经常是乱码,后来发现是因为前一个函数接受数据完毕后会输入一个回车键,而后一个输入函数将ENTER 键接受了,所以出现了乱码,在接受第一个数据后用接一个ch=getchar()或是gets(ch)将回车键类接受,问题就能得到解决;5结果分析1:关于设计的独到之处:(1)关于接受一个数据如何确保它是一个int型数据:接受整形数据需要使用scanf函数%d格式输入,而如果此时输入一个字符,会出现数字乱码,而不会报错,所以我将输入的数据类型定义为字符型接受,然后使用isdigit函数判断该字符是否为字符型数字,如果是,用自定义change函数将该字符型数字转化为整形数字。如果不是,重新执行以上操作输入及判断的操作,如此可以确保得到的最终数据是一个int 型数据。(总结独到的设计特点和不足之处。)2. 关于该程序的不足之处:(1) :输入时的性别框设患者为男性时输入“man”,可是此程序只能识别字符串“man”.由于我是使用strcmp函数将输入的字符串与man做比较,如果相同则判定其为男性患者如果输入时在man后加空格或其他字符,后续的关于性别的程序块会识别错误。(2) :再者,当输入病人的信息,如果二位病人的挂号编号重复时,程序不会提示出错,这也是一个不足所在6总结经过这次程序设计,我们总结以下几点:1:编程需要细心与耐心,以及平时要养成良好的编程习惯。因为编程序是一件很需要耐心与细心的事情,一个错误经常需要长时间去测试、检验才能找到出错之处,而最好的办法就是通过良好的编程习惯以及耐心减少错误出现的频率2:编程很注重与他人的合作,交流。一个人常会被自己的习惯思维所局限,交流与合作通过思维碰撞和知识互补可以拓宽自己的思路,拓展自己的知识面,一个人因为自己的习惯思维,常会对自己犯的错误视为不见,而通过别人的帮助检测能够帮助较快的找到错误所在。程序源码:# include # include # include # include # define N 100int S1=0,S2=0,S3=0,man=0,woman=0,pl=0,g=0; /定义s为诊室,p1指针int k;struct hoschar name15; /患者姓名char sex10; /患者性别char num10; /挂号单编号 char year10; /患者年龄int room; /被分到的诊室号;struct hos hN;struct hos *p=&h0;void introduce() /功能介绍introduce()函数printf( n 功 能 选 择 n);printf(n);printf( 1-挂号 n);printf( 2-叫号 n);printf( 3分诊室 n);printf( 4显示各诊室队列信息 n);printf( 5统计当天就诊患者情况(要求按性别和任意年龄区段进行统计 n);printf( 6结束程序 n);printf(n);void run()void introduce();void input ();void jiaohao();void fp();void statistic();void type_statistic();char function=1,j10;while (function)switch(function)case 1:input();break;case 2:jiaohao();break;case 3:fp();break;case 4:statistic();break;case 5:type_statistic();break;case 6:exit(0);break;default:system(cls); /清屏printf(nterrornn请重新输入: );printf(请选择功能);introduce();function=getchar();gets(j);while(isdigit(function)=0)/isdigit(function):判断function字符是不是数字printf(您输入有误,请重新输入);function=getchar();gets(j);void input()int change(char);/int d;char i,j8,s15;printf(请输入需要挂号的病人人数(请输入0到9之间的数):);i=getchar();gets(j);while(isdigit(i)=0)/isdigit(i):判断i字符是不是数字printf(您输入有误,请重新输入);i=getchar();gets(j);printf(请输入%d位病人的个人信息n,change(i);for(k=1;k=0;d-)if(ppl.num=pd.num&pl!=d)printf(error);*/printf(性别 :);strcpy(ppl.sex,gets(s);printf(年龄 :);strcpy(ppl.year,gets(s);pl+;printf(已经挂号的病人n);for(k=g;kpl;k+)printf(第%2d位 姓名: %s挂号号码%sn,k+1-g,,pk.num);system(pause);/暂停system(cls);/清屏void jiaohao()if(g=pl)system(cls);printf(所有病人都已经分配完毕n);return;printf(病人%s已前往就诊 挂号号码:%5snn,,pg.num);g+;printf(剩余%2d位等待叫号的病人n,pl-g);for(k=g;kpl;k+)printf(挂号排序第%2d位 姓名:%s挂号号码: %5sn,k+1-g,,pk.num);system(pause);system(cls);void fp () /分配诊室:fp()函数S1=0;S2=0;S3=0;for(k=0;k=35)S1+; pk.room=1 ; /其中35(含35)岁以上的患者在第一诊室else if(strcmp(pk.sex,man)=0)S2+;pk.room=2 ; /35岁以下男患者进第二诊室elseS3+;pk.room=3;/其它的患者进第三诊室printf(病人%s被分配在第%d诊室n,,pk.room,pk.num);system(pause);system(cls);void statistic() /病人信息输出:statistic( )函数for(k=0;kg;k+)printf( 第%2d名患者 姓名:%s挂号编号:%s 诊室:第%d诊室n,k+1,,pk.num,pk.room);printf( 第一诊室%2d人n,S1);printf( 第二诊室%2d人n,S2);printf( 第三诊室%2d人n,S3);system(pause);system(cls);void type_statistic() /统计功能:type_statistic()函数int year,high=0,low=0;man=0;woman=0;for(k=0;kg;k+)if(strcmp(pk.sex,man)=0)man+;else woman+;printf(请输入一个界限年龄:);scanf(%d,&year);for(k=0;k=year)high+;else low+;printf(共有%2d位患者就诊.n,g);printf(其中男性患者有%2d位,man);printf(女性患者有%2d位.n,woman);printf(年纪大于等于%d的患者有%2d位,year,high);printf(年纪小于%d的患者有%2d位.n,year,low);system(pause);system(cls);void main()system(color 2);introduce();run();int change(char ch)/将单个字符型数字转化为整形int i;i=ch-48;return(i);感谢:课程设计

温馨提示

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

评论

0/150

提交评论