西安邮电大学c语言实习医院管理系统

上传人:自*** 文档编号:80588412 上传时间:2019-02-19 格式:DOC 页数:45 大小:642KB
返回 下载 相关 举报
西安邮电大学c语言实习医院管理系统_第1页
第1页 / 共45页
西安邮电大学c语言实习医院管理系统_第2页
第2页 / 共45页
西安邮电大学c语言实习医院管理系统_第3页
第3页 / 共45页
西安邮电大学c语言实习医院管理系统_第4页
第4页 / 共45页
西安邮电大学c语言实习医院管理系统_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《西安邮电大学c语言实习医院管理系统》由会员分享,可在线阅读,更多相关《西安邮电大学c语言实习医院管理系统(45页珍藏版)》请在金锄头文库上搜索。

1、西安郵電大学C语言课程设计报告题 目:医院信息管理系统院系名称: 计算机学院 专业名称: 计算机科学与技术班 级: 学生姓名: 学号(8位): 指导教师: 王春梅设计起止时间:2012年06月06日2012年06月15日一. 设计目的1,通过本课程设计,强化上机动手能力,使自己在理论和实践的基础上进一步巩固C语言程序设计课程学习的内容,掌握软件设计的基本方法。2,学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。3,为后续各门计算机课程的学习打下坚实基础;为毕业设计和以后工作打下必要基础。二. 设计内容建立一个医院信息管理系统,主要应用了数据结构体,数组,指针等。在内容上包括

2、录入信息模块,读取信息模块,保存信息模块,查寻信息模块,插入信息模块,删除信息模块,修改信息模块,显示信息模块及排序信息模块(按姓名进行排序)等,并且还有统计信息和相关信息的排序。三概要设计1功能模块图;医院信息管理系统登陆界面主菜单用户注册用户登陆医院要品相关信息医院病人相关信息录入病人信息添加病人信息病人信息统计按编号排序显示病人信息修改病人信息删除病人信息查找病人信息显示药品信息修改药品信息添加药品信息删除药品信息查找药品信息录入药品信息2各个模块详细的功能描述。(1)登陆界面:主要是用户进行注册和登陆的程序。(2)录入模块:录入需要管理的病人及药品信息并将信息保存于文件中,以方便日后进

3、行打印、读取、更新等操作。(3)删除模块:可对病人及药品信息做删除处理。(4)添加模块:可添加一个或多个病人及药品信息并将所添加病人和药品信息保存,方便查找。(5)修改模块:可根据需要对病人和药品信息整体进行修改,也可随时对个别项进行修改。(6)按编号排序:方便管理员进行查找信息。(7)显示病人信息:使管理员更直接的了解病人及药品的相关信息。四详细设计1功能函数的调用关系图;printloginUserRegMain()Main()head=creat()Read(head)Save(head)Print(head)find(head)del(head)insert(head)alter(he

4、ad)paixu(head)Total(head)2各功能函数的数据流程图;(1)链表的创建,尾插法传入病人数n;传入head;head,r,p指向申请结点;给head输入数据;i=1;inext=p;r移到表尾;r=p;i+rnext=NULL;n0开始结束(2)读取读数据结束开始打开“d:/inf.txt”文件打开是否成功?文件是否结束?关闭文件返回读入数据i输出:请先创建并录入(3)查找输入要查找的学号id1p-id1=id1p=p-nextp=NULL未找到查询成功开始结束删除成功开始结束q=p0;未找到p=p0-next;p-id1=id1p=p-next;p0=p;p0-next=

5、p-next; (4)删除(5)添加开始清屏输出:请输入新增病人编号输入新编号输出:请输入要新增病人的姓名?输入新病人名字q=p0是否继续?p-next=p0-next;p0-next=p;flag是否为1?结束flag=0NY(6)修改模块输入要修改的编号id1;p-id=idp=p-nextP=NULL未找到输入要修改的信息开始结束(7)排序删除成功开始结束q=p0;未找到p=p0-next;p-id1=id1p=p-next;p0=p;p0-next=p-next;(8)统计开始h=read1();female+;male=0;female=0;total=0;total+;male+;

6、p=h-nextp-sex1=malep!=NULL输出total,male,female结束3重点设计及编码。(1)密码:while (!feof(fp1)/循环逐行读取data.txt将读取到的信息保存在数组Userdata中直到文件结束fgets(Userdata1,30,fp1);if (strcmp(Linedata1,Userdata1)=0 ) printf(该用户已经注册!n);printf(按任意键重新注册n);getch();UserReg(); fputs(Linedata,fp);/将这一行格式调整好的用户名 密码信息写入data.txt文件fclose(fp);/关闭

7、data.txt文件指针fputs(Linedata1,fp1);/将这一行格式调整好的用户名 密码信息写入data.txt文件fclose(fp1);/关闭文件指针printf(亲,注册成功喽,赶快去登录吧!n);printf(按任意键进入登陆界面n);getch();system(cls); Login(); (2)排序while (first != NULL) /*遍历剩下无序的链表*/*注意:这里for语句就是体现直接插入排序思想的地方*/for (t=first, q=head; (q!=NULL) & (q-id1id1); p=q, q=q-next); /*无序节点在有序链表中

8、找插入的位置*/*退出for循环,就是找到了插入的位置*/*注意:按道理来说,这句话可以放到下面注释了的那个位置也应该对的,但是就是不能。原因:你若理解了上面的第3条,就知道了。*/first = first-next; /*无序链表中的节点离开,以便它插入到有序链表中。*/ if (q = head) /*插在第一个节点之前*/head = t; else /*p是q的前驱*/p-next = t; t-next = q; /*完成插入动作*/*first = first-next;*/return head;(3)修改void Alter1()struct patient *p;p=rea

9、d1();if(alter1(p)printf(修改成功!);printf(按任意键返回该菜单);getch();Display1();elseprintf(修改失败!);printf(按任意键返回该菜单);getch();Display1();int alter1() struct patient *p,*h; int id1; char choice; h=read1(); p=h-next; printf(请输入要修改的编号); scanf(%d,&id1);while(p!=NULL) if (p-id1=id1)(4)删除while(p!=NULL)if(p-id1=id1)/找到要

10、删除的结点printf(已删除成功n);p0-next=p-next;/后续结点链接到前驱结点之后free(p);save1_bianji(q);return 1;p0=p;/推移指针继续查找p=p-next;(5)添加while(p0-next!=NULL&p0-next-id1id1)p0=p0-next;if(p0-next!=NULL & p0-next-id1=p-id1)free(p);return 0;printf(按任意键返回该菜单);getch();Display1();p-next=p0-next;p0-next=p;save1_bianji(q);return 1;五测试数据及运行结果1 正常测试数据(3组

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号