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

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

基于C语言和C++语言混合编程的通讯录管理系统项目的设计与开发


一、通讯录管理系统功能介绍


通讯录是我们记录好友、亲人、朋友的重要的一个信息管理工具。本项目是基于C语言和C++语言混合编程来设计一个通讯录管理系统。该系统的主要功能如下几个要点所示:

1、添加联系人:可以向通讯录中添加新人信息包括:姓名、性别、年龄、联系电话、家庭住址。添加的人数记录最多为1000人。

2、显示联系人:显示通讯录中所有的联系人信息。

3、查找联系人:按照姓名进行删除指定的联系人信息。

4、修改联系人:按照姓名进行查看指定的联系人信息。

5、删除联系人:按照姓名进行重新修改指定的联系人信息。

6、清空联系人:清空通讯录中所有的联系人信息。

7、退出通讯录:退出当前使用的通讯录管理系统。


二、开发通讯录管理系统的工具以及创建项目的过程

2.1、本项目使用Visual Studio 2019作为开发工具。

2.2、项目创建的过程


打开VS2019,选择语言为C++,所属平台为Windows,项目类型为控制台项目,并选择空项目,如下图所示

bd6194d4f03b47a482dacb8172140a36.png


然后输入项目的名称和选择项目的路径如下图所示

1e23e1955e59429b8702772989cc54d2.png

创建好项目后,向项目中添加头文件和源文件如下所示

599c4fc7e9fc44f0adf2c56fbaac89dd.png


然后编写相关的代码如下

Main.h头文件代码

#ifndef MAIN_H
#define MAIN_H
#include <iostream>
#include <cstdlib>
using namespace std;
#endif


Main.cpp源文件代码

#include "Main.h"
int main()
{
  system("color 3E");
  system("pause");
  return 0;
}


AddressBook.h头文件代码

#ifndef ADDRESSBOOK_H
#define ADDRESSBOOK_H
#endif


AddressBook.cpp源文件代码

#include "AddressBook.h"


现在项目就创建好了。


通讯录管理系统的设计与开发的步骤


一、设计通讯录菜单功能


在Main.h头文件中声明一个void addressBookMenu();函数,用于通讯录菜单功能的显示,然后再Main.cpp源文件中定义这个函数的功能,如下所示


// 通讯录系统的功能菜单
void addressBookMenu()
{
  cout << "欢迎来到通讯录管理系统" << endl;
  cout << "1  添加联系人" << endl;
  cout << "2  显示联系人" << endl;
  cout << "3  查找联系人" << endl;
  cout << "4  修改联系人" << endl;
  cout << "5  删除联系人" << endl;
  cout << "6  清空联系人" << endl;
  cout << "0  退出系统" << endl;
  cout << "请输入相关的数字,进行功能的选择:";
}


然后再主函数中调用addressBookMenu()函数,调试结果如下


8793efc8d01a45b69d3c494ac01641c3.png


到这里通讯录菜单功能实现了。


二、设计通讯录退出功能


在AddressBook.h头文件中声明void quitSystem();函数,然后再AddressBook.cpp中定义函数的功能,其代码如下


// 退出通讯录管理系统
void quitSystem()
{
  cout << "欢迎使用通讯录管理系统!!" << endl;
  cout << "欢迎在一次使用!!!" << endl;
}


然后在main函数中添加如下的代码

// 开辟内存
  pAddressBooks addrBook = new addressBooks;
  addrBook->size = 0;
  int select = 0;
  while (1)
  {
    addressBookMenu();        // 调用显示菜单
    cin >> select;
    switch (select)         // 功能选择
    {
    case 1:
      // 添加联系人
      break;
    case 2:
      // 显示联系人
      break;
    case 3:
      // 查找联系人
      break;
    case 4:
      // 修改联系人
      break;
    case 5:
      // 删除联系人
      break;
    case 6:
      // 清空联系人
      break;
    case 0:             // 退出系统
      quitSystem();
      system("pause");
      return 0;
      break;
    default:
      break;
    }
  }


当用户输入数字0时,就会退出通讯录管理系统,其调试结果如下所示


e8ea3ddeeb69459e9bd8684b428c6164.png


现在实现了通讯录退出功能


三、设计添加联系人功能


在AddressBook.h头文件中声明一个添加联系人信息的函数void addPerson(pAddressBooks addrBook);并在AddressBook.cpp源文件中定义相关的功能。其代码如下所示

定义一个Penson类,在Penson中定义联系人相关的成员变量如下所示

// 添加联系人信息
void addPerson(pAddressBooks addrBook)
{
  if (addrBook->size == MAX)
  {
    cout << "通讯录已满!!!" << endl;
    return;
  }
  else
  {
    string name;
    cout << "输入姓名: ";
    cin >> name;
    addrBook->personArray[addrBook->size].name = name;
    string sex;
    cout << "输入性别: ";
    cin >> sex;
    addrBook->personArray[addrBook->size].sex = sex;
    int age;
    cout << "输入年龄: ";
    cin >> age;
    addrBook->personArray[addrBook->size].age = age;
    string phone;
    cout << "输入联系电话: ";
    cin >> phone;
    addrBook->personArray[addrBook->size].phone = phone;
    string address;
    cout << "输入地址: ";
    cin >> address;
    addrBook->personArray[addrBook->size].address = address;
    addrBook->size++;
    cout << "添加联系人成功!!!" << endl;
    system("pause");
    system("cls");
  }
}


在main函数中,在case 1:语句后面调用添加联系人信息的addPerson函数,如下所示

case 1:
  addPerson(addrBook);    // 添加联系人
  break;


然后调试结果如下所示

177c09838afd4300a39857d64bb17884.png


如上图的调试结果显示,已经完成了添加联系人功能的设计。


四、设计显示联系人功能


在AddressBook.h头文件中声明一个显示联系人信息的函数void showPerson(pAddressBooks addrBook);并在AddressBook.cpp源文件中定义相关的功能。其代码如下所示


// 显示联系人信息
void showPerson(pAddressBooks addrBook)
{
  if (addrBook->size == 0)
  {
    cout << "当前记录是空!!!" << endl;
  }
  else
  {
    for (int i = 0; i < addrBook->size; i++)
    {
      cout << "姓名: " << addrBook->personArray[i].name << endl;
      cout << "性别: " << addrBook->personArray[i].sex << endl;
      cout << "年龄: " << addrBook->personArray[i].age << endl;
      cout << "电话: " << addrBook->personArray[i].phone << endl;
      cout << "住址: " << addrBook->personArray[i].address << endl << endl;
    }
  }
  system("pause");
  system("cls");
}

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

case 2:
  showPerson(addrBook);   // 显示联系人
  break;



然后调试结果如下所示

1、先添加联系人信息


fb179252206b4c08a995f1268a288777.png


2、在选择显示联系人信息


652e235608964f4cb89b7e9d207c9de5.png


如上图,系统可以正确显示我们刚刚输入的联系人信息,已经完成了显示联系人功能的设计

相关文章
|
24天前
|
开发框架 Linux C语言
C、C++、boost、Qt在嵌入式系统开发中的使用
C、C++、boost、Qt在嵌入式系统开发中的使用
31 1
|
1月前
|
开发工具 C语言 C++
CMake构建大型C/C++项目:跨平台设计与高级应用(二)
CMake构建大型C/C++项目:跨平台设计与高级应用
42 0
|
14天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
38 6
|
23天前
|
存储 人工智能 BI
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
|
24天前
C/C++test两步完成CMake项目静态分析
通过将C/C++test集成到CMake项目中,并根据项目的需要进行配置,可以在两步内完成CMake项目的静态分析。这样可以帮助开发人员及时发现并修复潜在的代码问题,提高代码质量和可靠性。
8 0
|
30天前
|
IDE 算法 编译器
快速掌握陌生C++项目的科学与心理学策略
快速掌握陌生C++项目的科学与心理学策略
58 0
|
30天前
|
敏捷开发 安全 API
C/C++ 工程师面试:如何精彩展示你的项目经验并获得高分
C/C++ 工程师面试:如何精彩展示你的项目经验并获得高分
73 0
|
1月前
|
监控 C++
C++ Qt开发:QProcess进程管理模块
Qt是一个跨平台的C++图形库,简化了窗体应用开发,支持通过拖放组件提升效率。本章节关注`QProcess`组件,它用于控制和管理进程,例如执行命令、运行可执行文件及与外部进程通信。`QProcess`提供多种方法如`start`、`waitForStarted`和`waitForFinished`等,实现启动、监控和交互。示例展示了如何使用`QProcess`获取系统进程和信息,通过`tasklist`和`systeminfo`命令,并将结果展示在`QTreeWidget`中。
29 0
C++ Qt开发:QProcess进程管理模块
|
1月前
|
消息中间件 存储 算法
【C/C++ 泡沫精选面试题04】在实际项目中,多进程和多线程如何选择?
【C/C++ 泡沫精选面试题04】在实际项目中,多进程和多线程如何选择?
43 1
|
1月前
|
编译器 持续交付 项目管理
CMake构建大型C/C++项目:跨平台设计与高级应用(三)
CMake构建大型C/C++项目:跨平台设计与高级应用
41 0