亲宝软件园·资讯

展开

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

派大星觉得我很聪明 人气:0

项目需求

功能说明

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

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

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

功能具体说明

菜单的设计:共设置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;

}

结语

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

加载全部内容

相关教程
猜你喜欢
用户评论