重庆科技学院《C语言》课程设计报告XXXXXXX《C语言》课程设计报告学院:_电气与信息工程学院_专业班级:学生姓名:学号:设计地点(单位)________计算机基础自主学习中心___设计题目:_医院门诊候诊的队列管理程序___________________完成日期:XXXX年XX月XX日指导教师评语:___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________成绩(五级记分制):________________指导教师(签字):________________重庆科技学院重庆科技学院《C语言》课程设计报告课程设计任务书设计题目:医院门诊候诊的队列管理程序学生姓名课程名称C语言程序设计课程设计专业班级地点I301/I302起止时间设计内容及要求【问题描述】要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设挂号时编码是连续的,但由于同一个门诊科目有3个诊室,其中35(含35)岁以上的在第一诊室,35岁以下男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单:【实现提示】1--挂号2--叫号3--分诊室4--显示各诊室队列信息5--统计当天就诊的患者情况(要求按性别进行统计和按任意年龄区段进行统计)6--结束程序选1时,提示用户在一行内输入姓名及挂号单编号;选2时,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除选3时,进行诊室分配选4时,按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室选5时,进行两种统计方法的选择,并进行必要的统计计算选6时,退出程序的运行要求1~5中每一个步骤完成后都能重新显示此选择菜单设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求1月6日第一大节、第二大节讲解课程设计任务1月6日第三大节、第四大节阅读课程设计指导书,选择课题1月7日第一大节、第二大节讲解结构体相关知识1月7日第三大节、第四大节学生练习结构体的使用1月8日第一大节、第二大节程序编码1月8日第三大节、第四大节程序编码重庆科技学院《C语言》课程设计报告1月9日第一大节、第二大节程序编码1月9日第三大节、第四大节编写课程设计报告1月10日第一大节、第二大节课程设计答辩1月10日第三大节、第四大节课程设计答辩参考资料[1]何钦铭颜晖.《C语言程序设计》.高等教育出版社.2008年[2]谭浩强张基温.《C语言程序设计教程》.高等教育出版社.2006年其它说明1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。重庆科技学院《C语言》课程设计报告I摘要熟练操作VC++软件,熟练运用switch语句进行各种选择,通过模块化程序设计,编写子函数使程序条理更清晰。运用VC++软件编写《医院门诊候诊的队列管理程序》,本程序分为6大模块,模块一中包含所有子函数的调用及结束程序的条件,模块二进行挂号处理,模块三进行叫号处理,模块四程序自动将挂号的人进行分诊室处理,模块五显示队列中各个人的信息,模块六统计当前所挂号的总人数;运用switch进行各种操作的选择;利用循环进行重复的操作;并运用system(“cls”)进行清屏处理,使显示界面更清晰。关键字:模块化switch循环重庆科技学院《C语言》课程设计报告II目录摘要.....................................................................Ⅰ1软件需求及分析说明书.....................................................12系统分析与设计...........................................................22.1软件界面设计.......................................................22.2软件的数据设计.....................................................62.3软件的算法设计.....................................................63软件的实现..............................................................94软件测试...............................................................145软件使用说明书.........................................................15参考文献.................................................................16致谢.....................................................................17重庆科技学院《C语言》课程设计报告11软件需求分析说明书本程序分为6大模块,模块一中包含所有子函数的调用及结束程序的条件,模块二进行挂号处理,模块三进行叫号处理,模块四程序自动将挂号的人进行分诊室处理,模块五显示队列中各个人的信息,模块六统计当前所挂号的总人数。重庆科技学院《C语言》课程设计报告2输入1时进入挂号系统输入2时进入叫号系统输入3时进入分诊室系统输入4时进入显示队列系统输入5时进入查询信息系统输入6时退出系统2系统分析与设计2.1、软件界面设计主界面:挂号界面:输入1进入挂号系统,等待输入进行挂号输入挂号重庆科技学院《C语言》课程设计报告3叫号界面:分诊室界面:挂号成功任意输入退出挂号系统输入2进入叫号系统显示排在队列第一个患者的信息叫号成功,任意输入退出叫号系统输入3进入分诊室系统,系统自动进行诊室分配任意输入退出分诊室系统重庆科技学院《C语言》课程设计报告4信息查询界面:统计界面:输入4进入信息查询系统,显示队列中的各个患者的信息及其所在的诊室任意输入退出信息查询系统输入5进入统计系统,输入0按性别统计,输入1按年龄段统计当按0时,按性别输出统计结果,按0返回上一级菜单,按1结束统计系统重庆科技学院《C语言》课程设计报告5结束界面:当按1时,按年龄段输出统计结果,等待输入一个年龄段显示输入年龄段的患者人数,按0返回上一级菜单,按1结束统计系统输入6程序结束重庆科技学院《C语言》课程设计报告6模块一:选择要进行的操作2.2、软件的数据设计将输入的挂号人信息以姓名,性别,年龄和挂号单号存入数组中。2.3、软件的算法设计模块一,选择系统:模块三:叫号系统模块五:查询系统模块四:分诊室系统模块六:结束程序模块二:挂号系统开始通过输入选择将要进行的操作当x不为零时,反复执行下面的语句程序结束终止重庆科技学院《C语言》课程设计报告7模块二,挂号系统:模块三,叫号系统:模块四,分诊室系统:开始输入挂号信息挂号完成终止开始输出队列第一个患者的信息信息叫号成功终止开始35岁一上的患者将该患者分配到第一诊室35岁一下的男患者将该患者分配到第二诊室将该患者分配到第三诊室分配诊室成功终止重庆科技学院《C语言》课程设计报告8模块五,查询系统:模块六,统计系统:开始显示队列中的各个患者的信息及其所在的诊室显示完毕终止开始选择统计方式输入0时输入1时按性别统计,判断男女按年龄段统计,输入一个年龄段显示该年龄段患者的人数分别显示男女患者的人数选择是否退出统计系统输入1时输入0时终止重庆科技学院《C语言》课程设计报告93软件的实现程序源代码:#includestdio.h#includestdlib.h#includestring.htypedefstructNews{charname[20];charsex[10];charnumber[10];intold;}News;//定义一个结构体以便保存患者的各个信息inti=0;//依次记录患者挂号的顺序,顺便记录总共挂号的人数intq=0;//记录当前被叫号的当前队列序号ints1[50],s2[50],s3[50];//保存各个诊室患者的队列号intq1,q2,q3;//记录各个诊室患者的总人数intChoose(){inti;printf(\n\n);printf(医院门诊候诊的队列管理\n);printf(\n\n);printf(*1、挂号;\n);printf(*2、叫号;\n);printf(*3、分诊室;\n);printf(*4、显示各诊室队列信息;\n);printf(*5、统计当天就诊的患者情况;\n);printf(*6、结束程序。\n);printf(\n\n\n\n);printf(请选择:);scanf(%d,&i);//通过输入获得返回值,选择说要进入的系统system(cls);returni;}//选择所要进入系统的函数voidGh(News*a){intx;printf(\n\n);printf(挂号系统\n);printf(\n\n);printf(请输入挂号姓名,性别,年龄及挂号单号:\n);scanf(%s%s%d%s,a[i].name,a[i].sex,&a[i].old,a[i].number);//患者输入自己的重庆科技学院《C语言》课程设计报告10信息进行排队i++;system(cls);printf(挂号成功,按任意键结束!);scanf(%d,&x);system(cls);}//挂号系统voidJh(News*a){intx;printf(\n\n);printf(叫号系统\n);printf(\n\n);printf(姓名:%s\n性别:%s\n年龄:%d\n挂号单号:%s\n,a[q].name,a[q].sex,a[q].old,a[q].number);//显示排在队列第一名患者的信息q++;printf(叫号成功,按任意键结束!);scanf(%d,&x);system(cls);}//叫号系统voidFzs(News*a){intb,x;system(cls);printf(\n\n);printf(分诊室系统\n);printf(\n\n);for(b=q;bi;b++){if(a[b].old=35){s1[q1++]=b;}//从当前队列第一人开始判断,如果当前患者大于35岁,则诊室1记录下当前患者的总队列号elseif(a[b].old35&&!strcmp(a[b].sex,nan)){s2[q2++]=b;}//如果当前患者小于35岁并且是男