- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
病人看病模拟程序目录
TOC \o 1-5 \h \z 1课程设计的目的 1
2需求分析 1
3课程设计报告内容 2
3. 1概要设计 2
\o Current Document 3.2详细设计 2
3.3函数调用关系图 4
3. 4程序清单 5
3. 5运行结果 5
4总结 7
参考文献 7
附录 8
病人看病模拟程序
1 ?课程设计的目的
一般来讲,课程设计实骑要复杂一些,深度更广并且更加接近实用。目的是 通过课程设计的综合训练,培养学生实际分析问题、编程和动手能力,使学生对 数据结构进行更深一层的了解,培养学生对学习数据结构这门课程的兴趣,也为 以后的大学毕业设计论文打下了一个初步的基础。其基本目的有:
基木掌握面向过程程序设计的基木思路和方法;
达到熟练掌握数据结构的基本知识和技能;
能够利用所学的基本知识和技能,解决简单的程序设计问题。
需求分析
编写一个程序,反映病人到医院看病,排队看医生的情况。在病人排队过程屮,主要 重复两件事:
病人到达诊室,将病历本交给护士,排到等待队列中候诊。
护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊。
要求模拟病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下:
排队一一输入排队病人的病历号,加入到病人排队队列中。
就诊一一病人排队队列屮最前面的病人就诊,并将其从队列屮删除。
查看排队一一从队首到队尾列岀所有的排队病人的病历号。
不再排队,余下顺序就诊一一从队首到队尾列出所有的排队病人的病历号,并 退出运行。
下班一一退出运行。
课程设计报告内容
3. 1概要设计:
(1).抽象数据类型图的定义如下:
此程序采用队列数据结构,存储结构为单链表,采用此种结构一方面可以减少数据复 杂程度,增加系统稳定性;另一方而,利用动态分配内存的方法,便于内存管理,充分利 用内存空间。
int Menu_select() 〃菜单选择程序,要求用户输入一个正确的菜单选项。如果不正确,则 重复调用此子程序,直到输入的值是正确的
struct bingli *(creat()) 〃创建一个单链表。如果创建成功,则返冋这个单链表的表头;如果 创建不成功,则退出程序。
void Listlnsert_rear(struct bingli *head)
〃创建一个单链表成功后,再次排队时则调用此子程序,作用是在单链表尾部(即对尾)
插入一个病历号码。如果插入不成功,则退出程序。
struct bingli *(ListDelete(struct bingli *head))
〃就诊程序。作用是输出就诊的病历号(即队首元素),并且删除队首元素、释放其所占空 间。
void display(struct bingli *head)
〃显示队列所有元素
(2)本程序包含两个模块:
主程序模块:
void main()
队列操作模块:实现所要求的所有实际操作;
各模块之间的调用关系如下:
主程序模块
队列操作模块
3. 2详细设计:
struct bingli
{
int number; 〃数据类型为整型
struct bingli *next; 〃下一个节点
} bingli; 〃队列的类型
该结构体含有两个数据:第一个是排队的病历号码,第二个是指向这类结构体的指
菜单选择程序:
int Menu_select() 〃要求用户输入一个正确的菜单选项。如果不正确,则重复调用 此子程序,直到输入的值是正确的
创建一个单链表:
struct bingli *(creat())
〃如果创建成功,则返回这个单链表的表头;如果创建不成功,则退出程序。输出代数式:
插入一个病历号码:
void Listlnsert_rear(struct bingli *head)
〃创建一个单链表成功后,再次排队时则调用此子程序,作用是在单链表尾部(即对尾) 插入一个病历号码。如果插入不成功,则退出程序。
就诊程序:
struct bingli *(ListDelete(struct bingli *head))
〃作用是输出就诊的病历号(即队首元素),并且删除队首元素、释放其所占空间。
{
}
显示函数:
void display(struct bingli *head) 〃显示队列所有元素
7)主函数:
程序如下:
Void main()
3.3函数调用关系图
注:当调用排队程序吋,第一次调用使用creat子程序,第二次及以后的调用 使用Listlnsert_rcar子程序。Z所以采用这种方式,是因为第一次调用需要 创建队列,与以后的调用不同。
3.4程序清单:(见附录)
3. 5运行结果
图一
图二
4.总结
通过这次课程设计,让学生对一个程序的数据结构有更全面更进一步的认识, 根据不同的需求,采用不同的数据
原创力文档


文档评论(0)