用c语言写出自来水厂收费管理系统
时间: 2023-07-31 16:05:21 浏览: 114
好的,我可以给您提供一个简单的自来水厂收费管理系统的C语言实现,仅供参考。
首先,我们需要定义一个用户结构体,用来存储用户的基本信息和用水情况:
```c
struct User {
int id; // 用户编号
char name[20]; // 用户姓名
float waterUsed; // 本月用水量
float fee; // 本月水费
};
```
然后,我们需要定义一个用户数组,用来存储所有用户的信息:
```c
#define MAX_USERS 100
struct User users[MAX_USERS];
int userCount = 0; // 用户数量
```
接下来,我们可以实现以下几个功能:
1. 用户信息录入:
```c
void addUser() {
if (userCount >= MAX_USERS) {
printf("用户数量已达上限,无法添加新用户!\n");
return;
}
struct User newUser;
printf("请输入用户编号:");
scanf("%d", &newUser.id);
printf("请输入用户姓名:");
scanf("%s", newUser.name);
printf("请输入本月用水量:");
scanf("%f", &newUser.waterUsed);
newUser.fee = newUser.waterUsed * 5.0; // 水费计算公式
users[userCount++] = newUser;
printf("用户添加成功!\n");
}
```
2. 用户信息修改:
```c
void modifyUser() {
int userId;
printf("请输入要修改的用户编号:");
scanf("%d", &userId);
for (int i = 0; i < userCount; i++) {
if (users[i].id == userId) {
printf("请输入用户姓名(原值:%s):", users[i].name);
scanf("%s", users[i].name);
printf("请输入本月用水量(原值:%f):", users[i].waterUsed);
scanf("%f", &users[i].waterUsed);
users[i].fee = users[i].waterUsed * 5.0; // 水费计算公式
printf("用户信息修改成功!\n");
return;
}
}
printf("未找到该用户!\n");
}
```
3. 用户信息查询:
```c
void queryUser() {
int userId;
printf("请输入要查询的用户编号:");
scanf("%d", &userId);
for (int i = 0; i < userCount; i++) {
if (users[i].id == userId) {
printf("用户编号:%d,用户姓名:%s,本月用水量:%f,本月水费:%f\n",
users[i].id, users[i].name, users[i].waterUsed, users[i].fee);
return;
}
}
printf("未找到该用户!\n");
}
```
4. 用户信息删除:
```c
void deleteUser() {
int userId;
printf("请输入要删除的用户编号:");
scanf("%d", &userId);
for (int i = 0; i < userCount; i++) {
if (users[i].id == userId) {
for (int j = i; j < userCount - 1; j++) {
users[j] = users[j + 1];
}
userCount--;
printf("用户删除成功!\n");
return;
}
}
printf("未找到该用户!\n");
}
```
最后,我们可以实现一个主函数来调用以上功能:
```c
int main() {
int choice;
while (1) {
printf("自来水厂收费管理系统\n");
printf("1. 添加用户\n");
printf("2. 修改用户信息\n");
printf("3. 查询用户信息\n");
printf("4. 删除用户\n");
printf("5. 退出系统\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
addUser();
break;
case 2:
modifyUser();
break;
case 3:
queryUser();
break;
case 4:
deleteUser();
break;
case 5:
return 0;
default:
printf("无效操作!\n");
}
}
}
```
当然,这只是一个简单的示例,实际的自来水厂收费管理系统可能需要更复杂的功能和更严密的数据校验。
阅读全文