看病排队候诊问题.docx

上传人:b****6 文档编号:4850304 上传时间:2022-12-10 格式:DOCX 页数:12 大小:248.72KB
下载 相关 举报
看病排队候诊问题.docx_第1页
第1页 / 共12页
看病排队候诊问题.docx_第2页
第2页 / 共12页
看病排队候诊问题.docx_第3页
第3页 / 共12页
看病排队候诊问题.docx_第4页
第4页 / 共12页
看病排队候诊问题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

看病排队候诊问题.docx

《看病排队候诊问题.docx》由会员分享,可在线阅读,更多相关《看病排队候诊问题.docx(12页珍藏版)》请在冰豆网上搜索。

看病排队候诊问题.docx

看病排队候诊问题

课程名称:

《数据结构》课程设计

课程设计题目:

看病排队候诊问题

姓名:

AAA

院系:

计算机学院

专业:

计算机科学技术

年级:

11级

学号:

AAAAAAA

指导教师:

AAAA

2012年9月14日

 

1课程设计的目的………………………………………………………3

2需求分析………………………………………………………………3

3课程设计报告内容…………………………………………………3

3.1概要设计………………………………………………………3

3.2详细设计………………………………………………………4

3.3调试分析………………………………………………………4

3.4用户手册………………………………………………………4

3.5程序清单………………………………………………………5

3.6测试结果………………………………………………………8

4小结…………………………………………………………………13.

5参考文献……………………………………………………………13

 

1.课程设计的目的

(1)熟练使用C语言编写程序,解决实际问题;

(2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;

(3)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

(4)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

2.需求分析

系统的主要数据是病人信息。

病人信息包括:

病历号,姓名,性别。

本系统主要实现对病人就医进行管理,需要实现以下几个方面的管理功能:

(1)病人排队:

录入病人的信息。

(2)显示正在等候就医的病人信息:

按病历号。

(3)病人就医;按病历号。

(4)下班退出。

3.课程设计报告内容

3.1概要设计

①主函数:

main()

②队列的基本操作

③输入前来排队候诊病人的信息:

Getin()

④查看排队情况:

Show()

⑤病人就诊:

Cure()

3.2详细设计

程序流程图如下:

3.3调试分析

程序的设计严格遵循模块化的程序设计思想,由简单到复杂,注意规范。

3.4用户手册

用户在使用程序时应按照提示执行,步骤如下:

①进入系统后,首先选择1号功能键依次输入正在排队等候就医的病人信息。

②选择2号功能键:

显示目前正在等候就医的病人信息。

③选择3号功能键:

病人按系统分配的病历号依次就医,系统按先排队先就医的顺序分配病历号,每次一人。

同时系统删除已经就医结束的病人信息。

④若有新的病人排队,请继续选择1号键输入病人的信息。

⑤选择4号键退出系统,今日未完成就医的病人明日继续。

⑥输入其他键系统给出错误提示。

3.5程序清单

#include

#include

#include

#defineMAXQSIZE100

typedefstruct//病人的信息

{

intnumber;//病历号

charname[20];//姓名

charsex[10];//年龄

}Elemtype;

typedefstructQnode

{

Elemtypedata;

structQnode*next;

}Qnode,*Queueptr;

typedefstruct//队列的链式存储结构

{

Queueptrfront;

Queueptrrear;

}Linkqueue;

intN=0;//每日病人的累积量

intM=0;//已经就诊的病人数量

voidInitqueue(Linkqueue&Q)

{

Q.front=Q.rear=(Queueptr)malloc(sizeof(Qnode));

if(Q.front)

{Q.front->next=NULL;}

}

voidEnqueue(Linkqueue&Q,Elemtype*e)

{

Queueptrp;

p=(Queueptr)malloc(sizeof(Qnode));

if(p)

{

p->data=*e;

p->next=NULL;

Q.rear->next=p;

Q.rear=p;

}

}

Elemtype*Dequeue(Linkqueue&Q)

{

Elemtype*e;

Queueptrp;

if(Q.rear!

=Q.front)

{

p=Q.front->next;

Q.front->next=p->next;

}

if(Q.front==p)

Q.rear=Q.front;

free(p);

returne;

}

 

voidGetin(Linkqueue&Q,Elemtype*a)//输入前来排队候诊病人的信息

{

inti,j;

printf("请输入前来排队候诊病人的数量:

");

scanf("%d",&i);

for(j=N;j

{

a[j].number=j+1;

printf("\n请输入第%d个病人的姓名:

",j+1);

scanf("%s",a[j].name);

printf("\n请输入第%d个病人的性别:

",j+1);

scanf("%s",a[j].sex);

Enqueue(Q,a);

}

N=N+i;

}

voidShow(Elemtype*a)//查看排队情况

{

inti;

printf("\n病人就医的顺序如下:

\n");

printf("---病历号------姓名------性别-----\n");

for(i=M;i

{

printf("\n");

printf("%10d%10s%10s\n",a[i].number,a[i].name,a[i].sex);

}

}

 

voidCure(LinkqueueQ)//病人就诊

{

M=M+1;

Elemtype*e;

e=Dequeue(Q);

printf("第%d号病人已经成功就诊!

\n",M);

}

intmain()

{

intm;

LinkqueueQ;

Elemtypea[MAXQSIZE];

Initqueue(Q);

printf("病人就医管理系统功能如下:

\n\n");

printf("1.病人前来排队候诊!

\n");

printf("2.查看排队情况!

\n");

printf("3.病人就诊!

\n");

printf("4.医生下班,请退出系统!

\n");

do

{

printf("\n请选择数字1~4实现相应的功能\n");

scanf("%d",&m);

switch(m)

{

case1:

Getin(Q,a);

break;

case2:

Show(a);

break;

case3:

Cure(Q);

break;

case4:

printf("医生下班,请退出系统!

\n");

break;

default:

printf("输入错误,请重新输入!

\n");

break;

}

}while(m!

=4);

return0;

}

3.6测试结果

测试数据如下:

病历号

姓名

性别

1

赵强

2

孙刚

3

刘丹

4

李杰

5

李欣

6

周倩

7

何萍

8

杨阳

①程序开始界面。

 

②选择功能1,先输入表格中前5人的信息。

③输入完成,选择2号功能,显示病人排队就医的信息。

(系统按病人就医的先后次序依次分配病历号。

④输入3号数字键:

病人按病历号次序看病,每次一人。

⑤输入1号键:

又有三名病人前来排队。

⑥输入3号键:

病人继续按照病历号顺序看病。

⑦输入其他键,系统给出错误提示。

⑧输入4号键,医生下班,退出系统。

今天没排到队的病人明日继续。

4.小结

在数据结构课程设计的过程中,我不仅认识到了学好解理论知识的必要性,更认识到了上机操作的重要性。

上机操作能过培养我们解决实际问题的能力,通过对上机操作遇到的各种问题的解决,自己感到一丝成功的同时,更下决心努力学好专业课,为以后的学习及实践打下好的基础。

5.参考文献

①严蔚敏,吴伟民编著.数据结构(C语言版)--北京:

清华大学出版社,2007.

②阮宏一,鲁静编著.数据结构课程设计(C/C++描述)--电子工业大学出版社,2011.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1