运用数据结构的相关知识,在DevC++上实现学生通讯录系统。代码包括主界面设计、通讯录的建立、插入、查询、删除、显示和退出系统功能,
时间: 2024-12-24 09:40:05 浏览: 7
在DevC++中实现学生通讯录系统,我们可以利用数组或动态数据结构如链表或树(如STL中的`std::map`或`std::vector`)来存储学生的姓名和联系方式。这里是一个简单的示例,我们将使用`std::map`作为数据结构:
```cpp
#include <iostream>
#include <string>
#include <map>
class Student {
public:
std::string name;
std::string phone;
// 构造函数
Student(const std::string& n, const std::string& p) : name(n), phone(p) {}
};
class ContactBook {
private:
std::map<std::string, Student> contactList; // 学生通讯录
public:
void addStudent(const std::string& name, const std::string& phone) {
if (contactList.find(name) == contactList.end()) {
Student newStudent(name, phone);
contactList[name] = newStudent;
} else {
std::cout << "Student already exists!" << std::endl;
}
}
void searchStudent(const std::string& name) {
auto it = contactList.find(name);
if (it != contactList.end()) {
std::cout << "Name: " << it->first << ", Phone: " << it->second.phone << std::endl;
} else {
std::cout << "Student not found!" << std::endl;
}
}
void deleteStudent(const std::string& name) {
if (contactList.erase(name)) {
std::cout << "Student removed successfully." << std::endl;
} else {
std::cout << "Student not found!" << std::endl;
}
}
// 显示所有学生
void displayAll() {
for (const auto& entry : contactList) {
std::cout << "Name: " << entry.first << ", Phone: " << entry.second.phone << std::endl;
}
}
~ContactBook() {} // 释放资源
};
int main() {
ContactBook book;
book.addStudent("Alice", "1234567890");
book.searchStudent("Alice");
book.displayAll();
// 删除学生并再次验证
book.deleteStudent("Alice");
book.searchStudent("Alice");
return 0;
}
```
在这个例子中,我们创建了一个`Student`类表示每个学生,然后在`ContactBook`类中管理这个列表。主界面设计可以根据需要添加菜单选项,例如通过控制台输入命令来执行相应的操作。
阅读全文