用c语言完成一个完整物业费管理系统,需要完整代码。可实现如下功能: 1. 新住户信息的添加。(户主姓名、性别、身份证号、联系电话、房号、平米数、平米物业价格、应缴纳物业费) 2. 修改住户信息、删除住户信息的功能。 3. 应缴物业费自动生成,并对物业费进行排序。 4. 可根据住户信息查询应缴物业费。
时间: 2023-07-10 09:17:22 浏览: 261
好的,以下是一个用C语言编写的物业费管理系统的完整代码:
```c
#include <stdio.h>
#include <string.h>
// 定义住户信息结构体
struct Tenant {
char name[50]; // 户主姓名
char sex[10]; // 性别
char id[20]; // 身份证号
char phone[20]; // 联系电话
char room[20]; // 房号
float area; // 平米数
float price; // 平米物业价格
float fee; // 应缴纳物业费
};
// 定义全局变量
struct Tenant tenants[1000]; // 最多存储1000个住户的信息
int count = 0; // 当前住户数量
// 函数声明
void addTenant();
void modifyTenant();
void deleteTenant();
void generateFee();
void sortFee();
void queryFee();
void displayMenu();
int main() {
int choice;
do {
displayMenu();
printf("请输入操作编号:");
scanf("%d", &choice);
switch(choice) {
case 1:
addTenant();
break;
case 2:
modifyTenant();
break;
case 3:
deleteTenant();
break;
case 4:
generateFee();
break;
case 5:
sortFee();
break;
case 6:
queryFee();
break;
case 7:
printf("谢谢使用,再见!\n");
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (choice != 7);
return 0;
}
// 添加住户信息
void addTenant() {
// 判断数组是否已满
if (count >= 1000) {
printf("住户信息数量已达上限,无法添加新住户信息!\n");
return;
}
struct Tenant tenant;
printf("请输入户主姓名:");
scanf("%s", tenant.name);
printf("请输入性别:");
scanf("%s", tenant.sex);
printf("请输入身份证号:");
scanf("%s", tenant.id);
printf("请输入联系电话:");
scanf("%s", tenant.phone);
printf("请输入房号:");
scanf("%s", tenant.room);
printf("请输入平米数:");
scanf("%f", &tenant.area);
printf("请输入平米物业价格:");
scanf("%f", &tenant.price);
tenant.fee = tenant.area * tenant.price; // 自动生成应缴物业费
tenants[count++] = tenant; // 存储住户信息到数组中
printf("住户信息添加成功!\n");
}
// 修改住户信息
void modifyTenant() {
char id[20];
printf("请输入需要修改的住户身份证号:");
scanf("%s", id);
int i;
for (i = 0; i < count; i++) {
if (strcmp(tenants[i].id, id) == 0) {
// 找到相应的住户信息
struct Tenant tenant;
printf("请输入户主姓名:");
scanf("%s", tenant.name);
printf("请输入性别:");
scanf("%s", tenant.sex);
printf("请输入身份证号:");
scanf("%s", tenant.id);
printf("请输入联系电话:");
scanf("%s", tenant.phone);
printf("请输入房号:");
scanf("%s", tenant.room);
printf("请输入平米数:");
scanf("%f", &tenant.area);
printf("请输入平米物业价格:");
scanf("%f", &tenant.price);
tenant.fee = tenant.area * tenant.price; // 自动生成应缴物业费
tenants[i] = tenant; // 更新住户信息
printf("住户信息修改成功!\n");
return;
}
}
printf("未找到相应的住户信息!\n");
}
// 删除住户信息
void deleteTenant() {
char id[20];
printf("请输入需要删除的住户身份证号:");
scanf("%s", id);
int i;
for (i = 0; i < count; i++) {
if (strcmp(tenants[i].id, id) == 0) {
// 找到相应的住户信息
int j;
for (j = i; j < count - 1; j++) {
tenants[j] = tenants[j+1]; // 将后面的住户信息向前移动一个位置
}
count--; // 更新住户数量
printf("住户信息删除成功!\n");
return;
}
}
printf("未找到相应的住户信息!\n");
}
// 自动生成应缴物业费
void generateFee() {
int i;
for (i = 0; i < count; i++) {
tenants[i].fee = tenants[i].area * tenants[i].price; // 自动生成应缴物业费
}
printf("应缴物业费自动生成成功!\n");
}
// 对物业费进行排序
void sortFee() {
int i, j;
struct Tenant temp;
for (i = 0; i < count - 1; i++) {
for (j = 0; j < count - 1 - i; j++) {
if (tenants[j].fee > tenants[j+1].fee) {
temp = tenants[j];
tenants[j] = tenants[j+1];
tenants[j+1] = temp;
}
}
}
printf("物业费排序成功!\n");
}
// 查询应缴物业费
void queryFee() {
char id[20];
printf("请输入需要查询的住户身份证号:");
scanf("%s", id);
int i;
for (i = 0; i < count; i++) {
if (strcmp(tenants[i].id, id) == 0) {
// 找到相应的住户信息
printf("应缴纳物业费为:%.2f元\n", tenants[i].fee);
return;
}
}
printf("未找到相应的住户信息!\n");
}
// 显示菜单
void displayMenu() {
printf("**********欢迎使用物业费管理系统**********\n");
printf("* *\n");
printf("* 1. 添加住户信息 *\n");
printf("* 2. 修改住户信息 *\n");
printf("* 3. 删除住户信息 *\n");
printf("* 4. 自动生成应缴物业费 *\n");
printf("* 5. 对物业费进行排序 *\n");
printf("* 6. 查询应缴物业费 *\n");
printf("* 7. 退出系统 *\n");
printf("* *\n");
printf("*******************************************\n");
}
```
希望这份代码能够满足你的要求,如有任何疑问可以随时询问我。
阅读全文