病房管理源程序_vip病房管理系统
病房管理源程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“vip病房管理系统”。
附件:病房管理源程序
#include #include #include #include #define ok 1 #define error 0 #define TURE 1 #define FALSE 0 #define max_name 21
typedef struct bed{
int
number;
/*床位号*/ int
live;
/*是否有人*/
unsigned char name[max_name];
/*人名最长长度*/ struct bed
*next;
/*下一个床铺*/ }bed;
typedef struct sickroom { int
number;
/*病房号*/ int
bednum;
/*房内床位数*/ int
livenum;
/*已住人数*/ struct sickroom *next;
/*指向下一个病房*/
struct bed *firstbed;
/*指向第一个床位*/ }sickroom;
int roomnum(sickroom *q)/*返回医院中的房间的个数*/ {
int i;
for(i=0;q!=NULL;i++)q=q->next;return i;}
int Initialization(sickroom *H)/*初始化操作*/ {
int i,n,k;sickroom *q,*sq;bed *p,*bp;printf(“----------------------请输入病房个数:”);scanf(“%d”,&n);getchar();
int i,x,n,m,y;sickroom *q;bed *p;q=H->next;n=roomnum(q);
printf(“请输入您要入住的病房号(目前共有%d个病房):”,n);scanf(“%d”,&x);getchar();printf(“n”);while(x>n||x
printf(“您输入的病房号错误,请重新输入:”);
scanf(“%d”,&x);
getchar();
printf(“n”);} for(i=1;inext;
/*q指向选择的病房*/ m=q->bednum-q->livenum;if(m==0){
printf(“-------------------------此病房已满。。(回车继续)-----------n”);
getchar();
printf(“n”);
return 0;} p=q->firstbed;printf(“空床铺有:”);for(i=1;ibednum;i++){
if(p->live==0)printf(“ %d号床铺”,i);
p=p->next;} printf(“n输入您要选择的床铺号:”);scanf(“%d”,&y);getchar();p=q->firstbed;for(i=1;inext;
/*指向所选床铺*/ if(p->live==1){
printf(“-------------------------输入错误!(回车继续)----------------------------n”);
getchar();
return 0;} p->live=1;
{
printf(“-------------------------查无此床(回车继续)-----------n”);
getchar();
return 0;
} } if(q->live==0){
printf(“-------------------------此床铺为空!(回车继续)-------------n”);
getchar();
return 0;} q->live=0;p->livenum--;H->livenum--;printf(“-------------------------”);printf(“%s”,q->name);printf(“已成功出院!n”);printf(“------------------------(回车继续)----------------n”);getchar();for(i=1;iname[i-1]=0;return 1;}
int searchsickroom(sickroom *H)/*查找出医院内病房空床位*/ {
int i,m,z=0;
sickroom *q;
q=H->next;
for(i=1;q;i++)
{
m=q->bednum-q->livenum;
if(m>0)printf(“
%d号病房有%d个床位n”,i,m);
else printf(“
%d号病房已满n”,i);
q=q->next;
z+=m;
}
printf(“
院中还剩%d个床位(回车继续)。。n”,z);
getchar();
return 1;}
int n=0,m=0;
sickroom *q;
bed *p;
char a[max_name];
printf(“n请输入您要查找的人名(二十个字符以内,以空格结束):”);
scanf(“%s”,a);
getchar();
for(q=H->next;q;q=q->next)
{
for(p=q->firstbed;p;p=p->next)
{
if(p->live==1)
if(strcmp(a,p->name)==0)
{
n=q->number;
m=p->number;
}
}
}
if(m==0&&n==0)
{
printf(“-------------------------查无此人(回车继续)------------n”);
getchar();
}
else
{
printf(“
此人目前住在%d号房%d号床。。n”,n,m);
printf(“---------------------(回车继续)-----------------n”);
getchar();
}
return 1;}
int nowhospital(sickroom *H)/*显示目前医院的住院情况*/ {
int i;
sickroom *q;
bed *p;
i=0;
for(q=H->next;q;q=q->next)
{
printf(“n病房%d —>t”,q->number);
for(p=q->firstbed;p;p=p->next)
if(i==2)searchbed(H);
else
if(i==3)
searchpeople(H);
else
if(i==4)
nowhospital(H);
else
if(i==0);
else
{
printf(“输入错误!(回车继续)n”);
getchar();
}
}while(i!=0);
return ok;}
void main()/*主程序*/ {
int i;
sickroom H;
system(“CLS”);
printf(“********12**************14************12************14********12*********12 n”);
printf(“
_______________________________________________________
n”);
printf(“
n”);
printf(“
欢迎进入医院管理程序!!
n”);
printf(“
n”);
printf(“
请先对医院进行初始化。。(回车键继续)
n”);
printf(“
1_____________________________________________________ 2
n”);
getchar();
Initialization(&H);
printf(“n”);
do
{
system(“CLS”);
printf(“********12**************14************12************14********12******12********n”);
printf(“
_____________________________________
n”);
printf(“
n”);
printf(“
选择菜单:
n”);
printf(“
[1] 入院操作
n”);
printf(“
[2] 出院操作
n”);
printf(“
[3] 查询医院信息
n”);
printf(“
[0] 退出医院
n”);