通讯录管理系统
通讯录是一个可以记录亲人、好友联系信息的工具。
本教程主要利用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
运行结果