用c语言写一个饭卡系统
时间: 2023-10-10 11:06:29 浏览: 64
好的,下面是一个简单的饭卡管理系统的示例代码,供您参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_USERS 100 // 最大用户数
#define MAX_NAME 20 // 最大姓名长度
// 用户结构体
typedef struct {
char name[MAX_NAME]; // 姓名
int balance; // 余额
} User;
// 用户数组
User users[MAX_USERS];
int user_count = 0; // 用户数量
// 添加用户
void add_user(char *name, int balance) {
if (user_count >= MAX_USERS) {
printf("用户数量已达上限,无法添加新用户。\n");
return;
}
User user;
strcpy(user.name, name);
user.balance = balance;
users[user_count++] = user;
printf("添加用户成功。\n");
}
// 充值
void recharge(char *name, int amount) {
User *user = NULL;
for (int i = 0; i < user_count; i++) {
if (strcmp(users[i].name, name) == 0) {
user = &users[i];
break;
}
}
if (user == NULL) {
printf("用户不存在。\n");
return;
}
user->balance += amount;
printf("充值成功。\n");
}
// 消费
void consume(char *name, int amount) {
User *user = NULL;
for (int i = 0; i < user_count; i++) {
if (strcmp(users[i].name, name) == 0) {
user = &users[i];
break;
}
}
if (user == NULL) {
printf("用户不存在。\n");
return;
}
if (user->balance < amount) {
printf("余额不足,无法消费。\n");
return;
}
user->balance -= amount;
printf("消费成功。\n");
}
// 显示余额
void show_balance(char *name) {
User *user = NULL;
for (int i = 0; i < user_count; i++) {
if (strcmp(users[i].name, name) == 0) {
user = &users[i];
break;
}
}
if (user == NULL) {
printf("用户不存在。\n");
return;
}
printf("用户 %s 的余额为 %d 元。\n", user->name, user->balance);
}
int main() {
// 添加用户
add_user("张三", 100);
add_user("李四", 200);
add_user("王五", 300);
// 充值
recharge("张三", 50);
recharge("李四", 100);
// 消费
consume("张三", 30);
consume("李四", 50);
consume("王五", 100);
// 显示余额
show_balance("张三");
show_balance("李四");
show_balance("王五");
return 0;
}
```
在上面的示例代码中,我们定义了一个用户结构体,包含姓名和余额两个字段。然后定义了一个用户数组,用于保存所有的用户信息。接着实现了添加用户、充值、消费、显示余额等几个功能函数。最后在主函数中调用这些函数进行测试。