专业设计报告
课程名称: C语言程序设计
课题名称:医院信息管理系统
专业班别:12本计算机科学与技术二班
姓名:
学号:
指导教师:
设计日期:2012-5-25
教师评语:
等级
项目
优
良
中
及格
差
专业设计目的
设计基本要求
算法分析
源程序代码
源程序代码测试
设计总结
成绩评定:
指导教师签名:
日期:2012年月曰
课程设计题目医院信息管理程序
作者姓名:
同组成员:
摘要利用结构体存储每个病人的信息和每种药品的信息,并使用链表存储全部病人的 信息;能完成对医院内所有病人信息的注册、查询、删除和修改等操作,同时又能对药房 内库存的药品进行查询;可以将链表中的病人信息保存在文件中,并且可以对文件中的病 人信息进行读取与显示
1 .专业设计目的
1、掌握链表的操作,包括链表节点的创建、释放还有链表的遍历
2、掌握对二进制文件的创建、增添等基本操作。
3、熟悉 C 语言函数的使用方法,学会模块化处理问题以及多个源文件的处理方式 2.设计基本要求(
1、使用结构体来存储病人的信息,结构体中包括病的 id 号码、姓名、病历以及消 费信息,并用链表将所有病人信息整合。
2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息
3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、 载入链表信息、查询库存等几项功能。
4、要求用四个源文件 main.c 、link.c 、 find.c 、save_load.c
5、系统完成后应实现类似下面所示界面
3、算法分析
1、数据结构 设计链表中的一个节点存储一个病人的信息,使用下面的结构体类型定义: structpatient{
charid[10];
charname[10];
charcasehist[200];
intcost[3];
inttransfusion;
intsurgery;
structpatient*next;
};
其中 cost 数组用来存储病人卖药的的个数 (总共三种药) , casehist 存储病历内容, transfusion 用来存储病人输液的花费, surgery 存储手术的花费。 Structpatient*next 用来指向下一个病人结构体的起始地址从而形成一个链表。
此外还要用到一个结构体来存储库存中当前的药品情况。
structstorage{
intamount[3];
intprice[3];
};
2、函数定义
程序代码有 main.c 、link.c 、find.c 、 save_load.c 四个源文件组成,使用头文件
head.h 把四个源文件连接起来,四个文件中所包含的函数说明如表所示
源文件
函数原型
功能说明
Main .c
voidtest()
检测有无存
储病人的二
进制文件
void in it(structstorage*temp)
初始化库存 中的药品, 参数为指向 structstora ge类型的指 针
voidpri ntme nu()
打印提示菜
单
Voidliststock(structstoragetemp)
列出库存中
的药品
structpatie nt*e nroll()
注册新病人
信息
voidfreeall(structpatie nt*temp)
清除链表内 容,参数为 指向 structpatie nt类型的指 针
Fin d.c
voidsearch(structpatie nt*temp)
查询单个病 人的信息, 参数为指向 structpatie nt类型的指 针
voidlistall(structpatie nt*temp)
列出所有病 人的信息, 参数为指向 structpatie nt类型的指 针
Li nk.c
structpatie nt*in sert(structpatie nt*head,structpat
加入新节
点,参数为
ien t*rea
指向
structpatie
nt类型的指
针
voidmodify(structpatie nt*temp)
修改病人病 历,参数为 指向 structpatie nt类型的指 针
voidbuy(structpatie nt*temp,structstorage*s)
/用于病人的 消费处理, 参数为指向 structpatie nt类型的指 针与指向 structstora ge的指针
Save_load
voidsave(structpatie nt*head)
将链表信息
保存到文件
.C
中,参数为 指向 structpatie nt类型的指 针
structpatie nt*load(structpatie nt*head)
将文件信息 与入到链表 中,参