
C语言课程设计报告医院专家门诊挂号系统.doc
60页华中科技大学计算机科学与技术学院《C语言程序设计》课程设计实验报告题目: 医院专家门诊挂号系统 专业: 计算机科学与技术 班级: 计算机XXX班 学号: XXXX 姓名: XXX 成绩: 指导教师: XXX 完成日期: 20XX年 10月 10日一、 系统功能模块图主菜单数据管理保存和读取统计查询删除修改录入各项信息统计科室、专家、挂号信息查询打印报表支持多关键字的搜索引擎退出添加二、 数据结构设计及用法说明主要的三个结构(采用了十字交叉链表):科室信息的结构、专家信息的结构及挂号信息的结构分别如下:/*科室信息*/struct Troom{ char num[11]; /*保存科室号*/ char name[20]; /*保存科室名*/ char man[20]; /*保存负责人*/ char tel[12]; /*保存*/ int tot_reg; /*保存科室的总挂号量*/ struct Troom *next; /*保存指向下一个科室信息的指针*/ struct Tpro *sub; /*保存指向专家信息的头指针*/};/*挂号信息结构体*/struct Treg{ char pro_num[11]; /*保存专家编号*/ char case_num[15]; /*保存病历号*/ char patient_name[20]; /*保存患者姓名*/ char date[11]; /*保存挂号日期*/ char assistant[20]; /*保存挂号人员*/ int serial_num; /*保存挂号流水号*/ float fee; /*保存挂号费*/ struct Treg *next; /*保存指向下一个挂号信息的指针*/};/*专家信息结构体*/struct Tpro{ char room_num[11]; /*保存科室号*/ char num[11]; /*保存专家编号*/ char name[20]; /*保存姓名*/ char birth[11]; /*保存出生日期*/ char sex; /*保存性别*/ char tel[12]; /*保存*/ char profession[15]; /*保存职称*/ char summary[50]; /*保存简介*/ int tot_reg; /*保存专家的总挂号量*/ struct Tpro *next; /*保存指向下一个专家信息的指针*/ struct Treg *sub; /*保存指向挂号信息的头指针*/};用法说明图示如下:… head科室1科室2科室nNULL… 专家1基本信息 专家2基本信息专家n基本信息专家1挂号记录链 专家2挂号记录链 专家n挂号记录链 三、 程序结构流程图系统总体流程图:开始主菜单录入信息修改信息插入信息删除信息保存文件读取文件查询信息统计数据打印报表退出系统科室信息专家信息挂号信息读入关键字多关键字搜索结束查询流程图:查询信息输入关键字从信息总体中提取含有关键字的信息输出信息四、 各模块功能数据管理模块中包含录入信息、修改信息、插入信息和删除信息四大功能:1、 录入信息:录入科室、专家、挂号信息;2、 修改信息:对科室、专家、挂号信息进行修改;3、 添加信息:添加科室或专家;4、 删除信息:取消科室或解雇专家。
统计查询模块中包含查询信息和统计数据1、 查询信息:可查询所有科室、专家和挂号信息,还可以查询某个特定的信息,使用多关键字匹配和KMP字符串匹配技术;2、 统计数据:有3种统计的信息可供查看:(1) 各科室的挂号量;(2) 各专家的挂号量;(3) 某天挂号的患者的基本信息保存和读取模块:保存文件和读取文件;退出程序:退出医院专家门诊挂号系统各功能函数的相关说明见附录中的源程序清单五、 试验结果整个程序运行起来很正常,没有出现bug,我这就把输出结果的截屏贴在下面:科室基本信息(部分):专家基本信息(部分):挂号基本信息(部分):统计信息均准确无误:各科室的挂号量:各专家的挂号量:某天挂号的基本信息:六、 心得体会第一次写管理系统这样的大型程序,说真的,有点不习惯,以前的一些代码风格成了我这次课设的最大障碍比如说,以前写小程序因为通常只有一个主函数,所以很多变量都是局部变量,而这次大型作业要求有很多的函数相互交叉,共同完成一些功能,所以必须要用全局变量还有我的编程风格——无意义的变量名使我吃了很多苦头,很多时候,我的变量名都混淆了,以至于我最后改的时候很麻烦这次课设,让我学了很多东西,除了代码风格和编程习惯的优化之外,我的代码能力也明显提高了。
经过这次课设,我一些以前没有彻底掌握的东西都牢牢掌握了比如指针的灵活运用,函数之间的互相调用的代码级优化等等尽管我学到了很多东西,但是对于这次大型作业我还是有一点遗憾,那就是代码的重复利用率不高,很多几乎一样的代码在我的程序中出现了多次(毕竟是一个上午写出来的东西,这也不能怪我)本来我有心想优化一下,使重复利用率提高,但是由于ACM/ICPC将近,我全部时间都用在训练上,所以就算了希望不会对我的课设的评价造成太大的影响路漫漫其修远兮,吾将上下而求索程序设计这条路还很长,我会继续走下去,不断自我完善,早日成为一个出色的程序员七、 参考文献所有资料均从百度而来附录:程序清单/***************************************************************//* 医院门诊挂号系统V1.01源代码 *//* Copyright by XXX *//***************************************************************/#include
