C++仓库管理系统
创始人
2024-12-27 07:05:29
0

功能                代码在效果图后面

1.添加物品  2.删除物品 3.更新物品数量 4.查询物品 5.列出所有物品  6.保存并退出

注意事项:退出要输入“6”退出才能保存数据,不要直接按X关掉窗口(不会保存数据)。

效果图

源代码

编译时在连接器命令行加入以下数据

-std=c++11

#include  #include  #include  #include  #include   struct Item {     int id;     std::string name;     int quantity;     std::string type; };  class WarehouseManagement { public:     WarehouseManagement(const std::string& filename) : filename(filename) {         loadFromFile();     }      bool authenticate(const std::string& username, const std::string& password) {         return username == "root" && password == "123";     }      void addItem(const Item& item) {         items.push_back(item);         saveToFile();     }      void removeItem(int id) {         auto it = std::remove_if(items.begin(), items.end(), [id](const Item& item) {             return item.id == id;         });         items.erase(it, items.end());         saveToFile();     }      void updateItemQuantity(int id, int quantity) {         for (auto& item : items) {             if (item.id == id) {                 item.quantity = quantity;                 saveToFile();                 return;             }         }     }      Item* queryItem(int id) {         for (auto& item : items) {             if (item.id == id) {                 return &item;             }         }         return nullptr;     }      void printItems() {         for (const auto& item : items) {             std::cout << "ID: " << item.id << ", 名称: " << item.name                       << ", 数量: " << item.quantity << ", 类型: " << item.type << '\n';         }     }  private:     std::vector items;     std::string filename;      void loadFromFile() {         std::ifstream file(filename);         if (!file.is_open()) return;          Item item;         while (file >> item.id >> item.name >> item.quantity >> item.type) {             items.push_back(item);         }         file.close();     }      void saveToFile() {         std::ofstream file(filename);         if (!file.is_open()) return;          for (const auto& item : items) {             file << item.id << ' ' << item.name << ' ' << item.quantity << ' ' << item.type << '\n';         }         file.close();     } };  int main() {     WarehouseManagement wm("warehouse.txt");      std::string username, password;     std::cout << "请输入用户名: ";     std::cin >> username;     std::cout << "请输入密码: ";     std::cin >> password;      if (!wm.authenticate(username, password)) {         std::cout << "无效的用户名或密码。\n";         return 1;     }      int choice;     do {         std::cout << "1. 添加物品\n2. 删除物品\n3. 更新物品数量\n4. 查询物品\n5. 列出所有物品\n6. 退出\n";         std::cout << "请输入您的选择: ";         std::cin >> choice;          switch (choice) {             case 1: {                 Item item;                 std::cout << "请输入物品ID: ";                 std::cin >> item.id;                 std::cout << "请输入物品名称: ";                 std::cin >> item.name;                 std::cout << "请输入物品数量: ";                 std::cin >> item.quantity;                 std::cout << "请输入物品类型: ";                 std::cin >> item.type;                 wm.addItem(item);                 break;             }             case 2: {                 int id;                 std::cout << "请输入要删除的物品ID: ";                 std::cin >> id;                 wm.removeItem(id);                 break;             }             case 3: {                 int id, quantity;                 std::cout << "请输入要更新的物品ID: ";                 std::cin >> id;                 std::cout << "请输入新的数量: ";                 std::cin >> quantity;                 wm.updateItemQuantity(id, quantity);                 break;             }             case 4: {                 int id;                 std::cout << "请输入要查询的物品ID: ";                 std::cin >> id;                 Item* item = wm.queryItem(id);                 if (item) {                     std::cout << "ID: " << item->id << ", 名称: " << item->name                               << ", 数量: " << item->quantity << ", 类型: " << item->type << '\n';                 } else {                     std::cout << "物品未找到。\n";                 }                 break;             }             case 5:                 wm.printItems();                 break;             case 6:                 break;             default:                 std::cout << "无效的选择。请再试一次。\n";                 break;         }     } while (choice != 6);      return 0; } 

相关内容

热门资讯

第十分钟经验!福州十八扑外卦,... 第十分钟经验!福州十八扑外卦,小程序财神十三脚本(辅助)真是真的有辅助器(哔哩哔哩)1、第十分钟经验...
两分钟项目!江西闲娱脚本,三哥... 两分钟项目!江西闲娱脚本,三哥玩摆头注可以控制(辅助)一贯是真的插件(哔哩哔哩)1、三哥玩摆头注可以...
第6分钟教程书!全托中至窝龙拿... 第6分钟教程书!全托中至窝龙拿好牌,财神十三张有挂辅助吗(辅助)一贯有挂辅助器(哔哩哔哩)1、每一步...
一分钟法门!钱塘十水三挂件,小... 一分钟法门!钱塘十水三挂件,小程序财神十三张脚本(辅助)一贯是有修改器(哔哩哔哩)1、小程序财神十三...
八分钟手筋!微乐透视辅助工具,... 八分钟手筋!微乐透视辅助工具,新卡农辅助透视(辅助)都是真的是有工具(哔哩哔哩)微乐透视辅助工具脚本...
七分钟积累!科乐天天踢有没有挂... 七分钟积累!科乐天天踢有没有挂作必弊,金虎爷辅助(辅助)切实是有安装(哔哩哔哩)1、完成科乐天天踢有...
第十分钟攻略!赣牌圈破解器,九... 第十分钟攻略!赣牌圈破解器,九游辅助插件(辅助)其实是真的软件(哔哩哔哩)1)赣牌圈破解器有没有挂:...
3分钟积累!中至余干510k挂... 3分钟积累!中至余干510k挂机,新九天辅助(辅助)都是真的是有平台(哔哩哔哩)1)中至余干510k...
十分钟积累!创思维激k有透视吗... 十分钟积累!创思维激k有透视吗,新九天互游辅助(辅助)一贯有挂神器(哔哩哔哩)1、这是跨平台的创思维...
八分钟法门!牵手辅助神器下载,... 八分钟法门!牵手辅助神器下载,新导游科技透视免费版(辅助)本来是有脚本(哔哩哔哩)1、下载好新导游科...