用c语言写一个能够对VIP用户进行充值的函数,并且能够查询余额
时间: 2024-03-21 18:39:57 浏览: 17
好的,以下是针对你的问题提供的代码:
```c
typedef struct {
char name[20];
float balance;
} Vip;
void recharge(Vip *vip, float amount)
{
vip->balance += amount;
}
float check_balance(Vip *vip)
{
return vip->balance;
}
```
该函数使用结构体存储VIP信息,包括姓名和余额。`recharge`函数使用指针传递VIP信息和充值金额,将充值金额加到VIP的余额中。`check_balance`函数使用指针传递VIP信息,返回VIP的余额。
使用示例:
```c
int main()
{
// VIP信息
Vip vip = {"John", 100};
// 充值并查询余额
recharge(&vip, 50);
printf("Balance: %.2f\n", check_balance(&vip));
return 0;
}
```
输出:
```
Balance: 150.00
```
希望这个代码能够帮到你!
相关问题
帮我用c语言写一个网吧管理系统,用于登记上机人数,余额,上机时间等,要求使用六到七个功能函数
好的,下面是一个简单的网吧管理系统的 C 语言代码,包含六个功能函数:添加用户、删除用户、查询用户信息、充值、计算上机时间和退出。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX_USER_NUM 100 // 最大用户数量
#define MAX_USER_NAME 20 // 用户名最大长度
// 用户结构体
typedef struct {
char name[MAX_USER_NAME]; // 用户名
float balance; // 余额
time_t login_time; // 登录时间
} user;
// 全局变量
user user_list[MAX_USER_NUM]; // 用户列表
int user_num = 0; // 用户数量
// 添加用户
void add_user() {
if (user_num >= MAX_USER_NUM) {
printf("用户已满,无法添加!\n");
return;
}
printf("请输入用户名:");
scanf("%s", user_list[user_num].name);
printf("请输入余额:");
scanf("%f", &user_list[user_num].balance);
user_list[user_num].login_time = 0;
user_num++;
printf("添加用户成功!\n");
}
// 删除用户
void delete_user() {
char name[MAX_USER_NAME];
printf("请输入要删除的用户名:");
scanf("%s", name);
int i;
for (i = 0; i < user_num; i++) {
if (strcmp(user_list[i].name, name) == 0) {
// 将最后一个用户复制到当前位置,然后删除最后一个用户
user_list[i] = user_list[user_num - 1];
user_num--;
printf("删除用户成功!\n");
return;
}
}
printf("找不到该用户!\n");
}
// 查询用户信息
void query_user() {
char name[MAX_USER_NAME];
printf("请输入要查询的用户名:");
scanf("%s", name);
int i;
for (i = 0; i < user_num; i++) {
if (strcmp(user_list[i].name, name) == 0) {
printf("用户名:%s\n", user_list[i].name);
printf("余额:%f\n", user_list[i].balance);
printf("登录时间:%s\n", ctime(&user_list[i].login_time));
return;
}
}
printf("找不到该用户!\n");
}
// 充值
void recharge() {
char name[MAX_USER_NAME];
printf("请输入要充值的用户名:");
scanf("%s", name);
int i;
for (i = 0; i < user_num; i++) {
if (strcmp(user_list[i].name, name) == 0) {
float amount;
printf("请输入充值金额:");
scanf("%f", &amount);
user_list[i].balance += amount;
printf("充值成功!\n");
return;
}
}
printf("找不到该用户!\n");
}
// 计算上机时间
void calculate_time() {
char name[MAX_USER_NAME];
printf("请输入要计算时间的用户名:");
scanf("%s", name);
int i;
for (i = 0; i < user_num; i++) {
if (strcmp(user_list[i].name, name) == 0) {
time_t now_time;
time(&now_time);
double diff_time = difftime(now_time, user_list[i].login_time);
printf("上机时间为:%f 分钟\n", diff_time / 60);
return;
}
}
printf("找不到该用户!\n");
}
int main() {
int choice;
while (1) {
printf("1. 添加用户\n");
printf("2. 删除用户\n");
printf("3. 查询用户信息\n");
printf("4. 充值\n");
printf("5. 计算上机时间\n");
printf("6. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_user();
break;
case 2:
delete_user();
break;
case 3:
query_user();
break;
case 4:
recharge();
break;
case 5:
calculate_time();
break;
case 6:
printf("再见!\n");
return 0;
default:
printf("无效操作!\n");
break;
}
}
}
```
以上代码仅供参考,可能存在不足之处,仅供学习交流使用。
用c语言写一个饭卡系统
好的,下面是一个简单的饭卡管理系统的示例代码,供您参考:
```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;
}
```
在上面的示例代码中,我们定义了一个用户结构体,包含姓名和余额两个字段。然后定义了一个用户数组,用于保存所有的用户信息。接着实现了添加用户、充值、消费、显示余额等几个功能函数。最后在主函数中调用这些函数进行测试。