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;

}


结语

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

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
学生学籍管理系统的n-s图通常用于描述系统中各个模块之间的关系和数据流向。下面是一个简单的C++学生学籍管理系统的n-s图: ``` +------------------+ +-----------------------+ | 用户界面 | | 学生信息模块 | +------------------+ +-----------------------+ | | | | v v +------------------+ +-----------------------+ | 添加学生功能 | | 学籍信息查询功能 | +------------------+ +-----------------------+ | | | | v v +------------------+ +-----------------------+ | 删除学生功能 | | 学籍信息修改功能 | +------------------+ +-----------------------+ ``` 在该图中,用户界面模块负责与用户交互,根据用户的输入调用相应的功能模块。学生信息模块则负责管理学生信息,包括添加、删除、查询和修改学生信息等功能。添加学生功能和删除学生功能分别用于添加和删除学生信息,学籍信息查询功能和学籍信息修改功能则分别用于查询和修改学生信息。 该系统中,用户界面和学生信息模块之间通过函数调用进行数据交互,而各个功能模块之间则通过共享数据来进行数据交互。例如,在添加学生功能中,用户界面模块会接收用户输入的学生信息,并将其传递给学生信息模块,学生信息模块则将其保存到学生信息列表中。在查询学生信息功能中,学生信息模块会从学生信息列表中查找指定学生的信息,并将其返回给用户界面模块显示。 需要注意的是,该n-s图只是一个简单的示例,实际的学生学籍管理系统中可能涉及更多的模块和数据流程。因此,在设计系统时需要充分考虑实际需求,并进行详细的系统分析和设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值