就以上思维导图,写出一个关于该思维导图的程序,主要语言是c语言或c++语言,并且使用到数据结构的相关算法,并且要有每行注释
时间: 2024-12-21 13:21:29 浏览: 6
好的,我将为你编写一个简单的 C++ 程序,模拟快递信息管理系统的功能。这个程序将包括以下几个部分:
1. 用户界面:允许用户进行查询、添加、修改和删除操作。
2. 数据存储:使用链表来存储快递信息。
3. 功能实现:实现查询、添加、修改和删除功能。
以下是完整的代码示例:
```cpp
#include <iostream>
#include <string>
#include <list>
using namespace std;
// 定义快递信息结构体
struct ExpressInfo {
string name; // 姓名
string phone; // 手机号
string address; // 地址
string expressNumber; // 快递单号
string category; // 货物类别
string status; // 快递状态
string shelf; // 货架信息
ExpressInfo(string n, string p, string a, string e, string c, string s, string sh)
: name(n), phone(p), address(a), expressNumber(e), category(c), status(s), shelf(sh) {}
};
class ExpressSystem {
private:
list<ExpressInfo> expressList; // 使用链表存储快递信息
public:
// 添加快递信息
void addExpress() {
string name, phone, address, expressNumber, category, status, shelf;
cout << "请输入姓名: ";
cin >> name;
cout << "请输入手机号: ";
cin >> phone;
cout << "请输入地址: ";
cin >> address;
cout << "请输入快递单号: ";
cin >> expressNumber;
cout << "请输入货物类别: ";
cin >> category;
cout << "请输入快递状态: ";
cin >> status;
cout << "请输入货物所在货架信息: ";
cin >> shelf;
expressList.push_back(ExpressInfo(name, phone, address, expressNumber, category, status, shelf));
cout << "快递信息添加成功!" << endl;
}
// 查询快递信息
void queryExpress() {
string phone;
cout << "请输入手机号查询快递信息: ";
cin >> phone;
for (auto& info : expressList) {
if (info.phone == phone) {
cout << "姓名: " << info.name << endl;
cout << "手机号: " << info.phone << endl;
cout << "地址: " << info.address << endl;
cout << "快递单号: " << info.expressNumber << endl;
cout << "货物类别: " << info.category << endl;
cout << "快递状态: " << info.status << endl;
cout << "货物所在货架信息: " << info.shelf << endl;
return;
}
}
cout << "未找到对应的快递信息!" << endl;
}
// 修改快递信息
void modifyExpress() {
string phone;
cout << "请输入手机号修改快递信息: ";
cin >> phone;
for (auto& info : expressList) {
if (info.phone == phone) {
cout << "请输入新的快递状态: ";
cin >> info.status;
cout << "请输入新的货物所在货架信息: ";
cin >> info.shelf;
cout << "快递信息修改成功!" << endl;
return;
}
}
cout << "未找到对应的快递信息!" << endl;
}
// 删除快递信息
void deleteExpress() {
string phone;
cout << "请输入手机号删除快递信息: ";
cin >> phone;
for (auto it = expressList.begin(); it != expressList.end(); ++it) {
if (it->phone == phone) {
expressList.erase(it);
cout << "快递信息删除成功!" << endl;
return;
}
}
cout << "未找到对应的快递信息!" << endl;
}
// 显示用户界面
void showMenu() {
int choice;
while (true) {
cout << "\n快递信息管理系统" << endl;
cout << "1. 添加快递信息" << endl;
cout << "2. 查询快递信息" << endl;
cout << "3. 修改快递信息" << endl;
cout << "4. 删除快递信息" << endl;
cout << "5. 退出系统" << endl;
cout << "请选择操作: ";
cin >> choice;
switch (choice) {
case 1:
addExpress();
break;
case 2:
queryExpress();
break;
case 3:
modifyExpress();
break;
case 4:
deleteExpress();
break;
case 5:
cout << "感谢使用快递信息管理系统!" << endl;
return;
default:
cout << "无效的选择,请重新选择!" << endl;
}
}
}
};
int main() {
ExpressSystem system;
system.showMenu();
return 0;
}
```
### 代码说明
1. **ExpressInfo 结构体**:用于存储快递信息,包括姓名、手机号、地址、快递单号、货物类别、快递状态和货架信息。
2. **ExpressSystem 类**:封装了快递信息管理系统的功能,包括添加、查询、修改和删除快递信息的方法。
3. **addExpress 方法**:从用户输入中获取快递信息并将其添加到链表中。
4. **queryExpress 方法**:通过手机号查询快递信息并显示。
5. **modifyExpress 方法**:通过手机号查找快递信息并修改其状态和货架信息。
6. **deleteExpress 方法**:通过手机号查找并删除快递信息。
7. **showMenu 方法**:显示用户界面,提供菜单选项供用户选择操作。
希望这段代码对你有帮助!如果有任何问题或需要进一步的功能扩展,请告诉我。
阅读全文