《数据结构》课程设计报告课程名称:《数据结构》课程设计课程设计题目:病人看病模拟程序姓名:院系:信息工程系专业:计算机科学与技术班级:学号:指导老师:目录1课程设计的目的………………………………………………12需求分析…………………………………………………………13程序设计报告内容……………………………………………23.1概要设计……………………………………………………………………23.2详细设计……………………………………………………………………23.3函数调用关系图…………………………………………………………43.4程序清单………………………………………………………………………53.5运行结果………………………………………………………………………54总结………………………………………………………………………………7参考文献………………………………………………………………………………7附录………………………………………………………………………………………8病人看病模拟程序1.课程设计的目的(1)熟练掌握队列的两种存储方式。(2)掌握队列的基本操作及应用。(3)利用队列实现病人就医管理模拟程序。2.需求分析设计一个病人就医管理系统,编写一个程序定义行医,反映病人到医院看病,排队看医生的情况,在病人排队过程中,主要发生两件事:(1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。(2)护士从等待队列中取出一位病人的病历,该病人进入诊室就诊。要求程序采用菜单方式,其选项及功能说明如下:(1)排队------输入病人的病历号,加入到病人排队队列中(2)就诊-------病人排队队列中最前面的病人就诊,并将其从队列中删除。(3)查看排队------从队首到队尾列出所有的排队病人的病历号。(4)下班---------退出运行。3.课程设计报告内容3.1概要设计:(1).抽象数据类型图的定义如下:此程序采用队列数据结构,存储结构为单链表,采用此种结构一方面可以采用数据复杂程度,增加系统稳定性;另一方面,利用动态分配内存的方法,便于内存管理,充分利用内存空间。intMenu_select()//菜单选择程序,要求用户输入一个正确的菜单选项如果不正确,则重复调用此子程序,知道输入的值是正确的structbingli*(creat())//创建一个单链表。如果创建成功,则返回这个单链表的表头;如果创建不成功,则退出程序。voidListInsert_rear(structbingli*head)//创建一个单链表成功后,再次排队则时调用此子程序,作用是在单链表尾部(即对尾)插入一个病历号码。如果插入不成功,则退出程序。structbingli*(ListDelete(structbingli*head))//就诊程序。作用是输出就诊的病历号(即队首元素),并且删除队首元素、释放其所占空间。voiddisplay(structbingli*head)//显示队列所有元素(2)本程序包含两个模块:a.主程序模块:voidmain()b.队列操作模块:实现所求的所有实际操作各模块之间的调用关系如下:主程序模块队列操作模块3.1详细设计1)structbingli{Intnumber;//数据类型为整型structbingli*next//下一个节点}bingli;//列队的类型该结构体含有两个数据:第一个是排队的病历号码,第二个是指向这类结构体的指针。2)菜单选择程序:IntMenu_select()//要求用户输入一个正确的菜单选项。如果不正确,则重复调用此子程序,直到输入的值是正确的3)创建一个单链表:Structbingli*(crear())//如果创建成功,则返回这个单链表的表头,如果创建不成功,则退出程序,4)插入一个病历号码:VoidListInsert_rear(structbingli*head)//创建一个单链表成功后,再次排队则调用此子程序,作用是在单链表尾部(即对尾)插入一个病历号码。如果不成功,则退出程序。5)就诊程序:structbingli*(ListDelete(structbingli*head))//作用就是输出就诊的病历号(即队首元素),并且删除队首元素、释放其所占空间。6)显示函数voiddisplay(structbingli*head)//显示队列所有元素7)主函数程序如下:voidmain(){structbingli*head;printf("*************************************************\n");printf("*欢迎进入就医排队管理系统!*\n");printf("*...