设计一个相对比较完整的程序,主要功能是维护和管理理班级的通讯录。主要的要求如下: • 定义一个比较完整的通讯录信息,姓名、地址、电话等。 • 能够添加,删除,修改同学的同学录,以类的方法形式实现。 • 数据的结构中尽量使用基本数据类型进行操作,避免使用STL.
时间: 2023-09-25 14:06:35 浏览: 162
同学通讯录管理程序(内附设计报告)
### 回答1:
下面是一个基于类的通讯录管理程序的代码示例,实现了添加、删除、修改同学的通讯录等功能:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Student {
public:
string name;
string address;
string phone;
};
class AddressBook {
public:
void addStudent(const Student& student) {
students.push_back(student);
}
void removeStudent(const string& name) {
for (size_t i = 0; i < students.size(); i++) {
if (students[i].name == name) {
students.erase(students.begin() + i);
break;
}
}
}
void modifyStudent(const string& name, const string& address, const string& phone) {
for (size_t i = 0; i < students.size(); i++) {
if (students[i].name == name) {
students[i].address = address;
students[i].phone = phone;
break;
}
}
}
void printAllStudents() const {
for (const auto& student : students) {
cout << "Name: " << student.name << endl;
cout << "Address: " << student.address << endl;
cout << "Phone: " << student.phone << endl << endl;
}
}
private:
vector<Student> students;
};
int main() {
AddressBook addressBook;
// 添加同学信息
Student student1 = { "Tom", "Beijing", "123456789" };
Student student2 = { "Jerry", "Shanghai", "987654321" };
addressBook.addStudent(student1);
addressBook.addStudent(student2);
// 打印所有同学信息
addressBook.printAllStudents();
// 修改同学信息
addressBook.modifyStudent("Tom", "Guangzhou", "111111111");
addressBook.printAllStudents();
// 删除同学信息
addressBook.removeStudent("Jerry");
addressBook.printAllStudents();
return 0;
}
```
在这个程序中,我们定义了两个类:`Student`和`AddressBook`。`Student`表示一个同学的通讯录信息,包括姓名、地址和电话。`AddressBook`则表示整个班级的通讯录,包括添加、删除、修改和打印所有同学信息等功能。
我们使用一个`vector<Student>`来存储所有同学的通讯录信息,其中`addStudent`用于添加同学信息,`removeStudent`用于删除同学信息,`modifyStudent`用于修改同学信息,`printAllStudents`用于打印所有同学信息。这些操作都是通过遍历`vector`实现的。
在`main`函数中,我们创建了一个`AddressBook`对象,添加了两个同学信息,然后打印所有同学信息,修改了一个同学信息,并再次打印所有同学信息,最后删除了一个同学信息,并再次打印所有同学信息。
这个程序尽量使用了基本数据类型进行操作,避免了使用STL。
### 回答2:
设计一个基于类的程序,来维护和管理班级的通讯录。
首先,定义一个名为"Contact"的类,包含以下成员变量:
- string name:同学的姓名
- string address:同学的地址
- string phone:同学的电话
接下来,在类中定义以下方法:
- 构造方法(Constructor):用于初始化同学的姓名、地址和电话
- setName()方法:用于设置同学的姓名
- setAddress()方法:用于设置同学的地址
- setPhone()方法:用于设置同学的电话
- getName()方法:用于获取同学的姓名
- getAddress()方法:用于获取同学的地址
- getPhone()方法:用于获取同学的电话
然后,设计一个名为"ContactList"的类,用于实现通讯录的添加、删除和修改功能。
在"ContactList"类中,定义以下成员变量:
- vector<Contact> contacts:用于存储所有同学的通讯录信息
并定义以下方法:
- addContact()方法:接受同学的姓名、地址和电话作为参数,创建一个新的Contact对象,并将其添加到contacts列表中
- removeContact()方法:接受一个同学的姓名作为参数,遍历contacts列表,找到匹配的联系人并将其从列表中删除
- modifyContactName()方法:接受一个旧姓名和新姓名作为参数,遍历contacts列表,找到匹配的联系人并更新姓名
- modifyContactAddress()方法:接受一个姓名和新地址作为参数,遍历contacts列表,找到匹配的联系人并更新地址
- modifyContactPhone()方法:接受一个姓名和新电话作为参数,遍历contacts列表,找到匹配的联系人并更新电话
整个程序的工作流程如下:
1. 创建一个ContactList对象
2. 调用addContact()方法添加同学的通讯录信息
3. 调用removeContact()方法删除同学的通讯录信息
4. 调用modifyContactName()方法修改同学的姓名
5. 调用modifyContactAddress()方法修改同学的地址
6. 调用modifyContactPhone()方法修改同学的电话
最后,可以根据需要,设计其他功能,如查询同学的通讯录信息等。这样,就实现了一个相对完整的程序来维护和管理班级的通讯录。
### 回答3:
一个实现以上要求的基本程序如下:
```python
class Student:
def __init__(self, name, address, phone):
self.name = name
self.address = address
self.phone = phone
class Classroom:
def __init__(self):
self.students = []
def add_student(self, name, address, phone):
student = Student(name, address, phone)
self.students.append(student)
def remove_student(self, name):
for student in self.students:
if student.name == name:
self.students.remove(student)
return True
return False
def modify_student(self, name, new_address, new_phone):
for student in self.students:
if student.name == name:
student.address = new_address
student.phone = new_phone
return True
return False
def print_students(self):
for student in self.students:
print(f"姓名:{student.name},地址:{student.address},电话:{student.phone}")
# 使用示例
classroom = Classroom()
classroom.add_student("张三", "北京", "123456")
classroom.add_student("李四", "上海", "789012")
classroom.print_students()
classroom.modify_student("张三", "广州", "654321")
classroom.remove_student("李四")
classroom.print_students()
```
以上是一个使用类的方法来实现班级通讯录的简单示例程序。程序中定义了两个类,Student表示一个学生的信息,包括姓名、地址和电话。Classroom表示一个班级的通讯录,其成员变量students用于保存学生信息列表。
Classroom类中的add_student方法用于添加学生信息,remove_student方法用于删除学生信息,modify_student方法用于修改学生信息。print_students方法用于打印所有学生的信息。
使用示例中,先创建一个Classroom对象,然后使用add_student方法添加两个学生的信息。接着使用modify_student方法修改一个学生的信息,再使用remove_student方法删除一个学生的信息。最后调用print_students方法打印所有学生的信息。
该程序使用了最基本的数据类型来实现,没有使用STL。但需要注意的是,如果需要更复杂的功能和数据结构,可能需要使用STL或其他库来辅助实现。
阅读全文