本题是静态数组管理系统,用到了静态数组的知识,废话不多说,看程序吧!哈!
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#define N 10
using namespace std;
struct Room{
int roomgrade;//房间等级
int roomprice;//房间价格
int roomnumber;//房间门号
char name[20];//旅客姓名
int sex;//旅客性别 0 代表男 1 代表女
int peoplein;//是否有人入住 0代表无人入住 1代表有客人入住了!!!
} room[100];
int main()
{
void CreatRoom();//订房信息初始化
void ReadRoom();//已经被预定房间
void ReturnRoom();//已经退还的房间
void LookRoom();//查询房间使用情况
printf("欢迎使用旅馆管理系统,请输入你要进行的操作\n");
printf("----------------------------操作菜单----------------------------\n");
printf(" 预定房间初始化请按“1” \n");
printf(" 预定所需的房间请按“2” \n");
printf(" 退掉使用的房间请按“3” \n");
printf(" 查询房间的使用请按“4” \n");
printf(" 结束进行的操作请按“5” \n");
printf("----------------------------------------------------------------\n");
int ch;
cin>>ch;
while(ch!=5)
{
switch(ch)
{
case 1:CreatRoom();break;
case 2:ReadRoom();break;
case 3:ReturnRoom();break;
case 4:LookRoom();break;
case 5:printf("系统已经制动关闭,感谢您的使用\n");return 0;break;
default: printf("输入错误,请重新输入\n");break;
}
printf("欢迎使用旅馆管理系统,请输入你要进行的操作\n");
printf("----------------------------操作菜单----------------------------\n");
printf(" 预定房间初始化请按“1” \n");
printf(" 预定所需的房间请按“2” \n");
printf(" 退掉使用的房间请按“3” \n");
printf(" 查询房间的使用请按“4” \n");
printf(" 结束进行的操作请按“4” \n");
printf("----------------------------------------------------------------\n");
cin>>ch;
}
return 0;
}
void CreatRoom()//房间信息初始化
{
int i,j;
printf("房建等级初始化中... 请稍后\n\n\n");
memset(room,0,sizeof(room));
for(i=0;i<100;i=i+10)
for(j=i;j<i+10;j++)
{
room[j].roomgrade=j/10+1;
room[j].roomprice=j/10*100+100;
room[j].roomnumber=j;
printf("房间等级(级) 房间价格(元) 房间号码 旅客姓名 旅客性别 是否使用\n");
printf("%-15d%-15d%-10d%-10s%-10d%-10d\n",room[j].roomgrade,room[j].roomprice,room[j].roomnumber,room[j].name,room[j].sex,room[j].peoplein);
}
cout<<endl;
}
void ReadRoom()//预定房间
{
int n,grade,mark,i,price=0,sum[100],j=0,m;
printf("请输入您要预定的房间的个数:\n");
cin>>n;
m=n;
while(n--)
{
printf("请输入你要预定房间的等级1~10:\n");
cin>>grade;
mark=0;
for(i=(grade-1)*10;i<(grade-1)*10+10;i++)
if(room[i].peoplein==0)
{
room[i].peoplein=1;
mark=1;
printf("请输入旅客的姓名:\n");
scanf("%s",room[i].name);
printf("请输入旅客性别:“0”代表男;“1”代表女\n");
cin>>room[i].sex;
sum[j]=i;
j++;
break;
}
if(mark==0)
{
printf("该等级房间已经满了人,请预定别的等级的房间:\n");
n++;
}
}
printf("你所预定的房间信息如下:\n");
printf("----------------------------------------------------------------\n");
for(i=0;i<m;i++)
{
printf("房间等级(级) 房间价格(元) 房间号码 旅客姓名 旅客性别 是否使用\n");
printf("%-15d%-15d%-10d%-10s%-10d%-10d\n",room[sum[i]].roomgrade,room[sum[i]].roomprice,room[sum[i]].roomnumber,room[sum[i]].name,room[sum[i]].sex,room[sum[i]].peoplein);
price+=room[sum[i]].roomprice;
}
printf("----------------------------------------------------------------\n");
printf("-------------------------------------应付款总额为:%d(元)\n\n\n",price);
}
void ReturnRoom()//退还房间
{
int n,number;
printf("请输入退还房间的个数:\n");
cin>>n;
while(n--)
{
printf("请输入退还房间的房间号码:\n");
cin>>number;
room[number].peoplein=0;
room[number].sex=0;
memset(room[number].name,0,sizeof(room[number].name));
}
printf("房间已经退还完毕,欢迎您下次光临本旅馆\n\n");
}
void LookRoom()//查询房间使用情况
{
int i,remain=100,used=0;
for(i=0;i<100;i++)
{
printf("房间等级(级) 房间价格(元) 房间号码 旅客姓名 旅客性别 是否使用\n");
printf("%-15d%-15d%-10d%-10s%-10d%-10d\n",room[i].roomgrade,room[i].roomprice,room[i].roomnumber,room[i].name,room[i].sex,room[i].peoplein);
if(room[i].peoplein==1)
{
remain--;
used++;
}
}
printf("房间使用情况如下:\n");
printf("----------------------------------------------------------------\n");
printf(" 房间总数:100 \n");
printf(" 已用房间:%d\n",used);
printf(" 剩余房间:%d\n",remain);
printf("----------------------------------------------------------------\n");
cout<<endl<<endl;
}