某自来水公司收费管理系统
时间: 2023-07-22 10:23:10 浏览: 215
好的,下面是一个简单的某自来水公司收费管理系统的实现思路和代码示例。
1. 定义用户结构体
首先,我们需要定义一个用户结构体,包含用户的基本信息,例如姓名、用户编号、账户余额、用水量等:
```
typedef struct {
char name[20]; // 姓名
int id; // 用户编号
float balance; // 账户余额
float usage; // 用水量
} User;
```
2. 实现用户信息输入和输出功能
接下来,我们需要实现用户信息的输入和输出功能。对于输入,可以使用 `scanf` 函数,对于输出,可以使用 `printf` 函数,例如:
```
void inputUser(User* u) {
printf("请输入用户姓名、编号、账户余额和用水量(以空格分隔):");
scanf("%s %d %f %f", u->name, &u->id, &u->balance, &u->usage);
}
void outputUser(User u) {
printf("姓名:%s,编号:%d,账户余额:%.2f,用水量:%.2f\n", u.name, u.id, u.balance, u.usage);
}
```
3. 实现计费功能
某自来水公司的收费标准可能会随着用户的用水量而不同,例如前 10 吨水的单价为 2 元/吨,超过 10 吨的部分为 3 元/吨。因此,我们需要实现一个计费函数,根据用户的用水量来计算费用:
```
float calculateFee(float usage) {
float fee = 0;
if (usage <= 10) {
fee = usage * 2;
} else {
fee = 10 * 2 + (usage - 10) * 3;
}
return fee;
}
```
4. 实现主程序
最后,我们需要实现一个主程序,让用户可以输入多个用户的信息,并计算每个用户的费用:
```
#define MAX_USERS 100 // 最大用户数量
int main() {
User users[MAX_USERS]; // 用户数组
int n; // 用户数量
// 输入用户数量
printf("请输入用户数量:");
scanf("%d", &n);
// 输入用户信息
for (int i = 0; i < n; i++) {
inputUser(&users[i]);
}
// 计算费用并输出
for (int i = 0; i < n; i++) {
float fee = calculateFee(users[i].usage);
users[i].balance -= fee;
outputUser(users[i]);
printf("费用:%.2f元\n", fee);
printf("账户余额:%.2f元\n", users[i].balance);
}
return 0;
}
```
在主程序中,我们首先输入用户数量,然后使用循环输入每个用户的信息,接着使用循环计算每个用户的费用,并输出用户信息、费用和账户余额。
完整代码如下:
```
#include <stdio.h>
typedef struct {
char name[20];
int id;
float balance;
float usage;
} User;
void inputUser(User* u) {
printf("请输入用户姓名、编号、账户余额和用水量(以空格分隔):");
scanf("%s %d %f %f", u->name, &u->id, &u->balance, &u->usage);
}
void outputUser(User u) {
printf("姓名:%s,编号:%d,账户余额:%.2f,用水量:%.2f\n", u.name, u.id, u.balance, u.usage);
}
float calculateFee(float usage) {
float fee = 0;
if (usage <= 10) {
fee = usage * 2;
} else {
fee = 10 * 2 + (usage - 10) * 3;
}
return fee;
}
#define MAX_USERS 100
int main() {
User users[MAX_USERS];
int n;
printf("请输入用户数量:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
inputUser(&users[i]);
}
for (int i = 0; i < n; i++) {
float fee = calculateFee(users[i].usage);
users[i].balance -= fee;
outputUser(users[i]);
printf("费用:%.2f元\n", fee);
printf("账户余额:%.2f元\n", users[i].balance);
}
return 0;
}
```
阅读全文