C++通訊錄管理系統
阿新 • • 發佈:2020-12-19
技術標籤:c++
C++通訊錄管理系統
功能
1、新增聯絡人
2、顯示聯絡人
3、刪除聯絡人
4、查詢聯絡人
5、修改聯絡人
6、清空聯絡人
7、退出通訊錄
聯絡人的資訊包括:姓名、性別、年齡、聯絡方式(電話號碼)、家庭住址。
C++程式碼如下():
#include<iostream>
#include <windows.h>
#include<iomanip>
using namespace std;
#define num 100 //通訊錄中的人數
void showmenu1() //目錄函式
{
cout << "********************************" << endl;
cout << "****** 歡迎來到通訊錄系統 ******" << endl;
cout << "********************************" << endl;
}
void showmenu2()
{
cout << "***************************" << endl;
cout << "****** 1.新增聯絡人 ******" << endl;
cout << "****** 2.顯示聯絡人 ******" << endl;
cout << "****** 3.刪除聯絡人 ******" << endl;
cout << "****** 4.查詢聯絡人 ******" << endl;
cout << "****** 5.修改聯絡人 ******" << endl;
cout << "****** 6.清空聯絡人 ******" << endl;
cout << "****** 7.退出通訊錄 ******" << endl;
}
struct person //聯絡人結構體
{
string name;
string sex; //1-代表男,2-代表女
int age;
string tel;
string addr;
};
struct TXL
{
struct person perarr[num];
int Tsize; //通訊錄中當前的人數
};
void Addc(struct TXL* ml) //新增聯絡人函式
{
if (ml->Tsize < num)
{
string name; //聯絡人的姓名
cout<<"請輸入聯絡人的姓名:"<<endl;
cin >> name;
ml->perarr[ml->Tsize].name = name;
int sex1; //聯絡人的性別
cout<<"請輸入聯絡人的性別:(1代表男性,2代表女性)"<<endl;
cin >> sex1;
if (sex1 == 1)
{
ml->perarr[ml->Tsize].sex = "男";
}
else if (sex1 == 2)
{
ml->perarr[ml->Tsize].sex = "女";
}
else
{
cout << "輸入錯誤!" << endl;
ml->perarr[ml->Tsize].sex = "未知";
}
int age1; //聯絡人的年齡
cout << "請輸入聯絡人的年齡:" << endl;
cin >> age1;
ml->perarr[ml->Tsize].age = age1;
string tel1; //聯絡人的聯絡電話
cout << "請輸入聯絡人的聯絡電話:" << endl;
cin >> tel1;
ml->perarr[ml->Tsize].tel = tel1;
string addr1; //聯絡人的家庭住址
cout << "請輸入聯絡人的家庭住址:" << endl;
cin >> addr1;
ml->perarr[ml->Tsize].addr = addr1;
ml->Tsize++;
cout<<"新增成功!"<<endl;
system("pause");
system("cls"); //清屏
}
else
{
cout << "通訊錄已滿!" << endl;
system("pause");
system("cls"); //清屏
}
}
void printper(struct TXL* ml) //顯示聯絡人函式
{
if (ml->Tsize > 0)
{
int dist = 15; //輸出各項的間距
cout << std::left << setw(dist) << "姓名" << std::left << setw(dist) << "性別" << std::left << setw(dist) << "年齡" << std::left << setw(dist) << "聯絡電話:" << std::left << setw(dist) << "家庭地址" << endl;
for (int i = 0; i < ml->Tsize; i++)
{
cout << std::left << setw(dist) << ml->perarr[i].name << std::left << setw(dist) << ml->perarr[i].sex << std::left << setw(dist) << ml->perarr[i].age << std::left << setw(dist) <<ml->perarr[i].tel << std::left << setw(dist) <<ml->perarr[i].addr << endl;
}
system("pause");
system("cls"); //清屏
}
else
{
cout << "通訊錄為空" << endl;
system("pause");
system("cls"); //清屏
}
}
int Tfind(struct TXL* ml,string *Tname) //查詢聯絡人函式
{
for (int i = 0; i < ml->Tsize; i++)
{
if (ml->perarr[i].name == *Tname)
{
return i;
}
else
return -1;
}
}
void Tdel(struct TXL* ml, int *ret) //刪除聯絡人函式
{
for (int i = *ret; i < ml->Tsize-1; i++)
{
ml->perarr[i].name = ml->perarr[i + 1].name;
ml->perarr[i].age = ml->perarr[i + 1].age;
ml->perarr[i].addr = ml->perarr[i + 1].addr;
ml->perarr[i].sex = ml->perarr[i + 1].sex;
ml->perarr[i].tel = ml->perarr[i + 1].tel;
}
ml->Tsize--;
cout<<"刪除成功!"<<endl;
system("pause");
system("cls"); //清屏
}
int main()
{
int number=1,select=100,ret,dist=15;
TXL ml;
string Tname;
ml.Tsize = 0; //通訊錄人數初始化
showmenu1();
system("pause");
system("cls");
while (number)
{
showmenu2();
cin >> select;
switch (select)
{
case 1: //新增聯絡人
Addc(&ml);
break;
case 2: //顯示聯絡人
printper(&ml);
break;
case 3: //刪除聯絡人
{
cout<<"請輸入你要刪除的聯絡人(姓名):"<<endl;
cin >> Tname;
ret=Tfind(&ml,&Tname);
if (ret != -1)
{
Tdel(&ml, &ret);
}
else
cout<<"查無此人!"<<endl;
}
break;
case 4: //查詢聯絡人
{
cout << "請輸入你要查詢的聯絡人(姓名):" << endl;
cin >> Tname;
ret = Tfind(&ml, &Tname);
if (ret != -1)
{
cout << std::left << setw(dist) << "姓名" << std::left << setw(dist) << "性別" << std::left << setw(dist) << "年齡" << std::left << setw(dist) << "聯絡電話:" << std::left << setw(dist) << "家庭地址" << endl;
cout << std::left << setw(dist) << ml.perarr[ret].name << std::left << setw(dist) << ml.perarr[ret].sex << std::left << setw(dist) << ml.perarr[ret].age << std::left << setw(dist) << ml.perarr[ret].tel << std::left << setw(dist) << ml.perarr[ret].addr << endl;
system("pause");
system("cls");
}
else
{
cout << "查無此人!" << endl;
system("pause");
system("cls");
}
}
break;
case 5: //修改聯絡人
{
cout << "請輸入你要修改的聯絡人(姓名):" << endl;
cin >> Tname;
ret = Tfind(&ml, &Tname);
if (ret != -1)
{
string name; //聯絡人的姓名
cout << "請輸入聯絡人的姓名:" << endl;
cin >> name;
ml.perarr[ret].name = name;
int sex1; //聯絡人的性別
cout << "請輸入聯絡人的性別:(1代表男性,2代表女性)" << endl;
cin >> sex1;
if (sex1 == 1)
{
ml.perarr[ret].sex = "男";
}
else if (sex1 == 2)
{
ml.perarr[ret].sex = "女";
}
else
{
cout << "輸入錯誤!" << endl;
ml.perarr[ret].sex = "未知";
}
int age1; //聯絡人的年齡
cout << "請輸入聯絡人的年齡:" << endl;
cin >> age1;
ml.perarr[ret].age = age1;
string tel1; //聯絡人的聯絡電話
cout << "請輸入聯絡人的聯絡電話:" << endl;
cin >> tel1;
ml.perarr[ret].tel = tel1;
string addr1; //聯絡人的家庭住址
cout << "請輸入聯絡人的家庭住址:" << endl;
cin >> addr1;
ml.perarr[ret].addr = addr1;
system("pause");
system("cls");
}
else
{
cout << "查無此人!" << endl;
system("pause");
system("cls");
}
}
break;
case 6: //清空聯絡人
{
ml.Tsize = 0;
cout << "通訊錄已清空" << endl;
system("pause");
system("cls");
}
break;
case 7: //退出通訊錄
number = 0;
cout<<" 歡迎下次使用!"<<endl;
system("pause");
return 0;
break;
default:
break;
}
}
}
初始介面如下():