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