用c++实现一个完整的团购订单信息管理系统。该系统现团购订单信息的添加、查找、修改、删除、浏览等功能。要求输入登录口令,口令正确才可以继续操作。用结构体数组实现。具体功能说明如下。 (1)添加订单。 输入要添加的订单信息,包括订单编号(唯一)、商品编号、商品名称、商品单价、商品数量、收件人地址、收件人姓名、收件人电话等信息。判断订单编号是否已经存在,若存在则重新输入。将订单信息存入结构体数组中。 (2)查找订单。 设置二级菜单,可以通过订单编号、商品编号、收件人姓名等多途径进行订单查询,查 找出符合条件的一条或多条记录,并输出显示。 (3)修改订单。 先按订单编号查找订单,然后修改其信息。除订单编号外,可以修改商品编号、商品名 称、商品单价、商品数量、收件人地址、收件人姓名、收件人电话等信息。 (4)删除订单。 可输入订单编号进行删除,这时查询到的订单唯一,可直接删除,删除前要进行确认,确认是否真要删除。也可通过商品编号、收件人姓名等进行删除,这时查找到的订单不唯一,显示出所有符合条件的订单,要求输入要删除的订单号,删除唯一订单。 (5)浏览订单。 遍历存有所有订单信息的顺序表,按顺序依次显示所有订单。若无订单,则提示系统中无订单。
时间: 2023-12-16 20:03:48 浏览: 96
好的,以下是一个简单的团购订单信息管理系统的 C++ 代码实现:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 订单结构体
struct Order {
string orderNo; // 订单编号
string productNo; // 商品编号
string productName; // 商品名称
double productPrice; // 商品单价
int productCount; // 商品数量
string addr; // 收件人地址
string name; // 收件人姓名
string phone; // 收件人电话
// 重载小于运算符,用于排序
bool operator<(const Order& rhs) const {
return orderNo < rhs.orderNo;
}
};
// 管理系统类
class OrderManager {
public:
// 登录系统
void login() {
string pwd;
cout << "请输入管理员口令:";
cin >> pwd;
if (pwd != "123456") {
cout << "口令错误,无法登录!" << endl;
return;
}
cout << "登录成功!" << endl;
showMenu();
}
// 显示菜单
void showMenu() {
cout << "=========================" << endl;
cout << "1. 添加订单" << endl;
cout << "2. 查找订单" << endl;
cout << "3. 修改订单" << endl;
cout << "4. 删除订单" << endl;
cout << "5. 浏览订单" << endl;
cout << "6. 退出系统" << endl;
cout << "=========================" << endl;
int choice;
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
addOrder();
break;
case 2:
searchOrder();
break;
case 3:
modifyOrder();
break;
case 4:
deleteOrder();
break;
case 5:
browseOrder();
break;
case 6:
cout << "谢谢使用,再见!" << endl;
return;
default:
cout << "无效的选择,请重新选择!" << endl;
showMenu();
break;
}
}
// 添加订单
void addOrder() {
Order order;
cout << "请输入订单编号:";
cin >> order.orderNo;
if (findOrderByNo(order.orderNo)) {
cout << "订单编号已存在,请重新输入!" << endl;
addOrder();
return;
}
cout << "请输入商品编号:";
cin >> order.productNo;
cout << "请输入商品名称:";
cin >> order.productName;
cout << "请输入商品单价:";
cin >> order.productPrice;
cout << "请输入商品数量:";
cin >> order.productCount;
cout << "请输入收件人地址:";
cin >> order.addr;
cout << "请输入收件人姓名:";
cin >> order.name;
cout << "请输入收件人电话:";
cin >> order.phone;
orders.push_back(order);
cout << "添加订单成功!" << endl;
showMenu();
}
// 查找订单
void searchOrder() {
int choice;
cout << "1. 按订单编号查找" << endl;
cout << "2. 按商品编号查找" << endl;
cout << "3. 按收件人姓名查找" << endl;
cout << "请选择查找方式:";
cin >> choice;
vector<Order> result;
switch (choice) {
case 1:
searchByNo(result);
break;
case 2:
searchByProductNo(result);
break;
case 3:
searchByName(result);
break;
default:
cout << "无效的选择,请重新选择!" << endl;
searchOrder();
return;
}
if (result.empty()) {
cout << "未找到符合条件的订单!" << endl;
showMenu();
return;
}
cout << "共找到 " << result.size() << " 条订单:" << endl;
for (Order& order : result) {
showOrder(order);
}
showMenu();
}
// 按订单编号查找订单
void searchByNo(vector<Order>& result) {
string orderNo;
cout << "请输入订单编号:";
cin >> orderNo;
for (Order& order : orders) {
if (order.orderNo == orderNo) {
result.push_back(order);
return;
}
}
}
// 按商品编号查找订单
void searchByProductNo(vector<Order>& result) {
string productNo;
cout << "请输入商品编号:";
cin >> productNo;
for (Order& order : orders) {
if (order.productNo == productNo) {
result.push_back(order);
}
}
}
// 按收件人姓名查找订单
void searchByName(vector<Order>& result) {
string name;
cout << "请输入收件人姓名:";
cin >> name;
for (Order& order : orders) {
if (order.name == name) {
result.push_back(order);
}
}
}
// 修改订单
void modifyOrder() {
string orderNo;
cout << "请输入要修改的订单编号:";
cin >> orderNo;
Order* pOrder = findOrderByNo(orderNo);
if (!pOrder) {
cout << "未找到该订单!" << endl;
showMenu();
return;
}
cout << "请选择要修改的信息:" << endl;
cout << "1. 商品编号" << endl;
cout << "2. 商品名称" << endl;
cout << "3. 商品单价" << endl;
cout << "4. 商品数量" << endl;
cout << "5. 收件人地址" << endl;
cout << "6. 收件人姓名" << endl;
cout << "7. 收件人电话" << endl;
int choice;
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
cout << "请输入新的商品编号:";
cin >> pOrder->productNo;
break;
case 2:
cout << "请输入新的商品名称:";
cin >> pOrder->productName;
break;
case 3:
cout << "请输入新的商品单价:";
cin >> pOrder->productPrice;
break;
case 4:
cout << "请输入新的商品数量:";
cin >> pOrder->productCount;
break;
case 5:
cout << "请输入新的收件人地址:";
cin >> pOrder->addr;
break;
case 6:
cout << "请输入新的收件人姓名:";
cin >> pOrder->name;
break;
case 7:
cout << "请输入新的收件人电话:";
cin >> pOrder->phone;
break;
default:
cout << "无效的选择,请重新选择!" << endl;
modifyOrder();
return;
}
cout << "修改订单成功!" << endl;
showMenu();
}
// 删除订单
void deleteOrder() {
int choice;
cout << "1. 按订单编号删除" << endl;
cout << "2. 按商品编号删除" << endl;
cout << "3. 按收件人姓名删除" << endl;
cout << "请选择删除方式:";
cin >> choice;
vector<Order> result;
switch (choice) {
case 1:
searchByNo(result);
break;
case 2:
searchByProductNo(result);
break;
case 3:
searchByName(result);
break;
default:
cout << "无效的选择,请重新选择!" << endl;
deleteOrder();
return;
}
if (result.empty()) {
cout << "未找到符合条件的订单!" << endl;
showMenu();
return;
}
if (result.size() == 1) {
if (confirmDelete(result[0])) {
orders.erase(find(orders.begin(), orders.end(), result[0]));
cout << "删除订单成功!" << endl;
}
} else {
string orderNo;
cout << "共找到 " << result.size() << " 条订单,请输入要删除的订单编号:";
cin >> orderNo;
for (Order& order : result) {
if (order.orderNo == orderNo) {
if (confirmDelete(order)) {
orders.erase(find(orders.begin(), orders.end(), order));
cout << "删除订单成功!" << endl;
}
break;
}
}
}
showMenu();
}
// 浏览订单
void browseOrder() {
if (orders.empty()) {
cout << "系统中无订单!" << endl;
showMenu();
return;
}
sort(orders.begin(), orders.end());
cout << "系统中共有 " << orders.size() << " 条订单:" << endl;
for (Order& order : orders) {
showOrder(order);
}
showMenu();
}
private:
vector<Order> orders; // 订单列表
// 查找订单是否存在,存在则返回指向该订单的指针,否则返回 nullptr
Order* findOrderByNo(const string& orderNo) {
for (Order& order : orders) {
if (order.orderNo == orderNo) {
return ℴ
}
}
return nullptr;
}
// 显示订单信息
void showOrder(const Order& order) {
cout << "订单编号:" << order.orderNo << endl;
cout << "商品编号:" << order.productNo << endl;
cout << "商品名称:" << order.productName << endl;
cout << "商品单价:" << order.productPrice << endl;
cout << "商品数量:" << order.productCount << endl;
cout << "收件人地址:" << order.addr << endl;
cout << "收件人姓名:" << order.name << endl;
cout << "收件人电话:" << order.phone << endl;
cout << "-------------------------" << endl;
}
// 确认是否删除订单
bool confirmDelete(const Order& order) {
cout << "确认要删除以下订单吗?" << endl;
showOrder(order);
cout << "1. 确认删除" << endl;
cout << "2. 取消删除" << endl;
int choice;
cout << "请选择操作:";
cin >> choice;
return choice == 1;
}
};
int main() {
OrderManager manager;
manager.login();
return 0;
}
```
注意,这个代码实现只是一个简单的示例,实际应用中还需要根据需求进行修改和完善。
阅读全文