?数据结构?课程设计报告课程名称:?数据结构?课程设计课程设计题目:病人看病模拟程序姓名:院系:信息工程系专业:计算机科学与技术班级:学号:指导老师:目录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(structbinglihead)//创立一个单链表成功后,再次排队那么时调用此子程序,作用是在单链表尾部〔即对尾〕插入一个病历号码。如果插入不成功,那么退出程序。structbingli(ListDelete(structbinglihead))//就诊程序。作用是输出就诊的病历号〔即队首元素〕,并且删除队首元素、释放其所占空间。voiddisplay(structbinglihead)//显示队列所有元素〔2〕本程序包含两个模块:a.主程序模块:voidmain()b.队列操作模块:实现所求的所有实际操作各模块之间的调用关系如下:主程序模块队列操作模块3.1详细设计1〕structbingli{Intnumber;//数据类型为整型structbinglinext//下一个节点}bingli;//列队的类型该结构体含有两个数据:第一个是排队的病历号码,第二个是指向这类结构体的指针。2〕菜单项选择择程序:IntMenu_select()//要求用户输入一个正确的菜单项选择项。如果不正确,那么重复调用此子程序,直到输入的值是正确的3〕创立一个单链表:Structbingli(crear())//如果创立成功,那么返回这个单链表的表头,如果创立不成功,那么退出程序,4〕插入一个病历号码:VoidListInsert_rear(structbinglihead)//创立一个单链表成功后,再次排队那么调用此子程序,作用是在单链表尾部〔即对尾〕插入一个病历号码。如果不成功,那么退出程序。5〕就诊程序:structbingli(ListDelete(structbinglihead))//作用就是输出就诊的病历号〔即队首元素〕,并且删除队首元素、释放其所占空间。6〕显示函数voiddisplay(structbinglihead)//显示队列所有元素7〕主函数程序如下:voidmain(){structbinglihead;printf("\n");printf("欢迎进入就医排队管理系统!\n");printf("\t<1>:排队;\n");printf("\t<2...