养老院概况
void print_welecome() //养老院概况
{
printf("******************************************************************************************************\n");
printf("******************************************欢迎进入养老院管理系统**************************************\n");
printf("温馨老年公寓简介:\n");
printf("一、养老院概况\n");
printf("温馨老年公寓是专供老年人集中居住,符合老年人体能心态特征的公寓式老年住宅。\n");
printf("二、养老院特色\n");
printf("温馨老年公寓的特色是让老年人感受到更多的快乐和幸福。不仅是满足健康生活需要,还注重满足老人的精神需求。\n");
printf("******************************************************************************************************\n");
}
养老院面向对象
1.老人用户
2.家属用户
3.护理员工
struct Eleder //老人用户
{
char name[20];
char sex[5];
int year;
int room_num;
char telephone[20];
char move_in_date[10];
char emergency_name_call[20];
};
struct Family //家属用户
{
char name[20];
char sex[5];
char telephone[20];
char address[30];
};
struct Work //护理员工
{
int number;
char name[20];
char sex[5];
int year;
char telephone[20];
char address[30];
};
菜单
printf("菜单\n");
printf("1.输入老人用户的信息\n");
printf("2.输入家属用户的信息\n");
printf("3.输入护理员工的信息\n");
printf("4.显示老人用户的信息\n");
printf("5.显示家属用户的信息\n");
printf("6.显示护理员工的信息\n");
printf("7.删除老人用户的信息\n");
printf("8.删除家属用户的信息\n");
printf("9.删除护理员工的信息\n");
printf("10.查找老人用户的信息\n");
printf("11.查找家属用户的信息\n");
printf("12.查找护理员工的信息\n");
printf("13.将老人用户的信息保存进文件中\n");
printf("14.将家属用户的信息保存进文件中\n");
printf("15.将护理员工的信息保存进文件中\n");
输入信息(只展示老人的信息输入,其他两个对象与老人的信息输入类似)
void input1(struct Eleder stu1[100],int i1) //输入老人用户的信息
{
printf("请输入第%d个老人用户的姓名:\n",i1+1);
scanf("%s",&stu1[i1].name);
printf("请输入第%d个老人用户的性别:\n",i1+1);
scanf("%s",&stu1[i1].sex);
printf("请输入第%d个老人用户的年龄:\n",i1+1);
scanf("%d",&stu1[i1].year);
printf("请输入第%d个老人用户的房间号:\n",i1+1);
scanf("%d",&stu1[i1].room_num);
printf("请输入第%d个老人用户的电话:\n",i1+1);
scanf("%s",&stu1[i1].telephone);
printf("请输入第%d个老人用户的入住日期:\n",i1+1);
scanf("%s",&stu1[i1].move_in_date);
printf("请输入第%d个老人用户的紧急联系人的姓名和电话:\n",i1+1);
scanf("%s",&stu1[i1].emergency_name_call);
}
显示信息
void output1(struct Eleder stu1[],int n1) //显示老人用户的信息
{
int i1;
for(i1=0;i1<n1;i1++)
{
printf("老人用户的信息为:\n");
printf("%s %s %d %d %s %s %s\n",stu1[i1].name,stu1[i1].sex,stu1[i1].year,stu1[i1].room_num,stu1[i1].telephone,stu1[i1].move_in_date,stu1[i1].emergency_name_call);
}
}
删除信息
void dele1(struct Eleder stu1[],char name1[],int n1) //删除老人用户的信息
{
int end;
end=search1(stu1,name1,n1);
if(end==-1)
{
printf("查找失败\n");
}
else
{
printf("要删除的老人用户%s为第%d个\n",stu1[end].name,end+1);
for(int i=end;i<n1-1;i++)
{
stu1[i]=stu1[i+1];
}
printf("删除成功\n");
output1(stu1,n1-1);
}
}
输出某一个人的信息
void output_one1(struct Eleder stu1[],int j) //输出某一个老人用户的信息
{
printf("老人用户的信息为:\n");
printf("%s %s %d %d %s %s %s\n",stu1[j].name,stu1[j].sex,stu1[j].year,stu1[j].room_num,stu1[j].telephone,stu1[j].move_in_date,stu1[j].emergency_name_call);
}
查找信息
int search1(struct Eleder stu1[],char name1[],int n1) //查找老人用户的信息
{
int p=0;
for(int i=0;i<n1;i++)
{
if(strcmp(stu1[i].name,name1)==0)
{
p=i;
return p;
}
}
return -1;
}
保存在文件中
void keep1(struct Eleder stu1[],int n1) //将老人用户的信息保存在文件中
{
FILE*fp;
if((fp=fopen("D:\\CC\\老人用户的信息","w"))==NULL)
{
printf("此文件无法打开\n");
exit(0);
}
for(int i=0;i<n1;i++)
{
fprintf(fp,"%s %s %d %d %s %s %s\n",stu1[i].name,stu1[i].sex,stu1[i].year,stu1[i].room_num,stu1[i].telephone,stu1[i].move_in_date,stu1[i].emergency_name_call);
}
fclose(fp);
}
总代码
#include<stdio.h> //养老院管理系统
#include<stdlib.h>
#include<string.h>
struct Eleder //老人用户
{
char name[20];
char sex[5];
int year;
int room_num;
char telephone[20];
char move_in_date[10];
char emergency_name_call[20];
};
struct Family //家属用户
{
char name[20];
char sex[5];
char telephone[20];
char address[30];
};
struct Work //护理员工
{
int number;
char name[20];
char sex[5];
int year;
char telephone[20];
char address[30];
};
void print_welecome() //养老院概况
{
printf("******************************************************************************************************\n");
printf("******************************************欢迎进入养老院管理系统**************************************\n");
printf("温馨老年公寓简介:\n");
printf("一、养老院概况\n");
printf("温馨老年公寓是专供老年人集中居住,符合老年人体能心态特征的公寓式老年住宅。\n");
printf("二、养老院特色\n");
printf("温馨老年公寓的特色是让老年人感受到更多的快乐和幸福。不仅是满足健康生活需要,还注重满足老人的精神需求。\n");
printf("******************************************************************************************************\n");
}
void input1(struct Eleder stu1[100],int i1) //输入老人用户的信息
{
printf("请输入第%d个老人用户的姓名:\n",i1+1);
scanf("%s",&stu1[i1].name);
printf("请输入第%d个老人用户的性别:\n",i1+1);
scanf("%s",&stu1[i1].sex);
printf("请输入第%d个老人用户的年龄:\n",i1+1);
scanf("%d",&stu1[i1].year);
printf("请输入第%d个老人用户的房间号:\n",i1+1);
scanf("%d",&stu1[i1].room_num);
printf("请输入第%d个老人用户的电话:\n",i1+1);
scanf("%s",&stu1[i1].telephone);
printf("请输入第%d个老人用户的入住日期:\n",i1+1);
scanf("%s",&stu1[i1].move_in_date);
printf("请输入第%d个老人用户的紧急联系人的姓名和电话:\n",i1+1);
scanf("%s",&stu1[i1].emergency_name_call);
}
void input2(struct Family stu2[100],int i2) //输入家属用户的信息
{
printf("请输入第%d个家属用户的姓名:\n",i2+1);
scanf("%s",stu2[i2].name);
printf("请输入第%d个家属用户的性别:\n",i2+1);
scanf("%s",stu2[i2].sex);
printf("请输入第%d个家属用户的电话:\n",i2+1);
scanf("%s",stu2[i2].telephone);
printf("请输入第%d个家属用户的家庭住址:\n",i2+1);
scanf("%s",stu2[i2].address);
}
void input3(struct Work stu3[100],int i3) //输入护理员工的信息
{
printf("请输入第%d个护理员工的工号:\n",i3+1);
scanf("%d",&stu3[i3].number);
printf("请输入第%d个护理员工的姓名:\n",i3+1);
scanf("%s",&stu3[i3].name);
printf("请输入第%d个护理员工的性别:\n",i3+1);
scanf("%s",&stu3[i3].sex);
printf("请输入第%d个护理员工的年龄:\n",i3+1);
scanf("%d",&stu3[i3].year);
printf("请输入第%d个护理员工的电话:\n",i3+1);
scanf("%s",&stu3[i3].telephone);
printf("请输入第%d个护理员工的家庭住址:\n",i3+1);
scanf("%s",&stu3[i3].address);
}
void output1(struct Eleder stu1[],int n1) //显示老人用户的信息
{
int i1;
for(i1=0;i1<n1;i1++)
{
printf("老人用户的信息为:\n");
printf("%s %s %d %d %s %s %s\n",stu1[i1].name,stu1[i1].sex,stu1[i1].year,stu1[i1].room_num,stu1[i1].telephone,stu1[i1].move_in_date,stu1[i1].emergency_name_call);
}
}
void output2(struct Family stu2[],int n2) //显示家属用户的信息
{
int i2;
for(i2=0;i2<n2;i2++)
{
printf("家属用户的信息为:\n");
printf("%s %s %s %s\n",stu2[i2].name,stu2[i2].sex,stu2[i2].telephone,stu2[i2].address);
}
}
void output3(struct Work stu3[],int n3) //显示护理员工的信息
{
int i3;
for(i3=0;i3<n3;i3++)
{
printf("护理员工的信息为:\n");
printf("%d %s %s %d %s %s\n",stu3[i3].number,stu3[i3].name,stu3[i3].sex,stu3[i3].year,stu3[i3].telephone,stu3[i3].address);
}
}
void output_one1(struct Eleder stu1[],int j) //输出某一个老人用户的信息
{
printf("老人用户的信息为:\n");
printf("%s %s %d %d %s %s %s\n",stu1[j].name,stu1[j].sex,stu1[j].year,stu1[j].room_num,stu1[j].telephone,stu1[j].move_in_date,stu1[j].emergency_name_call);
}
void output_one2(struct Family stu2[],int i2) //输出某一个家属用户的信息
{
printf("家属用户的信息为:\n");
printf("%s %s %s %s\n",stu2[i2].name,stu2[i2].sex,stu2[i2].telephone,stu2[i2].address);
}
void output_one3(struct Work stu3[],int i3) //输出某一个护理员工的信息
{
printf("护理员工的信息为:\n");
printf("%d %s %s %d %s %s\n",stu3[i3].number,stu3[i3].name,stu3[i3].sex,stu3[i3].year,stu3[i3].telephone,stu3[i3].address);
}
int search1(struct Eleder stu1[],char name1[],int n1) //查找老人用户的信息
{
int p=0;
for(int i=0;i<n1;i++)
{
if(strcmp(stu1[i].name,name1)==0)
{
p=i;
return p;
}
}
return -1;
}
int search2(struct Family stu2[],char name2[],int n2) //查找家属用户的信息
{
int p=0;
for(int i=0;i<n2;i++)
{
if(strcmp(name2,stu2[i].name)==0)
{
p=i;
return p;
}
}
return -1;
}
int search3(struct Work stu3[],char name3[],int n3) //查找护理员工的信息
{
int p=0;
for(int i=0;i<n3;i++)
{
if(strcmp(name3,stu3[i].name)==0)
{
p=i;
return p;
}
}
return -1;
}
void dele1(struct Eleder stu1[],char name1[],int n1) //删除老人用户的信息
{
int end;
end=search1(stu1,name1,n1);
if(end==-1)
{
printf("查找失败\n");
}
else
{
printf("要删除的老人用户%s为第%d个\n",stu1[end].name,end+1);
for(int i=end;i<n1-1;i++)
{
stu1[i]=stu1[i+1];
}
printf("删除成功\n");
output1(stu1,n1-1);
}
}
void dele2(struct Family stu2[],char name2[],int n2) //删除家属用户的信息
{
int end;
end=search2(stu2,name2,n2);
if(end==-1)
{
printf("查找失败\n");
}
else
{
printf("要删除的家属用户%s为第%d个\n",stu2[end].name,end+1);
for(int i=end;i<n2-1;i++)
{
stu2[i]=stu2[i+1];
}
printf("删除成功\n");
output2(stu2,n2-1);
}
}
void dele3(struct Work stu3[],char name3[],int n3) //删除护理员工的信息
{
int end;
end=search3(stu3,name3,n3);
if(end==-1)
{
printf("查找失败\n");
}
else
{
printf("要删除的护理员工%s为第%d个\n",stu3[end].name,end+1);
for(int i=end;i<n3-1;i++)
{
stu3[i]=stu3[i+1];
}
printf("删除成功\n");
output3(stu3,n3-1);
}
}
void keep1(struct Eleder stu1[],int n1) //将老人用户的信息保存在文件中
{
FILE*fp;
if((fp=fopen("D:\\CC\\老人用户的信息","w"))==NULL)
{
printf("此文件无法打开\n");
exit(0);
}
for(int i=0;i<n1;i++)
{
fprintf(fp,"%s %s %d %d %s %s %s\n",stu1[i].name,stu1[i].sex,stu1[i].year,stu1[i].room_num,stu1[i].telephone,stu1[i].move_in_date,stu1[i].emergency_name_call);
}
fclose(fp);
}
void keep2(struct Family stu2[],int n2) //将家属用户的信息保存在文件中
{
FILE*fp;
if((fp=fopen("D:\\CC\\家属用户的信息","w"))==NULL)
{
printf("此文件无法打开\n");
exit(0);
}
for(int i2=0;i2<n2;i2++)
{
fprintf(fp,"%s %s %s %s\n",stu2[i2].name,stu2[i2].sex,stu2[i2].telephone,stu2[i2].address);
}
fclose(fp);
}
void keep3(struct Work stu3[],int n3) //将护理员工的信息保存在文件中
{
FILE*fp;
if((fp=fopen("D:\\CC\\护理员工的信息","w"))==NULL)
{
printf("此文件无法打开\n");
exit(0);
}
for(int i3=0;i3<n3;i3++)
{
fprintf(fp,"%d %s %s %d %s %s\n",stu3[i3].number,stu3[i3].name,stu3[i3].sex,stu3[i3].year,stu3[i3].telephone,stu3[i3].address);
}
fclose(fp);
}
void menu(struct Eleder stu1[100],struct Family stu2[100],struct Work stu3[100]) //菜单
{
int record1,record2,record3,number1=1,n1=0,n2=0,n3=0,number=0,num=1;
while(number1>=1)
{
printf("菜单\n");
printf("1.输入老人用户的信息\n");
printf("2.输入家属用户的信息\n");
printf("3.输入护理员工的信息\n");
printf("4.显示老人用户的信息\n");
printf("5.显示家属用户的信息\n");
printf("6.显示护理员工的信息\n");
printf("7.删除老人用户的信息\n");
printf("8.删除家属用户的信息\n");
printf("9.删除护理员工的信息\n");
printf("10.查找老人用户的信息\n");
printf("11.查找家属用户的信息\n");
printf("12.查找护理员工的信息\n");
printf("13.将老人用户的信息保存进文件中\n");
printf("14.将家属用户的信息保存进文件中\n");
printf("15.将护理员工的信息保存进文件中\n");
printf("请根据菜单输入信息:\n");
scanf("%d",&number);
switch(number)
{
case 1: //输入老人用户的信息
{
system("cls"); //清屏
printf("请输入老人用户的个数(不多于%d个):\n",100-n1);
scanf("%d",&record1);
while(record1--)
{
input1(stu1,n1);
n1++;
}
output1(stu1,n1);
break;
}
case 2: //输入家属用户的信息
{
system("cls");
printf("请输入家属用户的个数(不多于%d个):\n",100-n2);
scanf("%d",&record2);
while(record2--)
{
input2(stu2,n2++);
}
output2(stu2,n2);
break;
}
case 3: //输入护理员工的信息
{
system("cls");
printf("请输入护理员工的个数(不多于%d个):\n",100-n3);
scanf("%d",&record3);
while(record3--)
{
input3(stu3,n3++);
}
output3(stu3,n3);
break;
}
case 4: //显示老人用户信息
{
system("cls");
output1(stu1,n1);
break;
}
case 5: //显示家属用户的信息
{
system("cls");
output2(stu2,n2);
break;
}
case 6: //显示护理员工的信息
{
system("cls");
output3(stu3,n3);
break;
}
case 7: //删除老人用户的信息
{
system("cls");
char name1[20];
printf("请输入您要删除的老人用户的姓名:\n");
scanf("%s",name1);
dele1(stu1,name1,n1);
--n1;
system("cls");
output1(stu1,n1);
break;
}
case 8: //删除家属用户的信息
{
system("cls");
char name2[20];
printf("请输入您要删除的家属用户的姓名:\n");
scanf("%s",name2);
dele2(stu2,name2,n2);
--n2;
system("cls");
output2(stu2,n2);
break;
}
case 9: //删除护理员工的信息
{
system("cls");
char name3[20];
printf("请输入您要删除的护理员工的姓名:\n");
scanf("%s",name3);
dele3(stu3,name3,n3);
--n3;
system("cls");
output3(stu3,n3);
break;
}
case 10: //查找老人用户的信息
{
system("cls");
char name1[20];
printf("请输入要查找的老人用户的姓名:\n");
scanf("%s",name1);
int end=search1(stu1,name1,n1);
if(end==-1)
{
printf("查找失败\n");
}
else
{
printf("查找成功\n");
output_one1(stu1,end);
}
break;
}
case 11: // 查找家属用户的信息
{
system("cls");
char name2[20];
int end;
printf("请输入要查找的家属用户的姓名:\n");
scanf("%s",name2);
end=search2(stu2,name2,n2);
if(end==-1)
{
printf("查找失败\n");
}
else
{
printf("查找成功\n");
output_one2(stu2,end);
}
break;
}
case 12: //查找护理员工的信息
{
system("cls");
char name3[20];
int end;
printf("请输入要查找的护理员工的姓名:\n");
scanf("%s",name3);
end=search3(stu3,name3,n3);
if(end==-1)
{
printf("查找失败\n");
}
else
{
printf("查找成功\n");
output_one3(stu3,end);
}
break;
}
case 13: //保存老人用户的文件
{
system("cls");
keep1(stu1,n1);
break;
}
case 14: //保存家属用户的信息
{
system("cls");
keep2(stu2,n2);
break;
}
case 15: //保存护理员工的信息
{
system("cls");
keep3(stu3,n3);
break;
}
}
printf("*****************************************\n"); //判断是否退出系统
printf("是否退出系统?\n");
printf("如果退出系统,请按 0 ;否则请按 1 \n");
scanf("%d",&num);
if(num==0)
break;
printf("*****************************************\n");
}
}
int main()
{
system("color F5"); //背景和字体颜色(F为白色背景,5为紫色字体)
struct Eleder stu1[100];
struct Family stu2[100];
struct Work stu3[100];
print_welecome(); //养老院概况
menu(stu1,stu2,stu3); //菜单调用
return 0;
}
易错点总结
1.scanf的后面不要习惯性写‘\n’
2.字符串比较要用strcmp函数,同时不要忘记#include<stdlib.h>