使用c++多态写一个通讯录管理程序。通讯录是由通讯录条目组成的。通讯录总条目数。通讯录中现有多少条。可以输入通讯录、可以输出通讯录、可以查找、修改。其中的通讯录条目可以是一般条目,也可以是朋友条目。
时间: 2024-03-06 22:48:05 浏览: 107
好的,这是一个很有趣的问题。我们可以使用C++中的多态来实现这个通讯录管理程序。
首先,我们需要定义一个基类,名为“Entry”,它包含了通讯录条目的基本属性,例如名字、电话号码、地址等。我们可以定义一些纯虚函数,例如添加、删除、查找、修改等,这些函数在派生类中会被具体实现。
接下来,我们定义两个派生类,“GeneralEntry”和“FriendEntry”,它们分别表示一般条目和朋友条目。这两个类都继承自“Entry”类,并且根据自己的需要实现了基类中的纯虚函数。例如,“GeneralEntry”可能只需要实现添加、删除和查找函数,而“FriendEntry”则需要实现更多的函数,例如修改、查看共同好友等。
最后,我们定义一个“AddressBook”类,它包含了所有的通讯录条目。这个类中包含了一个“Entry”类型的数组,可以添加、删除、查找和修改通讯录条目。我们可以在这个类中定义一个成员变量,用来记录通讯录中现有的条目数,并且可以定义一些函数,例如输出通讯录等。
下面是一个简单的实现代码,仅供参考:
```
#include <iostream>
#include <string>
using namespace std;
class Entry {
public:
virtual void add() = 0;
virtual void remove() = 0;
virtual void search() = 0;
virtual void modify() = 0;
};
class GeneralEntry : public Entry {
public:
void add() override {
// 添加一般条目的实现
}
void remove() override {
// 删除一般条目的实现
}
void search() override {
// 查找一般条目的实现
}
void modify() override {
// 修改一般条目的实现
}
};
class FriendEntry : public Entry {
public:
void add() override {
// 添加朋友条目的实现
}
void remove() override {
// 删除朋友条目的实现
}
void search() override {
// 查找朋友条目的实现
}
void modify() override {
// 修改朋友条目的实现
}
void viewCommonFriends() {
// 查看共同好友的实现
}
};
class AddressBook {
private:
int totalEntries;
Entry* entries[100];
public:
AddressBook() {
totalEntries = 0;
}
void addEntry(Entry* entry) {
entries[totalEntries++] = entry;
}
void removeEntry(int index) {
// 删除通讯录条目的实现
}
void searchEntry(string name) {
// 查找通讯录条目的实现
}
void modifyEntry(int index) {
// 修改通讯录条目的实现
}
void displayEntries() {
// 输出通讯录的实现
}
};
int main() {
AddressBook book;
GeneralEntry gEntry;
FriendEntry fEntry;
book.addEntry(&gEntry);
book.addEntry(&fEntry);
// ...
return 0;
}
```
这只是一个简单的实现,你可以根据自己的需要进行扩展和修改。
阅读全文