RegEx (18) - 使用字元 \w (小寫字母)
阿新 • • 發佈:2021-01-16
技術標籤:c++
功能
僅僅在記憶體上實現簡單的通訊錄,不涉及資料庫,程式終止資料不存
- 新增聯絡人
- 顯示聯絡人
- 刪除聯絡人
- 查詢聯絡人
- 修改聯絡人
- 清空聯絡人
- 退出通訊錄
對應子函式
void showMenu()//顯示選單
void addPerson(Addressbooks *p)//新增聯絡人
void showPerson(Addressbooks* p)//顯示聯絡人
void deletePerson(Addressbooks* p)//刪除聯絡人
void findPerson(Addressbooks* p)//查詢聯絡人
void changePerson(Addressbooks* p) //修改聯絡人
void cleanPerson(Addressbooks* p)//清空聯絡人
完整程式碼(一個cpp檔案就可以)
#include <iostream>
#include <string>
using namespace std;
#define MAX 500//聯絡人最大數量
//聯絡人結構體
struct Person
{
string m_Name="";
int m_Sex=0;
int m_Age=0;
string m_Phone="";
string m_Addr="" ;
};
//通訊錄結構體
struct Addressbooks {
//通訊錄中儲存的聯絡人陣列
struct Person personArray[MAX];
//通訊錄中記錄的聯絡人個數
int m_Size;
};
void showMenu() {
cout << "|1、新增聯絡人|" << endl;
cout << "|2、顯示聯絡人|" << endl;
cout << "|3、刪除聯絡人|" << endl;
cout << "|4、查詢聯絡人|" << endl;
cout << "|5、修改聯絡人|" << endl;
cout << "|6、清空聯絡人|" << endl;
cout << "|0、退出通訊錄|" << endl;
}
void addPerson(Addressbooks *p) {
if (p->m_Size >= MAX) {
cout << "通訊錄已滿" << endl;
return;
}
else
{
//新增具體聯絡人
//姓名
string name;
cout << "請輸入姓名:" << endl;
cin >> name;
p->personArray[p->m_Size].m_Name=name;
//性別
int sex;
cout << "請輸入性別:" << endl;
cout << "1--男,2--女" << endl;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2) {
p->personArray[p->m_Size].m_Sex=sex;
break;
}
else
cout << "輸入有誤,清重新輸入" << endl;
}
//年齡
int age;
cout << "請輸入年齡:" << endl;
cin >> age;
p->personArray[p->m_Size].m_Age=age;
//電話
string phone;
cout << "請輸入電話:" << endl;
cin >> phone;
p->personArray[p->m_Size].m_Phone=phone;
//地址
string address;
cout << "請輸入地址:" << endl;
cin >> address;
p->personArray[p->m_Size].m_Addr=address;
p->m_Size++;
system("cls");
cout << "新增成功" << endl;
}
}
void showPerson(Addressbooks* p) {
if (p->m_Size == 0) {
system("cls");
cout << "列表為空,請新增聯絡人" << endl;
}
else
{
for (int i = 0; i < p->m_Size; i++) {
cout << "姓名 " << p->personArray[i].m_Name << endl;
cout << "性別 " << (p->personArray[i].m_Sex==1?"男":"女") << endl;
cout << "年齡 " << p->personArray[i].m_Age << endl;
cout << "電話 " << p->personArray[i].m_Phone << endl;
cout << "地址 " << p->personArray[i].m_Addr << endl;
}
}
system("pause");
system("cls");
}
void deletePerson(Addressbooks* p)
{
string name;
cout << "請輸入需要刪除的聯絡人姓名" << endl;
cin >> name;
for (int i = 0; i <= p->m_Size; i++)
{
if (name == p->personArray[i].m_Name)
{
for (int j = i; j < p->m_Size; j++)
p->personArray[j] = p->personArray[j + 1];
cout << "刪除成功" << endl;
p->m_Size--;
break;
}
else
{
cout << "查無此人,請確認後再執行刪除操作" << endl;
}
}
}
void cleanPerson(Addressbooks* p) {
int ifOrElse;//存放是否確定的變數值
cout << "確認清空聯絡人?" << endl;
cout << "1--是,2--否" << endl;
cin >> ifOrElse;
if (ifOrElse == 1)
p->m_Size = 0;
system("pause");
system("cls");
}
void changePerson(Addressbooks* p) {
//具體聯絡人
if (p->m_Size == 0) {
system("pause");
system("cls");
cout << "列表為空,請新增聯絡人" << endl;
}
else {
int i = 0;
string name;
cout << "請輸入需要修改的姓名:" << endl;
cin >> name;
for (; i < p->m_Size; i++)
{
if (name == p->personArray[i].m_Name)
{
cout << "查詢成功" << endl;
//姓名
cout << "請輸入姓名:" << endl;
cin >> name;
p->personArray[i].m_Name = name;
//性別
int sex;
cout << "請輸入性別:" << endl;
cout << "1--男,2--女" << endl;
while (true)
{
cin >> sex;
if (sex == 1 || sex == 2) {
p->personArray[i].m_Sex = sex;
break;
}
else
cout << "輸入有誤,清重新輸入" << endl;
}
//年齡
int age;
cout << "請輸入年齡:" << endl;
cin >> age;
p->personArray[i].m_Age = age;
//電話
string phone;
cout << "請輸入電話:" << endl;
cin >> phone;
p->personArray[i].m_Phone = phone;
//地址
string address;
cout << "請輸入地址:" << endl;
cin >> address;
p->personArray[i].m_Addr = address;
system("pause");
system("cls");
cout << "修改成功" << endl;
break;
}
}
if (i >= p->m_Size)
{
system("pause");
system("cls");
cout << "查無此人,請確認後再執行修改操作" << endl;
}
}
}
void findPerson(Addressbooks* p) {
if (p->m_Size == 0) {
system("cls");
cout << "列表為空,請新增聯絡人" << endl;
}
else
{
cout << "請輸入被查詢人姓名" << endl;
string name;
cin >> name;
for (int i = 0; i < p->m_Size; i++) {
if (name == p->personArray[i].m_Name) {
cout << "姓名 " << p->personArray[i].m_Name << endl;
cout << "性別 " << (p->personArray[i].m_Sex == 1 ? "男" : "女") << endl;
cout << "年齡 " << p->personArray[i].m_Age << endl;
cout << "電話 " << p->personArray[i].m_Phone << endl;
cout << "地址 " << p->personArray[i].m_Addr << endl;
break;
}
if(i>= p->m_Size)
{
cout << "查無此人,請重新確認後查詢" << endl;
}
}
}
system("pause");
system("cls");
}
int main()
{
Addressbooks abs;//建立結構體變數
abs.m_Size = 0;//設定通訊錄初始數量
string name;//存放改刪的人名
int select = 0;//建立使用者選擇變數
while (1) {
showMenu();
cin >> select;
switch (select)
{
case 1://增
addPerson(&abs);
break;
case 2://顯示
showPerson(&abs);
break;
case 3://刪
deletePerson(&abs);
break;
case 4://查
findPerson(&abs);
break;
case 5://改
changePerson(&abs);
break;
case 6://清空
cleanPerson(&abs);
break;
case 0://程式退出
cout << "歡迎下次使用!" << endl;
system("pause");
return 0;
default:
break;
}
}
}