文档介绍:专业设计报告课程名称:C语言程序设计课题名称:医院信息管理系统专业班别:11本计算机科学与技术二班姓名:学号:指导教师:设计日期:2012-5-25教师评语:等级项目优良中及格差专业设计目的设计基本要求算法分析源程序代码源程序代码测试设计总结成绩评定:指导教师签名:日期:2012年月日课程设计题目医院信息管理程序作者姓名:同组成员:摘要利用结构体存储每个病人的信息和每种药品的信息,并使用链表存储全部病人的信息;能完成对医院内所有病人信息的注册、查询、删除和修改等操作,同时又能对药房内库存的药品进行查询;可以将链表中的病人信息保存在文件中,、掌握链表的操作,包括链表节点的创建、释放还有链表的遍历2、掌握对二进制文件的创建、增添等基本操作。3、熟悉C语言函数的使用方法,(1、使用结构体来存储病人的信息,结构体中包括病的id号码、姓名、病历以及消费信息,并用链表将所有病人信息整合。2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、载入链表信息、查询库存等几项功能。4、、、、、系统完成后应实现类似下面所示界面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、、、、,,四个文件中所包含的函数说明如表所示。()检测有无存储病人的二进制文件voidinit(structstorage*temp)初始化库存中的药品,参数为指向structstorage类型的指针voidprintmenu()打印提示菜单Voidliststock(structstoragetemp)列出库存中的药品structpatient*enroll()注册新病人信息voidfreeall(structpatient*temp)清除链表内容,(structpatient*temp)查询单个病人的信息,参数为指向structpatient类型的指针voidlistall(structpatient*temp)列出所有病人的信息,*insert(structpatient*head,structpatient*rea 加入新节点,参数为指向structpatient类型的指针voidmodify(structpatient*temp)修改病人病历,参数为指向structpatient类型的指针voidbuy(structpatient*temp,structstorage*s)/用于病人的消费处理,(structpatient*head)将链表信息保存到文件中,参数为指向structpatient类型的指针structpatient*load(structpatient*head)将文件信息写入到链表中,参数为指向structpatient类型的指针3、处理过程(1)检查存储病人信息的文件是否存在,若不存在则创建一个新文件并设置flag值为1,以标记现在可以对链表进行操作。(2)初始化库存令巴米尔、感冒灵、病毒唑3种药的数量分别为20、20、10,价格分别为5、9、16。(3))写病历前先检查是否有可用的链表(此标记为flag的值,若为1则代表可以修改