C++通讯录管理系统

通讯录管理系统

通讯录是一个可以记录亲人、好友联系信息的工具。

本教程主要利用C++来实现一个通讯录管理系统

项目需求

系统中需要实现的功能如下:

添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
显示联系人:显示通讯录中所有联系人信息
删除联系人:按照姓名进行删除指定联系人
查找联系人:按照姓名查看指定联系人信息
修改联系人:按照姓名重新修改指定联系人
清空联系人:清空通讯录中所有信息
退出通讯录:退出当前使用的通讯录

功能实现

利用分立文件编写,把相似的功能函数放在同一个源文件和头文件里面去。

源代码

main.cpp

#include"Modify.h"
#include <iostream>
#include<string>
#include"Show.h"
using namespace std;

/****************************
*Function name:ShowMenu()
*Description  : show interface
*Parameter    : None
******************************/
void ShowMenu()
{
    cout<<"***************************************"<<endl;
    cout<<"\t"<<"****1:添加联系人***"<<endl;
    cout<<"\t"<<"****2:删除联系人***"<<endl;
    cout<<"\t"<<"****3:修改联系人***"<<endl;
    cout<<"\t"<<"****4:查看联系人***"<<endl;
    cout<<"\t"<<"****5:清空联系人***"<<endl;
    cout<<"\t"<<"****0:推出系统***"<<endl;
    cout<<"****************************************"<<endl;
}
int main()
{
addressbooks a;
a.people_number=0;

 int select=0;


    while(true)
    {
        ShowMenu();
        cin>>select;
       	switch (select)
		{
		case 1:AddPerson(&a);
		        //cout<<"nihao"<<a.personarry[a.people_number].m_Name;}//添加联系人
			break;
		case 2: cout<<"nihao"<<a.personarry[0].m_Name<<a.personarry[a.people_number-1].m_Name<<a.people_number<<"我不懂" ; //删除联系人
			break;
		case 3:  Modify_All(&a);//修改联系人
			break;
		case 4: Show_All(&a) ;//查找联系人
			break;
		case 5:  Delete_All(&a); //清空联系人
			break;
		case 0:  //退出通讯录
			cout << "欢迎下次使用" << endl;
			system("pause");
            return 0 ;
		 default:
			break;
		}

    }

    return 0;
}

Modify.cpp

#include "Modify.h"

void AddPerson(addressbooks * p)
{
    cout<<"你好";
    if(p->people_number>MAX)
      {
          cout<<"通讯录已满,无法再继续添加"<<endl;
         return ;
      }
    else
    {
        string name;
        cout<<"请你输入姓名"<<endl;
        cin>>name;
        p->personarry[p->people_number].m_Name=name;
        cout << "请输入性别:" << endl;
		cout << "1 -- 男" << endl;
		cout << "2 -- 女" << endl;
				//性别
		int sex = 0;
		while (true)
		{
			cin >> sex;
			if (sex == 1 || sex == 2)
			{
				p->personarry[p->people_number].m_Sex = sex;
				break;
			}
			cout << "输入有误,请重新输入";
		}
				//年龄
		cout << "请输入年龄:" << endl;
		int age = 0;
		cin >> age;
		p->personarry[p->people_number].m_Age = age;

		//联系电话
		cout << "请输入联系电话:" << endl;
		string phone = "";
		cin >> phone;
		p->personarry[p->people_number].m_Phone = phone;

		//家庭住址
		cout << "请输入家庭住址:" << endl;
		string address;
		cin >> address;
		p->personarry[p->people_number].m_Addr = address;
		p->people_number++;
        system("pause");
		system("cls");        // 清屏操作
    }


}
/******************
删除函数
*********************/
void Delete_All(addressbooks * p)
{

    cout<<"您是要全部删除1还是选择个人姓名删除"<<endl;
    int i;
    cin>>i;
    if(i==0)
       {cout<<"您选择的是删除全部信息,确定yes"<<endl;
        string nam;
        cin>>nam;
        if(nam=="Y"||nam=="yes")
            p->people_number=0;
        else
            cout<<"您没有进行最后删除确认,没有删除信息";

       }
    else
        {cout<<"您选择的是进行个人信息的删除"<<endl;
        string na;
        cout<<"请你输入需要删除的人信息的名字"<<endl;
        cin>>na;
        for(int j=0;j<p->people_number;j++)
            if(na==p->personarry[j].m_Name)
                {
                    cout<<"本人信息存在,已经找到"<<endl;
                   p->personarry[j].m_Name="None";
                   p->personarry[j].m_Sex =0;
                   p->personarry[j].m_Phone="None";
                   p->personarry[j].m_Addr="None";
                   p->personarry[j].m_Age=0;
                }
        }

}



/****************************
修改函数
******************************/
void Modify_All(addressbooks * p)
{

    while(true)
  {

 cout<<"请你输入需要修改联系人的姓名"<<endl;
    string name;
    cin>>name;
    for(int j=0;j<p->people_number;j++)
            if(name==p->personarry[j].m_Name)
                { cout<<"请你输入修改后的姓名"<<endl;
                  cin>>name;
                  p->personarry[j].m_Name=name;
                  cout<<"请你输入修改后的年纪"<<endl;
                  int age;
                  cin>>age;
                  p->personarry[j].m_Age=age;
                  cout<<"请你输入修改后的性别"<<endl;
                  int sex;
                  cin>>sex;
                  p->personarry[j].m_Sex =sex;
                  cout<<"请你输入修改后的家庭地址"<<endl;
                  string add;
                  cin>>add;
                  p->personarry[j].m_Addr=add;
                  cout<<"请你输入修改后的联系联系电话"<<endl;
                  string pho;
                  cin>>pho;
                  p->personarry[j].m_Phone=pho;
                  cout<<"修改完毕"<<endl;
}
  cout<<"你是否退出修改(请你按1)?"<<endl;
  int shd;
  cin>>shd;
  if(shd==1)
    break;


  }
}






Modify.h

#ifndef MODIFY_H_INCLUDED
#define MODIFY_H_INCLUDED
#include <iostream>
#include <string>  //string头文件
using namespace std;
#define MAX 1000
//联系人结构体

void AddPerson(struct addressbooks * p);
void Delete_All(addressbooks * p);
void Modify_All(addressbooks * p);
struct Person
{
	string m_Name; //姓名
	int m_Sex; //性别:1男 2女
	int m_Age; //年龄
	string m_Phone; //电话
	string m_Addr; //住址
};

//通讯录结构体
struct addressbooks
{
struct Person personarry[MAX];//联系人结构体数组
int people_number;//统计联系人个数
};
#endif // MODIFY_H_INCLUDED

Show.cpp

#include"Show.h"
#include"Modify.h"
/****************************
*****************************/
void Show_All(struct addressbooks *p)
{
    while(true)
   {

   cout<<"您是查询所以学生信息(1)还是按照信息进行搜索(2)"<<endl;
    int i;
    cin>>i;
    if(i==1)
    {
        cout<<"您选入的是选择全部的学生信息,学生全部信息如下"<<endl;
        for(int j=0;j<p->people_number;j++)
            cout<<"\t名字是: "<<p->personarry[j].m_Name<<"\t性别是: "<<p->personarry[j].m_Sex
            <<"\t年龄是: "<<p->personarry[j].m_Age<<"\t电话号码是: "
            <<p->personarry[j].m_Phone<<"\t家庭住址是: "<<p->personarry[j].m_Addr
            <<endl;
    }
    else if(i==2)
    {
        cout<<"您选择的是展示部分信息,请你输入需要展示的姓名"<<endl;
        string na;
        cin>>na;
        for(int j=0;j<p->people_number;j++)
            if(na==p->personarry[j].m_Name)
            cout<<"\t名字是: "<<p->personarry[j].m_Name<<"\t性别是: "<<p->personarry[j].m_Sex
            <<"\t年龄是: "<<p->personarry[j].m_Age<<"\t电话号码是: "
            <<p->personarry[j].m_Phone<<"\t家庭住址是: "<<p->personarry[j].m_Addr
            <<endl;
        else
            cout<<"没有你想要找到的人的姓名";
    }

    else
        cout<<"请你正确的输入需要查询的信息,或者放弃本次查询功能"<<endl;
    cout<<"是否继续查询,推出请您按1"<<endl;
    int j;
    cin>>j;
    if(j==1)
        break;

}
}

Show.h

#ifndef SHOW_H_INCLUDED
#define SHOW_H_INCLUDED

#include <iostream>
#include <string>  //string头文件
using namespace std;
void Show_All(struct addressbooks *p);
#endif // SHOW_H_INCLUDED

运行结果

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书中藏着宇宙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值