概述
此項目適合c++初學者,針對前面c++基礎知識,涉及到變量、結構體定義使用、數組定義使用、指針定義使用等。
c++實現通訊錄管理系統(控制檯版)
運行之後的結果如下:
代碼:
#include <iostream>
#include <string>
using namespace std;
#define MAX 1000//定義通訊錄最大容量爲1000
//聯繫人結構體
struct person
{
string name;
int sex;
int age;
string address;
};
//通訊錄結構體
struct contact
{
struct person p[MAX];
int size;
};
//操作菜單
void showMenu() {
cout << "*********通訊錄管理系統**********" << endl;
cout << "********* 1.增加聯繫人 **********" << endl;
cout << "********* 2.刪除聯繫人 **********" << endl;
cout << "********* 3.修改聯繫人 **********" << endl;
cout << "********* 4.查詢聯繫人 **********" << endl;
cout << "********* 5.顯示聯繫人 **********" << endl;
cout << "********* 6.清空通訊錄 **********" << endl;
cout << "********* 0.退出通訊錄 **********" << endl;
}
//封裝查詢聯繫人是否存在
int isExist(contact* con, string name) {
for (int i = 0; i < con->size; i++) {
if (con->p[i].name == name) {
return i;
}
}
return -1;
}
//添加聯繫人函數
void addPerson(contact *con){//傳入數組的指針
if (con->size == MAX) {
cout << "通訊錄已滿"<<endl;
}
else {
cout << "輸入姓名";
string name;
cin >> name;
cout << "輸入年齡";
int age;
cin >> age;
cout << "輸入性別1:女 2:男";
int sex;
cin >> sex;
cout << "輸入地址";
string address;
cin >> address;
con->p[con->size].name = name;
con->p[con->size].age = age;
con->p[con->size].sex = sex;
con->p[con->size].address = address;
con->size++;
}
cout << "添加成功"<<endl;
system("pause");
}
//刪除聯繫人函數
void deletecon(contact* con) {
string name;
cout << "輸入要刪除的姓名";
cin >> name;
int res = isExist(con,name);
if (res != -1) {
for (int i = res; i < con->size; i++) {
con->p[res] = con->p[res + 1];
}
cout << "刪除成功" << endl;
con->size--;
}
else {
cout << "查無此人"<<endl;
}
system("pause");
}
//修改聯繫人函數
void updateContact(contact* con) {
string name;
cout << "輸入要修改的聯繫人姓名查詢" << endl;
cin >> name;
int res = isExist(con, name);
if (res != -1) {
cout << "姓名:" << con->p[res].name << "年齡:" << con->p[res].age << "性別:" << (con->p[res].sex == 1 ? "女" : "男") << "地址:" << con->p[res].address << endl;
cout << "輸入修改姓名";
string nametemp;
cin >> nametemp;
con->p[res].name = nametemp;
cout << "輸入修改年齡" << endl;
int age;
cin >> age;
con->p[res].age = age;
cout << "輸入修改性別1:女2:男" << endl;
int sex;
cin >> sex;
con->p[res].sex = sex;
cout << "輸入修改地址" << endl;
string address;
cin >> address;
con->p[res].address = address;
cout << "修改成功" << endl;
}
else {
cout << "查無此人" << endl;
}
system("pause");
}
//查詢聯繫人函數
void search(contact *con) {
string name;
cout << "輸入姓名查詢"<<endl;
cin >> name;
int res = isExist(con, name);
if (res != -1) {
cout << "姓名:" << con->p[res].name << "年齡:" << con->p[res].age << "性別:" <<(con->p[res].sex==1?"女":"男")<<endl;
}
else {
cout << "查無此人" << endl;
}
system("pause");
}
//清空聯繫人函數
void clearContact(contact* con) {
con->size = 0;
cout << "已清空通訊錄"<<endl;
system("pause");
}
//顯示聯繫人函數
void showContact(contact* con) {
if (con->size == 0) {
cout << "暫無聯繫人"<<endl;
}
else {
for (int i = 0; i < con->size; i++) {
cout <<"姓名:"<< con->p[i].name <<"年齡:"<< con->p[i].age <<"地址:"<< con->p[i].address <<"性別:"<<(con->p[i].sex==1?"女":"男") << endl;
}
}
system("pause");
}
//退出系統函數
int exitapp() {
exit(0);
}
/**
通訊錄管理系統主程序
*/
int main() {
contact con;
con.size = 0;
while (true)
{
system("cls");//清屏
showMenu();
cout << "輸入你的選擇";
int select;
cin >> select;
switch (select) {
case 1:
addPerson(&con);
break;
case 2:
deletecon(&con);
break;
case 3:
updateContact(&con);
break;
case 4:
search(&con);
break;
case 5:
showContact(&con);
break;
case 6:
clearContact(&con);
break;
case 0://退出
exitapp();
break;
}
}
}
獲取源碼關注公衆號 java一號 回覆 通訊錄即可。