资源描述
华中科技大学计算机科学与技术学院 C语言程序设计课程设计实 验 报 告题 目:门 诊 病 历 信 息 管 理 系 统专业:计算机科学与技术_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _班级:C S 08 09 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _学号:U 2008 1427 7 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _姓名:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _成绩:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _指导教师:卢萍_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _完成日期:2009年10月 8 日目录一、系统功能模块结构图.1二、数据结构设计及用法说明.1三、各模块的功能解析、程序结构、运行结果及部分流程图.2I 文件系统、辅助函数及欢迎界面.2n 录入信息.5m 修改信息.6w 插入信息.10V删除信息.13VI查询信息.14vn统计信息.15四、心得体会.17五、源代码及注释.18六、参考文献.103C语言课程设计实验报告CS以火陶权价一、系统功能模块结构图门诊病历信息管理系统VH.文件系统一统计未门诊员工信息计各月询门诊信息查询病历信息.查询单位信息期除门诊信M删除病历信息*除单位信息插入门诊福入病历信息修改门诊信息修改病7信息修改单位信段录入门诊信息杀入单位信息VV二、数据结构设计及用法说明该系统的数据结构是采用十字交叉链表。十字交叉链表的模型如下:NULL单位病历门诊信息十字交叉链表C语言课程设计实验报告CS以火陶权价三个结构的声明如下:/*定义存储单位基本信息的结构*/typedef struct danweichar dd_num10;char d_name30;char d_person20;char d_tel12;struct danwei*next;/*单位编号*/*单位名称*/*单位负责人*/*联系电话*/*指向下一个单位结点*/struct bingli*b_head;/*指向病历信息链表头指针*/JDANWEI;/*定义存储病历基本信息的结构*/typedef struct binglichar bb_num10;char name10;char sex;char bd_name30;char bd_num10;char birthdayll;char*history;char tel12;char add30;struct bingli*next;/*病历编号*/*姓名*/*性别*/*所在单位*/*所在单位编号*/*出生日期*/*药物过敏史*/*电话*/*住址*/*指向下一个病历结点*/struct menzhen*m_head;/*指向门诊信息链表头指针*/JBINGLI;/*定义存储门诊基本信息的结构*/typedef struct menzhenchar mb_num10;char md_num10;char kebie10;charchar zs30;char zd30;char yj3O;char doctor10;struct menzhen*next;MENZHEN;/*病历编号*/*所在单位编号*/*科别*/*门诊时间*/*主诉*/*初步诊断*/*治疗意见*/*医师姓名*/*指向下一门诊信息结点*/三、各模块的功能解析、程序结构、运行结果及部分流程图整个系统有七大模块,除了主函数外,另外还有24个函数,除了实现上面模块结构图中的各个功能以外,还有读取键入值的函数int get_key();画边框函数void box(intstartx,int stary,int high,int width);和一 个欢迎界面的函数 void welcome(void);。各个模块的功能解析和程序的结构说明分别如下:I文件系统、辅助函数及欢迎界面2C语言课程设计实验报告CS以 火 陶权 价 欢迎界面 v o i d w e l c o m e(v o i d);SB C:UserstaoDesktop课程设计tao.exe Welcome toThe clinic casehistori;infornation manage system Uersion 1.0.0Copyright 20092010By TaoSongqiao 2009/10/12 14:56:23Press any key to enter?本程序是由w i n t c编译。该界面调用了 d o s库里的g e t d a t e和g e t t i m e函数,d a t e和t i m e结构已在d o s.h中定义,可以读取系统日期和时间。首先将界面背景设为白色,字体设为蓝色,然后输出相应信息及系统时间。最后使用g e t c h()函数,使得按任意键进入系统主界面。得到按键值int g e t _ke y();要使程序得到键盘按键值,就要对按键进行扫描,通过查询键盘编码表,通过g e t _ke y函数返回按键的扫描码(即编码高位字节)。在g e t _ke y函数中,首先定义类型为R E G S的联合体r g,然后降高字节初始化为0,然后使用int 8 6函数寄存键值,最后输出高字节键值即扫描码。画边框函数 v oid b ox (int s t ar t x,int s t ar t y,int hig h,int w id t h);该函数主要是在设计下拉菜单时使用,通过该函数画出一个矩形框。换矩形边框时,先打印左上角,再打印上边线,再打印右上角,再打印左边线和右边线,最后打印左下角,下边线和右下角。s t ar t x s t ar t y hig h w id t h分别代表起始坐标和矩形边框的高度和宽度。C语言课程设计实验报告CS以火陶权价 导入文件 v oid load (D A N WE I *d _he ad);该函数中声明了3个字符薪组,分别用来存储要导入的三个文件的路径名,即用户可以自己确定要导入的数据文件。如果用户输入的文件路径不对或者文件不存在,系统会提示用户重新输入或者退出。读入单位时,建立的是后进先出链表,最先保存的那个单位建立在链表的尾部;读取病历时,先要找到对应的单位编号,然后建立后进先出链表;读取门诊时,先找到对应病历编号,然后同样建立后进先出链表。录入完毕,关闭三个文件。保存文件 v oid s av e (D A N WE I *d _he ad);该函数有三个文件指针,分别指向三级信息要保存的文件。函数将整个系统的三部分数据分别保存在3个文件里面,而且也声明了 3个字符数组,用来存储文件名,即用户可以自己选择保存的路径和文件名。伏)显示信息 v oid s how (D A N WE I *d _he ad);该函数可以将整个系统的而有信息显示出来。本函数新建立三个窗口,即先建立一个窗口输出单位信息,然后在原有窗口上建立第二个窗口用来输出病历信息,最后在原有窗口上C语言课程设计实验报告CS以火陶权价建立第三个窗口用来输出门诊信息。当显示完一次门诊后按任意键清屏显示下一个门诊,当一个病历的门诊显示完之后,清屏显示下一个病历并显示其病历,当一个单位的病历显示完之后清屏显示下一个单位,当显示完所有信息后清屏按任意键退出。I I录入信息 录入单位信息D A N WE I *c r e at e l(v oid);该函数是录入单位基本信息,建立第一级链表。建立该链表采用的是后进先出式,即输入的下一个单位的ne x t指针指向前一个单位,最后录入的那个单位作为链表的第一个单位。返回值为指向第个单位的指针。将每个单位的b he ad指针赋值为空。效果如下:=1回I淤ISJ C:UserstaoDesktop 导星设计Xa d-inMod if y Ad d-in De le te Inquii*y Ca lc ula t ion He IpPle a se e nte r thex ore xit:000001001Ple a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thePle a se e nte r thenumb e r of v/orkunitle ngth10,e nte rna me of work unitle ngth:c spe ople re sponsib le for:zhe ngqia ngc onta c t te le phone:13554151001numb e r of v/orkunitle ngth10,e nte rna me of work unitle ngth:ma thpe ople re sponsib le for:zha oe rc onta c t te le phone:13554151002numb e r of workunitle ngth10,e nte rna me of work unitle ngth:physic spe ople re sponsib le for:lisic onta c t te le phone:13554151003orornumb e r of workunitle ngth10,e nte r x ina me of work unitle ngthxc he mistrvpe ople re sponsib le for:zha ngsa nc onta c t te le phone:13554151004ortonumb e r of workunitle ngth:xe xit:000001003e xit:000001004xe xit:000001002xXX 录入病历信息 B I N G L I *c r e a t e 2 (D A N W E I *d _h e a d);本函数是在录入单位基本信息的基础上录册历基本信息,建立第二级链表,如果未录入单位信息将自动退出。首先提示输入要录入病历信息的单位编号,然后找到对应的单位(如未找到则提示重新输入或退出),如果该单位有多条病历输入,则建立一个先进先出链表。将单位最后一条病历的n e x t指针赋值为N U L L。如果该单位已经存在病历信息则提示退出,用户可以通过插入来输入病历信息。每条病历的m _h e a d指针都自动赋值为N U L L。输入病历信息时,不C语言课程设计实验报告CS以火陶权价必重新输入单位编号,单位名称,而通过s t r c p y函数将单位信息复制到病历结构中。当用户不在输入某一单位病历时,可自动通过循环提示输入下一个单位病历信息或者输入X退出。录入门诊信息 M E N Z H E N *c r e a t e 3(D A N W E I *d _h e a d);本函数是在录入单位信息及病历信息的襄础上建立的第三级链表,即门诊信息链表。同前,先找到对应的单位,然后再找到对应的病历,找到后先判断是否已经存在门诊信息,如果门诊信息不存在,则可建立一个先进先出链表,如果门诊信息已经存在,则提示用户可以使用插入函数来添加,并退出该函数
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索