C和C++通讯录管理系统项目的设计与开发(下)

简介: C和C++通讯录管理系统项目的设计与开发(下)

五、设计查找联系人功能


在AddressBook.h头文件中声明一个查找联系人信息是否存在的函数int isExist(pAddressBooks, string);并在AddressBook.cpp源文件中定义相关的功能。其代码如下所示


// 判断联系人是否存在
int isExist(pAddressBooks addrBook, string name)
{
  for (int i = 0; i < addrBook->size; i++)
  {
    if (addrBook->personArray[i].name == name)
      return i;
  }
  return -1;
  return 0;
}


在AddressBook.h头文件中声明一个查找联系人信息的函数void findPerson(pAddressBooks); 并在AddressBook.cpp源文件中定义相关的功能。

其查找联系人信息是根据联系人的姓名查找的,先调用isExist函数对联系人信息的是否存在进行判断,如果在通讯录中查找到联系人信息,则显示联系人的相关的信息。

其代码如下所示

// 查找联系人信息
void findPerson(pAddressBooks addrBook)
{
  cout << "输入要查找联系人的姓名: ";
  string name;
  cin >> name;
  int judgeNameIndex = isExist(addrBook, name);
  if (judgeNameIndex != -1)
  {
    cout << "通讯录中姓名是 " << name << " 的联系人的信息如下" << endl;
    cout << "姓名: " << addrBook->personArray[judgeNameIndex].name << endl;
    cout << "性别: " << addrBook->personArray[judgeNameIndex].sex << endl;
    cout << "年龄: " << addrBook->personArray[judgeNameIndex].age << endl;
    cout << "电话: " << addrBook->personArray[judgeNameIndex].phone << endl;
    cout << "住址: " << addrBook->personArray[judgeNameIndex].address << endl << endl;
  }
  else
    cout << "通讯录中不存在姓名是 " << name << " 的联系人!!!" << endl;
  system("pause");
  system("cls");
}


在main函数中,在case 3:语句后面调用查找联系人信息的findPerson函数,如下所示

case 3:
  findPerson(addrBook);      // 查找联系人
  break;


然后调试结果如下所示

1、先添加联系人信息

f9dfd0340f574dd3bd97781467fa73b1.png


2、在选择查找联系人信息

当输入姓名在通讯录中不存在时的情况

dff1d9089780493599641052076c0bca.png

当输入姓名在通讯录中存在时的情况


e0a47095a89c44598f6ec77cdef00689.png


如上图,系统可以正确查找我们刚刚输入的联系人信息,并且可以正确判断输入的姓名在通讯录中是否存在的功能。已经完成了查找联系人功能的设计


六、设计修改联系人功能


在AddressBook.h头文件中声明一个添加修改联系人信息的函数void modifyPerson(pAddressBooks);并在AddressBook.cpp源文件中定义相关的功能。

其修改联系人信息是根据联系人的姓名查找的,先调用isExist函数对联系人信息的是否存在进行判断,如果在通讯录中查找到联系人信息,则修改联系人的相关的信息。

其代码如下所示


// 修改联系人信息
void modifyPerson(pAddressBooks addrBook)
{
  cout << "输入要修改联系人的姓名: ";
  string name;
  cin >> name;
  int judgeNameIndex = isExist(addrBook, name);
  if (judgeNameIndex != -1)
  {
    cout << "输入姓名是 " << name << " 的信息" << endl;
    string name;
    cout << "输入姓名: ";
    cin >> name;
    addrBook->personArray[judgeNameIndex].name = name;
    string sex;
    cout << "输入性别: ";
    cin >> sex;
    addrBook->personArray[judgeNameIndex].sex = sex;
    int age;
    cout << "输入年龄: ";
    cin >> age;
    addrBook->personArray[judgeNameIndex].age = age;
    string phone;
    cout << "输入联系电话: ";
    cin >> phone;
    addrBook->personArray[judgeNameIndex].phone = phone;
    string address;
    cout << "输入地址: ";
    cin >> address;
    addrBook->personArray[judgeNameIndex].address = address;
    cout << "修改联系人信息成功!!!" << endl;
  }
  else
    cout << "通讯录中不存在姓名是 " << name << " 的联系人!!!" << endl;
  system("pause");
  system("cls");
}

在main函数中,在case 4:语句后面调用显示联系人信息的showPerson函数,如下所示

case 4:
  modifyPerson(addrBook);   // 修改联系人
  break;


然后调试结果如下所示

1、先添加联系人信息


b8547f8657c14352b1de31f9f12ddbd7.png

2、在选择修改联系人信息

当输入姓名在通讯录中不存在时的情况

51492c1ceba64c8bbaa61c195bf57467.png

当输入姓名在通讯录中存在时的情况


397a0b00c7fc4da39bffd77f5241a634.png

如上图,系统可以正确修改我们刚刚输入的联系人信息,并且可以正确判断输入的姓名在通讯录中是否存在的功能。已经完成了修改联系人功能的设计。


七、设计删除联系人功能


在AddressBook.h头文件中声明一个删除联系人信息的函数void deletePerosn(pAddressBooks);并在AddressBook.cpp源文件中定义相关的功能。

其删除联系人信息是根据联系人的姓名查找的而且是删除一个联系人的信息,先调用isExist函数对联系人信息的是否存在进行判断,如果在通讯录中查找到联系人信息,则删除联系人的相关的信息。

其代码如下所示


// 删除联系人信息
void deletePerosn(pAddressBooks addrBook)
{
  cout << "输入要删除联系人的姓名: ";
  string name;
  cin >> name;
  int judgeNameIndex = isExist(addrBook, name);
  if (judgeNameIndex != -1)
  {
    for (int i = judgeNameIndex; i < addrBook->size; i++)
      addrBook->personArray[i] = addrBook->personArray[i + 1];
    addrBook->size--;
    cout << "删除联系人是 " << name << " 成功!!!" << endl;
  }
  else
    cout << "通讯录中不存在姓名是 " << name << " 的联系人!!!" << endl;
  system("pause");
  system("cls");
}

在main函数中,在case 5:语句后面调用显示联系人信息的showPerson函数,如下所示

case 5:
  deletePerosn(addrBook);   // 删除联系人
  break;


然后调试结果如下所示

1、先添加两个联系人信息,两个人的联系信息如下

a509d6e8b0ce4a968e754ddb7101760e.png


2、在选择修改联系人信息

当输入姓名在通讯录中不存在时的情况

image.png

当输入姓名在通讯录中存在时的情况


image.png

image.png

如上图,系统可以正删除改我们刚刚输入的联系人信息,并且可以正确判断输入的姓名在通讯录中是否存在的功能。已经完成了删除联系人功能的设计。


八、设计清空联系人功能


在AddressBook.h头文件中声明一个清空联系人信息的函数void cleanPerson(pAddressBooks);并在AddressBook.cpp源文件中定义相关的功能。

其清空联系人信息是删除通讯录中所有的联系人信息。

其代码如下所示

// 清空联系人信息
void cleanPerson(pAddressBooks addrBook)
{
  addrBook->size = 0;
  cout << "通讯录的联系人信息已全部清空!!!" << endl;
  system("pause");
  system("cls");
}

在main函数中,在case 6:语句后面调用显示联系人信息的showPerson函数,如下所示

case 6:
  cleanPerson(addrBook);    // 清空联系人
  break;


然后调试结果如下所示

1、先添加两个联系人信息,两个人的联系信息如下

999769f57b5d475ca41a25ff416dc30d.png


2、在选择清空联系人信息,其结果如下


108e98c2d55f448cbeae843a786c6a47.png


1a9ae158df3446f0a513a43ec520ddfd.png


如上图,系统可以正清空我们刚刚输入的联系人信息,完成了清空联系人功能的设计。


总结


到这里我们完成了通讯录系统功能的设计。在设计的工程中,我们主要使用了C语言的函数,循环、指针、结构体等知识,并使用了简单的C++语言的输入输出语句。

相关文章
|
3月前
|
机器学习/深度学习 算法 算法框架/工具
为什么使用C++进行机器学习开发
C++作为一种高性能语言,在某些性能要求极高或资源受限的场景下也具有非常重要的地位。C++的高效性和对底层硬件的控制能力,使其在大规模机器学习系统中发挥重要作用,尤其是当需要处理大数据或实时响应的系统时。
61 3
WK
|
1月前
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
86 1
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
573 3
|
2月前
|
Rust 资源调度 安全
为什么使用 Rust over C++ 进行 IoT 解决方案开发
为什么使用 Rust over C++ 进行 IoT 解决方案开发
92 7
WK
|
1月前
|
开发框架 移动开发 Java
C++和Java哪个更适合开发移动应用
本文对比了C++和Java在移动应用开发中的优劣,从市场需求、学习难度、开发效率、跨平台性和应用领域等方面进行了详细分析。Java在Android开发中占据优势,而C++则适合对性能要求较高的场景。选择应根据具体需求和个人偏好综合考虑。
WK
61 0
WK
|
1月前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
99 0
|
3月前
|
C++
【C++案例】一个项目掌握C++基础-通讯录管理系统
这篇文章通过一个通讯录管理系统的C++项目案例,详细介绍了如何使用C++实现添加、显示、删除、查找、修改和清空联系人等功能。
57 3
|
2月前
|
NoSQL API Redis
如何使用 C++ 开发 Redis 模块
如何使用 C++ 开发 Redis 模块
|
3月前
|
物联网 C# C语言
物联网开发中C、C++和C#哪个更好用
在物联网(IoT)开发中,C、C++和C#各有优缺点,适用场景不同。C语言性能高、资源占用低,适合内存和计算能力有限的嵌入式系统,但开发复杂度高,易出错。C++支持面向对象编程,性能优秀,适用于复杂应用,但学习曲线陡峭,编译时间长。C#易于学习,与.NET框架结合紧密,适合快速开发Windows应用,但性能略低,平台支持有限。选择语言需根据具体项目需求、复杂性和团队技术栈综合考虑。
|
3月前
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
169 1