实现电话簿管理程序, Mytel类描述单个电话号码,TelManager类负责管理电话号码。把增、删、改、查功能封装到该类中。要求电话号码能从磁盘读写。 class TelManager { private: Mytel a[1000]; int count;//当前电话号码个数 } ;
时间: 2024-02-27 13:58:18 浏览: 141
电话簿管理程序
好的,你的问题是如何实现电话簿管理程序,其中Mytel类描述单个电话号码,TelManager类负责管理电话号码,并且要求电话号码能从磁盘读写。增、删、改、查功能也需要封装到该类中。
首先,我们需要定义Mytel类,该类应该包括电话号码本身、电话号码所属人的姓名等属性。示例代码如下:
```c++
class Mytel {
private:
string name;
string number;
public:
Mytel() {}
Mytel(string n, string num) : name(n), number(num) {}
string getName() { return name; }
string getNumber() { return number; }
void setName(string n) { name = n; }
void setNumber(string num) { number = num; }
};
```
接下来,我们需要定义TelManager类,该类应该包括一个Mytel数组,以及当前电话号码个数等属性。同时,还需要封装增、删、改、查功能。示例代码如下:
```c++
#include <fstream>
class TelManager {
private:
Mytel a[1000];
int count;
public:
TelManager() : count(0) {}
int getCount() { return count; }
// 从文件中读取电话号码
void readFromFile(string filename) {
ifstream ifs(filename);
if (!ifs) {
cout << "Failed to open file " << filename << endl;
return;
}
while (!ifs.eof()) {
string name, num;
ifs >> name >> num;
if (name != "" && num != "") {
a[count++] = Mytel(name, num);
}
}
ifs.close();
}
// 将电话号码保存到文件中
void saveToFile(string filename) {
ofstream ofs(filename);
if (!ofs) {
cout << "Failed to open file " << filename << endl;
return;
}
for (int i = 0; i < count; i++) {
ofs << a[i].getName() << " " << a[i].getNumber() << endl;
}
ofs.close();
}
// 增加电话号码
void addTel(string name, string num) {
if (count < 1000) {
a[count++] = Mytel(name, num);
}
}
// 删除电话号码
void deleteTel(string name) {
for (int i = 0; i < count; i++) {
if (a[i].getName() == name) {
for (int j = i + 1; j < count; j++) {
a[j - 1] = a[j];
}
count--;
break;
}
}
}
// 修改电话号码
void modifyTel(string name, string num) {
for (int i = 0; i < count; i++) {
if (a[i].getName() == name) {
a[i].setNumber(num);
break;
}
}
}
// 查找电话号码
string searchTel(string name) {
for (int i = 0; i < count; i++) {
if (a[i].getName() == name) {
return a[i].getNumber();
}
}
return "";
}
};
```
使用该类时,可以先创建一个对象,然后调用其相应的成员函数实现增、删、改、查功能。例如:
```c++
int main() {
TelManager tm;
tm.readFromFile("tel.txt");
tm.addTel("张三", "123456789");
tm.saveToFile("tel.txt");
tm.modifyTel("张三", "987654321");
tm.deleteTel("李四");
string num = tm.searchTel("张三");
if (num != "") {
cout << "电话号码为:" << num << endl;
} else {
cout << "未找到该人的电话号码" << endl;
}
return 0;
}
```
其中,`readFromFile`函数从文件中读取电话号码,`saveToFile`函数将电话号码保存到文件中。`addTel`函数用于增加电话号码,`deleteTel`函数用于删除电话号码,`modifyTel`函数用于修改电话号码,`searchTel`函数用于查找电话号码。在使用这些函数时,只需要传入相应的参数即可。
阅读全文