宾馆客房管理系统的设计与实现 (1)客房信息包括:房间号(char num[10])、房间类型(char type[10])、价格(float money)、是否入住(int flag) (2)除了总的模块要求外,还需计算a.已入住客房的总收入;b.查找某一房间类型的所有房间信息。第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块——Menu()的功能是:显示提示选单。 第三个模块——Quit()的功能是:退出选单。 第四个模块——Create()的功能是:创建新的数据记录。 第五个模块——Add()的功能是:增加新的数据记录,并返回选单。 第六个模块——Find()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。 第七个模块——Alter()[的功能是:修改某条记录的信息,如果未找到要修改的记录,则提示系统中无此记录,并返回选单。 第八个模块——Delete()的功能是:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。 第九个模块——List()的功能是:显示所有记录。 用C语言编写,不需要的创建文件的
时间: 2024-03-22 07:42:36 浏览: 108
代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUM 100 // 客房数量最大值
// 客房信息结构体
typedef struct {
char num[10]; // 房间号
char type[10]; // 房间类型
float money; // 价格
int flag; // 是否入住, 0表示未入住,1表示已入住
} Room;
// 全局变量,客房信息数组和当前客房数量
Room rooms[MAX_NUM];
int count = 0;
// 显示菜单
void Menu() {
printf("1. 创建新的客房记录\n");
printf("2. 增加新的客房记录\n");
printf("3. 查询客房信息\n");
printf("4. 修改客房信息\n");
printf("5. 删除客房记录\n");
printf("6. 显示所有客房记录\n");
printf("7. 退出\n");
}
// 创建新的客房记录
void Create() {
printf("请输入客房信息:\n");
printf("房间号:");
scanf("%s", rooms[count].num);
printf("房间类型:");
scanf("%s", rooms[count].type);
printf("价格:");
scanf("%f", &rooms[count].money);
rooms[count].flag = 0; // 默认未入住
count++;
}
// 增加新的客房记录
void Add() {
if (count >= MAX_NUM) {
printf("客房数量已达最大值,无法继续添加!\n");
return;
}
Create(); // 调用创建客房记录的函数
printf("客房信息添加成功!\n");
}
// 查找某一房间类型的所有房间信息
void Find() {
char type[10];
printf("请输入要查找的房间类型:");
scanf("%s", type);
int found = 0; // 标记是否找到
for (int i = 0; i < count; i++) {
if (strcmp(type, rooms[i].type) == 0) {
printf("房间号:%s,房间类型:%s,价格:%.2f,是否入住:%s\n",
rooms[i].num, rooms[i].type, rooms[i].money,
rooms[i].flag == 0 ? "未入住" : "已入住");
found = 1;
}
}
if (!found) {
printf("未找到符合条件的客房记录!\n");
}
}
// 修改客房记录
void Alter() {
char num[10];
printf("请输入要修改的客房的房间号:");
scanf("%s", num);
int found = 0; // 标记是否找到
for (int i = 0; i < count; i++) {
if (strcmp(num, rooms[i].num) == 0) {
printf("当前客房信息为:\n");
printf("房间号:%s,房间类型:%s,价格:%.2f,是否入住:%s\n",
rooms[i].num, rooms[i].type, rooms[i].money,
rooms[i].flag == 0 ? "未入住" : "已入住");
printf("请输入修改后的客房信息:\n");
printf("房间号:");
scanf("%s", rooms[i].num);
printf("房间类型:");
scanf("%s", rooms[i].type);
printf("价格:");
scanf("%f", &rooms[i].money);
found = 1;
printf("客房信息修改成功!\n");
break;
}
}
if (!found) {
printf("未找到要修改的客房记录!\n");
}
}
// 删除客房记录
void Delete() {
char num[10];
printf("请输入要删除的客房的房间号:");
scanf("%s", num);
int found = 0; // 标记是否找到
for (int i = 0; i < count; i++) {
if (strcmp(num, rooms[i].num) == 0) {
for (int j = i; j < count - 1; j++) {
rooms[j] = rooms[j + 1];
}
count--;
found = 1;
printf("客房信息删除成功!\n");
break;
}
}
if (!found) {
printf("未找到要删除的客房记录!\n");
}
}
// 显示所有客房记录
void List() {
printf("客房总数:%d\n", count);
float total_money = 0;
for (int i = 0; i < count; i++) {
printf("房间号:%s,房间类型:%s,价格:%.2f,是否入住:%s\n",
rooms[i].num, rooms[i].type, rooms[i].money,
rooms[i].flag == 0 ? "未入住" : "已入住");
if (rooms[i].flag == 1) {
total_money += rooms[i].money;
}
}
printf("已入住客房的总收入为:%.2f\n", total_money);
}
int main() {
int choice;
do {
Menu(); // 显示菜单
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
Create();
break;
case 2:
Add();
break;
case 3:
Find();
break;
case 4:
Alter();
break;
case 5:
Delete();
break;
case 6:
List();
break;
case 7:
Quit();
break;
default:
printf("无效的选项!\n");
break;
}
} while (choice != 7);
return 0;
}
```