c++,实现电话簿管理程序, Mytel类描述单个电话号码,TelManager类负责管理电话号码。把增、删、改、查功能封装到该类中。要求电话号码能从磁盘读写。 class TelManager { private: Mytel a[1000]; int count;//当前电话号码个数 } ;
时间: 2024-02-16 08:00:32 浏览: 48
c++电话簿数据系统,用类实现,文件读写,数据段增、删、查、显示
好的,我来为您解答这个问题。
首先,我们需要定义一个 Mytel 类来描述单个电话号码,包括电话号码本身、姓名和地址等信息。这个类的定义可以如下:
```
class Mytel {
private:
string name; // 姓名
string address; // 地址
string number; // 电话号码
public:
// 构造函数
Mytel(string name = "", string address = "", string number = "") {
this->name = name;
this->address = address;
this->number = number;
}
// 获取姓名
string getName() {
return name;
}
// 获取地址
string getAddress() {
return address;
}
// 获取电话号码
string getNumber() {
return number;
}
// 设置姓名
void setName(string name) {
this->name = name;
}
// 设置地址
void setAddress(string address) {
this->address = address;
}
// 设置电话号码
void setNumber(string number) {
this->number = number;
}
};
```
接下来,我们需要定义一个 TelManager 类来管理电话号码。这个类包括增加、删除、修改和查找电话号码的方法,同时还需要支持从磁盘读写电话号码信息。这个类的定义可以如下:
```
class TelManager {
private:
Mytel a[1000]; // 电话号码数组
int count; // 当前电话号码个数
public:
// 构造函数
TelManager() {
count = 0;
}
// 增加电话号码
void addTel(Mytel tel) {
a[count++] = tel;
}
// 删除电话号码
void deleteTel(string number) {
for (int i = 0; i < count; i++) {
if (a[i].getNumber() == number) {
for (int j = i + 1; j < count; j++) {
a[j - 1] = a[j];
}
count--;
break;
}
}
}
// 修改电话号码
void modifyTel(Mytel tel) {
for (int i = 0; i < count; i++) {
if (a[i].getNumber() == tel.getNumber()) {
a[i] = tel;
break;
}
}
}
// 查找电话号码
Mytel findTel(string number) {
for (int i = 0; i < count; i++) {
if (a[i].getNumber() == number) {
return a[i];
}
}
return Mytel();
}
// 从磁盘读取电话号码信息
void readFromFile(string filename) {
ifstream infile(filename);
if (infile) {
infile >> count;
for (int i = 0; i < count; i++) {
string name, address, number;
infile >> name >> address >> number;
Mytel tel(name, address, number);
addTel(tel);
}
infile.close();
}
}
// 写入电话号码信息到磁盘
void writeToFile(string filename) {
ofstream outfile(filename);
if (outfile) {
outfile << count << endl;
for (int i = 0; i < count; i++) {
outfile << a[i].getName() << " " << a[i].getAddress() << " " << a[i].getNumber() << endl;
}
outfile.close();
}
}
};
```
这样,我们就完成了电话簿管理程序的实现。您可以在主函数中创建一个 TelManager 对象,然后调用它的各种方法来管理电话号码。同时,您也可以通过调用 readFromFile 和 writeToFile 方法来从磁盘读写电话号码信息。
阅读全文