水电管理信息系统c++
时间: 2023-11-24 10:51:03 浏览: 62
以下是一个简单的水电管理信息系统的C++代码示例,实现了用户信息的录入、水电数据的录入、计算并查询用户应缴费用、查询未缴纳费用的名单等功能。代码中使用了结构体和动态数组来存储用户和水电数据,使用了switch语句来实现菜单功能。
```c++
#include <iostream>
#include <string>
using namespace std;
// 用户结构体
struct User {
string name; // 姓名
string type; // 类型(学生或教工)
double free; // 免费额度
double price; // 自费价格
double total; // 总费用
};
// 水电数据结构体
struct Data {
string name; // 姓名
double water; // 用水量
double electricity; // 用电量
double fee; // 费用
bool paid; // 是否已缴费
};
int main() {
const int MAX_USERS = 100; // 最大用户数
const int MAX_DATA = 1000; // 最大水电数据数
User users[MAX_USERS]; // 用户数组
Data data[MAX_DATA]; // 水电数据数组
int userCount = 0; // 用户数
int dataCount = 0; // 水电数据数
// 菜单
while (true) {
cout << "请选择功能:" << endl;
cout << "1. 录入用户信息" << endl;
cout << "2. 录入水电数据" << endl;
cout << "3. 计算并查询用户应缴费用" << endl;
cout << "4. 查询未缴纳费用的名单" << endl;
cout << "0. 退出" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1: // 录入用户信息
if (userCount >= MAX_USERS) {
cout << "用户数已达到最大值,无法继续添加。" << endl;
break;
}
cout << "请输入姓名:";
cin >> users[userCount].name;
cout << "请输入类型(学生或教工):";
cin >> users[userCount].type;
cout << "请输入免费额度:";
cin >> users[userCount].free;
cout << "请输入自费价格:";
cin >> users[userCount].price;
userCount++;
cout << "用户信息录入成功。" << endl;
break;
case 2: // 录入水电数据
if (dataCount >= MAX_DATA) {
cout << "水电数据数已达到最大值,无法继续添加。" << endl;
break;
}
cout << "请输入姓名:";
cin >> data[dataCount].name;
cout << "请输入用水量:";
cin >> data[dataCount].water;
cout << "请输入用电量:";
cin >> data[dataCount].electricity;
data[dataCount].fee = 0;
data[dataCount].paid = false;
dataCount++;
cout << "水电数据录入成功。" << endl;
break;
case 3: // 计算并查询用户应缴费用
cout << "请输入姓名:";
string name;
cin >> name;
for (int i = 0; i < userCount; i++) {
if (users[i].name == name) {
double water = 0;
double electricity = 0;
double fee = 0;
for (int j = 0; j < dataCount; j++) {
if (data[j].name == name) {
water += data[j].water;
electricity += data[j].electricity;
if (!data[j].paid) {
data[j].fee = (water > users[i].free ? (water - users[i].free) * users[i].price : 0) + electricity * (users[i].type == "学生" ? 0.5 : 1);
fee += data[j].fee;
}
}
}
users[i].total = fee;
cout << "应缴费用为:" << fee << "元。" << endl;
break;
}
if (i == userCount - 1) {
cout << "未找到该用户。" << endl;
}
}
break;
case 4: // 查询未缴纳费用的名单
cout << "未缴纳费用的名单:" << endl;
for (int i = 0; i < dataCount; i++) {
if (!data[i].paid) {
cout << data[i].name << " 未缴纳 " << data[i].fee << " 元。" << endl;
}
}
break;
case 0: // 退出
return 0;
default:
cout << "无效的选择,请重新输入。" << endl;
break;
}
}
return 0;
}
```
阅读全文