赞
踩
使用线性表实现一个通讯录,通讯录内容有:学号、姓名、电话号码。使其完成以下功能。
(1) 建立一个通讯录
(2) 插入一个数据元素
(3) 删除一个元素,返回其值
(4) 结束程序
请写出基本的算法思想。
一,定义一个通讯录的数据结构
- struct Contact {
- int id; // 学号
- std::string name; // 姓名
- std::string phone; // 电话号码
- };
二,定义一个通讯录(使用数组)
- class AddressBook {
- private:
- Contact contacts[MAX_SIZE]; // 假设通讯录的最大容量为 MAX_SIZE
- int size; // 当前通讯录中的联系人数量
-
- public:
- AddressBook() : size(0) {}
-
- // 其他功能方法...
- };
三,实现功能方法
- bool AddressBook::insert(const Contact& contact) {
- if (size >= MAX_SIZE) {
- return false; // 通讯录已满,插入失败
- }
- contacts[size] = contact;
- size++;
- return true; // 插入成功
- }
-
- bool AddressBook::remove(int id, Contact& removedContact) {
- for (int i = 0; i < size; i++) {
- if (contacts[i].id == id) {
- removedContact = contacts[i]; // 保存被删除的元素
- for (int j = i; j < size - 1; j++) {
- contacts[j] = contacts[j + 1]; // 将后面的元素向前移动
- }
- size--; // 减少通讯录中的联系人数量
- return true; // 删除成功
- }
- }
- return false; // 未找到要删除的元素,删除失败
- }
四,主函数
在主函数中创建对象,使用上述功能。
- int main() {
- AddressBook addressBook;
-
- // 插入一些联系人信息...
- Contact contact1 = {1, "张三", "123456789"};
- addressBook.insert(contact1);
- // 插入其他联系人信息...
-
- // 删除一个联系人并获取其信息...
- Contact removedContact;
- if (addressBook.remove(1, removedContact)) {
- std::cout << "已删除联系人: " << removedContact.name << std::endl;
- } else {
- std::cout << "未找到要删除的联系人" << std::endl;
- }
-
- // ...其他操作...
-
- return 0; // 程序结束
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。