科技大学C语言课程设计实验报告_第1页
科技大学C语言课程设计实验报告_第2页
科技大学C语言课程设计实验报告_第3页
科技大学C语言课程设计实验报告_第4页
科技大学C语言课程设计实验报告_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华中科技大学计算机科学与技术学院

《C语言程序设计》课程设计

实验报告

题目:门诊病历信息管理系统

专业:计算机科学与技术________________

班级:CS0809__________________________

学号:U200814277______________________

姓名:___________________________

成绩:________________________________

指导教师:卢萍______________________

完成日期:2009年10月8日

目录

一、系统功能模块结构图

1

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

1

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

2

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

n录入信息5

m修改信息6

w插入信息10

V删除信息13

VI查询信息14

vn统计信息15

四、心得体会

17

五、源代码及注释

18

六、参考文献

103

C语言课程设计实验报告CS以火陶权价

一、系统功能模块结构图

门诊病历信息管理系统

V

文H

系.

查«

.工

VV

*期

7诊

息M

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

该系统的数据结构是采用十字交叉链表。十字交叉链表的模型如下:

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

C语言课程设计实验报告CS以火陶权价

三个结构的声明如下:

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

typedefstructdanwei{

chardd_num[10];/*单位编号*/

chard_name[30];/*单位名称*/

chard_person[20];/*单位负责人*/

chard_tel[12];/*联系电话*/

structdanwei*next;/*指向下一个单位结点*/

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

JDANWEI;

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

typedefstructbingli{

charbb_num[10];/*病历编号*/

charname[10];/*姓名*/

charsex;/*性别*/

charbd_name[30];/*所在单位*/

charbd__num[10];/*所在单位编号*/

charbirthday[ll];/*出生日期*/

char*history;/*药物过敏史*/

chartel[12];/*电话*/

charadd[30];/*住址*/

structbingli*next;/*指向下一个病历结点*/

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

JBINGLI;

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

typedefstructmenzhen{

charmb__num[10];/*病历编号*/

charmd_num[10];/*所在单位编号*/

charkebie[10];/*科别*/

char/*门诊时间*/

charzs[30];/*主诉*/

charzd[30];/*初步诊断*/

charyj[3O];/*治疗意见*/

chardoctor[10];/*医师姓名*/

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

}MENZHEN;

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

整个系统有七大模块,除了主函数外,另外还有24个函数,除了实现上面模块结构

图中的各个功能以外,还有读取键入值的函数intget_key();画边框函数voidbox(int

startx,intstary,inthigh,intwidth);和一••"个欢迎界面的函数voidwelcome(void);。

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

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

2

C语言课程设计实验报告CS以火陶权价

㈠欢迎界面voidwelcome(void);

SBC:\Users\tao\Desktop'课程设计\tao.exe

»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»

Welcometo

Thecliniccasehistori;infornationmanagesystem

»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»

Uersion1.0.0

Copyright<c>2009~2010

ByTaoSongqiao

»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»

2009/10/1214:56:23

Pressanykeytoenter?

本程序是由wintc编译。该界面调用了dos库里的getdate和gettime函数,date

和time结构已在dos.h中定义,可以读取系统日期和时间。首先将界面背景设为白色,

字体设为蓝色,然后输出相应信息及系统时间。最后使用getch()函数,使得按任意键

进入系统主界面。

㈡得到按键值intget_key();

要使程序得到键盘按键值,就要对按键进行扫描,通过查询键盘编码表,通过

get_key函数返回按键的扫描码(即编码高位字节)。在get_key函数中,首先定义类

型为REGS的联合体rg,然后降高字节初始化为0,然后使用int86函数寄存键值,最

后输出高字节键值即扫描码。

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

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

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

最后打印左下角,下边线和右下角。startx>starty>high>width分别代表起始坐标和

矩形边框的高度和宽度。

C语言课程设计实验报告CS以火陶权价

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

该函数中声明了3个字符薪组,分别用来存储要导入的三个文件的路径名,即用户

可以自己确定要导入的数据文件。如果用户输入的文件路径不对或者文件不存在,系统

会提示用户重新输入或者退出。读入单位时,建立的是后进先出链表,最先保存的那个

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

表;读取门诊时,先找到对应病历编号,然后同样建立后进先出链表。录入完毕,关闭

三个文件。

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

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

分数据分别保存在3个文件里面,而且也声明了3个字符数组,用来存储文件名,即用

户可以自己选择保存的路径和文件名。

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

该函数可以将整个系统的而有信息显示出来。本函数新建立三个窗口,即先建立一个窗

口输出单位信息,然后在原有窗口上建立第二个窗口用来输出病历信息,最后在原有窗口上

C语言课程设计实验报告CS以火陶权价

建立第三个窗口用来输出门诊信息。当显示完一次门诊后按任意键清屏显示下一个门诊,当

一个病历的门诊显示完之后,清屏显示下一个病历并显示其病历,当一个单位的病历显示完

之后清屏显示下一个单位,当显示完所有信息后清屏按任意键退出。

II录入信息

㈠录入单位信息DANWEI*createl(void);

该函数是录入单位基本信息,建立第一级链表。建立该链表采用的是后进先出式,即输

入的下一个单位的next指针指向前一个单位,最后录入的那个单位作为链表的第一个单位。

返回值为指向第•个单位的指针。将每个单位的bhead指针赋值为空。效果如下:

SJC:\Users\tao\Desktop'导星设计=1回I淤I'

ad-inModifyAdd-inDeleteInquii*yCalculationHeIp

Pleaseenterthenumberofv/orkunit<length<10,enterxorXexit>:000001001

Pleaseenterthenameofworkunit<length<30>:cs

Pleaseenterthepeopleresponsiblefor:zhengqiang

Pleaseenterthecontacttelephone/p>

Pleaseenterthenumberofv/orkunit<length<10,enterxorXexit>:000001002

Pleaseenterthenameofworkunit<length<30>:math

Pleaseenterthepeopleresponsiblefor:zhaoer

Pleaseenterthecontacttelephone/p>

Pleaseenterthenumberofworkunit<length<10,enterxorexit>:000001003

Pleaseenterthenameofworkunit<length<30>:physics

Pleaseenterthepeopleresponsiblefor:lisi

Pleaseenterthecontacttelephone/p>

Pleaseenterthenumberofworkunit<length<10,enterxiortoexit>:000001004

Pleaseenterthenameofworkunit<length<30>xchemistrv

Pleaseenterthepeopleresponsiblefor:zhangsan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论