


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计报告题目电子医嘱录入系统系别年级专业班级学号学生指导教师 职称 讲师设计时间 目录1 绪论11.1课题背景和意义 1.1.2主要研究容 仁2系统功能设计1.2.1初始化模块2.2.2预约模块2.2.3查看预约信息模块2.2.4删除预约信息模块2.2.5创建病人信息模块 3.2.6修改病人信息模块3.2.7查看病人信息模块 3.2.8保存信息并退出模块 3.3 系统详细设计.3.3.1数据表的存储组织 3.病人信息数据结构 4科室信息数据结构 4病人预约信息数据结构 5三种结构的关联53.2主要算法设计6.初始化模块 7预约模块8查看预约模块 9删除预约模块 10创建病人信息模块 11修
2、改病人信息模块12查看病人信息模块 13保存信息并退出模块 144系统测试154.1病人信息管理测试 1.64.2病人预约信息管理测试 194.3文件信息存取测试225总结与展望235.1全文总结23心得体会24参考文献251 绪论1.1课题背景和意义随着社会的信息化,各个行业的管理与运营都逐渐开始使用电子系统来取代 传统的管理模式。使用电子医嘱管理可以帮助医院更为便捷的管理医嘱,通过计算机技术给医院的管理人员和就诊病人在病历创建、预约查询以及记录统计等方 面带来便利,为医院在管理医嘱方面提供一种更好的方式。1.2主要研究容本系统使用C语言编写了电子医嘱管理系统,主要实现医院中医生医嘱的电 子
3、管理。通过此系统可对医嘱进行管理和维护操作,实现电子医嘱管理的一般功 能。主要容包括:(1)电子医嘱查询。提供按照科室信息、病人信息查询;(2)电子医嘱创建。提供病人信息、预约记录的录入功能;(3)电子医嘱编辑。提供对系统数据的修改、删除等功能;(4)电子医嘱维护。提供对系统数据的保存、读取等功能。系统采用菜单方式作为人机交互界面,为用户提供便捷的使用方式。用户根 据菜单提示,选择所需要的服务,系统自动做出相应的响应。医嘱信息包含病人、 号、科室名称、就诊科室等。科室信息、病人信息的读取和保存要求有一定的格 式规,录入的信息以文件的形式保存并可以对其进行浏览、查询、修改、删除等 基本操作。整个
4、程序基于链表实现,一个就诊信息的更改不影响其他的就诊记录。2系统功能设计电子医嘱管理系统是由五大功能模块组成:预约模块、查看预约信息模块、删除预约信息模块、创建病人信息模块、修改病人信息模块、查看病人信息模块、保存信息并退出模块以及初始化模块如图 2.1所示。图2.1电子医嘱管理系统的功能模块2.1初始化模块创建链表并将文件中的格式化信息读取到存链表中2.2预约模块预约模块的操作流程包括选择预约科室,输入预约人员号,若存在病人则预约,若不存在则返回主界面。2.3查看预约信息模块查看预约信息模块的操作流程包括输入预约人员得到相关预约科室信息,若存在病人则预约,若不存在则返回主界面。2.4删除预约
5、信息模块删除预约信息模块的操作流程包括输入预约人员得到相关预约科室信息,选择删除预约科室删除成功返回主界面。2.5创建病人信息模块创建病人信息模块的操作流程依次输入、年龄、性别、联系、住址、密码 并回车添加病人信息。2.6修改病人信息模块修改病人信息模块的操作流程输入病人号显示病人信息输入修改项并输入 修改的容,若退出则按0返回主界面。2.7查看病人信息模块查看病人信息模块的操作流程输入病人显示病人信息按回车返回主界面。2.8保存信息并退出模块保存信息并退出模块的操作流程直接退出程序将链表中的信息保存到文件。3系统详细设计3.1数据表的存储组织根据2.3节中设计,系统建立病人基本信息和病人预约
6、信息表。在系统实现 中,采用存链表和磁盘文件二级的数据存储结构来存放这些数据信息。系统将文件信息转换为存链表,再将链表转换成磁盘文件形式。系统首先将 磁盘文件数据转入存链表,在通过对链表数据的处理,对用户请求作出响应。本系统以病人信息文件以及预约信息二份文本文件作为表单对应的磁盘存 储,在存中以结构变量的方式分别存放基本信息, 并以链表的形式将所有的数据 组织起来。病人信息数据结构病人信息在存中米用结构类型进行描述。病人结构成员包括:病人、号、性 别、年龄、联系方式、家庭住址、密码。病人、号、性别、年龄、联系方式、家 庭住址、密码均以字符数组的形式存储。 在病人结构中有一个个结构指针, 指向
7、下一个病人结构,通过这个指针可以组成病人链表。该结构变量实现病人信息表 在计算机上的存储,其结构声明如图 3.1所示。typedef struct patie nti nf char n ame10; char nu mber19; char sex10; char age10;char tel20; char addr20;char PassWord5; struct patie nti nf *n ext;pat inf;图3.1病人结构科室信息数据结构科室信息在存中采用结构类型进行描述。科室结构成员包括:科室名称。科 室名称以指针数组的形式存储。在科室结构中有二个结构指针,一个指向下一个
8、 科室结构,通过这个指针可以组成科室信息链表, 一个指向下一个病人结构,通 过这个指针可以组成病人链表。该结构变量实现病人信息表在计算机上的存储, 其结构声明如图3.2所示。typedef struct head char *n ame; struct head *n ext; struct pat *n ext_;class_;图3.2科室结构病人预约信息数据结构病人预约信息在存中采用结构类型进行描述。预约结构成员包括:病人号。病人号以字符数组的形式存储。在预约结构中有一个结构指针,指向下一个预约 结构通过该指针可以将某一科室的所有预约病人起来, 组成就诊链表。该结构变 量实现病人预约信息表
9、在计算机上的存储,其结构声明如图 3.3所示。typedef struct pat char nu mber19; struct pat *n ext;patie nt;图3.3预约结构三种结构的关联本系统数据之间以指针相结合的方式来系统中各类对象。 系统中,科室结构 中的病人号以及科室编号的值将科室和预约病人关联起来。在系统实现中为了提 高查询效率,查询模块实现中采用了值的相等对记录进行定位。科室、预约病人之间存在着层次关系,为了在存中较好的体现这种层次关系,本系统采用二重链表的方式组织信息之间的关联关系。具体结构如图3.4所示科室信息存放在二重链表的主链结点上,每个主链结点除了保存下一个结
10、点 的地址,还保存该科室的预约病人的基本信息链表头结点地址;预约病人信息存放在二重链表中相应科室的预约病人链结点上,每个结点保存下一个预约病人基 本信息结点的地址。ALL f外科图3.4二重链表存储结构示意图病人信息存放在单链表中,具体结构如图3.5所示。病人信息结点除了保存病人信息还保存下一个结点的地址图3.5单链表存储结构示意图3.2主要算法设计本系统在算法设计上采用“自顶向下,逐步求精”的设计方法。由全局 到局部、由整体到细节、由抽象到具体,逐步将系统的问题分解为相对简单的小 规模问题。本系统依照使用功能分成几个子模块:预约模块、查看预约信息模块、删除预约信息模块、创建病人信息模块、修改
11、病人信息模块、查看病人信息模块、 保存信息并退出模块以及初始化模块。系统的总控模块的算法流程如图3.1所示。文本菜单初始化界面加载文件中存储馆勺链表数据系统功能模块的选择和运行保存数据链表关闭系统图3.1主程序运行流程图321初始化模块初始化模块负责将文本文件转换成存链表。在第 2章的概要设计中,系统数 据分为二种基础数据,这二种系统数据要求储存到数据文件中。为便于处理每 个文件,本系统将三种数据分别存放在二个文本文件中。为了实现上述功能编 辑了三个子函数与一个创建单链表语句 :struct head *TreeListCreat(int n); void Patl nfToListRead(
12、);void Appoi ntedl nfToListRead(); Patl nfHEAD->n ext=NULL;初始化的过程包括将预约信息文件、病人信息文件从数据文件中读取并存放到所创建的链表中。算法流程如图 3.2所示。图3.2初始化模块运行流程图预约模块预约模块中包括找到对应预约科室尾部结点并添加结点其中使用到四个函 数:struct pat * main ListLocatedSearch(char *str);struct pat* leafListTailSearch(struct pat* head);pati nf *Pat In fNodeSearch(char *
13、nu mber);struct pat* leafList no deAdd(patie nt *previous);过程包括找到所预约科室头结点然后根据头结点找到添加链表的尾结点输入信息在添加结点。算法流程如图 3.3所示。图3.3预约模块运行流程图查看预约模块查看预约模块中包括找到病人预约二重链表中所有的预约信息使用到两个子函数:void Appoi ntNumDisplay();void PatAppo in tedSearch(char *str);过程包括遍历分科室遍历二级链表然后显示预约信息。算法流程如图3.4所示。图3.4查看预约模块运行流程图删除预约模块删除预约模块中包括找到结
14、点位置,和找到结点前一个位置用到四个子函数struct pat * leafListLocatedSearch(struct pat *sec on dlist,char *nu m);struct pat * main ListLocatedSearch(char *str);struct pat * leafListLocatedSearchPrevious(struct pat *sec on dlist,char *nu m); struct pat * leafListLocatedSearch(struct pat *sec on dlist,char *nu m);过程包括先找到
15、要删除结点的前一个结点位置和删除结点位置然后删除结点然后将前一个结点的位置指向下一个结点。算法流程如图3.5所示。图3.5删除预约模块运行流程图3.2.5创建病人信息模块仓U建病人信息模块中包括找到病人信息链表的尾结点然后添加结点使用到 两个子函数:pat inf* Patl nfListTailSearch()void PatI nfList nodeAdd(pati nf *tail)过程包括找到病人结点尾部然后在病人结点尾部添加一个结点。算法流程如图3.6所示图3.6创建病人信息模块运行流程图修改病人信息模块修改病人信息模块中使用到一个子函数:pati nf *Pat In fNodeS
16、earch(char *nu mber);过程包括找到结点然后修改容。算法流程如图3.7所示图3.7修改病人信息模块运行流程图327查看病人信息模块查看病人信息模块中使用到一个子函数:pati nf *Pat In fNodeSearch(char *nu mber);过程包括找到结点然后显示容。算法流程如图3.8所示图3.8查看病人信息模块运行流程图保存信息并退出模块保存信息并退出模块中使用到两个子函数:void PatListl nfSave();void Appo in tList In fSave();过程包括保存格式化的病人信息到文件和保存格式化的预约信息到文件然后退出程序。算法流程
17、如图3.9所示。图3.9保存信息并退出模块运行流程图4系统测试软件测试即使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软 件测试方法可以让测试事半功倍。常用的软件测试方法有:黑盒测试、白盒测试、静态测试、动态测试、自动 化测试、功能测试、集成测试、场景测试、系统测试等。本系统的测试针对系统 的功能进行检查,以功能进行分类,对几个模块进行测试。4.1病人信息管理测试运行程序首先创建病人信息如图所示 j AUser swepks tog eth? rD.
18、电于医瞩录入系统¥2-1. 预约2. 查看预约仃息3. 删除预约信息4 .创建病人指息5. 修改病人信息6查看病人信息7.探存信息退出愉入:4输XW人信15:身份证号:000 姓名;000 年 _:000 性别:000 联聚电话;000 住址:000 密码:。00添加成功!请按任意犍继续图创建病人信息然后可选择修改病人信息如图所示iMAUsprswepkstogethe. -电于医嘱录入系统U-一-1. 预约2. 15甘预约信息3删涂预约信息4. 仓j盘病人信息3応改病人仁息G. 2E看庙人信息7.保存信息退岀目j 5 錮入日馆证:000炳人信息:1. 身 1:lt 号:0002.
19、姓名:0003. 年龄;0004. 性别:0005. 联系电话:000&住址:0007.密 P J: 000输入修改项:22. 姓名:000 请输入要改成的内容:病人f言息:身份证号:0()0 ttg:222 年龄:000 性别:000联系电话:000 仕址:000 密码:000是否修改完成(是请按0)输入:图修改病人信息 C :U p r wer k stog et h? rD.L.身份证:0002. 姓 2:0003. 甲龄:0004. 栓别:0005. 联系也话:00°6. 住址:0007. 密码:000输入修改项:2 匕 姓g:000 请输入要改成的内容2L9I3.4
20、.6.病人信息:身份证号:000 姓 :222 年: 000 性别:000人杀世占:000住It: 000Slzooo是否修改完成(足诸按0)输入:33. 年龄:000洁输入哼改成的內容;333病人信息: L身份证号:000 ?炸名,223. 年嫌:3334. 徃别:000入麻聚电话:0006. 住址:0007+密码:000是否修改完成(是请按0)输入:图修改多项病人信息 C:User swepkstog eth rD. X电广医矚求入系统¥21. 预约2. 査看预约信息3. 删除更约佶息4 创建病人信息3. 倍改病人信息6. 査看構人倍息了保存倉息退出 输入:6 输入身份证号:00
21、0病人信息:P份LEtJ :0002. 姓名;2223. 年龄;3334. 性别:0003.联系电话:000 8住址;0007. VF,;iH:000谙按住意键继续.*图查看病人信息4.2病人预约信息管理测试 C :User sweek s t og e th? rD.-电广医矚求入系统V2-1. 预约2. 査看预约信息3. 删除预约傭息4 创建病人信息5.修改構人信息&甘看病人信恵7 保存詹息退出输入:1预约:人人人人:0 0 0 0 04 #I和朴斗忖一 内外儿骨皮一 i «- s h 0 12 3 4输入预约科莖用号;o 请输入身份证号:000 両约戒功谙按住意键继续.
22、,图421预约科室也可查输入病人查看预约信息如图 422所示C:User wppk stoge thrD -电子医嘱录入系统V2-1.预约2查看预约信息3删除预约信息4创建祸人信息5. 修改病人信息 匸查看応人f?息7. 保存信息退出输入吃査看预约信息:人人人人:0一1 o o o f, 内外儿骨皮询入屈人身侍证号:000:0到到到科到 科到科找科找科找狀找 内找外未儿无甘衣皮衣图422查看预约信息还可删除预约如图423所示 1 C :U ser Awrrk t og r thT rD. 电于医嘱录入系统¥2-1. 预约2. 预约仁息3删除预约信息4创建病人信息ag. a# is人仁
23、息7保存信息退出输入:3输入病人身份证号:0000.內科 找到:0001. 拆科 未找到:0002. 儿科 未找到:0003. 骨科 耒莪到:0004. 皮肤科 耒 lO'kooo选择删隐预约科窒谕入:0找到:000找到:000删除成功图424删除预约信息4.3文件信息存取测试初始化会打开”病人信息.txt”与”科室信息.txt”读取信息如果文件不存在则会创建,程序退出选择” 7呆存信息并退出”,链表中的信息会保存到文件中5总结与展望5.1 全文总结本文使用C语言实现了电子医嘱管理系统,实现了课程设计的功能要求, 能够正确运行。从实用和性能方面可以进一步加以改善。(1)完整性。可通过增
24、加科室表等方法,对输入信息进行完整性检查。如 果输入科室名称与表不符,则该信息视为无效。对年龄设置上下限,以保证数据 的合理性。(2)安全性。在系统中可以增加多种角色的登陆方式, 提高系统的安全性。 对于不同角色的用户,给与不同的操作权限,从而保证系统部数据的安全性。 在 登陆时可加入口令认证,确保用户身份的正确性。(3)性能优化。对部数据建立索引表,对索引表进行二分查找,提高查询 速度。对链表可以采用双向十字链表结构存储,提高信息处理的速度。心得体会刚开始看到题目时一头雾水,不知该从何处下手,因为平时只做过一些输 入输出的普通小程序,根本没有界面的概念。于是我就想如果先运行一下书上提 供的样
25、例程序,脑概也就有了一些概念和想法。可是把书上提供的几个代码拿来 一运行编译error就有几十行,面对那上千行的代码,我就不知该怎么下手了。 后来实在没办法,首先拿起那本C语言实验与课程设计看了三天,大概懂了一 些函数的用法,就开始将书上的代码一段一段的输入进去跑一跑,慢慢的就大概懂了怎么来实现那些界面。首先把那个任务说明看了几遍,就将程序主要分成五大块容:(1)文件处理 功能:首先得有将数据信息保存的功能,这就得用到老师讲的“文件”那章的知 识,我又拿起课本看了几遍。其次还得有数据备份的功能,以备在重大失误后能 找回一些数据,将损失降低。有了备份,还得有恢复备份数据地功能。最后必须 有安全退
26、出系统的功能。(2)数据处理功能:首先得让系统能读入操作者输入的 数据并将数据存储在文件中。然后如果操作者 输入数据有误那还得有对数据修 改,部分数据删除,以及数据添加的功能。(3)查询功能:第一可以按照科室编 号来查询,第二还可以按照病人号查询,第三还可以按照科室编号,病人及就诊 日期进行多条件统计查询。(4)统计信息功能:最重要的要有日就诊人数统计功 能,其次还可以有病人就诊历史,就诊病人年龄分类的统计。(5)系统帮助功能: 第一得告诉操作者本系统的用途,然后告诉怎样操作使用系统以及一些基本的操 作快捷功能。最后,当屏幕上显示的信息过多时还得有清理屏幕的功能,以方便用户观看数据。接下来就是
27、一一实现那些功能。通过运用课堂上讲过的数组,指针,文件等 知识,编写了链表的创建,之后是将链表的容写入到文件中保存, 并将文件中写 入的容再次逐条读取出来,显示在屏幕上。这个主体写完了,接下来就开始写科 室、病人等信息的查询函数,这个就比较容易点。还有就是我想写一个能将同一 病人在不同科室下的所有就诊记录全部显示的功能, 方便病人查询自己就诊历史。最后就是调试程序了。这个应该是整个课程设计中最为复杂和难搞的部分。 首先是整个系统,光是函数就有几十个,而且经常是一个函数中又调用着若干其它函数,这样调试起来就比较困难,因为就算一个函数里,一点小小的错误就会 引起连锁反应导致其它函数都出错, 而且有
28、些错误时隐性的,就是可能在这个函 数中运行没问题,可在哪个函数中运行起来又有大问题。 所以调试也是最耗时间 和精力的一个环节,有时候我为了测试一个函数的功能是否稳定, 我得将程序跑 很多次,一遍又一遍的运行,看看有没有一些不足的地方,有没有一些隐藏的问 题,然后又得静下心来仔细分析问题原因所在并慢慢地纠正并再次调试运行,直到满意为止。差不多有连续十来天我有空就将程序跑一跑, 看看有没有大问题潜 藏在其中,一经发现立刻将它修正。这十来天我也体会调试员真还得过硬的基础 知识,能敏锐觉察出代码中的错误,而且还得有足够的精力和耐力。尽管程序系统算是完成了,但是开始写报告时才发现原来课程设计才刚 完成了
29、一半而已。还得将当初的构思、想法、到实现、再到最后的调试,这其中 每个环节的步骤用文字的形式记录下来, 好让其他人也能了解你当初的想法。 其 实有些想法有你自己特异的思维方式, 也许口头说说还行,真得写下来,并让别 人也看懂,并不那么容易。在本次C课程设计构思创作过程中,得到了老师的大力帮助和支持,在此 表示衷心的感谢,感谢提供无私的帮助和支持的老师们!感谢他们默默无闻的 奉献!另外也要感谢热心的同学们,他们在我的设计过程中给与了很多的建议 与帮助。参考文献1 曹计昌,卢萍,开.C语言程序设计,:科学,20082 引.C程序设计基础课程设计,:大学,2007:清华大学。3 黄明,梁旭,万洪莉.
30、C语言课程设计,:电子工业,20064 Brain W Kernigha n, Denn is M Ritchie. THE C PROGRAMMING LANGUAGE. PRENTICE HALL,2011.ISO/IEC 的 C语言标准。ISO/IEC 9899 : 20116 秦友淑,曹化工。C语言程序设计教程(第二版)。7 田淑清.二级教程-C语言程序设计(2008年版)8 振安.C语言程序设计M.机械工业,2007#i nclude<stdio.h>#i nclude<malloc.h>#i nclude<stdlib.h>#i nclude&l
31、t;stri ng.h>#i nclude<time.h>#i nclude<Win dows.h>#defi neN 5 /*科室数量*/time_t_Curtime = (time_t )0;structtm* _RetTime = NULL;/*功能:定义patient 结构体*输入:*返回:*/typedefstructpatie ntinfchar char char char char char char structnumber 19;PassWord 5;name 10;age 10;sex 10;tel 20;addr 20;patientinf
32、* next ; patinf/*功能:定义patient 结构体*输入:*返回:*/ typedef struct pat charnumber 19;chartime 20;structhead * _n extstructpat * next ; patient/*功能:定义class_ 结构体*输入:*返回:*/typedefstructhead char* n ame;structhead* nextstructpat* n ext_ class_/*定义一个大头*/class_ *ALL=( struct head *) malloc (sizeof (struct head);/
33、*定义病人信息链表头*/pat inf* Pat In fHEAD =( pat inf*) malloc (sizeof ( pati nf );char strhead2 5="头"char STR N 12="科","外科","儿科","骨科","皮肤科"char Strfilepat 17="病人信息.txt"char Strfileappointed 17="预约信息.txt"/*功能:从文件中读入预约信息*输入:*返回:*/
34、voidAppo in tListI nfSave();/*功能:从文件中读入预约信息*输入:*返回:*/void Appo in ted In fToListRead();/*功能:显示各个科室预约人数信息*输入:*返回:*/void Appoi ntNumDisplay ();/*功能:从文件中读入科室信息*输入:*返回:*/void ClassMessageDisplay (intnumber );/*功能:遍历链表所有元素输入:链表头结点,匹配元素返回:结点位置(结点地址)*/struct pat * sec on dlist, char *nu m);/*功能:向结点尾部添加结点输入
35、:叶子结点返回:尾结点*/struct pat * leafList no deAdd/* 功能:向结点尾部添加结点输入:叶子结点返回:尾结点*/ leafListLocatedSearch(struct pat* sec on dlist, char *nu m);/*功能:遍历链表所有元素*输入:链表头结点,匹配元素返回:结点位置的上一个位置*/pat(patient* previous );struct pat * leafListLocatedSearchPrevious(structstruct pat* previous );leafList no dea ndNumAdd(cha
36、r * Num patient/*功能:遍历链表所有元素*输入:链表头结点*返回:结点个数*/charleafList nu mSearch( struct pat * sec on dlist);/*功能:找到树枝尾部*输入:树枝头部结点*返回:尾部位置(尾部地址) */(struct pat * head );struct pat * leafListTailSearch/*功能:遍历链表所有元素输入:链表头结点(struct head *mainlist,char *str)返回:副链表头*/struct pat * mainListLocatedSearch (char *str );
37、/*功能:遍历链表所有元素* 输入:链表头结点(struct head *mainlist)*返回:结点位置(结点地址) */(struct head * mainlist);char mai nList nu mSearch/*功能:从病人链表中遍历病人信息输入:返回:*/(char * str );void PatAppoi ntedSearch/*功能:改变病人信息输入:病人号返回:*/voidPatInfChange( char * number );/*功能:向病人信息链表末端添加元素* 输入:pat in f *tail*返回:*/voidPat In fList nodeAdd(
38、 pati nf *tail );/*功能:找到病人信息链表末端*输入:*返回:末端结点地址*/patinf* PatInfListTailSearch();/*功能:遍历病人信息链表找到病人结点的前一结点*输入:病人号返回:病人节点的前一结点位置*/(char * number );pat inf * Patl nfNodePreviousSearch/*功能:遍历病人信息链表找到病人结点*输入:病人号*返回:病人节点位置*/(char *nu mber);patinf* PatInfNodeSearch/*功能:从文件中读入病人信息*输入:*返回:*/voidPatI nfToListRe
39、ad();/*功能:保存病人信息到链表*输入:*返回:*/voidPatListI nfSave();/*功能:创建主干链表与叶子连接结点*输入:主干结点个数*返回:主干头结点*/struct head * TreeListCreat (int n);/*功能:创建主干链表与叶子连接结点*输入:主干结点个数*返回:主干头结点*/struct head * TreeListCreat (int n)int i ; struct structhead *h,* p1 ,* p2 ; pat * pat N;h=NULL;for (i =0; i <n; i +)p1 =( struct he
40、ad *) malloc ( sizeof ( struct head );/*动态分配存空间,并数据转换为(struct head) 类型*/pat i =( struct pat *) malloc ( sizeof (struct pat );/*为结点分配空间*/p1-> name=*( STR+i);strcpy_s ( pat i -> number , 5, strhead2 );pat i -> next =NULL; /*尾结点的后继指针为NULL(空)*/pat i -> _next =h; /*尾结点的后继指针为h*/p1 -> next_
41、=pat i ; /*返回链表的头指针*/if (h=NULL)/*指定链表的头指针*/ h = p1;p2=p1 ;elsep2 -> next =p1 ;p2=p1 ;p2-> next =NULL; /*尾结点的后继指针为NULL(空)*/return h; /*返回链表的头指针*/*功能:向结点尾部添加结点*输入:叶子结点*返回:尾结点*/struct pat * leafList no deAdd( patie nt * previous )struct pat * tail ;tail =( struct pat *) malloc (sizeof (struct pa
42、t );/*动态分配存空间,并数据转换为(struct pat) 类型*/printf ("请输入号:");scanf_s ("%s" , tail -> number , 19);if ( PatInfNodeSearch(tail -> number )= 0)return 0 ;tail -> next =NULL; /*尾结点的后继指针为 NULL(空)*/tail -> _next =ALL; /* 尾部结点 _next 指向 ALL大头 */if (previous-> nextNULL)previous->
43、; next=tail;return tail ; / previous )struct pat * tail ;tail =( struct pat *) malloc (sizeof (struct pat );/*动态分配存空间,并数据转换为(struct pat) 类型*/strncpy_s (tail -> number , Num, 19);/tail -> next =NULL; /*尾结点的后继指针为 NULL(空)*/tail -> _next =ALL; /* 尾部结点 _next 指向 ALL大头 */if ( previous -> next =
44、NULL)previous -> next =tail ; /*head 指向创建的结点 */return tail ; /*返回尾结点*/ /*返回尾结点*/*功能:向结点尾部添加结点*输入:叶子结点*返回:尾结点*/struct pat * leafListnodeandNumAdd( char * Num patient功能:遍历链表所有元素输入:链表头结点(struct head *mainlist)返回:结点位置(结点地址)*/ char main List nu mSearch ( struct head * main list ) char a=0;/*创建临时变量*/st
45、ruct head * ma in Temp =( struct head*) malloc (sizeof (struct head );mai nTemp =mai nlist;printf ("n");while (1)a+;printf ("%d.%s:n", a, mainTemp -> name);if ( ma in Temp - >n ext =NULL) printf("n"); return a;main Temp =ma in Temp -> n ext ; /*功能:遍历链表所有元素输入:链表
46、头结点(struct head *mainlist,char *str)返回:副链表头*/struct patmain ListLocatedSearch(char * str )int a=0;/* sec on dlist, char *num)/*创建临时变量*/struct pat * Previous ,* secTemp =( struct pat创建临时变量*/struct head *p=( struct head *) malloc (sizeof (struct head );p=ALL->next ;while (1)if ( strcmp ( p-> nam
47、e, str )= 0)return p-> next_ ; _a+;if ( p-> next = NULL)break ;p = p-> next ;return 0 ; /*功能:遍历链表所有元素*输入:链表头结点,匹配元素返回:结点位置(结点地址)*/patpat *) malloc (sizeof (structstruct pat * leafListLocatedSearch(structwhile (1)if ( strcmp ( secTemp -> number , num)= 0) printf ("找到:%sn" , num)
48、;return secTemp ; /?if ( secTemp -> next = NULL)break ;secTemp =secTemp -> next ;printf ("未找到:%sn" , num);return 0 ;/ malloc (sizeof (struct pat );secTemp =sec on dlist;while (1)if ( strcmp ( secTemp -> number , num)= 0)*功能:遍历链表所有元素*输入:链表头结点,匹配元素返回:结点位置的上一个位置*/patstruct pat * leaf
49、ListLocatedSearchPrevious(structprintf ("找到:%sn" , num);return Previous ;if ( secTemp -> next = NULL) break ;Previous =secTemp ;secTemp =secTemp -> next ;printf ("未找到:%sn" , num);return 0 ;/*功能:遍历链表所有元素*输入:链表头结点返回:结点个数*/char leafList nu mSearch( struct pat * sec on dlist)ch
50、ar a=0;(struct/*创建临时变量*/struct pat * secTemp =( struct pat *) malloc ( sizeof pat );secTemp =sec on dlist;while (1)if ( strcmp ( secTemp -> number , strhead2 )= 0)else a+;if (secTemp->next =NULL) break ;secTemp =secTemp -> next ; return a; /*功能:找到树枝尾部输入:树枝头部结点返回:尾部位置(尾部地址)*/head )struct pat
51、 * leafListTailSearch(struct patstruct pat * Temp; /* 创建临时变量 */Temp=head ;while (Temp-> next != NULL)Temp=Temp-> next ;return Temp;/*功能:显示各个科室预约人数信息*输入:*返回:*/()patie nt* p;class_*cp;cp =ALL-> next ;printf("void Appoi ntNumDisplay for (int i =0; i +) printf ("%d.%s:" p=cp ->
52、; next_ ;-n"i , cp -> name););printf("%d 人n" , leafListnumSearch(p);if ( cp -> next =NULL) break ;cp=cp ->next ;);printf ("n"/*功能:从病人链表中遍历病人信息*输入:*返回:*/voidPatAppointedSearch( char * str )patient* p;class_ * cp;cp =ALL->next ;while (1)printf("%sn" , cp-
53、>name);p=leafListLocatedSearch(cp -> next,str );if ( cp -> next =NULL) break ;cp=cp ->next ;/*功能:找到病人信息链表末端*输入:*返回:末端结点地址*/patinf * PatlnfListTailSearch()pati nf );pat inf* p=( pat inf*) malloc ( sizeof (p=PatI nfHEAD ;while (1)if ( p-> next =NULL) break ;elsep = p-> next ;return p; /*功能:向病人信息链表末端添加元素* 输入:pat in f *tailprintf("输入病人信息:n");printf("号:");sca nf s("%s",p-> number , 19);printf(" :");sca nf_s("%s"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 油气集输流程
- 讲师招聘合同书:条款与条件
- 线上供应链融资业务合作框架合同
- 腰部脊髓损伤的护理查房
- 跨境电商合作框架协议:共筑国际市场新桥梁
- 自媒体创新创业计划书
- 房地产合同纠纷上诉状范例大全
- 物流公司运输业务承包合同
- 物业分公司合同风险防范:7月工作重点
- 纯化水的操作规程
- 第47届世界技能大赛江苏省选拔赛竞赛技术文件-混凝土建筑项目
- 2024年新人教版四年级数学下册《第6单元第2课时 小数加减法》教学课件
- 国开2024年《数据库运维》形考1-3
- 劳动合同(模版)4篇
- 少儿美术课件国家宝藏系列《鸱吻》
- 盐城射阳农村商业银行招聘真题
- 137案例黑色三分钟生死一瞬间事故案例文字版
- 药物研发监管的国际协调
- 生猪屠宰兽医卫生检验人员理论考试题及答案
- DL-T5434-2021电力建设工程监理规范
- 房地产营销毕业论文
评论
0/150
提交评论