C语言 酒店管理系统 增加顾客信息
时间: 2023-05-29 07:07:13 浏览: 83
以下是一个简单的C语言酒店管理系统增加顾客信息的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CUSTOMERS 10 // 最大顾客数
typedef struct {
char name[50]; // 姓名
int age; // 年龄
char gender[10]; // 性别
char phone[20]; // 电话号码
} Customer;
int main() {
Customer customers[MAX_CUSTOMERS]; // 顾客数组
int num_customers = 0; // 当前顾客数
printf("欢迎使用酒店管理系统!\n");
while (1) {
printf("请选择要进行的操作:\n");
printf("1. 增加顾客信息\n");
printf("2. 显示所有顾客信息\n");
printf("3. 退出程序\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
if (num_customers >= MAX_CUSTOMERS) {
printf("顾客数已达到最大值,无法继续添加!\n");
break;
}
printf("请输入顾客姓名:");
scanf("%s", customers[num_customers].name);
printf("请输入顾客年龄:");
scanf("%d", &customers[num_customers].age);
printf("请输入顾客性别:");
scanf("%s", customers[num_customers].gender);
printf("请输入顾客电话号码:");
scanf("%s", customers[num_customers].phone);
num_customers++;
printf("添加成功!\n");
break;
case 2:
if (num_customers == 0) {
printf("当前没有任何顾客信息!\n");
break;
}
printf("所有顾客信息如下:\n");
for (int i = 0; i < num_customers; i++) {
printf("姓名:%s,年龄:%d,性别:%s,电话号码:%s\n",
customers[i].name, customers[i].age,
customers[i].gender, customers[i].phone);
}
break;
case 3:
printf("谢谢使用酒店管理系统,再见!\n");
exit(0);
default:
printf("无效的选择,请重新输入!\n");
break;
}
}
return 0;
}
```
在该示例代码中,我们定义了一个`Customer`结构体来表示顾客信息,其中包含了姓名、年龄、性别、电话号码四个字段。我们还定义了一个最大顾客数`MAX_CUSTOMERS`,以及一个顾客数组`customers`和当前顾客数`num_customers`来存储顾客信息。
在程序运行时,我们通过一个`while`循环来不断接收用户的输入,根据用户选择的操作执行相应的代码。当用户选择“增加顾客信息”时,我们先判断当前顾客数是否已达到最大值,如果是则提示无法继续添加;否则,我们依次提示用户输入顾客的姓名、年龄、性别和电话号码,并将这些信息保存到下一个空闲的位置。当用户选择“显示所有顾客信息”时,我们依次遍历所有顾客信息,并将每个顾客的姓名、年龄、性别和电话号码输出到屏幕上。当用户选择“退出程序”时,我们直接调用`exit`函数结束程序。
需要注意的是,上述代码中我们使用了`scanf`函数来读取用户的输入,这种方法虽然简单,但也存在一些安全隐患。如果用户输入的字符串超过了我们定义的缓冲区大小,就会导致缓冲区溢出,从而可能导致程序崩溃或被攻击。为了避免这种情况,我们应该在读取用户输入时使用安全的输入函数,例如`fgets`和`scanf_s`等。