C++实现商品管理程序

C++实现商品管理程序攻略

程序功能概述

本程序是一个简单的商品管理系统,支持添加、删除、修改、查询商品信息等操作。每个商品的信息包括商品编号、商品名称、商品价格、商品数量、生产日期、保质期限等。

程序实现步骤

1. 创建商品类

首先需要创建一个商品类,其中包括商品编号、商品名称、商品价格、商品数量、生产日期、保质期限等属性。以下是该类的代码示例:

class Commodity {
public:
    string id;  // 商品编号
    string name;  // 商品名称
    float price;  // 商品价格
    int quantity;  // 商品数量
    string production_date;  // 生产日期
    string expiration_date;  // 保质期限

    // 构造函数
    Commodity(string _id, string _name, float _price, int _quantity, string _production_date, string _expiration_date) :
            id(_id),
            name(_name),
            price(_price),
            quantity(_quantity),
            production_date(_production_date),
            expiration_date(_expiration_date) {}

    // 输出商品信息的函数
    void print() {
        cout << id << "\t" << name << "\t" << price << "\t" << quantity << "\t" << production_date << "\t" << expiration_date << endl;
    }
};

2. 创建商品管理类

接下来需要创建商品管理类,其中包括添加商品、删除商品、修改商品以及查询商品信息等操作。以下是该类的代码示例:

class CommodityManager {
public:
    vector<Commodity> commodities;  // 存储所有商品

    // 添加商品
    void add_commodity() {
        string id, name, production_date, expiration_date;
        float price;
        int quantity;

        cout << "请输入商品编号:";
        cin >> id;
        cout << "请输入商品名称:";
        cin >> name;
        cout << "请输入商品价格:";
        cin >> price;
        cout << "请输入商品数量:";
        cin >> quantity;
        cout << "请输入生产日期:";
        cin >> production_date;
        cout << "请输入保质期限:";
        cin >> expiration_date;

        commodities.emplace_back(id, name, price, quantity, production_date, expiration_date);
    }

    // 删除商品
    void delete_commodity() {
        string id;

        cout << "请输入要删除的商品编号:";
        cin >> id;

        for (auto it = commodities.begin(); it != commodities.end(); it++) {
            if (it->id == id) {
                commodities.erase(it);
                cout << "删除成功!" << endl;
                return;
            }
        }

        cout << "未找该商品编号对应的商品!" << endl;
    }

    // 修改商品
    void modify_commodity() {
        string id;
        int modify_index;

        cout << "请输入要修改的商品编号:";
        cin >> id;

        for (auto it = commodities.begin(); it != commodities.end(); it++) {
            if (it->id == id) {
                it->print();
                cout << "请选择要修改的字段(输入数字1-6):";
                cin >> modify_index;

                switch (modify_index) {
                    case 1:
                        cout << "请输入新商品编号:";
                        cin >> it->id;
                        break;
                    case 2:
                        cout << "请输入新商品名称:";
                        cin >> it->name;
                        break;
                    case 3:
                        cout << "请输入新商品价格:";
                        cin >> it->price;
                        break;
                    case 4:
                        cout << "请输入新商品数量:";
                        cin >> it->quantity;
                        break;
                    case 5:
                        cout << "请输入新生产日期:";
                        cin >> it->production_date;
                        break;
                    case 6:
                        cout << "请输入新保质期限:";
                        cin >> it->expiration_date;
                        break;
                    default:
                        cout << "选择无效!";
                }

                cout << "修改成功!" << endl;
                return;
            }
        }

        cout << "未找该商品编号对应的商品!" << endl;
    }

    // 查询商品信息
    void query_commodity() {
        string id;

        cout << "请输入要查询的商品编号:";
        cin >> id;

        for (auto it = commodities.begin(); it != commodities.end(); it++) {
            if (it->id == id) {
                it->print();
                return;
            }
        }

        cout << "未找该商品编号对应的商品!" << endl;
    }

    // 显示所有商品信息
    void show_all_commodities() {
        cout << "商品编号\t商品名称\t商品价格\t商品数量\t生产日期\t保质期限" << endl;

        for (auto it = commodities.begin(); it != commodities.end(); it++) {
            it->print();
        }
    }
};

3. 实现主程序

最后需要编写主程序,用于测试商品管理类的各项功能。以下是主程序的代码示例:

int main() {
    CommodityManager manager;
    int choice;
    bool running = true;

    while (running) {
        cout << "请选择要进行的操作(输入数字1-5):" << endl;
        cout << "1. 添加商品" << endl;
        cout << "2. 删除商品" << endl;
        cout << "3. 修改商品" << endl;
        cout << "4. 查询商品信息" << endl;
        cout << "5. 显示所有商品信息" << endl;

        cin >> choice;

        switch (choice) {
            case 1:
                manager.add_commodity();
                break;
            case 2:
                manager.delete_commodity();
                break;
            case 3:
                manager.modify_commodity();
                break;
            case 4:
                manager.query_commodity();
                break;
            case 5:
                manager.show_all_commodities();
                break;
            default:
                cout << "选择无效!" << endl;
        }
    }

    return 0;
}

示例说明

示例1:添加商品信息

输入以下内容,可添加一条商品信息:

1
苹果
5.5
20
2022-08-01
7天

输出结果如下:

请选择要进行的操作(输入数字1-5):
1. 添加商品
2. 删除商品
3. 修改商品
4. 查询商品信息
5. 显示所有商品信息
1
请输入商品编号:1
请输入商品名称:苹果
请输入商品价格:5.5
请输入商品数量:20
请输入生产日期:2022-08-01
请输入保质期限:7天

示例2:查询商品信息

输入以下内容,可查询刚刚添加的商品信息:

4
1

输出结果如下:

请选择要进行的操作(输入数字1-5):
1. 添加商品
2. 删除商品
3. 修改商品
4. 查询商品信息
5. 显示所有商品信息
4
请输入要查询的商品编号:1
1       苹果    5.5     20      2022-08-01      7天

以上两个示例说明了如何添加、删除、修改和查询商品信息。同时,输入数字5可以显示所有新增的商品信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现商品管理程序 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 详解C语言中的fopen()函数和fdopen()函数

    下面就详细讲解一下“详解C语言中的fopen()函数和fdopen()函数”。 fopen()函数 fopen()函数的基本介绍 fopen()是C语言中用于打开文件的库函数,通过它可以打开一个文件并返回一个文件指针。其函数原型为: FILE *fopen(const char *filename, const char *mode); 其中,filenam…

    C 2023年5月23日
    00
  • VC++ loadlibrary()加载三方dll失败, 返回错误码:126的解决方法

    让我来详细讲解一下“VC++ loadlibrary()加载三方dll失败, 返回错误码:126的解决方法”的完整攻略。 首先,错误码126是指模块无法找到,也就是说loadlibrary()函数无法找到需要加载的 DLL 文件。这种情况可能是因为 DLL 文件所需的其他 DLL 文件在系统路径之外,或者是缺少 DLL 文件所需的某些组件。解决这个问题的一种…

    C 2023年5月22日
    00
  • js数组与字符串常用方法总结

    JS数组与字符串常用方法总结 本篇攻略主要介绍 JavaScript 中数组和字符串的常用方法。 数组 1. 创建数组 数组可以通过以下方式进行创建: var arr1 = []; // 空数组 var arr2 = new Array(); // 空数组 var arr3 = [1, 2, 3]; // 带有元素的数组 2. 数组的常用方法 2.1 pus…

    C 2023年5月22日
    00
  • C语言中如何判断质数

    C语言中判断一个数是否为质数的方法有很多种,下面是一种常见的方法: 1.定义一个变量i,从2开始逐个检查比该数小的自然数; 2.检查这些自然数中有没有能够整除该数的,若有则该数不是质数,反之则该数是质数; 3.循环结束后,若没有发现能够整除该数的自然数,则该数是质数。 下面是示例代码: #include <stdio.h> int isPrime…

    C 2023年5月23日
    00
  • C语言传递空指针

    C语言传递空指针的完整使用攻略 在C语言中可以传递空指针,即指针指向的地址为NULL。下面将详细讲解如何在C语言中传递空指针。 1.传递空指针 在C语言中,传递空指针只需将指针变量赋值为NULL即可: int* ptr = NULL; 2.判断空指针 在使用传递的指针变量时,需要先进行空指针判断,否则程序将会出现问题。判断空指针方法如下: if (ptr =…

    C 2023年5月9日
    00
  • 荣耀MagicBook值得买吗?荣耀MagicBook性价比全面图解评测

    荣耀MagicBook值得买吗?荣耀MagicBook性价比全面图解评测 背景介绍 本文将对荣耀MagicBook进行全面图解评测,并分析其性价比,以帮助消费者决定是否购买该产品。 外观 荣耀MagicBook的外观设计简洁大气,机身采用全金属材质,非常的耐磨且具有质感。机身厚度不到16mm,重量仅1.45kg,非常适合日常携带。独立屏幕造型更加简洁,含边框…

    C 2023年5月22日
    00
  • c/c++中变量的声明和定义深入解析

    c/c++中变量的声明和定义深入解析 在c/c++中,变量的声明和定义是非常重要的,因为它们决定了变量的作用域和生命周期。本文将深入讲解变量声明和定义的概念、语法和使用方法,并提供两个实例进行说明。 变量声明和定义 在c/c++中,变量的声明和定义是不同的概念,虽然在一些情况下它们可以混用。下面分别介绍两者的概念、语法和使用方法。 变量声明 变量声明是指向编…

    C 2023年5月23日
    00
  • 浅谈Spring @Async异步线程池用法总结

    针对“浅谈Spring @Async异步线程池用法总结”的主题,我将详细讲解如下: 1. 什么是Spring @Async异步线程池 在介绍 Spring @Async 异步线程池之前,我们需要先了解同步和异步的概念: 同步:就是一个任务执行完之后再执行下一个任务,任务按顺序一个接一个依次执行。 异步:与同步相反,异步任务的执行时间和顺序是不可预测的,任务的…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部