logo资料库

C语言课程设计报告医院管理系统.doc

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