2401_85715255 2024-06-14 11:16 采纳率: 50%
浏览 6
已结题

c++写商品销售统计

img


用c++完成程序设计,需要分开保存为3个文件:类文件、成员函数实现文件和主文件。

  • 写回答

9条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-06-14 11:17
    关注

    🕖上午好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:疏影横斜,暗香浮动,低酌浅唱月明中。休去,休去,惊起一枕奇梦。

    C++商品销售统计程序

    以下是使用C++实现的商品销售统计程序,分为三个文件:

    1. 商品类头文件 (Product.h):

    #ifndef PRODUCT_H
    #define PRODUCT_H
    
    #include <string>
    
    using namespace std;
    
    class Product {
    public:
      // 构造函数
      Product(const string& name, const string& unit, double price);
    
      // 获取商品名称
      string getName() const;
    
      // 获取计量单位
      string getUnit() const;
    
      // 获取单价
      double getPrice() const;
    
      // 设置商品名称
      void setName(const string& name);
    
      // 设置计量单位
      void setUnit(const string& unit);
    
      // 设置单价
      void setPrice(double price);
    
    private:
      string name_;   // 商品名称
      string unit_;   // 计量单位
      double price_;  // 单价
    };
    
    #endif // PRODUCT_H
    

    2. 商品类实现文件 (Product.cpp):

    #include "Product.h"
    
    // 构造函数
    Product::Product(const string& name, const string& unit, double price)
        : name_(name), unit_(unit), price_(price) {}
    
    // 获取商品名称
    string Product::getName() const {
      return name_;
    }
    
    // 获取计量单位
    string Product::getUnit() const {
      return unit_;
    }
    
    // 获取单价
    double Product::getPrice() const {
      return price_;
    }
    
    // 设置商品名称
    void Product::setName(const string& name) {
      name_ = name;
    }
    
    // 设置计量单位
    void Product::setUnit(const string& unit) {
      unit_ = unit;
    }
    
    // 设置单价
    void Product::setPrice(double price) {
      price_ = price;
    }
    

    3. 主程序文件 (main.cpp):

    #include <iostream>
    #include <vector>
    #include "Product.h"
    
    using namespace std;
    
    // 函数声明
    void inputProductInfo(vector<Product>& products);
    void salesStatistics(const vector<Product>& products);
    void displayProducts(const vector<Product>& products);
    
    int main() {
      vector<Product> products;
    
      int choice;
      do {
        cout << "\n===== 商品销售统计系统 =====" << endl;
        cout << "1. 输入商品信息" << endl;
        cout << "2. 进行销售统计" << endl;
        cout << "0. 退出" << endl;
        cout << "请选择功能: ";
        cin >> choice;
    
        switch (choice) {
          case 1:
            inputProductInfo(products);
            break;
          case 2:
            salesStatistics(products);
            break;
          case 0:
            cout << "程序退出,谢谢使用!" << endl;
            break;
          default:
            cout << "输入错误,请重新选择!" << endl;
        }
      } while (choice != 0);
    
      return 0;
    }
    
    // 输入商品信息
    void inputProductInfo(vector<Product>& products) {
      // ... (实现商品信息输入、修改和删除)
    }
    
    // 销售统计
    void salesStatistics(const vector<Product>& products) {
      if (products.empty()) {
        cout << "暂无商品信息,请先输入!" << endl;
        return;
      }
    
      displayProducts(products);
    
      double totalAmount = 0.0;
      int productCode, quantity;
      
      do {
        cout << "\n请输入商品代码 (输入-1结束本次购物): ";
        cin >> productCode;
    
        if (productCode == -1) {
          break;
        }
    
        if (productCode < 0 || productCode >= products.size()) {
          cout << "商品代码错误,请重新输入!" << endl;
          continue;
        }
    
        cout << "请输入购买数量: ";
        cin >> quantity;
    
        double productPrice = products[productCode].getPrice();
        totalAmount += productPrice * quantity;
    
      } while (productCode != -1);
    
      cout << "\n本次购物应付总额为: " << totalAmount << endl;
    }
    
    // 显示所有商品信息
    void displayProducts(const vector<Product>& products) {
      cout << "\n===== 商品列表 =====" << endl;
      for (size_t i = 0; i < products.size(); ++i) {
        cout << i << ". " << products[i].getName() << " (" 
             << products[i].getUnit() << ") - " 
             << products[i].getPrice() << "元/" 
             << products[i].getUnit() << endl;
      }
    }
    

    代码说明:

    1. Product.h: 定义了Product类,包含商品名称、计量单位、单价等属性,以及相应的构造函数和获取、设置属性的函数。
    2. Product.cpp: 实现了Product类的各个成员函数。
    3. main.cpp:
      • 包含主函数main(),程序入口。
      • 定义了inputProductInfo()函数用于输入、修改和删除商品信息 (具体实现省略)。
      • 定义了salesStatistics()函数用于进行销售统计,计算应付总额。
      • 定义了displayProducts()函数用于显示所有商品信息。
      • 主函数中通过菜单选择功能,调用相应函数完成操作。

    编译运行:

    1. 将上述三个文件保存为同名的.h.cpp文件。
    2. 使用C++编译器编译程序:g++ main.cpp Product.cpp -o sales_statistics
    3. 运行程序:./sales_statistics

    注意:

    • 此代码仅提供一个基本框架,部分功能(如inputProductInfo()函数)需要根据实际需求进行完善。
    • 可以根据需要添加更多功能,例如商品库存管理、销售记录保存等。
    • 在实际开发中,应使用更 robust 的数据结构和算法来提高程序的效率和可维护性。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

问题事件

  • 系统已结题 6月22日
  • 已采纳回答 6月14日
  • 创建了问题 6月14日

悬赏问题

  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图