《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx

上传人:b****3 文档编号:13477158 上传时间:2022-10-11 格式:DOCX 页数:134 大小:1.33MB
下载 相关 举报
《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx_第1页
第1页 / 共134页
《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx_第2页
第2页 / 共134页
《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx_第3页
第3页 / 共134页
《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx_第4页
第4页 / 共134页
《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx_第5页
第5页 / 共134页
点击查看更多>>
下载资源
资源描述

《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx

《《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx(134页珍藏版)》请在冰豆网上搜索。

《C语言程序设计课程设计实验报告门诊病历信息管理系统》文档格式.docx

…………………………………………………….……………………………..1

二、数据结构设计及用法说明

……..………………………………………………………………………………1

三、各模块的功能解析、程序结构、运行结果及部分流程图

………………………………………………………………………….………..2

Ⅰ文件系统、辅助函数及欢迎界面………………2

Ⅱ录入信息…………………………………………5

Ⅲ修改信息…………………………………………6

Ⅳ插入信息…………………………………………10

Ⅴ删除信息…………………………………………13

Ⅵ查询信息…………………………………………14

Ⅶ统计信息…………………………………………15

四、心得体会

…………..………………………………………………………………..…….17

五、源代码及注释

……………………………………………………………………………………18

六、参考文献

….………………………………………………………………………………103

门诊病历信息管理系统

统计系统

查询系统

编辑系统

文件系统

信息保存

信息显示

信息导入

插入信息子

统计各月门诊量

统计各单位门诊量

统计未门诊员工信息

查询门诊信息

查询病历信息

查询单位信息

删除信息

修改信息

录入信息

删除门诊信息

删除病历信息

删除单位信息

插入门诊信息

插入病历信息

插入单位信息

修改门诊信息

修改病历信息

修改单位信息

录入门诊信息

录入病历信息

录入单位信息

该系统的数据结构是采用十字交叉链表。

十字交叉链表的模型如下:

……..

门诊nNULL

单位病历门诊信息十字交叉链表

三个结构的声明如下:

/*定义存储单位基本信息的结构*/

typedefstructdanwei{

chardd_num[10];

/*单位编号*/

chard_name[30];

/*单位名称*/

chard_person[20];

/*单位负责人*/

chard_tel[12];

/*联系电话*/

structdanwei*next;

/*指向下一个单位结点*/

structbingli*b_head;

/*指向病历信息链表头指针*/

}DANWEI;

/*定义存储病历基本信息的结构*/

typedefstructbingli{

charbb_num[10];

/*病历编号*/

charname[10];

/*姓名*/

charsex;

/*性别*/

charbd_name[30];

/*所在单位*/

charbd_num[10];

/*所在单位编号*/

charbirthday[11];

/*出生日期*/

char*history;

/*药物过敏史*/

chartel[12];

/*电话*/

charadd[30];

/*住址*/

structbingli*next;

/*指向下一个病历结点*/

structmenzhen*m_head;

/*指向门诊信息链表头指针*/

}BINGLI;

/*定义存储门诊基本信息的结构*/

typedefstructmenzhen{

charmb_num[10];

charmd_num[10];

charkebie[10];

/*科别*/

chartime[11];

/*门诊时间*/

charzs[30];

/*主诉*/

charzd[30];

/*初步诊断*/

charyj[30];

/*治疗意见*/

chardoctor[10];

/*医师姓名*/

structmenzhen*next;

/*指向下一门诊信息结点*/

}MENZHEN;

三、各模块的功能解析、程序结构、运行结果及部分流程图

整个系统有七大模块,除了主函数外,另外还有24个函数,除了实现上面模块结构图中的各个功能以外,还有读取键入值的函数intget_key();

画边框函数voidbox(intstartx,intstary,inthigh,intwidth);

和一个欢迎界面的函数voidwelcome(void);

各个模块的功能解析和程序的结构说明分别如下:

Ⅰ文件系统、辅助函数及欢迎界面

1欢迎界面voidwelcome(void);

本程序是由wintc编译。

该界面调用了dos库里的getdate和gettime函数,date和time结构已在dos.h中定义,可以读取系统日期和时间。

首先将界面背景设为白色,字体设为蓝色,然后输出相应信息及系统时间。

最后使用getch()函数,使得按任意键进入系统主界面。

2得到按键值intget_key();

要使程序得到键盘按键值,就要对按键进行扫描,通过查询键盘编码表,通过get_key函数返回按键的扫描码(即编码高位字节)。

在get_key函数中,首先定义类型为REGS的联合体rg,然后降高字节初始化为0,然后使用int86函数寄存键值,最后输出高字节键值即扫描码。

3画边框函数voidbox(intstartx,intstarty,inthigh,intwidth);

该函数主要是在设计下拉菜单时使用,通过该函数画出一个矩形框。

换矩形边框时,先打印左上角,再打印上边线,再打印右上角,再打印左边线和右边线,最后打印左下角,下边线和右下角。

startx、starty、high、width分别代表起始坐标和矩形边框的高度和宽度。

4导入文件voidload(DANWEI**d_head);

该函数中声明了3个字符数组,分别用来存储要导入的三个文件的路径名,即用户可以自己确定要导入的数据文件。

如果用户输入的文件路径不对或者文件不存在,系统会提示用户重新输入或者退出。

读入单位时,建立的是后进先出链表,最先保存的那个单位建立在链表的尾部;

读取病历时,先要找到对应的单位编号,然后建立后进先出链表;

读取门诊时,先找到对应病历编号,然后同样建立后进先出链表。

录入完毕,关闭三个文件。

5保存文件voidsave(DANWEI*d_head);

该函数有三个文件指针,分别指向三级信息要保存的文件。

函数将整个系统的三部分数据分别保存在3个文件里面,而且也声明了3个字符数组,用来存储文件名,即用户可以自己选择保存的路径和文件名。

6显示信息voidshow(DANWEI*d_head);

该函数可以将整个系统的所有信息显示出来。

本函数新建立三个窗口,即先建立一个窗口输出单位信息,然后在原有窗口上建立第二个窗口用来输出病历信息,最后在原有窗口上建立第三个窗口用来输出门诊信息。

当显示完一次门诊后按任意键清屏显示下一个门诊,当一个病历的门诊显示完之后,清屏显示下一个病历并显示其病历,当一个单位的病历显示完之后清屏显示下一个单位,当显示完所有信息后清屏按任意键退出。

Ⅱ录入信息

1录入单位信息DANWEI*create1(void);

该函数是录入单位基本信息,建立第一级链表。

建立该链表采用的是后进先出式,即输入的下一个单位的next指针指向前一个单位,最后录入的那个单位作为链表的第一个单位。

返回值为指向第一个单位的指针。

将每个单位的b_head指针赋值为空。

效果如下:

2录入病历信息BINGLI*create2(DANWEI*d_head);

本函数是在录入单位基本信息的基础上录入病历基本信息,建立第二级链表,如果未录入单位信息将自动退出。

首先提示输入要录入病历信息的单位编号,然后找到对应的单位(如未找到则提示重新输入或退出),如果该单位有多条病历输入,则建立一个先进先出链表。

将单位最后一条病历的next指针赋值为NULL。

如果该单位已经存在病历信息则提示退出,用户可以通过插入来输入病历信息。

每条病历的m_head指针都自动赋值为NULL。

输入病历信息时,不必重新输入单位编号,单位名称,而通过strcpy函数将单位信息复制到病历结构中。

当用户不在输入某一单位病历时,可自动通过循环提示输入下一个单位病历信息或者输入X退出。

3录入门诊信息MENZHEN*create3(DANWEI*d_head);

本函数是在录入单位信息及病历信息的基础上建立的第三级链表,即门诊信息链表。

同前,先找到对应的单位,然后再找到对应的病历,找到后先判断是否已经存在门诊信息,如果门诊信息不存在,则可建立一个先进先出链表,如果门诊信息已经存在,则提示用户可以使用插入函数来添加,并退出该函数。

当然有些已知信息可以直接复制而不必重新输入。

通过自身的循环可以选择录入某一单位某一病历的门诊信息,也可选择退出。

Ⅲ修改信息

1修改单位信息voidmodify1(DANWEI*d_head);

本函数的功能是查找某一单位并修改该单位的某一项信息。

首先提示用户输入要修改的单位编号,然后遍历第一级链表,找出对应的单位,然后提示用户输入要修改的某一项信息,修改后提示修改成功,并由用户选择继续修改还是退出。

相应的流程图如下:

Y

Y

N

N

NY

YN

Y

N

Y

Y

运行效果如下:

2修改病历信息voidmodify2(DANWEI*d_head);

该函数的功能是查找某一病历并修改该病历的某一项信息。

同单位信息修改函数一样,需要查找所要修改的病历所在的单位,然后查找出该病历。

然后提示用户输入所要修改的某一项病历信息,然后进行修改,修改成功后可修改其他病历或者退出。

3修改门诊信息voidmodify3(DANWEI*d_head);

该函数的功能是查找某一门诊并修改该门诊的某一项信息。

同前,先便利链表找到门诊对应的单位,然后再找到对应的病历,最后根据门诊时间找出对应的门诊。

让用户选择要修改的门诊选项,修改成功后,用户可以继续修改或者退出。

在此期间如果出现找不到的情况,系统都会提示重新输入或退出。

Ⅳ插入信息

1插入单位信息DANWEI*add1(DANWEI*d_head);

该函数的作用是在某个单位后插入一个新的单位信息。

插入时,首先寻找要在其后插入的那个单位,然后输入要插入的单位信息,然后判断是不是在链尾插入,调整链表指针

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1