C语言程序设计附源代码_第1页
C语言程序设计附源代码_第2页
C语言程序设计附源代码_第3页
C语言程序设计附源代码_第4页
C语言程序设计附源代码_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、设计日期:2012-5-25业设计报课程名称:C 语言程序设计课题名称:医院信息管理系统专业班别:12 本计算机科学与技术二班姓 名:学 号:指导教师:设计日期:2012-5-25教师评语:等级项目优良中及格差专业设计目的设计基本要求算法分析源程序代码源程序代码测试设计总结成绩评定:指导教师签名:日期:2012 年 月 日id 号码、姓名、病历以及消费信息,并用链课程设计题目 医院信息管理程序作者姓名:同组成员 :摘要 利用结构体存储每个病人的信息和每种药品的信息,并使用链表存储全部病人的信息;能完成 对医院内所有病人信息的注册、查询、删除和修改等操作,同时又能对药房内库存的药品进行查询;可以

2、 将链表中的病人信息保存在文件中,并且可以对文件中的病人信息进行读取与显示1专业设计目的1、掌握链表的操作,包括链表节点的创建、释放还有链表的遍历2、掌握对二进制文件的创建、增添等基本操作。3、熟悉 C 语言函数的使用方法,学会模块化处理问题以及多个源文件的处理方式2设计基本要求 (1、使用结构体来存储病人的信息,结构体中包括病的 表将所有病人信息整合。2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、载入链表信息、 查询库存等几项功能。4、要求用四个源文件、 、5、系统完成后应实现类似下面所示界面3、算法分析1

3、、数据结构设计链表中的一个节点存储一个病人的信息,使用下面的结构体类型定义: struct patientchar id10;char name10;char casehist200;int cost3;int transfusion;int surgery;struct patient *next;其中cost数组用来存储病人卖药的的个数(总共三种药),casehist存储病历内容,transfusion用来存储病人输液的花费,surgery存储手术的花费。Struct patient *next用来指向下一个病人结构体的起始地址从而形成一个链表。此外还要用到一个结构体来存储库存中当前的药品

4、情况。struct storageint amoun t3; int p rice3;2、函数定义程序代码有、四个源文件组成,使用头文件把四个源文件连接起来,四个文件中所包含的函数说明 如表所示。源文件函数原型功能说明void test()检测有无存储病人的二进制文件void in it(structstorage*te mp)初始化库存中的药品,参数为指向structstorage类型的指针void prin tme nu()打印提示菜单Voidliststock(structstorage temp)列出库存中的药品struct p atie nt *en roll()注册新病人信息voi

5、d freeall(structpatient*te mp)清除链表内容,参数为指向struct patie nt类型的指针void search(struct p atie nt*te mp)查询单个病人的信息,参数为指向structpatie nt类型的指针void listall(structpatient*te mp)列出所有病人的信息,参数为指向structpatie nt类型的指针struct p atie nt*in sert(struct p atie nt *head,struct p atie nt *rea加入新节点,参数为指向struct P atie nt 类型的指针

6、void modify(struct p atie nt*te mp)修改病人病历,参数为指向struct patie nt类型的指针void buy(struct p atie nt *te mp struct storage *s)/用于病人的消费处理,参数为指向structP atie nt类型的指针与指向 struct storage的指针void save(structp atie nt*head)将链表信息保存到文件中,参数为指向 struct patie nt类型的指针(1) 检查存储病人信息的文件是否存在,若不存在则创建一个新文件并设置 在可以对链表进行操作。(2) 初始化库存

7、令巴米尔、感冒灵、病毒唑 3种药的数量分别为20、20、10,价格分别为5、9、16。(3) 输出提示菜单让用户悬着要操作的项目.1)写病历前先检查是否有可用的链表(此标记为flag的值,若为1则代表可以修改病历,否则要求用户重新做出选择)。确认有可用链表之后进入modify函数。要求用户输入病人的id号码,然后在链表中寻找该病所对应的节点,若无此病人的id则直接输出提示信息后返回:若找到后,先输出原来的病历内容,然后提示用户输入当前日期和新添加的病历内容,调用strcmP函数将新内容追加到原来的casehist字符串数组中。printf(”flag值为1以标记现原有病历:sn,temp-ca

8、sehist);输入当前日期printf(”gets(a);printf(” gets(b);printf(” gets(c);strcat(te mp-casehist,a); strcat(te mp-casehist,/);strcat(te mp-casehist,b); strcat(te mp-casehist,/);strcat(te mp-casehist,c); strcat(te mp-casehist,:); prin tf(请输入新病历的内容n);gets(d);strcat(te mp-casehist,d);输入当前月份输入当前日子年份);”););将文件信息写入到

9、链表中,参数为指向 struct patie nt类型的指针3、处理过程2 )载入链表信息是首先定义一个文件指针,然后以只读方式打开文件。若失败则输出提示信息返 回,成功后调用 malloc函数来申请一块内存,用read函数将文件内容写入到节点中,随后调用insert函数将节点加入链表,如此循环下去直到fread函数返回0值,即文件已经读到了末尾时,再将链表的头指针返回给主函数即可。Flag值置为1,用来代表已有可用链表。if(fp=fo pen (data,门)=0)printf(”文件不存在!);retur n head;while(1)rear=(struct p atie nt *)m

10、alloc(sizeof(struct p atie nt);if(fread(rear,sizeof(struct p atie nt),1,fp)struct P atie nt *load(struct p atie nt *head)head=in sert(head,rear);程序设计 (第四版). 北京:清华大学出版else free(rear); flag=1; break;4、源程序代码/*/#ifndef FIRST#include#include#includevoid test() 社,2010谭浩强.C程序设计(第四版)学习辅导.北京:清华大学出版社,2010 李丹程 .C 语言程序设计案例实践 . 北京:清华大学出版社 ,2009struct patientprintf(2

温馨提示

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

评论

0/150

提交评论