这是一个管理系统,它的不同点在于它的.cpp文件与.c文件时分开写的。
通讯管理系统分为四个部分:AddressBook.h,main.h,AddressBook.cpp,main.cpp。
1.AddressBook.h文件
#include"main.h"
class AddressBook
{
private:
/* data */
public:
void catalog();
struct Person;
struct Add_Person ;
void cata1();
void cata2();
void cata3();
void cata4();
void cata5();
void cata6();
};
2.main.h
#pragma once
#include <iostream>
#include <locale>
#include <string>
#include <limits>
#include <stdlib.h>
using namespace std;
3.AddressBook.cpp文件
#include"AddressBook.h"
#define Max 145
void AddressBook::catalog()
{
cout<< "**************************************" <<endl;
cout<< "********** 1.添加联系人 **********" <<endl;
cout<< "********** 2.显示联系人 **********" <<endl;
cout<< "********** 3.删除联系人 **********" <<endl;
cout<< "********** 4.查找联系人 **********" <<endl;
cout<< "********** 5.修改联系人 **********" <<endl;
cout<< "********** 6.清空联系人 **********" <<endl;
cout<< "********** 0.退出通讯录 **********" <<endl;
cout<< "**************************************" <<endl;
}
// 联系人结构体
struct Person
{
string name; // 姓名
int sex; // 性别,1男人,2女人
int age; // 年龄
string phone; // 电话
string address; // 地址
};
//通讯录结构体
struct Add_Person{
struct Person personArray [Max];
int m_size;
}sons;
//1.添加联系人,添加联系人,姓名,性别,年龄,联系电话,家庭住址
void aa(Add_Person *as){
if(as->m_size == Max){
cout<< "通讯录已满" <<endl;
return;
}else{
cout<< "请输入姓名" <<endl;
cin>> as->personArray[sons.m_size].name;
cout<< "请输入性别" <<endl;
cout<< "1.男" <<"2.女" <<endl;
cin>> as->personArray[sons.m_size].sex;
cout<< "请输入年龄" <<endl;
cin>> as->personArray[sons.m_size].age;
cout<< "请输入联系电话" <<endl;
cin>> as->personArray[sons.m_size].phone;
cout<< "请输入家庭住址" <<endl;
cin>> as->personArray[sons.m_size].address;
as->m_size++;
cout<< "添加成功" <<endl;
}
}
//2.显示联系人
void bb(Add_Person *as){
if(sons.m_size == 0){
cout<< "抱歉您现在通讯录为空,请添加联系人" <<endl;
cout<< sons.m_size <<endl;
return;
}else{
for(int i = 0;i < sons.m_size;i++){
//cout<<sons.m_size<<endl;
cout<< "姓名:" << as->personArray[i].name <<endl;
cout<< "性别:" << as->personArray[i].sex <<endl;
cout<< "年龄:" << as->personArray[i].age <<endl;
cout<< "联系电话:" << as->personArray[i].phone <<endl;
cout<< "家庭住址:" << as->personArray[i].address <<endl;
cout<< "----------------------------------------" <<endl;
}
}
}
//3.删除联系人
void cc(Add_Person *as){
if(sons.m_size == 0){
cout<< "抱歉您现在通讯录为空,请添加联系人" <<endl;
return;
}else{
cout<< "请输入您要删除的联系人姓名" <<endl;
string name;
cin>> name;
for(int i = 0;i < sons.m_size;i++){
int j = i;
if(as->personArray[i].name == name){
for(int i = j;i < sons.m_size;i++){
as->personArray[i] = as->personArray[i+1];
}
sons.m_size--;//数据更新
cout<< "删除成功" <<endl;
return;
}else{
cout<< "您输入的联系人不存在" <<endl;
continue;
}
}
}
}
//4.查找联系人
void dd(Add_Person *as){
if(sons.m_size == 0){
cout<< "抱歉您现在通讯录为空,请添加联系人" <<endl;
return;
}else{
cout<< "请输入您要查找的联系人姓名" <<endl;
string name;
cin>> name;
for(int i = 0;i < sons.m_size;i++){
if(as->personArray[i].name == name){
cout<<"您要查找的人信息如下:"<<endl;
cout<< "姓名:" << as->personArray[i].name <<endl;
cout<< "性别:" << as->personArray[i].sex <<endl;
cout<< "年龄:" << as->personArray[i].age <<endl;
cout<< "电话:" << as->personArray[i].phone <<endl;
cout<< "地址:" << as->personArray[i].address <<endl;
return;
}
}
cout<< "您输入的联系人不存在" <<endl;
return;
}
}
//5.修改联系人
void ee(Add_Person *as){
if(sons.m_size == 0){
cout<<"抱歉你的通讯录目前为空,请添加联系人"<<endl;
}else{
cout<< "请输入您要修改的联系人姓名" <<endl;
string name;
cin>> name;
for(int i = 0;i < sons.m_size;i++){
if(as->personArray[i].name == name){
cout<< "请确认您要修改的信息" <<endl;
cout<< "姓名:" << as->personArray[i].name <<endl;
cout<< "性别:" << as->personArray[i].sex <<endl;
cout<< "年龄:" << as->personArray[i].age <<endl;
cout<< "电话:" << as->personArray[i].phone <<endl;
cout<< "地址:" << as->personArray[i].address <<endl;
system("pause");
cout<<"1.确认"<<endl;
cout<<"2.取消"<<endl;
int a;
cin>> a;
if(a == 1){
//姓名
cout<< "请输入您要修改的姓名" <<endl;
string name1;
cin>> name1;
as->personArray[i].name = name1;
//性别
cout<< "请输入您要修改的性别" <<endl;
cout<<"1-男,2-女"<<endl;
int sex;
cin>> sex;
as->personArray[i].sex = sex;
//年龄
cout<< "请输入您要修改的年龄" <<endl;
int age;
cin>> age;
as->personArray[i].age = age;
//电话
cout<< "请输入您要修改的电话" <<endl;
string phone;
cin>> phone;
as->personArray[i].phone = phone;
//地址
cout<< "请输入您要修改的地址" <<endl;
string address;
cin>> address;
as->personArray[i].address = address;
cout<< "修改成功" <<endl;
break;
}else if (a == 2)
{
cout<<"取消"<<endl;
break;
}
}
}
}
}
//6.清空联系人
void ff(Add_Person *as){
if(sons.m_size == 0){
cout<<"抱歉你的通讯录目前为空"<<endl;
}else{
cout<<"请确认你要清空联系人"<<endl;
cout<<"1.确认"<<endl;
cout<<"2.取消"<<endl;
int a;
cin>>a;
if(a == 1){
sons.m_size = 0;
system("pause");
system("cls");
cout<<"联系人已清空"<<endl;
}else if(a == 2){
cout<<"取消"<<endl;
return;
}
}
}
void AddressBook::cata1()
{
aa(&sons);
}
void AddressBook::cata2()
{
bb(&sons);
}
void AddressBook::cata3()
{
cc(&sons);
}
void AddressBook::cata4(){
dd(&sons);
}
void AddressBook::cata5(){
ee(&sons);
}
void AddressBook::cata6(){
ff(&sons);
}
main.cpp文件
#include"AddressBook.h"
int main(){
//通讯录系统:
/*1.添加联系人,信息包括(姓名,性别,年龄,联系电话,家庭住址)最多纪录145人
2.显示联系人
3.删除联系人
4.查找联系人
5.修改联系人
6.清空联系人
7.退出当前
*/
AddressBook ab;
while(true){
int x = 0;
ab.catalog();
cin >> x ;
switch (x)
{
case 1:
ab.cata1();
break;
case 2:
ab.cata2();
break;
case 3:
ab.cata3();
break;
case 4:
ab.cata4();
break;
case 5:
ab.cata5();
break;
case 6:
ab.cata6();
break;
case 0:
cout << "欢迎下次使用" << endl;
system("pause");
return 0;
break;
default:
cout << "输入错误" << endl;
break;
}
}
return 0;
}