门诊挂号管理系统_第1页
门诊挂号管理系统_第2页
门诊挂号管理系统_第3页
门诊挂号管理系统_第4页
门诊挂号管理系统_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、 长治学院课程设计报告课程名称: 数据结构 设计题目: 门诊挂号管理系统 系 别: 计算机系 专 业: 计算机科学与技术 组 别: 18 学生姓名: 学 号: 起止日期: 2012年3月23日 2012年6月12日 指导教师: 目 录第一章 需求分析-31.1 课程设计题目-31.2 课程设计任务及要求-31.3 课程设计的思想-31.4 程序运行的环境及开发工具-3第二章 概要设计-42.1 门诊挂号管理系统的流程图-42.2 主要的数据结构-52.3 完成本课程设计所用方法及其原理的简要说明-5第三章 详细设计-53.1 课程设计整体结构-53.2 部分程序-5第四章 调试与操作说明-9第

2、五章 课程设计总结与体会-10第六章 致 谢-11第七章 参考文献-12第八章 附 录-12第九章 成绩评定-13第一章 需求分析1.1课程设计题目:门诊挂号管理系统(采用带头结点单循环链表)1.2课程设计任务及要求:通过这次课程设计,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。本课程设计要求做门诊挂号管理系统,采用带头结点单循环链表来完成。系统要求能实现以下功能:1使用密码启动模块进入界面,并且要求能修改密码;2. 可以进行门诊挂号情况的数据建立、显示;3实现门诊挂号信

3、息的删除(包括按姓名删除和按病历号删除)、插入(包括插入到尾部和插入到任意位置)、查找(包括按姓名查找和按病历号查找)、排序(包括按病历号排序和按挂号码排序)、统计(分别统计:每位医生所看病人数及所得总挂号费及总收入)的功能;4.可以将内存中的数据存入磁盘。5.可以将磁盘保存的数据载入内存。1.3课程设计思想:首先编写建立、显示、删除、插入、查找、排序、统计等各个模块(子函数),然后通过函数调用等方式将这些模块连接起来,并编写启动界面和密码修改模块以及存盘、读盘函数,最后经过不断地调试和修改成为完整的门诊挂号管理系统。1.4 程序运行环境及开发工具:主要工具:windows xp操作系统;mi

4、crosoft visual c+ 6.0;辅助工具:turbo cc+ v3.0 汉化版;记事本;第二章 概要设计2.1 门诊挂号系统的流程图密码正确?门诊挂号管理系统登陆系统门诊挂号库的显示操作门诊挂号库的建立操作门诊挂号库的插入操作门诊挂号库的查找操作门诊挂号库的删除操作门诊挂号库的统计操作门诊挂号库的排序操作修改系统库的密码操作将数据库存入磁盘文件将磁盘文件载入到内存正向输出逆向输出插入到任意位置插入到尾部按病历号删除按姓名删除按病历号排序按挂号码排序n判断三次是否正确退出nyy2.2 主要的数据结构本课程设计主要包括以下几个模块:01.门诊挂号管理系统的建立操作02.门诊挂号管理系统

5、的显示操作03.门诊挂号管理系统的删除操作04.门诊挂号管理系统的插入操作05.门诊挂号管理系统的查找操作06.门诊挂号管理系统的排序操作07.门诊挂号管理系统的统计操作08.门诊挂号管理系统的修改操作09.门诊挂号管理系统的挂号操作10.门诊挂号管理系统的保存操作 11.将数据存入磁盘文件 12.将磁盘文件载入内存 13.退出系统 2.3 完成本课程设计所用方法及其原理的简要说明:调用库函数、各个功能模块函数之间的互相调用第三章 详细设计3.1课程设计整体结构本课程设计采用带头结点单循环链表来做门诊挂号管理系统,包括门诊挂号库的建立操作、显示操作、删除操作、插入操作、查找操作、排序操作、统计

6、操作、修改系统的密码操作、将数据存入磁盘文件操作、将磁盘文件载入内存操作、以及退出系统操作等模块。除此之外还包括系统启动窗口界面函数、密码隐藏函数、输入错误提示函数、判断是否为空链表并提示的函数、限定数据范围函数、链表的销毁函数等。3.2部分程序:(1).门诊挂号库的建立操作void setlink(link *head) /*(采用后插法)建立单链表*/ char str15,ch; int i=0,age; lnode *q,*p,*r; printf(是否录入数据?(y/n); scanf(%c%*c,&ch); if(ch=y) printf(病历号-姓名-性别-年龄-日期-医生-科室

7、-挂号费-挂号码n); q=(lnode *)malloc(sizeof(lnode); q-next=q; *head=q; p=q; while(ch=y) printf(请输入病历号:n); gets(str); while(strlen(str)=0|cxsd(str) printf(病历号中不能包含字符和小数点请重新输入病历号:n); gets(str); r=*head; while(r-next!=*head & !(strcmp(r-num,str)=0) r=r-next; if(strcmp(r-num,str)=0) printf(编号以经存在!是否重新录入数据?(y/n

8、): ); scanf(%c%*c,&ch); if(ch=y) continue; else break; strcpy(q-num,str); i+; printf(请输入医生名:n); gets(str); while(strlen(str)=0|xsd(str) printf(医生名中不能包含数字和小数点请重新输入医生名:n); gets(str); strcpy(q-dname,str); if(i=1) q-numb=-1; r=*head; while(r-next!=*head & strcmp(r-dname,str)!=0) r=r-next; if(strcmp(r-dn

9、ame,str)=0) q-numb=r-numb+1; else q-numb=0; printf(请输入科室名:n); gets(str); while(strlen(str)=0|xsd(str) printf(科室中不能包含数字和小数点请重新输入科室:n); gets(str); strcpy(q-keshi,str); q-fee=0; printf(请输入姓名:n); gets(str); while(strlen(str)=0|xsd(str) printf(姓名中不能包含数字和小数点请重新输入姓名:n); gets(str); strcpy(q-name,str); print

10、f(请输入年龄:n); gets(str); age=atoi(str); if (age110|ageage=age; while(1) printf(请输入性别:(man/woman)n); gets(str); if(strlen(str)=0|xsd(str) printf(请输入性别:n); gets(q-sex); if(strcmp(man,str)=0 | strcmp(woman,str)=0) break; strcpy(q-sex,str); printf(请输入日期年月日用点号分隔(2012.03.02):n); gets(str); while(strlen(str)

11、=0 | jcrq(str) | strlen(str)!=10) printf(日期输入错误请重新输入:n); gets(str); strcpy(q-date,str); if(q!=*head) q-next=head; /*链接后继指针*/ p-next=q; p=q; printf(是否继续录入数据?(y/n)n); scanf(%c%*c,&ch); if(ch=y) q=(lnode *)malloc(sizeof(lnode); (2).将磁盘文件载入内存 void load(link *head) /* 在当前目录中打开任意名字的文件 */ lnode *p,*q=null;

12、 char str30; file *fp; int i=0; printf(n); printf(n); printf( * n); printf( * * n); printf( * * n); printf( * 门诊挂号管理系统文件载入窗口 * n); printf( * * n); printf( * * n); printf( * * n); printf( * n); printf(n); printf(n); printf( 输入载入磁盘文件名(可带路径) : ); gets(str); fp=fopen(str,rb); while(fp=null) i+; if(i=3)

13、printf(n); printf(n); printf(n); printf(n); printf( * n); printf( * * n); printf( * * n); printf( * 请建立新链表后存盘保存 * n); printf( * * n); printf( * 选择新磁盘文件载入 * n); printf( * * n); printf( * * n); printf( * n); printf(n); printf(n); scanf(%*c); exit(0); printf( 磁盘文件 %s 不存在!n,str); printf( 输入载入磁盘文件名(可带路径)

14、 : ); gets(str); fp=fopen(str,rb); while(*head) p=(*head)-next; free(*head); (*head)=p; printf(n 磁盘文件 %s 装入内存成功!n,str); *head=inilink(*head); *head=(lnode *)malloc(sizeof(lnode); (*head)-next=*head; p=*head; while(!feof(fp) q=(lnode *)malloc(sizeof(lnode); if(!p) printf(内存中无容量n); return; if(1!=fread

15、(q,sizeof(lnode),1,fp) break; q-next=p-next; p-next=q; p=q; q=*head; (*head)=(*head)-next; free(q); p-next=*head; fclose(fp); printf(nn); printf( 按任意键返回到主窗口!); scanf(%*c);(3).按挂号码排序 lnode *sortdata(lnode *head) /*按挂号码排序 */ lnode *p,*q,*s,*r; p=head; head=(lnode *)malloc(sizeof(lnode); /* 建立一个循环表头 */

16、 head-next=head; while(p-next!=p) q=p; /* q始终指向最小值 */ r=q-next; /* r移动指针 */ while(r!=p) /* 查找最小值 */ if(q-numbnumb) q=r; /* 按挂号码排序 */ r=r-next; if(q!=p) /* 如果假设的最小值不正确 */s=p;while(s-next!=q) s=s-next; /* 确定最小值 q 的直接前驱 s */ s-next=q-next; /* 删除最小值结点 */ else s=p; while(s-next!=p) s=s-next; p=p-next; s-

17、next=p; q-next=head-next; /* 将最小值结点链接到此趟的第一个位置处 */ head-next=q; p-next=head-next; /* 将链表中最后一个结点接于表头之后 */ head-next=p; s=head; /* 删除表头 */ p=head; while(p-next!=head) p=p-next; head=head-next; p-next=head; free(s); return head;第四章 调试与操作说明启动turboc2.0,f3打开本课程设计的程序,ctrl+f9运行。说明:1、进入门诊挂号管理系统,正确输入密码即可继续操作,

18、初始密码为“1234”,如三次密码错误会退出系统。2、可以先运行系统的修改密码模块,修改密码时,先输入原始密码,然后输入新密码,再次输入确认新密码,完成密码修改操作,修改后要使用新密码登陆。3、此时还是个空链表,依次选择2、3、4、5、6、7、9,系统会提示这是一个空表,请先建立或载入后再继续操作。4、选择1,建立门诊挂号信息,按提示要求输入即可,注意病历号不能相同。5、依次选择2、3、4、5、6、7,运行系统的显示模块、删除模块、插入模块、查找模块、排序模块、统计模块。6、选择11,运行将数据存入磁盘文件的操作,输入路径及文件名,保存。7、选择13,退出系统。退出时,会提示内存中有信息,询问是否保存,按提示操作即可。第五章 课程设计总结与体会第六章 致谢这次做课程设计,除了我个人的努力之外,有很多人都对我提供了无私的帮助。在此首先感谢孙俊杰老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪。其次感谢咱们班的同学们,是我们一起讨论,一起查资料,一起学习,才使我们能完成这次课程设计,希望我们都能继续努力,相信我们以后会做的更好。同时感谢邻班帮助过的同学们,谢谢你们对我的帮助和

温馨提示

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

评论

0/150

提交评论