1. 程式人生 > 其它 >C++通訊錄管理系統

C++通訊錄管理系統

技術標籤: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; } } }

初始介面如下():
在這裡插入圖片描述