// 用二维数组保存酒店的层数.以及房间号码.
在房间大概信息我对房间号进行了编号.
用你指定编号来反算,找出对应的楼层,以及对应的房间号;答应出对应房间的对应信息.
x = ((xgnum-1)/fjhao);
y = (xgnum-(fjhao*x));
代码如上.X 为层数.Y为房间号; xgnum为指定的房间号的序列号. fjhao 为全局变量.为每层的房间个数;
#include <stdio.h>
//全局变量定义列表
int fjceng = 2;
int fjhao = 5;
//函数声明列表
void showfangjian(); //房间信息show
void mainUI(); //主界面
void ruzhu(); //入住登记
void duqu(); //读取信息
void baocun(); //保存信息
void xiangxi(); //详细信息
void tuifang(); //退房
void nowxinxi1(); //更新信息
void sjgx(); //房间数量更新
//结构体 房间信息
typedef struct {
int rzyn; //用来保存是否有人入住.
char name[20];
char sfhao[20];
char sex;
} kerenxinxi;
kerenxinxi fjnum[100][100];
int main(int argc, const char* argv[]) {
duqu();
while (1) {
mainUI();
int cznum;
scanf("%d", &cznum);
switch (cznum) {
case 1: //入住登记
ruzhu();
break;
case 2: //退房
tuifang();
break;
case 3: //修改信息
nowxinxi1();
break;
case 4: //查看所有
showfangjian();
break;
case 5: //搜索信息
xiangxi();
break;
case 6: //退出系统
printf("************************\n");
printf("********系 统 设 置******\n");
printf("***** 1.房间数量更新 *****\n");
printf("***** 2.退 出 系 统 *****\n");
printf("************************\n");
int xtsznum;
printf("请选择对应序列号\n");
scanf("%d", &xtsznum);
switch (xtsznum) {
case 1:
sjgx();
break;
case 2:
printf("是否确认退出? 输入Y确认退出.否则任意键返回\n");
char charQz;
scanf(" %c", &charQz);
if (charQz == 'y' || charQz == 'Y') {
return 0;
}
break;
default:
break;
}
break;
default:
break;
}
}
return 0;
}
void sjgx() {
char lssz;
printf("请输入更新后的酒店楼层数\n");
scanf("%d", &fjceng);
printf("请输入更新后的楼层房间数\n");
scanf("%d", &fjhao);
printf("确认更新?确定Y,取消任意键返回!\n");
scanf(" %c", &lssz);
if (lssz == 'y' || lssz == 'Y') {
baocun();
} else {
printf("取消保存,已返回菜单\n");
}
}
void tuifang() {
showfangjian();
printf("请输入你要退房的房间序列号\n");
int xgnum,x,y;
scanf("%d", &xgnum);
x = ((xgnum-1)/fjhao);
y = (xgnum-(fjhao*x));
if(fjnum[x][y-1].rzyn == 1){
printf("你需要退房的原信息如下\n");
printf("姓名:%s\n",fjnum[x][y-1].name);
printf("身份证:%s\n",fjnum[x][y-1].sfhao);
printf("性别:%c\n",fjnum[x][y-1].sex);
fjnum[x][y-1].rzyn = 0;
printf("退房完成\n");
baocun();
}else{
printf("你选择的房间无人入住,请重新操作\n");
}
}
void nowxinxi1(){
showfangjian();
printf("请输入你要修改登记信息的房间序列号\n");
int xgnum,x,y;
scanf("%d", &xgnum);
x = ((xgnum-1)/fjhao);
y = (xgnum-(fjhao*x));
if (fjnum[x][y-1].rzyn == 1){
printf("你需要修改的原信息如下\n");
printf("姓名:%s\n",fjnum[x][y-1].name);
printf("身份证:%s\n",fjnum[x][y-1].sfhao);
printf("性别:%c\n",fjnum[x][y-1].sex);
printf("请输入你要更新的入住人员姓名\n");
scanf("%s", fjnum[x][y-1].name);
printf("请输入你要更新的身份证号码\n");
scanf("%s", fjnum[x][y-1].sfhao);
printf("请输入你要更新的入住人员性别\n");
scanf(" %c", &fjnum[x][y-1].sex);
baocun();
}else{
printf("你选择的房间无人入住\n");
}
}
void xiangxi() {
showfangjian();
printf("请输入你要查看详细信息的序列号\n");
//要查看的详细信息的序列号
int xgnum,x,y;
scanf("%d", &xgnum);
x = ((xgnum-1)/fjhao);
y = (xgnum-(fjhao*x));
if(fjnum[x][y-1].rzyn == 1){
printf("房间登记详细如下:\n");
printf("姓名:%s\n",fjnum[x][y-1].name);
printf("身份证号:%s\n",fjnum[x][y-1].sfhao);
printf("性别:%c\n",fjnum[x][y-1].sex);
}else{
printf("你选择的房间无人入住,无法查看详细信息\n");
}
}
void ruzhu() {
int xgnum,x,y;
while (1) {
showfangjian();
printf("请输入要登记的房间序列号\n");
scanf("%d", &xgnum);
x = ((xgnum-1)/fjhao);
y = (xgnum-(fjhao*x));
if (fjnum[x][y-1].rzyn == 0){
printf("请输入你要登记的旅客姓名:\n");
scanf("%s",fjnum[x][y-1].name);
printf("请输入你要登记的旅客身份证号码:\n");
scanf("%s",fjnum[x][y-1].sfhao);
printf("请输入你要登记的旅客性别:\n");
scanf(" %c",&fjnum[x][y-1].sex);
fjnum[x][y-1].rzyn = 1;
baocun();
printf("登记完成!!\n");
break;
}else{
printf("你选择的房间已经有人入住,请重新选择\n");
}
}
}
void showfangjian() {
int xlh = 1;
printf("序号:楼层:房间号:入住信息.1 = 有人 0 = 无人\n");
for (int i = 0; i < fjceng; i++) {
for (int j = 0; j < fjhao; j++) {
printf("%d: %d层- %d号房, 入住信息:%d\n", xlh, i + 1, j + 1,
fjnum[i][j].rzyn);
xlh++;
}
}
}
void mainUI() {
printf("**************************\n");
printf("*****欢迎使用酒店管理系统*****\n");
printf("****** 1、入住登记 ******\n");
printf("****** 2、退 房 ******\n");
printf("****** 3、修改信息 ******\n");
printf("****** 4、查看所有 ******\n");
printf("****** 5、搜索详细 ******\n");
printf("****** 6、系统设置 ******\n");
printf("**************************\n\n");
printf("请输入您要进行的操作(请输入序号)\n");
}
void duqu() {
FILE* pd = fopen("name222.txt", "r");
if (pd) {
fread(&fjceng, sizeof(int), 1, pd);
fread(&fjhao, sizeof(int), 1, pd);
fread(fjnum, sizeof(fjnum), 1, pd);
fclose(pd);
}
}
//保存联系人数组到文本
void baocun() {
FILE* pf = fopen("name222.txt", "w");
if (pf) {
fwrite(&fjceng, sizeof(int), 1, pf);
fwrite(&fjhao, sizeof(int), 1, pf);
fwrite(fjnum, sizeof(fjnum), 1, pf);
fclose(pf);
printf("更新成功!!!\n");
}
}