优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc

上传人:聆听****声音 文档编号:250768 上传时间:2023-04-28 格式:DOC 页数:60 大小:328.50KB
下载 相关 举报
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第1页
第1页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第2页
第2页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第3页
第3页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第4页
第4页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第5页
第5页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第6页
第6页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第7页
第7页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第8页
第8页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第9页
第9页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第10页
第10页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第11页
第11页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第12页
第12页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第13页
第13页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第14页
第14页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第15页
第15页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第16页
第16页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第17页
第17页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第18页
第18页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第19页
第19页 / 共60页
优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc_第20页
第20页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc

《优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc》由会员分享,可在线阅读,更多相关《优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc(60页珍藏版)》请在冰点文库上搜索。

优秀毕业设计精品C语言课程设计报告医院专家门诊挂号系统.doc

计算机0710班XXX学号:

XXX

华中科技大学计算机科学与技术学院

《C语言程序设计》课程设计

实验报告

题目:

医院专家门诊挂号系统

专业:

计算机科学与技术

班级:

计算机XXX班

学号:

XXXX

姓名:

XXX

成绩:

指导教师:

XXX

完成日期:

20XX年10月10日

一、系统功能模块图

主菜单

数据管理

保存和读取

统计查询

删除

修改

录入

各项信息统计

科室、专家、挂号信息查询

打印报表

支持多关键字的搜索引擎

退出

添加

二、数据结构设计及用法说明

主要的三个结构(采用了十字交叉链表):

科室信息的结构、专家信息的结构及挂号信息的结构。

分别如下:

/*科室信息*/

structTroom{

charnum[11]; /*保存科室号*/

charname[20]; /*保存科室名*/

charman[20]; /*保存负责人*/

chartel[12]; /*保存电话*/

inttot_reg; /*保存科室的总挂号量*/

structTroom*next; /*保存指向下一个科室信息的指针*/

structTpro*sub; /*保存指向专家信息的头指针*/

};

/*挂号信息结构体*/

structTreg{

charpro_num[11]; /*保存专家编号*/

charcase_num[15]; /*保存病历号*/

charpatient_name[20]; /*保存患者姓名*/

chardate[11]; /*保存挂号日期*/

charassistant[20]; /*保存挂号人员*/

int serial_num; /*保存挂号流水号*/

floatfee; /*保存挂号费*/

structTreg*next; /*保存指向下一个挂号信息的指针*/

};

/*专家信息结构体*/

structTpro{

charroom_num[11]; /*保存科室号*/

charnum[11]; /*保存专家编号*/

charname[20]; /*保存姓名*/

charbirth[11]; /*保存出生日期*/

charsex; /*保存性别*/

chartel[12]; /*保存电话*/

charprofession[15]; /*保存职称*/

charsummary[50]; /*保存简介*/

inttot_reg; /*保存专家的总挂号量*/

structTpro*next; /*保存指向下一个专家信息的指针*/

structTreg*sub; /*保存指向挂号信息的头指针*/

};

用法说明图示如下:

head

科室1

科室2

科室n

NULL

专家1基本信息

专家2基本信息

专家n基本信息

专家1挂号记录链

专家2挂号记录链

专家n挂号记录链

三、程序结构流程图

系统总体流程图:

开始

主菜单

录入信息

修改信息

插入信息

删除信息

保存文件

读取文件

查询信息

统计数据

打印报表

退出系统

科室信息

专家信息

挂号信息

读入关键字

多关键字搜索

结束

查询流程图:

查询信息

输入关键字

从信息总体中提取含有关键字的信息

输出信息

四、各模块功能

数据管理模块中包含录入信息、修改信息、插入信息和删除信息四大功能:

1、录入信息:

录入科室、专家、挂号信息;

2、修改信息:

对科室、专家、挂号信息进行修改;

3、添加信息:

添加科室或专家;

4、删除信息:

取消科室或解雇专家。

统计查询模块中包含查询信息和统计数据

1、查询信息:

可查询所有科室、专家和挂号信息,还可以查询某个特定的信息,使用多关键字匹配和KMP字符串匹配技术;

2、统计数据:

有3种统计的信息可供查看:

(1)各科室的挂号量;

(2)各专家的挂号量;

(3)某天挂号的患者的基本信息。

保存和读取模块:

保存文件和读取文件;

退出程序:

退出医院专家门诊挂号系统。

各功能函数的相关说明见附录中的源程序清单。

五、试验结果

整个程序运行起来很正常,没有出现bug,我这就把输出结果的截屏贴在下面:

科室基本信息(部分):

专家基本信息(部分):

挂号基本信息(部分):

统计信息均准确无误:

各科室的挂号量:

各专家的挂号量:

某天挂号的基本信息:

六、心得体会

第一次写管理系统这样的大型程序,说真的,有点不习惯,以前的一些代码风格成了我这次课设的最大障碍。

比如说,以前写小程序因为通常只有一个主函数,所以很多变量都是局部变量,而这次大型作业要求有很多的函数相互交叉,共同完成一些功能,所以必须要用全局变量。

还有我的编程风格——无意义的变量名使我吃了很多苦头,很多时候,我的变量名都混淆了,以至于我最后改的时候很麻烦。

这次课设,让我学了很多东西,除了代码风格和编程习惯的优化之外,我的代码能力也明显提高了。

经过这次课设,我一些以前没有彻底掌握的东西都牢牢掌握了。

比如指针的灵活运用,函数之间的互相调用的代码级优化等等。

尽管我学到了很多东西,但是对于这次大型作业我还是有一点遗憾,那就是代码的重复利用率不高,很多几乎一样的代码在我的程序中出现了多次(毕竟是一个上午写出来的东西,这也不能怪我)。

本来我有心想优化一下,使重复利用率提高,但是由于ACM/ICPC将近,我全部时间都用在训练上,所以就算了。

希望不会对我的课设的评价造成太大的影响。

路漫漫其修远兮,吾将上下而求索。

程序设计这条路还很长,我会继续走下去,不断自我完善,早日成为一个出色的程序员。

七、参考文献

所有资料均从百度而来

附录:

程序清单

/***************************************************************/

/*医院门诊挂号系统V1.01源代码*/

/*CopyrightbyXXX*/

/***************************************************************/

#include

#include

#include

#defineTroom_lensizeof(structTroom)

#defineTpro_lensizeof(structTpro)

#defineTreg_lensizeof(structTreg)

#defineTLroom_lensizeof(structTLroom)

#defineTLpro_lensizeof(structTLpro)

#defineTLreg_lensizeof(structTLreg)

#defineRoom_in_mesputs("\n\t科室信息录入中...")

#defineSpe_in_mesputs("\n\t专家信息录入中...")

#defineReg_in_mesputs("\n\t挂号信息录入中...")

/*挂号信息结构体*/

structTreg{

charpro_num[11]; /*保存专家编号*/

charcase_num[15]; /*保存病历号*/

charpatient_name[20]; /*保存患者姓名*/

chardate[11]; /*保存挂号日期*/

charassistant[20]; /*保存挂号人员*/

int serial_num; /*保存挂号流水号*/

floatfee; /*保存挂号费*/

structTreg*next; /*保存指向第一个专家信息的指针*/

};

/*专家信息结构体*/

structTpro{

charroom_num[11]; /*保存科室号*/

charnum[11]; /*保存专家编号*/

charname[20]; /*保存姓名*/

charbirth[11]; /*保存出生日期*/

charsex; /*保存性别*/

chartel[12]; /*保存电话*/

charprofession[15]; /*保存职称*/

charsummary[50]; /*保存简介*/

inttot_reg; /*保存专家的总挂号量*/

structTpro*next; /*保存指向下一个专家信息的指针*/

structTreg*sub; /*保存指向第一个挂号信息的指针*/

};

/*科室信息*/

structTroom{

charnum[11]; /*保存科室号*/

charname[20]; /*保存科室名*/

charman[20]; /*保存负责人*/

chartel[12]; /*保存电话*/

inttot_reg; /*保存科室的总挂号量*/

structTroom*next; /*保存指向下一个挂号信息的指针*/

structTpro*sub; /*保存指向第一个专家信息的指针*/

};

/*辅助变量*/

structTLroom{

structTroom*st;

structTLroom*next;

}*storep,*pp;

structTLpro{

structTpro*st;

structTLpro*next;

}*storeq,*qq;

structTLreg{

structTreg*st;

structTLreg*next;

}*storer,*rr;

structTroom*p,*pl,*tempp,*head=NULL;

structTpro*q,*ql,*tempq;

structTreg*r,*rl,*tempr;

charrest[20],ret[5];

intn;

intflag,changed;

voidMain_menu();

voidShow_menu();

voidWrite();

voidSave();

voidLoad();

voidModify();

voidInsert();

voidDelete();

voidSearch();

voidStatistics();

voidPrint();

voidExit();

voidSearch_room();

voidSearch_room_with_num(char*);

voidSearch_room_with_name(char*);

voidSearch_room_with_man(char*);

voidSearch_room_with_tel(char*);

voidSearch_pro();

voidSearch_pro_with_num(char*);

voidSearch_pro_with_name(char*);

voidSearch_pro_with_tel(char*);

voidSearch_reg();

voidSearch_reg_with_serial_num(int);

voidSearch_reg_with_case_num(char*);

voidSort_room();

voidSort_pro();

voidShow_room();

voidShow_room_with_reg();

voidShow_pro();

voidShow_pro_with_reg();

voidShow_reg();

voidPrint_room();

voidPrint_pro();

voidPrint_reg();

char*Tostring(int);

voidPrnN();

voidPrnB();

voidPrnM();

voidClearAll();

voidClearp();

voidClearq();

voidClearr();

voidcls();

/***************************************************************/

/**************************主菜单***************************/

/***************************************************************/

voidMain_menu()

{

charcommand;

do{

do{

Show_menu();

command=getchar();

gets(rest);

cls();

if(command<'0'||command>'9'){

puts("\n无此选项!

请重新选择");

printf("按ENTER以继续...");

gets(rest);

cls();

}

}while(command<'0'||command>'9');

switch(command){

case'1':

Write();

break;

case'2':

Save();

break;

case'3':

Load();

break;

case'4':

Modify();

break;

case'5':

Insert();

break;

case'6':

Delete();

break;

case'7':

Search();

break;

case'8':

Statistics();

break;

case'9':

Print();

break;

case'0':

Exit();

}

}while(command!

='0');

}

voidShow_menu()

{

puts("欢迎进入医院门诊挂号系统!

");

puts("\n请选择:

\n");

puts("\t1:

录入数据\n");

puts("\t2:

保存文件\n");

puts("\t3:

载入文件\n");

puts("\t4:

修改数据\n");

puts("\t5:

插入数据\n");

puts("\t6:

删除数据\n");

puts("\t7:

查询信息\n");

puts("\t8:

统计数据\n");

puts("\t9:

输出报表\n");

puts("\t0:

退出系统\n");

}

/***************************************************************/

/*************************录入信息**************************/

/***************************************************************/

voidWrite()

{

charcommand0,command1,command2;

charcommand;

if(changed){

puts("\n录入将覆盖原有信息,您尚未保存,是否保存?

Y/N?

");

command=getchar();

gets(rest);

cls();

if(command=='Y'||command=='y')Save();

}

head=NULL;

do{

p=(structTroom*)malloc(Troom_len);

Room_in_mes;

puts("\n请输入科室号");

gets(p->num);

cls();

Room_in_mes;

puts("\n请输入科室名");

gets(p->name);

cls();

Room_in_mes;

puts("\n请输入负责人姓名");

gets(p->man);

cls();

Room_in_mes;

puts("\n请输入电话");

gets(p->tel);

cls();

p->sub=NULL;

p->tot_reg=0;

p->next=head;

head=p;

puts("\n是否录入此科室的专家信息?

Y/N?

");

command1=getchar();

gets(rest);

cls();

while(command1=='Y'||command1=='y'){

q=(structTpro*)malloc(Tpro_len);

strcpy(q->room_num,p->num);

Spe_in_mes;

puts("\n请输入专家编号");

gets(q->num);

cls();

Spe_in_mes;

puts("\n请输入姓名");

gets(q->name);

cls();

Spe_in_mes;

puts("\n请输入出生日期,例:

XXXX/XX/XX");

gets(q->birth);

cls();

Spe_in_mes;

puts("\n请输入性别,MforMAN,WforWOMAN");

q->sex=getchar();

gets(rest);

cls();

Spe_in_mes;

puts("\n请输入电话");

gets(q->tel);

cls();

Spe_in_mes;

puts("\n请输入职称");

gets(q->profession);

cls();

Spe_in_mes;

puts("\n请输入简介");

gets(q->summary);

cls();

q->sub=NULL;

q->tot_reg=0;

q->next=p->sub;

p->sub=q;

puts("\n是否录入此专家的挂号信息?

Y/N?

");

command2=getchar();

gets(rest);

cls();

while(command2=='Y'||command2=='y'){

q->tot_reg++;

r=(structTreg*)malloc(sizeof(structTreg));

strcpy(r->pro_num,q->num);

Reg_in_mes;

puts("\n请输入挂号流水号");

scanf("%d",&r->serial_num);

gets(rest);

cls();

Reg_in_mes;

puts("\n请输入病历号");

gets(r->case_num);

cls();

Reg_in_mes;

puts("\n请输入患者姓名");

gets(r->patient_name);

cls();

Reg_in_mes;

puts("\n请输入挂号费(元)");

scanf("%f",&r->fee);

gets(rest);

cls();

Reg_in_mes;

puts("\n请输入挂号时间,例:

XXXX/XX/XX");

gets(r->date);

cls();

Reg_in_mes;

puts("\n请输入挂号人员");

gets(r->assistant);

cls();

r->next=q->sub;

q->sub=r;

puts("\n是否录入下一个挂号信息?

Y/N?

");

command2=getchar();

gets(rest);

cls();

}

p->tot_reg+=q->tot_reg;

puts("\n是否录入下一个专家信息?

Y/N?

");

command1=getchar();

gets(rest);

cls();

}

puts("\n是否录入下一个科室信息?

Y/N?

");

command0=getchar();

gets(rest);

cls();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2