开发者

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

开发者 https://www.devze.com 2022-12-31 10:38 出处:网络 作者: 派大星觉得我很聪明
目录项目需求代码实现对于订单设计的类系统中各个功能的实现完整代码结语项目需求
目录
  • 项目需求
  • 代码实现
    • 对于订单设计的类
    • 系统中各个功能的实现
    • 完整代码
  • 结语

    项目需求

    功能说明

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

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

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

    功能具体说明

    菜单的设计:共设置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;
    
    
    
                         O编程客栈rder 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 << "订单为空" <<http://www.devze.com 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 &lhttp://www.devze.comt; 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 < androidindex; 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++)
    
                  {
    
                开发者_JAVA入门         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 << "已输入三次,您无权进行操作!" <&http://www.devze.comlt; 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++订单管理系统的资料请关注我们其它相关文章!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号