【简单项目实战】用C++实现通讯录管理系统 | [普通实现]

简介: 用C++实现通讯录管理系统

功能介绍


用C++设计一个程序,能够提供以下功能:


1.录入联系人的基本信息。包括姓名、性别、年龄、电话号和地址。


2.展示所有已录入联系人的基本信息。以姓名、性别、年龄、电话号和地址的方式按列表展示。


3.删除指定的联系人。通过姓名查询并删除。


4.查找指定的联系人。通过姓名查找。


5.修改联系人信息。可对其进行单一修改,也可以进行多修改。


6.清空联系人。


7.退出通讯录管理系统。


●案例


1.录入5个联系人的信息:


       ①张三 男 19 18945761432 山西省大同市


       ②李四 男 23 19045435721 吉林省沈阳市


       ③王五 女 21 16423763429 湖南省长沙市


       ④赵六 女 32 17781435240 河南省洛阳市


       ⑤孙七 男 29 18247190826 内蒙古包头市


2.展示该五个联系人的信息。


3.修改联系人信息,对王五的地址进行单一修改,修改为云南省昆明市。(若进行其他修改,按照提示指引修改即可)


4.查找指定联系人王五,查看其修改的信息是否同步。


5.因为张三的信息存在错误,我们用多修改的方式对其信息进行修改。(张三 男 34 18247189868 陕西省西安市)


6.由于孙七的信息录入错误,我们需要将他的信息全部删除。


7.查看此时所有的联系人信息。


8.清空所有联系人并且查看。


9.退出通讯录管理系统。


●代码展示

#include <iostream>
#include <string>
#define maxsize 100 //通讯录人数
using namespace std;
struct person {
  string name;  //姓名
  string sex;  //性别
  int age;  //年龄
  string number;   //电话号
  string address;  //地址
};
typedef struct{
  struct person data[maxsize];
  int size;
}addressbook;
void addperson(addressbook* ab)
{
  cout << "————————————————————" << endl;
  if (ab->size == maxsize) {
  cout << "<<通讯录已满>>" << endl;
  }
  else {
  cout << "请输入姓名:" ;
  string name;cin >> name;
  ab->data[ab->size].name = name;
  cout << "请输入性别:" ;
  cout << "男——1" <<" " << "女——2" <<":";
  int sex;cin >> sex;
  if (sex == 1) { ab->data[ab->size].sex = "男"; }
  else if (sex == 2) { ab->data[ab->size].sex = "女"; }
  cout << "请输入年龄:" ;
  int age;cin >> age;
  ab->data[ab->size].age = age;
  cout << "请输入电话:" ;
  string number;cin >> number;
  ab->data[ab->size].number = number;
  cout << "请输入家庭地址:" ;
  string address;cin >> address;
  ab->data[ab->size].address = address;
  ab->size++;
  }
  cout << "————————————————————" << endl;
  cout << "<<添加成功>>" << endl;
  system("pause");
  system("cls");
}
void showperson(addressbook* ab)
{
  if (ab->size == 0) {
  cout << "<<当前数据为空>>" << endl;
  }
  else {
  for (int i = 0; i < ab->size; i++)
  {
    cout << "———————————————————————————————————" << endl;
    cout <<"| " << "姓名:" << ab->data[i].name << " "
    << "性别:" << ab->data[i].sex<<" "
    << "年龄:" << ab->data[i].age<<" "
    << "电话:" << ab->data[i].number<<" "
    << "地址:" << ab->data[i].address << " |" << endl;
  }
  cout << "———————————————————————————————————" << endl;
  }
  system("pause");
  system("cls");
}int isexist(addressbook* ab, string name)
{
  for (int k = 0; k < ab->size; k++)
  {
  if (ab->data[k].name == name)
    return k;
  }
  return -1;
}
void deleteperson(addressbook* ab)
{
  cout << "————————————————————" << endl;
  cout << "请输入您要删除的联系人:";
  string name;cin >> name;
  if (isexist(ab, name) == -1) {
  cout << "<<没有查找到此人>>" << endl;
  }
  else {
  cout << "<<找到此人>>" << endl;
  int ret = isexist(ab, name);
  for (int l = ret; l < ab->size; l++)
  {
    ab->data[l].name = ab->data[l + 1].name;
    ab->data[l].sex = ab->data[l + 1].sex;
    ab->data[l].age = ab->data[l + 1].age;
    ab->data[l].number = ab->data[l + 1].number;
    ab->data[l].address = ab->data[l + 1].address;
  }
  ab->size--;
  cout << "<<已删除此人信息>>" << endl;
  }
  cout << "————————————————————" << endl;
  system("pause");
  system("cls");
}
void searchperson(addressbook* ab)
{
  cout << "请输入您要查找的联系人:";
  string name;cin >> name;
  if (isexist(ab, name) == -1) {
  cout << "<<没有查找到此人>>" << endl;
  }
  else {
  int ret = isexist(ab, name);
    cout << "———————————————————————————————————" << endl;
    cout <<"| " << "姓名:" << ab->data[ret].name << " "
    << "性别:" << ab->data[ret].sex<<" "
    << "年龄:" << ab->data[ret].age<<" "
    << "电话:" << ab->data[ret].number<<" "
    << "地址:" << ab->data[ret].address <<" |" << endl;
  cout << "———————————————————————————————————" << endl;
  }
  system("pause");
  system("cls");
}
void singlealterperson(int ret,addressbook* ab)
{
  string name;
  string sex;
  int age;
  string number;
  string address;
  cout << "————————————————————" << endl;
  cout << "姓名-1" << "性别-2" << "年龄-3" << "电话-4" << "地址-5" << ":";
  int select; cin >> select;
  switch (select)
  {
  case 1:
  cout << "请输入要修改的姓名:";
  cin >> name;  ab->data[ret].name = name;
  break;
  case 2:
  cout << "请输入要修改的性别:";
  cin >> sex;  ab->data[ret].sex = sex;
  break;
  case 3:
  cout << "请输入要修改的年龄:";
  cin >> age;  ab->data[ret].age = age;
  break;
  case 4:
  cout << "请输入要修改的号码:";
  cin >> number;  ab->data[ret].number = number;
  break;
  case 5:
  cout << "请输入要修改的地址:";
  cin >> address; ab->data[ret].address = address;
  break;
  }
  cout << "————————————————————" << endl;
}
void mostalterperson(int ret,addressbook* ab)
{
  string name;
  string sex;
  int age;
  string number;
  string address;
  cout << "————————————————————" << endl;
  cout << "请输入姓名:";
  cin >> name;  ab->data[ret].name = name;
  cout << "请输入性别:";
  cin >> sex;  ab->data[ret].sex = sex;
  cout << "请输入年龄:";
  cin >> age;  ab->data[ret].age = age;
  cout << "请输入电话:";
  cin >> number;  ab->data[ret].number = number;
  cout << "请输入地址:";
  cin >> address; ab->data[ret].address = address;
  cout << "————————————————————" << endl;
}
void alterperson(addressbook* ab)
{
  cout << "请输入您要修改的联系人:";
  string name;cin >> name;
  if (isexist(ab, name) == -1){
  cout << "<<此人不存在>>" << endl;
  }
  else {
  cout << "<<此人存在>>" << endl;
  int ret = isexist(ab,name);
  cout << "单一修改-0" << "多数修改-1" << ":";
  int n; cin >> n;
  if (n == 0) {
    singlealterperson(ret,ab);
  }
  else {
    mostalterperson(ret,ab);
  }
    cout << "<<信息修改成功>>" << endl;
  }
  system("pause");
  system("cls");
}
void emptyperson(addressbook* ab)
{
  ab->size = 0;
  cout << "<<通讯录已清空>>" << endl;
  system("pause");
  system("cls");
}
void showmenu()
{
  cout << "***********************" << endl;
  cout << "*****1:添加联系人******" << endl;
  cout << "*****2:显示联系人******" << endl;
  cout << "*****3:删除联系人******" << endl;
  cout << "*****4:查找联系人******" << endl;
  cout << "*****5:修改联系人******" << endl;
  cout << "*****6:清空联系人******" << endl;
  cout << "*****7:退出通讯录******" << endl;
  cout << "***********************" << endl;
}
int text()
{
  addressbook AB;
  AB.size = 0;
  while (1)
  {
  showmenu();
  int n; cin >> n;
  switch (n)
  {
  case 1:
    addperson(&AB);
    break;
  case 2:
    showperson(&AB);
    break;
  case 3:
    deleteperson(&AB);
    break;
  case 4:
    searchperson(&AB);
    break;
  case 5:
    alterperson(&AB);
    break;
  case 6:
    emptyperson(&AB);
    break;
  case 7:
    cout << "<<退出通讯录>>" << endl;
    return 0;
    break;
  }
  }
}
int main()
{
  text();
}

●结果展示


1.

2.

3.

4.

5.

6.

7.

8.

9.


目录
相关文章
|
5天前
|
C++
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
7 0
C++职工管理系统(类继承、文件、指针操作、中文乱码解决)
|
16天前
|
C++
【C/C++基础实战】:用C++实现通讯录管理系统——含完整源码
【C/C++基础实战】:用C++实现通讯录管理系统——含完整源码
|
5天前
|
C++
C++案例简单通讯录
C++案例简单通讯录
5 0
|
2月前
|
C++
车辆管理系统设计(C++)
车辆管理系统设计(C++)
30 2
|
2月前
|
存储 人工智能 数据安全/隐私保护
【C++面向对象】C++考试题库管理系统(源码)【独一无二】
【C++面向对象】C++考试题库管理系统(源码)【独一无二】
|
2月前
|
C++
C++入门项目——通讯管理系统
C++入门项目——通讯管理系统
|
2月前
|
C++
c++实现通讯录管理系统(控制台版)
c++实现通讯录管理系统(控制台版)
|
2月前
|
存储 人工智能 搜索推荐
【C语言/C++】电子元器件管理系统(C源码)【独一无二】
【C语言/C++】电子元器件管理系统(C源码)【独一无二】
|
2月前
|
存储 人工智能 BI
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
|
2月前
|
存储 测试技术 C++
C++基于多态的职工管理系统(附代码下载)
C++基于多态的职工管理系统(附代码下载)