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

 更新时间:2022年12月30日 11:06:45   作者:派大星觉得我很聪明  
这篇文章主要为大家详细介绍了如何利用C++实现团购订单管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

项目需求

功能说明

要求编写一个团购订单信息管理系统。

系统包含对订单的添加、查询、修改、删除和浏览等功能。

系统设有口令,只有正确输入口令才能使用该信息管理系统

功能具体说明

菜单的设计:共设置6个选项,包括订单的添加、查询、修改、删除、浏览和退出。退出系统前菜单是重复循环的。

订单信息的设计:本案例采用简化形式,只定义了订单编号、商品编号、商品单价、商品数量、收件人姓名等。

添加订单:添加时订单的详细信息从键盘输入相应内容。

浏览订单:显示当前订单的所有信息,要求有格式控制。

查询订单:可输入订单编号或收件人姓名查询相应订单。

修改订单:对特定订单信息进行修改并保存。

删除订单:可根据订单编号对该订单进行删除操作。

口令设置:被设为一个字符串常量。程序开始运行时,要求通过键盘输入口令。3次输入不正确,直接结束程序。

代码实现

对于订单设计的类

class Order

{

public:

       //构造函数

       Order(string oid = "", string sid = "", double sp = 0, int sc = 0, string n 
= "")

       {

              order_num = oid;

              goods_num = sid;

              goods_price = sp;

              goods_count = sc;

              name = n;

       }



       //打印基本信息

       void print()

       {

              cout << "订单编号:" << setw(N) << order_num << " 商品编号:" << 
setw(N) << goods_num << " 商品价格:"

                     << setw(N) << goods_price << " 商品数量:" << setw(N) << 
goods_count << " 收件人姓名:" << setw(N) << name << endl;

       }



       //获得订单编号

       string getOid()

       {

              return order_num;

       }



       //获得姓名

       string getName()

       {

              return name;

       }



private:

       string order_num;    //订单编号

       string goods_num;          //商品编号

       double goods_price;  //商品价格

       int goods_count;           //商品数量

       string name;         //收件人姓名

};

系统中各个功能的实现

对于系统中的添加,浏览,查询,修改,删除五项功能分别定义了函数来实现。

其中的orders是用来保存订单信息的数组,index是记录当前数组位置

void add(Order orders[], int& index)

{

       if (index == MAX)

       {

              cout << "订单已满" << endl;

              return;

       }



       string oid;

       string sid;

       double sp;

       int sc;

       string n;

       cout << "请输入订单编号:";

       cin >> oid;

       cout << "请输入商品编号:";

       cin >> sid;

       cout << "请输入商品价格:";

       cin >> sp;

       cout << "请输入商品数量:";

       cin >> sc;

       cout << "请输入收件人姓名:";

       cin >> n;

       Order o(oid, sid, sp, sc, n);

       orders[index++] = o;

       cout << "添加成功" << endl;

}



void visit(Order orders[], int& index)

{

       cout << "目前共有" << index << "个订单" << endl;

       for (int i = 0; i < index; i++)

       {

              orders[i].print();

       }

}



void find(Order orders[], int& index)

{

       if (index == 0)

       {

              cout << "订单为空" << endl;

       }



       int chiose;

       cout << "请选择查询方式  1、订单编号  2、收件人姓名" << endl;

       cin >> chiose;

       if (chiose == 1)

       {

              string oid;

              cout << "请输入要查询的订单编号" << endl;

              cin >> oid;

              for (int i = 0; i < index; i++)

              {

                     if (orders[i].getOid() == oid)

                     {

                           orders[i].print();

                     }

              }

       }

       else if (chiose == 2)

       {

              string name;

              cout << "请输入要查询的收件人姓名" << endl;

              cin >> name;

              for (int i = 0; i < index; i++)

              {

                     if (orders[i].getName() == name)

                     {

                           orders[i].print();

                     }

              }

       }

       else

       {

              cout << "错误的选择" << endl;

       }

}



void fixed(Order orders[], int& index)

{

       if (index == 0)

       {

              cout << "订单为空" << endl;

       }



       string oid;

       cout << "请输入要修改的订单编号" << endl;

       cin >> oid;



       bool have = false;

       for (int i = 0; i < index; i++)

       {

              if (orders[i].getOid() == oid)

              {

                     have = true;



                     string oid;

                     string sid;

                     double sp;

                     int sc;

                     string n;

                     cout << "请输入订单编号:";

                     cin >> oid;

                     cout << "请输入商品编号:";

                     cin >> sid;

                     cout << "请输入商品价格:";

                     cin >> sp;

                     cout << "请输入商品数量:";

                     cin >> sc;

                     cout << "请输入收件人姓名:";

                     cin >> n;



                     Order o(oid, sid, sp, sc, n);

                     orders[i] = o;

              }

       }



       if (have == false)

       {

              cout << "没有该订单号的订单" << endl;

              return;

       }

       cout << "修改成功" << endl;

}



void deleteOrder(Order orders[], int& index)

{

       if (index == 0)

       {

              cout << "订单为空" << endl;

       }



       string oid;

       cout << "请输入要删除的订单编号" << endl;

       cin >> oid;



       bool have = false;

       int i;

       for (i = 0; i < index; i++)

       {

              if (orders[i].getOid() == oid)

              {

                     have = true;

                     break;

              }

       }



       if (have == false)

       {

              cout << "没有该订单号的订单" << endl;

              return;

       }

       else

       {

              for (int j = i; j < index - 1; j++)

              {

                     orders[j] = orders[j + 1];

              }

              index--;

       }



       cout << "删除成功" << endl;

}

完整代码

#include <iostream>

#include <iomanip>

#include <string>

using namespace std;

#define N 5

#define MAX 3 //最大订单数量



class Order

{

public:

       //构造函数

       Order(string oid = "", string sid = "", double sp = 0, int sc = 0, string n 
= "")

       {

              order_num = oid;

              goods_num = sid;

              goods_price = sp;

              goods_count = sc;

              name = n;

       }



       //打印基本信息

       void print()

       {

              cout << "订单编号:" << setw(N) << order_num << " 商品编号:" << 
setw(N) << goods_num << " 商品价格:"

                     << setw(N) << goods_price << " 商品数量:" << setw(N) << 
goods_count << " 收件人姓名:" << setw(N) << name << endl;

       }



       //获得订单编号

       string getOid()

       {

              return order_num;

       }



       //获得姓名

       string getName()

       {

              return name;

       }



private:

       string order_num;    //订单编号

       string goods_num;          //商品编号

       double goods_price;  //商品价格

       int goods_count;           //商品数量

       string name;         //收件人姓名

};



Order orders[MAX];

int index = 0;



void add(Order orders[], int& index)

{

       if (index == MAX)

       {

              cout << "订单已满" << endl;

              return;

       }



       string oid;

       string sid;

       double sp;

       int sc;

       string n;

       cout << "请输入订单编号:";

       cin >> oid;

       cout << "请输入商品编号:";

       cin >> sid;

       cout << "请输入商品价格:";

       cin >> sp;

       cout << "请输入商品数量:";

       cin >> sc;

       cout << "请输入收件人姓名:";

       cin >> n;

       Order o(oid, sid, sp, sc, n);

       orders[index++] = o;

       cout << "添加成功" << endl;

}



void visit(Order orders[], int& index)

{

       cout << "目前共有" << index << "个订单" << endl;

       for (int i = 0; i < index; i++)

       {

              orders[i].print();

       }

}



void find(Order orders[], int& index)

{

       if (index == 0)

       {

              cout << "订单为空" << endl;

       }



       int chiose;

       cout << "请选择查询方式  1、订单编号  2、收件人姓名" << endl;

       cin >> chiose;

       if (chiose == 1)

       {

              string oid;

              cout << "请输入要查询的订单编号" << endl;

              cin >> oid;

              for (int i = 0; i < index; i++)

              {

                     if (orders[i].getOid() == oid)

                     {

                           orders[i].print();

                     }

              }

       }

       else if (chiose == 2)

       {

              string name;

              cout << "请输入要查询的收件人姓名" << endl;

              cin >> name;

              for (int i = 0; i < index; i++)

              {

                     if (orders[i].getName() == name)

                     {

                           orders[i].print();

                     }

              }

       }

       else

       {

              cout << "错误的选择" << endl;

       }

}



void fixed(Order orders[], int& index)

{

       if (index == 0)

       {

              cout << "订单为空" << endl;

       }



       string oid;

       cout << "请输入要修改的订单编号" << endl;

       cin >> oid;



       bool have = false;

       for (int i = 0; i < index; i++)

       {

              if (orders[i].getOid() == oid)

              {

                     have = true;



                     string oid;

                     string sid;

                     double sp;

                     int sc;

                     string n;

                     cout << "请输入订单编号:";

                     cin >> oid;

                     cout << "请输入商品编号:";

                     cin >> sid;

                     cout << "请输入商品价格:";

                     cin >> sp;

                     cout << "请输入商品数量:";

                     cin >> sc;

                     cout << "请输入收件人姓名:";

                     cin >> n;



                     Order o(oid, sid, sp, sc, n);

                     orders[i] = o;

              }

       }



       if (have == false)

       {

              cout << "没有该订单号的订单" << endl;

              return;

       }

       cout << "修改成功" << endl;

}



void deleteOrder(Order orders[], int& index)

{

       if (index == 0)

       {

              cout << "订单为空" << endl;

       }



       string oid;

       cout << "请输入要删除的订单编号" << endl;

       cin >> oid;



       bool have = false;

       int i;

       for (i = 0; i < index; i++)

       {

              if (orders[i].getOid() == oid)

              {

                     have = true;

                     break;

              }

       }



       if (have == false)

       {

              cout << "没有该订单号的订单" << endl;

              return;

       }

       else

       {

              for (int j = i; j < index - 1; j++)

              {

                     orders[j] = orders[j + 1];

              }

              index--;

       }



       cout << "删除成功" << endl;

}



int main(void)

{

       int n = 0;           //记录口令输入次数

       string password;                  //输入的密码

       cout << "请输入登录口令(默认abcd)" << endl;

       while (1)

       {

              cin >> password;

              if (password == "abcd")

              {

                     cout << "输入口令正确!" << endl;

                     break;

              }

              else

              {

                     cout << "输入口令正确,请重新输入!" << endl;

                     n++;

                     if (n == 3)

                     {

                           cout << "已输入三次,您无权进行操作!" << endl;

                           return 0;

                     }

              }

       }

       cout << endl;



       while (1)

       {

              system("cls");

              cout << "*******************************************" << endl;

              cout << "*     根据所做操作选择一下数字序号        *" << endl;

              cout << "*     1.添加订单        2.浏览订单        *" << endl;

              cout << "*     3.查询订单        4.修改订单        *" << endl;

              cout << "*     5.删除订单        6.退出系统        *" << endl;

              cout << "*******************************************" << endl;

              int n;

              cin >> n;

              switch (n)

              {

              case 1:

                     add(orders, index);

                     system("pause");

                     break;

              case 2:

                     visit(orders, index);

                     system("pause");

                     break;

              case 3:

                     find(orders, index);

                     system("pause");

                     break;

              case 4:

                     fixed(orders, index);

                     system("pause");

                     break;

              case 5:

                     deleteOrder(orders, index);

                     system("pause");

                     break;

              case 6:

                     return 0;

                     break;

              default:

                     break;

              }

       }



       return 0;

}

结语

该系统比较简单,对数据的存储使用了数组,也可以使用顺序表,链表等数据结构,代码中也有很多值得优化的地方。

以上就是C++实现团购订单管理系统的详细内容,更多关于C++订单管理系统的资料请关注脚本之家其它相关文章!

相关文章

  • C语言关系运算符实例详解

    C语言关系运算符实例详解

    本文主要介绍C语言的关系运算符的知识,这里提供实例代码以便参考,希望能帮助有需要的小伙伴
    2016-07-07
  • C语言实现简易的扫雷小游戏

    C语言实现简易的扫雷小游戏

    这篇文章主要为大家详细介绍了C语言实现简易的扫雷小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C++实例讲解四种类型转换的使用

    C++实例讲解四种类型转换的使用

    在C++语言中新增了四个关键字static_cast、const_cast、reinterpret_cast和dynamic_cast。这四个关键字都是用于类型转换的,类型转换(type cast),是高级语言的一个基本语法。它被实现为一个特殊的运算符,以小括号内加上类型名来表示,接下来让我们一起来详细了解
    2022-06-06
  • C语言函数指针的使用详解

    C语言函数指针的使用详解

    在C语言中,函数指针是指向函数的指针变量,本文主要介绍了C语言函数指针的使用详解,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • C++解决合并两个排序的链表问题

    C++解决合并两个排序的链表问题

    本文主要介绍了通过C++解决合并两个排序的链表并使新链表中的节点仍然是递增排序的。文中代码讲解详细,有需要的朋友可以参考一下
    2021-12-12
  • 使用pybind11封装C++结构体作为参数的函数实现步骤

    使用pybind11封装C++结构体作为参数的函数实现步骤

    这篇文章主要介绍了用pybind11封装C++结构体作为参数的函数实现步骤,本文分步骤通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • C++ 排序插入排序实例详解

    C++ 排序插入排序实例详解

    这篇文章主要介绍了C++ 排序插入排序实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • 深入理解c++常成员函数和常对象

    深入理解c++常成员函数和常对象

    下面小编就为大家带来一篇深入理解c++常成员函数和常对象。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-05-05
  • C语言从代码中加载动态链接库过程解析

    C语言从代码中加载动态链接库过程解析

    这篇文章主要介绍了C语言从代码中加载动态链接库过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 深入了解C语言指针

    深入了解C语言指针

    这篇文章主要介绍了C语言指针详解及用法示例,介绍了其相关概念,然后分享了几种用法,具有一定参考价值。需要的朋友可以了解下
    2021-07-07

最新评论