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; }
结语
该系统比较简单,对数据的存储使用了数组,也可以使用顺序表,链表等数据结构,代码中也有很多值得优化的地方。
加载全部内容