2025年4月18日 星期五 乙巳(蛇)年 正月十九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

设备管理系统

时间:09-15来源:作者:点击数:31

设备管理系统

在这里插入图片描述
  • #include <iostream>
  • #include <fstream>
  • #include <vector>
  • #include <string>
  • using namespace std;
  • class Device {
  • public:
  • string deviceNumber;
  • string deviceName;
  • string user;
  • string department;
  • int quantity;
  • string purchaseDate;
  • double price;
  • Device() {} // 默认构造函数
  • // 构造函数
  • Device(string number, string name, string u, string dept, int qty, string date, double p)
  • : deviceNumber(number), deviceName(name), user(u), department(dept), quantity(qty), purchaseDate(date), price(p) {}
  • // 显示设备信息
  • void display() {
  • cout << "设备号: " << deviceNumber << endl;
  • cout << "设备名称: " << deviceName << endl;
  • cout << "领用人: " << user << endl;
  • cout << "所属部门: " << department << endl;
  • cout << "数量: " << quantity << endl;
  • cout << "购买时间: " << purchaseDate << endl;
  • cout << "价格: " << price << endl;
  • }
  • // 获取设备价格
  • double getPrice() {
  • return price;
  • }
  • // 获取设备所属部门
  • string getDepartment() {
  • return department;
  • }
  • };
  • class DeviceManagementSystem
  • {
  • vector<Device> devices;
  • public:
  • // 添加设备信息
  • void addDevice(Device device) {
  • devices.push_back(device);
  • }
  • // 显示所有设备信息
  • void displayDevices() {
  • for (Device device : devices) {
  • device.display();
  • cout << endl;
  • }
  • }
  • // 修改设备信息
  • void modifyDevice(string number, string newName, string newUser, string newDept, int newQty, string newDate, double newPrice) {
  • for (Device& device : devices) {
  • if (device.deviceNumber == number) {
  • device.deviceName = newName;
  • device.user = newUser;
  • device.department = newDept;
  • device.quantity = newQty;
  • device.purchaseDate = newDate;
  • device.price = newPrice;
  • break;
  • }
  • }
  • }
  • // 删除设备信息
  • void deleteDevice(string number) {
  • for (auto iter = devices.begin(); iter != devices.end(); ++iter) {
  • if (iter->deviceNumber == number) {
  • devices.erase(iter);
  • break;
  • }
  • }
  • }
  • // 计算设备总金额
  • double calculateTotalValue() {
  • double totalValue = 0.0;
  • for (Device device : devices) {
  • totalValue += device.getPrice() * device.quantity;
  • }
  • return totalValue;
  • }
  • // 按设备种类进行分类统计
  • void groupByDeviceName() {
  • // TODO: 实现按设备种类进行分类统计
  • }
  • // 按所属部门进行分类统计
  • void groupByDepartment() {
  • // TODO: 实现按所属部门进行分类统计
  • }
  • // 将设备信息保存到文件
  • void saveToFile(string filename) {
  • ofstream outfile(filename);
  • if (outfile.is_open()) {
  • for (Device device : devices) {
  • outfile << device.deviceNumber << "," << device.deviceName << "," << device.user << ","
  • << device.department << "," << device.quantity << "," << device.purchaseDate << ","
  • << device.price << endl;
  • }
  • outfile.close();
  • }
  • else {
  • cout << "无法打开文件" << filename << "进行保存" << endl;
  • }
  • }
  • // 从文件中加载设备信息
  • void loadFromFile(string filename) {
  • ifstream file(filename);
  • if (file.is_open()) {
  • devices.clear();
  • string line;
  • while (getline(file, line)) {
  • Device device;
  • size_t pos = 0;
  • string token;
  • // 按逗号分隔读取设备信息
  • while ((pos = line.find(',')) != string::npos) {
  • token = line.substr(0, pos);
  • line.erase(0, pos + 1);
  • // 根据数据顺序填充设备对象
  • if (device.deviceNumber.empty()) {
  • device.deviceNumber = token;
  • }
  • else if (device.deviceName.empty()) {
  • device.deviceName = token;
  • }
  • else if (device.user.empty()) {
  • device.user = token;
  • }
  • else if (device.department.empty()) {
  • device.department = token;
  • }
  • else if (device.quantity == 0) {
  • device.quantity = stoi(token);
  • }
  • else if (device.purchaseDate.empty()) {
  • device.purchaseDate = token;
  • }
  • else if (device.price == 0.0) {
  • device.price = stod(token);
  • }
  • }
  • devices.push_back(device);
  • }
  • file.close();
  • cout << "设备信息已从文件加载。" << endl;
  • }
  • else {
  • cout << "无法打开文件。" << endl;
  • }
  • }
  • };
  • int main() {
  • DeviceManagementSystem dms;
  • dms.loadFromFile("devices.txt"); // 从文件中加载设备信息
  • int choice;
  • do {
  • cout << "人机对话界面:" << endl;
  • cout << "请选择操作:" << endl;
  • cout << "1. 添加设备信息" << endl;
  • cout << "2. 显示设备信息" << endl;
  • cout << "3. 修改设备信息" << endl;
  • cout << "4. 删除设备信息" << endl;
  • cout << "5. 计算设备总金额" << endl;
  • cout << "6. 按照设备种类进行分类" << endl;
  • cout << "7. 按照设备所属部门进行分类" << endl;
  • cout << "0. 退出系统" << endl;
  • cout << "请输入选项:";
  • cin >> choice;
  • switch (choice) {
  • case 1: {
  • string number, name, user, dept, date;
  • int quantity;
  • double price;
  • cout << "请输入设备号:";
  • cin >> number;
  • cout << "请输入设备名称:";
  • cin >> name;
  • cout << "请输入领用人:";
  • cin >> user;
  • cout << "请输入所属部门:";
  • cin >> dept;
  • cout << "请输入数量:";
  • cin >> quantity;
  • cout << "请输入购买时间:";
  • cin >> date;
  • cout << "请输入价格:";
  • cin >> price;
  • dms.addDevice(Device(number, name, user, dept, quantity, date, price));
  • cout << "设备信息已添加" << endl;
  • break;
  • }
  • case 2:
  • dms.displayDevices();
  • break;
  • case 3: {
  • string number, newName, newUser, newDept, newDate;
  • int newQty;
  • double newPrice;
  • cout << "请输入要修改的设备号:";
  • cin >> number;
  • cout << "请输入新的设备名称:";
  • cin >> newName;
  • cout << "请输入新的领用人:";
  • cin >> newUser;
  • cout << "请输入新的所属部门:";
  • cin >> newDept;
  • cout << "请输入新的数量:";
  • cin >> newQty;
  • cout << "请输入新的购买时间:";
  • cin >> newDate;
  • cout << "请输入新的价格:";
  • cin >> newPrice;
  • dms.modifyDevice(number, newName, newUser, newDept, newQty, newDate, newPrice);
  • cout << "设备信息已修改" << endl;
  • break;
  • }
  • case 4: {
  • string number;
  • cout << "请输入要删除的设备号:";
  • cin >> number;
  • dms.deleteDevice(number);
  • cout << "设备信息已删除" << endl;
  • break;
  • }
  • case 5:
  • cout << "设备总金额为:" << dms.calculateTotalValue() << endl;
  • break;
  • case 6:
  • dms.groupByDeviceName();
  • break;
  • case 7:
  • dms.groupByDepartment();
  • break;
  • case 0:
  • dms.saveToFile("devices.txt"); // 将设备信息保存到文件
  • cout << "谢谢使用,再见!" << endl;
  • break;
  • default:
  • cout << "无效选项,请重新输入" << endl;
  • break;
  • }
  • cout << endl;
  • } while (choice != 0);
  • return 0;
  • }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐