C++实现团购订单管理系统

C++实现团购订单管理系统

概述

本团购订单管理系统有如下功能:

  1. 添加新订单
  2. 修改已有订单
  3. 删除已有订单
  4. 查看所有订单
  5. 根据订单号查看特定订单

实现步骤

步骤一:定义订单类

class Order {
public:
    string orderNo; // 订单号
    string productName; // 商品名称
    int quantity; // 数量
    double price; // 单价
    double totalPrice; // 总价
    string buyer; // 购买人
    string contact; // 联系方式
public:
    // 构造函数
    Order(string orderNo, string productName, int quantity, double price, double totalPrice, string buyer, string contact);
    // 显示订单详细信息
    void showOrderDetails();
};

步骤二:实现订单类的构造函数和显示订单详细信息函数

Order::Order(string orderNo, string productName, int quantity, double price, double totalPrice, string buyer, string contact) {
    this->orderNo = orderNo;
    this->productName = productName;
    this->quantity = quantity;
    this->price = price;
    this->totalPrice = totalPrice;
    this->buyer = buyer;
    this->contact = contact;
}

void Order::showOrderDetails() {
    cout << "订单号:" << orderNo << endl;
    cout << "商品名称:" << productName << endl;
    cout << "数量:" << quantity << endl;
    cout << "单价:" << price << endl;
    cout << "总价:" << totalPrice << endl;
    cout << "购买人:" << buyer << endl;
    cout << "联系方式:" << contact << endl;
}

步骤三:实现订单管理类

class OrderManager {
private:
    vector<Order> orders; // 存储所有订单
    int getOrderIndex(string orderNo); // 根据订单号获取订单在vector中的下标
public:
    // 添加新订单
    void addNewOrder(Order order);
    // 修改已有订单
    void modifyOrder(string orderNo);
    // 删除已有订单
    void deleteOrder(string orderNo);
    // 查看所有订单
    void showAllOrders();
    // 根据订单号查看特定订单
    void showOrderDetails(string orderNo);
};

步骤四:实现订单管理类的成员函数

// 添加新订单
void OrderManager::addNewOrder(Order order) {
    orders.push_back(order);
    cout << "添加成功!" << endl;
}

// 修改已有订单
void OrderManager::modifyOrder(string orderNo) {
    int index = getOrderIndex(orderNo);
    if(index == -1) {
        cout << "不存在此订单!" << endl;
        return;
    }
    orders[index].showOrderDetails();
    cout << "请输入修改后的信息:" << endl;
    string productName, buyer, contact;
    int quantity;
    double price;
    cout << "商品名称:";
    cin >> productName;
    cout << "数量:";
    cin >> quantity;
    cout << "单价:";
    cin >> price;
    cout << "购买人:";
    cin >> buyer;
    cout << "联系方式:";
    cin >> contact;
    double totalPrice = quantity * price;
    orders[index] = Order(orderNo, productName, quantity, price, totalPrice, buyer, contact);
    cout << "修改成功!" << endl;
}

// 删除已有订单
void OrderManager::deleteOrder(string orderNo) {
    int index = getOrderIndex(orderNo);
    if(index == -1) {
        cout << "不存在此订单!" << endl;
        return;
    }
    orders.erase(orders.begin() + index);
    cout << "删除成功!" << endl;
}

// 查看所有订单
void OrderManager::showAllOrders() {
    cout << "订单列表:" << endl;
    for(int i=0; i<orders.size(); i++) {
        cout << "------------------------------" << endl;
        orders[i].showOrderDetails();
        cout << "------------------------------" << endl;
    }
}

// 根据订单号查看特定订单
void OrderManager::showOrderDetails(string orderNo) {
    int index = getOrderIndex(orderNo);
    if(index == -1) {
        cout << "不存在此订单!" << endl;
        return;
    }
    orders[index].showOrderDetails();
}

// 根据订单号获取订单在vector中的下标
int OrderManager::getOrderIndex(string orderNo) {
    for(int i=0; i<orders.size(); i++) {
        if(orders[i].orderNo == orderNo) {
            return i;
        }
    }
    return -1;
}

步骤五:实现主函数

int main() {
    OrderManager orderManager;
    while(true) {
        cout << "请选择功能(输入1-5的数字):" << endl;
        cout << "1. 添加新订单" << endl;
        cout << "2. 修改已有订单" << endl;
        cout << "3. 删除已有订单" << endl;
        cout << "4. 查看所有订单" << endl;
        cout << "5. 根据订单号查看特定订单" << endl;
        int choice;
        cin >> choice;
        if(choice == 1) {
            string orderNo, productName, buyer, contact;
            int quantity;
            double price;
            cout << "请输入订单号:";
            cin >> orderNo;
            cout << "请输入商品名称:";
            cin >> productName;
            cout << "请输入数量:";
            cin >> quantity;
            cout << "请输入单价:";
            cin >> price;
            cout << "请输入购买人:";
            cin >> buyer;
            cout << "请输入联系方式:";
            cin >> contact;
            double totalPrice = quantity * price;
            Order order(orderNo, productName, quantity, price, totalPrice, buyer, contact);
            orderManager.addNewOrder(order);
        }
        else if(choice == 2) {
            string orderNo;
            cout << "请输入订单号:";
            cin >> orderNo;
            orderManager.modifyOrder(orderNo);
        }
        else if(choice == 3) {
            string orderNo;
            cout << "请输入订单号:";
            cin >> orderNo;
            orderManager.deleteOrder(orderNo);
        }
        else if(choice == 4) {
            orderManager.showAllOrders();
        }
        else if(choice == 5) {
            string orderNo;
            cout << "请输入订单号:";
            cin >> orderNo;
            orderManager.showOrderDetails(orderNo);
        }
        else {
            cout << "输入有误,请重新选择!" << endl;
        }
    }
    return 0;
}

示例说明

示例一:添加新订单

  1. 用户输入1,选择添加新订单功能。
  2. 程序提示用户输入订单信息,如订单号、商品名称、数量、单价、购买人和联系方式。
  3. 程序根据用户输入的信息创建一个新的订单,并存储到订单管理类中。
  4. 程序显示“添加成功!”。

示例二:修改已有订单

  1. 用户输入2,选择修改已有订单功能。
  2. 程序提示用户输入要修改的订单号。
  3. 程序查找对应的订单,如存在则显示其详细信息,然后提示用户输入修改后的信息。
  4. 程序根据用户输入的信息更新订单。
  5. 程序显示“修改成功!”或“不存在此订单!”等提示信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现团购订单管理系统 - Python技术站

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

相关文章

  • C语言实现简单计算器功能(1)

    C语言实现简单计算器功能(1) 本攻略将介绍如何使用C语言实现一个简单的计算器功能。我们将涵盖以下内容: 项目概述 函数说明 示例代码 1. 项目概述 这个计算器可以计算两个数的加、减、乘、除的结果,并输出结果给用户。为了实现这个功能,我们需要使用以下函数: addition():实现两个数的加法 subtraction():实现两个数的减法 multipl…

    C 2023年5月23日
    00
  • C++实现算法两个数字相加详解

    C++实现算法两个数字相加详解 在C++中,实现两个数字相加的算法可以使用基本的加法运算符和关键字。以下是实现该算法的示例方法。 实现步骤 声明两个数字变量 a 和 b。 将这些变量的值设置为所需的数字。 使用加法运算符将这些数字相加,将结果存储在另一个变量中,命名为 result。 将结果打印到控制台。 下面是示例代码 int a = 20; int b …

    C 2023年5月23日
    00
  • C语言简单实现银行ATM存取款功能

    C语言简单实现银行ATM存取款功能 简介 本攻略将介绍如何在C语言中实现简单的银行ATM存取款功能。ATM机器是银行中最为常见的一种自助服务设备,一般具有取款、存款、查询余额等功能。为了简化实现过程,我们只保留了取款和存款两个功能。本攻略的实现基于C语言,面向初学者,代码简单易懂,欢迎参考。 实现步骤 1. 声明变量 首先我们需要在程序开头声明两个变量,用于…

    C 2023年5月23日
    00
  • C++计数排序详解

    C++计数排序详解 什么是计数排序? 计数排序是一种非比较型排序算法,它的基本思想是统计所有元素的出现次数,然后根据每个元素的出现次数,依次将这些元素放入数组中,从而得到排好序的数组。 计数排序的基本原理 计数排序利用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素个数。然后根据数组C来将A中的元素排到正确的位置。例如,如果C[3]=4,那么值…

    C 2023年5月22日
    00
  • awk命令、awk编程语言详细介绍和实例

    AWK命令、AWK编程语言详细介绍和实例 什么是AWK? AWK 是一种处理文本文件的工具,它的名字是由其创始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的首字母组成的。 AWK 可以将数据分成记录和字段,是一种灵活、功能强大的文本分析工具。它最初是为 LINUX 操作系统设计的,现在已经移植到许多其他操作…

    C 2023年5月22日
    00
  • C语言实现学生信息管理程序

    让我来详细讲解“C语言实现学生信息管理程序”的攻略。 概述 学生信息管理程序是一个非常基础的程序,它主要实现如下功能: 添加学生信息 查询学生信息 修改学生信息 删除学生信息 开发学生信息管理程序可以加强我们对C语言基础知识的掌握,例如指针、结构体等等。 开发步骤 1. 创建学生信息结构体 首先,我们需要创建一个结构体来存储学生信息。结构体可以包含学生的姓名…

    C 2023年5月22日
    00
  • java8新特性之stream的collect实战教程

    Java8新特性之Stream的Collect实战教程 前言 在 Java 8 的新特性中,有一个非常强大的用于流式操作的 API,那便是 Stream。在 Stream 中提供了非常好用且灵活的方法,对于集合中数据的操作具备了强大的支持。而其中 collect() 方法在实际的应用中尤为常见,在这篇文章中,我们将介绍 Stream 中的 collect()…

    C 2023年5月23日
    00
  • 当前标识没有对”Temporary ASP.NET Files”的写访问权限的解决办法

    如果您在使用ASP.NET应用程序时遇到了如下错误: Could not load file or assembly ‘WebApplication1’ or one of its dependencies. The system cannot find the file specified. Description: An unhandled except…

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