C++ MFC物业维修管理系统

 

 功能架构图:

 

系统分析及设计:

系统设计的对象有两个类:维修记录类和维修记录链表管理类。

维修记录类用于保存维修记录的各种信息,并用一个next指针指向下一个维修记录。维修记录链表管理类用于对维修记录进行管理,用一个head_node指针指向维修记录的链表,对链表进行各种操作,以实现3.1中所描述的增删改查等系统功能,两个类的结构如图2所示:

 

 

 类的编写与实现:

// Record_Maintenance类:
class Record_Maintenance
{
private:
	string id; //记录id
	string address; //住户
	string Appointment_date; //预约日期
	string date; //实际维修日期
	string type; //维修内容
	string price; // 收费金额
	string cost; //成本
	string name; //维修人
	string remark; //备注
public:
	// 构造函数
	Record_Maintenance() {};
	Record_Maintenance(string id, string address, string app_date, string date, string type, string price, string cost,
		string name, string remark) :id(id), address(address), Appointment_date(app_date), date(date), type(type),
		price(price), cost(cost), name(name), remark(remark) {};
	Record_Maintenance* next=nullptr; // 指向链表的下一个节点 
	string Get_id() { return this->id; }	// 返回id
	string Get_address() { return this->address; } // 获取住户信息
	string Get_Appointment_date() { return this->Appointment_date; } // 获取预约日期
	string Get_date() { return this->date; } // 获取实际维修日期
	string Get_type() { return this->type; } // 获取装修内容
	string Get_price() { return this->price; } // 获取收费金额
	string Get_cost() { return this->cost; } // 获取成本
	string Get_name() { return this->name; } // 获取维修人
	string Get_remark() { return this->remark; } // 获取备注 
};


// Manage_Record类
class Manage_Record
{
private:
	int size; // 记录链表大小
	Record_Maintenance* ptr; //链表指针
public:
	Manage_Record(){
		head_node = new Record_Maintenance;
		ptr = new Record_Maintenance;
		head_node->next = ptr;
		ptr->next = nullptr;
		size = 2;
	}; //构造函数
	Record_Maintenance* head_node; //头指针
	Record_Maintenance* Get_all() { return this->head_node; }// 返回链表所有记录
	int Get_size() { return this->size; }// 返回链表所有记录
	void Add_record(Record_Maintenance& a); //添加一个维修记录
	bool Remove_record(string id); // 删除一个维修记录
	bool Modify_record(Record_Maintenance& a);	// 修改一个记录
	Record_Maintenance* Query_appointment_records();// 查询预约到期记录
	bool Statistics(string index, int& num, int& price, int& cost);//根据楼号统计维修记录数量及总维修收费金额、总维修材料成本金额。num是维修记录数量,price是总收费金额,cost是总成本
	Record_Maintenance* soft_date(); // 按实际维修日期排序并返回排序后的指针
	bool Cmp_Id(string id); // 查看该ID是否已经存在
	vector<string> split(const string& s, const string& seperator); // 用于分割字符串的函数
	~Manage_Record() //析构函数
	{
		while (1) {
			ptr = head_node;
			if (ptr == nullptr) break;
			head_node = head_node->next;
			delete ptr;
		}
	}
};
// 运用时,用head_node指针指向链表头部,在插入时采用头插法,使head_node一直指向链表的头部。

排序算法流程图:

删除记录流程图:

 

查询预约到期记录流程图:

 

 统计流程图:

 

需要完整的代码实现可以私信联系我,原创不易,请勿白嫖。

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
小区物业管理系统是一个比较复杂的系统,需要包括住户信息管理、物业费用管理、维修工单管理、设备设施管理等多个模块。下面是一个简单的小区物业管理系统的程序示例: ```c++ #include <iostream> #include <string> #include <vector> using namespace std; // 住户信息 class Resident { public: Resident(string name, string phone) : name(name), phone(phone) {} ~Resident() {} string getName() { return name; } void setName(string name) { this->name = name; } string getPhone() { return phone; } void setPhone(string phone) { this->phone = phone; } private: string name; string phone; }; // 物业费用 class PropertyFee { public: PropertyFee(double amount) : amount(amount) {} ~PropertyFee() {} double getAmount() { return amount; } void setAmount(double amount) { this->amount = amount; } private: double amount; }; // 维修工单 class RepairOrder { public: RepairOrder(string name, string phone, string description) : resident(name, phone), description(description) {} ~RepairOrder() {} Resident getResident() { return resident; } string getDescription() { return description; } private: Resident resident; string description; }; // 设备设施 class Facility { public: Facility(string name) : name(name), status(false) {} ~Facility() {} string getName() { return name; } bool getStatus() { return status; } void setStatus(bool status) { this->status = status; } private: string name; bool status; }; // 小区物业管理系统 class PropertyManagementSystem { public: PropertyManagementSystem() {} // 添加住户信息 void addResident(string name, string phone) { Resident resident(name, phone); residents.push_back(resident); } // 添加物业费用 void addPropertyFee(double amount) { PropertyFee propertyFee(amount); propertyFees.push_back(propertyFee); } // 添加维修工单 void addRepairOrder(string name, string phone, string description) { RepairOrder repairOrder(name, phone, description); repairOrders.push_back(repairOrder); } // 添加设备设施 void addFacility(string name) { Facility facility(name); facilities.push_back(facility); } // 显示住户信息 void showResidents() { for (int i = 0; i < residents.size(); i++) { cout << "姓名:" << residents[i].getName() << ",电话:" << residents[i].getPhone() << endl; } } // 显示物业费用 void showPropertyFees() { for (int i = 0; i < propertyFees.size(); i++) { cout << "金额:" << propertyFees[i].getAmount() << endl; } } // 显示维修工单 void showRepairOrders() { for (int i = 0; i < repairOrders.size(); i++) { cout << "住户姓名:" << repairOrders[i].getResident().getName() << ",电话:" << repairOrders[i].getResident().getPhone() << ",描述:" << repairOrders[i].getDescription() << endl; } } // 显示设备设施 void showFacilities() { for (int i = 0; i < facilities.size(); i++) { cout << "名称:" << facilities[i].getName() << ",状态:" << (facilities[i].getStatus() ? "正常" : "损坏") << endl; } } private: vector<Resident> residents; // 住户信息 vector<PropertyFee> propertyFees; // 物业费用 vector<RepairOrder> repairOrders; // 维修工单 vector<Facility> facilities; // 设备设施 }; int main() { PropertyManagementSystem pms; // 添加住户信息 pms.addResident("张三", "123456789"); pms.addResident("李四", "234567891"); // 添加物业费用 pms.addPropertyFee(500); pms.addPropertyFee(800); // 添加维修工单 pms.addRepairOrder("张三", "123456789", "水管漏水"); pms.addRepairOrder("李四", "234567891", "电路故障"); // 添加设备设施 pms.addFacility("自行车棚"); pms.addFacility("儿童乐园"); // 显示住户信息 cout << "住户信息:" << endl; pms.showResidents(); // 显示物业费用 cout << "物业费用:" << endl; pms.showPropertyFees(); // 显示维修工单 cout << "维修工单:" << endl; pms.showRepairOrders(); // 显示设备设施 cout << "设备设施:" << endl; pms.showFacilities(); return 0; } ``` 这个示例程序只是一个简单的小区物业管理系统,仅供参考。实际上,一个完整的小区物业管理系统需要更加复杂的设计和实现,需要根据实际需求进行设计和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Besproma_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值