C语言 医院信息管理系统Word下载.docx
《C语言 医院信息管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C语言 医院信息管理系统Word下载.docx(41页珍藏版)》请在冰点文库上搜索。
3;
//病人信息相关函数声明
//病人信息函数
//输入病人信息函数
//存储病人信息函数
//添加病人信息函数
//删除病人信息函数
//查询病人信息函数
//药品信息相关声明
//查找药品信息函数
//药品函数
//输入药品信息函数
//存储药品信息函数
//添加药品信息函数
//删除药品信息函数
//查询药品信息函数
//修改药品信息函数
//排序信息相关声明
*(*);
//统计函数声明
/*函数定义*/
//界面显示相关的函数的定义
a;
("
"
);
******************************************\n"
***欢迎进入医院信息系统***\n"
**********************************************\n"
*****请选择您要查询的相关信息*****\n"
******1医院病人相关信息******\n"
******2医院药品相关信息******\n"
****0退出该界面****\n"
********************************************\n"
请选择\n"
%d"
a);
(a)
1:
;
2:
0:
(0);
:
输入有误!
}
1
b;
———————医院病人相关信息——————\n"
||——————1录入病人信息——————||\n"
||——————2查找病人信息——————||\n"
||——————3删除病人信息——————||\n"
||——————4添加病人信息——————||\n"
||——————5修改病人信息——————||\n"
||——————6按编号查看排序信息———||\n"
||——————7显示病人信息——————||\n"
||——————8病人相关信息统计————||\n"
||——————0退出该页面———————||\n"
—————————————————————\n"
b);
(b)
1;
3:
4:
5:
6:
7:
=1;
1();
8:
按任意键返回该菜单"
2
———————医院药品相关信息——————\n"
||——————1录入药品信息——————||\n"
||——————2查找药品信息——————||\n"
||——————3删除药品信息——————||\n"
||——————4添加药品信息——————||\n"
||——————5修改药品信息——————||\n"
||——————6显示药品信息——————||\n"
2;
=2;
2();
//病人信息相关函数的定义
*p*q;
p=1;
1(p);
q=1;
1(q);
(1())
已成功插入!
\n"
//插入
有重号插入失败!
/*录入数据*/
*1//尾插法建立头结点的单链表
**r*p;
i=0;
=(*)(());
-&
=;
r=;
p=(*)(());
请输入信息\n"
\n\n第%d个人的信息:
++i);
\n);
p-&
1);
\n姓名:
%s"
\n性别(请输入(男)(女):
\n年龄:
\n病况:
\n电话:
r-&
=p;
r=p;
\?
(Y、N)"
}(=='
Y'
||=='
y'
();
/*存储数据*/
1(*h)//将单链表中的信息保存到指定的磁盘文件中
*p;
*fp;
((fp=("
e:
/"
+"
))==)
写文件出错,按任意键退出!
(1);
(p=h-&
p!
p=p-&
)
(fp"
%d%s%s%s%s%s\n"
1p-&
\n文件已成功保存,按任意键继续!
(fp);
1_(*h)//将单链表中的信息保存到指定的磁盘文件中
wt"
/*读取数据*/
*1//从指定磁盘中读取信息并存入单链表中
rt"
读文件出错,按任意键退出!
(!
(fp))//文件未结束
{//开辟空间,以存放读取的信息
//存放读取信息
=
L;
\n文件中信息已正确读出,按任意键继续!
//输出数据
1(*h)
\n该医院病人数据为:
编号\t姓名\t性别\t年龄\t病况\t电话\t\n"
%d\t%s\t%s\t%s\t%s\t%s\t\n"
//查找数据
1(*p)
\n请输入要查找的);
id1);
(p)
(p-&
1==id1)
找到了哦!
编号\t姓名\t性别\t年龄\t病况\t电话\n"
%d\t%s\t%s\t%s\t%s\t%s\n"
很遗憾,没找到呀!
//删除数据
(1(p))
删除成功~\n"
删除失败!
1(*p0)
q=p0;
p=p0-&
(p==)//只有头p结点为空表,不能删除返回0
0;
\n请输入要删除的);
(p!
=)
1=id1)//找到要删除的结点
已删除成功~\n"
p0-&
=p-&
//后续结点链接到前驱结点之后
(p);
1_(q);
p0=p;
//推移指针继续查找
很遗憾没找到哦\n"
//未找到删除的结点返回
//插入函数
\n性别(请输入(男)(女)"
(p0-&
!
=&
1&
1)
p0=p0-&
=&
p0-&
1==p-&
=p0-&
g
//修改病人信息
修改成功!
修改失败!
*p*h;
h=1;
p=h-&
请输入要修改的编号"
{
(p-&
1==id1)
\n编号\t姓名\t性别\t年龄\t病情\t电话\n"
\n请选择修改:
\n1编号2姓名3性别4年龄5病情6电话\n"
\n%d"
()
\n编号:
1(h);
\n姓名:
\n性别(请输入男()女()):
\n年龄:
\n病情:
("
\n电话:
1_(h);
//药品信息相关函数的定义
*m*q;
m=2;
2(m);
q=2;
2(q);
(2())
按任意键返回主菜单"
*2//尾插法建立头结点的单链表
**r*m;
m=(*)(());
请输入药品信息\n"
\n\n第%d个药品的信息:
m-&
2);
\n药名:
\n用于治疗:
\n单价:
=m;
r=m;
2(*h)//将单链表中的信息保存到指定的磁盘文件中
*m;
(m=h-&
m!
m=m-&
%s%s%s%s\n"
2m-&
2_(*h)//将单链表中的信息保存到指定的磁盘文件中
//读取数据
*2//从指定磁盘中读取信息并存入单链表中
2(*h)
\n该医院药品数据为:
编号\t药名\t用于治疗\t单价\n"
%s\t%s\t%s\t%s\n"
2(*m)
id2[10];
(id2);
(m)
((m-&
2id2)==0)
(2(m))
删除成功!
2(*m0)
q=m0;
m=m0-&
(m==)//只有头p结点为空表,不能删除返回0
(m!
2id2)==0)//找到要删除的结点
m0-&
=m-&
(m);
2_(q);
m0=m;
很遗憾没找到哦!
\nd单价:
(m0-&
2&
2)
m0=m0-&
m0-&
2==m-&
=m0-&
//修改病药品信息
*m*h;
h=2;
m=h-&
id2);
((m-&
2id2)==0)
\n编号\t药名\t用于治疗\t单价\n"
\n1编号2药名3用于治疗4单价\n"
%s%s%s%s\n"
2(h);
\n药名:
\n用于治疗:
\n单价:
}
2_(h);
//排序部分函数的定义
*h*p;
p=(h);
*(*)
/*为原链表剩下用于直接插入排序的节点头指针*/
*t;
/*临时指针变量:
插入节点*/
/*临时指针变量*/
*q;
=-&
/*原链表剩下用于直接插入排序的节点链表:
可根据图12来理解*/
=;
/*只含有一个节点的链表的有序链表:
可根据图11来理解*/
(!
=)/*遍历剩下无序的链表*/
/*注意:
这里语句就是体现直接插入排序思想的地方*/
(t=q=;
((q!
=)&
(q-&
1));
p=qq=q-&
/*无序节点在有序链表中找插入的位置*/
/*退出循环,就是找到了插入的位置*/
按道理来说,这句话可以放到下面注释了的那个位置也应该对的,但是就是不能原因:
你若理解了上面的第3条,就知道了*/
/*无序链表中的节点离开,以便它插入到有序链表中*/
(q==)/*插在第一个节点之前*/
=t;
/*p是q的前驱*/
t-&
=q;
/*完成插入动作*/
/*=-&
*/
//统计函数的定义
(*h)
=0;
++;
((p-&
1"
))
统计结果如下:
病人总数:
%d\n"
男人:
女人:
//登陆部分函数的定义
i;
*fp*fp1;
//创建文件指针
[50]={0}1[30]={0};
//用来存储从中读取的用户信息
[50]={0}[20][20]1[30]={0};
//三个分别是:
一行数据用户名密码
fp=("
//打开d:
//追加写数据
fp1=("
注册账户\n"
请输入用户名:
//清空缓冲区
//获得输入用户名
请输入密码:
(i=0;
i&
lt20;
i++)
[i]=;
//逐次赋值但不回显
*"
//以星号代替字符个数
([i]=='
\r'
)//回车则终止循环
br
}//获得输入密码
//将读取到的用户名密码格式转变为中的格式
\0"
(1"
(!
(fp1)