于C++的通訊錄管理系統設計(初版)
要求:
1,具有添加聯系人功能
2,具有刪除聯系人功能
3,具有修改聯系人功能
4,具有查找聯系人功能
5,具有清空所有聯系人功能
注意:此次設計主要是為了讓大家鞏固一下C語言相關知識點(如:結構體,指針的使用),同時也熟悉C++基礎語法,為今后的單片機開發或嵌入式開發打下更好的軟件編程基礎。因此編寫的程序并不涉及文件操作等知識點。
此次設計在B站(UP主:逗比小憨憨)最近直播講解過。
以下是源碼:(還需自己進一步完善和調試,基本功能已實現)
#include "Address_Book_Management_System.h"
//display menu function
void Show_Menu(void)
{
cout << "****** 1,添加聯系人 ******" << endl;
cout << "****** 2,顯示聯系人 ******" << endl;
cout << "****** 3,刪除聯系人 ******" << endl;
cout << "****** 4,查找聯系人 ******" << endl;
cout << "****** 5,修改聯系人 ******" << endl;
cout << "****** 6,清空聯系人 ******" << endl;
cout << "****** 7,退出通訊錄 ******" << endl;
}
//添加聯系人
int Add_Person(struct AddressList *addperson)
{
if (addperson->size==MAX)
{
cout << "通訊錄已滿 無法添加" << endl;
return -1;
}
else
{
//添加聯系人
string name;
cout << "請輸入欲添加聯系人的名字:" << endl;
cin >> name;
addperson->person_arr[addperson->size].name=name;
cout << "請輸入欲添加聯系人的性別:" << endl;
cout << "6 ---- 男" << endl;
cout << "9 ---- 女" << endl;
int gender;
for(;;)
{
cout << "請輸入欲添加聯系人的性別:" << endl;
cin >> gender;
if((gender==6) || (gender==9))
{
addperson->person_arr[addperson->size].gender=gender;
break;
}
else
{
cout << "輸入有誤,請重新輸入!!!" << endl;
}
}
int age;
for(;;)
{
cout << "請輸入欲添加聯系人的年齡:" << endl;
cin >> age;
if((age >=1) && (age <=150))
{
addperson->person_arr[addperson->size].age=age;
break;
}
else
{
cout << "輸入有誤,請重新輸入!!!" << endl;
}
}
string phone_num;
for(;;)
{
cout << "請輸入欲添加聯系人的聯系電話:" << endl;
cin >> phone_num;
if( phone_num.length()==11)
{
addperson->person_arr[addperson->size].phone_num=phone_num;
break;
}
else
{
cout << "輸入有誤,請重新輸入!!!" << endl;
}
}
string addr;
cout << "請輸入欲添加聯系人的地址:" << endl;
cin >> addr;
addperson->person_arr[addperson->size].addr=addr;
}
cout << "<添加聯系人成功>" << endl;
/*cout << "測試" << endl;
cout << "您添加的信息為:" << endl;
cout << addperson->person_arr[addperson->size].name << addperson->person_arr[addperson->size].gender
<< addperson->person_arr[addperson->size].age << addperson->person_arr[addperson->size].phone_num
<<addperson->person_arr[addperson->size].addr << endl;*/
addperson->size ++;//名單+1
system("pause");
system("cls");//清屏
return 0;
}
//顯示通訊錄
int Dispaly_Person(const struct AddressList *addperson)
{
if(addperson->size==0)
{
cout << "當前通訊錄為空" << endl;
}
else
{
for(int i=0; i < addperson->size; i ++)
{
cout << "通訊錄名單人員" << i+1 << endl;
cout << "姓名:" << addperson->person_arr[i].name << '\t';
cout << "性別:" << (addperson->person_arr[i].gender==6 ? "男": "女") << '\t';
cout << "年齡:" << addperson->person_arr[i].age << '\t';
cout << "電話:" << addperson->person_arr[i].phone_num << '\t';
cout << "地址:" << addperson->person_arr[i].addr << endl;
}
}
system("pause");
system("cls");//清屏
return 0;
}
//main menu function
int Main_Menu(void)
{
struct AddressList addresslist;
addresslist.size=0;
int select=7;//select show menu
while(1)
{
Show_Menu();
cout << "請選擇功能:" << endl;
cin >> select;
switch(select)
{
case 1:
Add_Person(&addresslist);
break; //1,添加聯系人
case 2:
Dispaly_Person(&addresslist);
break; //2,顯示聯系人
case 3:
Del_Person(&addresslist);
break; //3,刪除聯系人
case 4:
LookUp_Menu(&addresslist);
break; //4,查找聯系人
case 5:
Modify_Person(&addresslist);
break; //5,修改聯系人
case 6:
Clean_AddressList(&addresslist);
break; //6,清空聯系人
case 7:
cout << "通訊錄管理系統已退出" << endl;
return 0;//7,退出通訊錄
default:break;//非法操作
}
}
}
/*
函數名:根據人名 檢測聯系人
描述:
如果存在聯系人,則返回具體位置
否則,則返回-1
注意:關于通訊錄中同名的情況,這里不加考慮
*/
int Check_Person_Name(const struct AddressList *addperson ,string name)
{
int i=0;
int flag=MAX + 1;
for(i; i < addperson->size; i ++)
{
if(name==addperson->person_arr[i].name)
{
flag=i;
break;//測試
//return i;
}
}
//測試
if (i <=addperson->size)
{
cout << "通訊錄名單人員" <<endl;
cout << "姓名:" << addperson->person_arr[flag].name << '\t';
cout << "性別:" << (addperson->person_arr[flag].gender==6 ? "男": "女") << '\t';
cout << "年齡:" << addperson->person_arr[flag].age << '\t';
cout << "電話:" << addperson->person_arr[flag].phone_num << '\t';
cout << "地址:" << addperson->person_arr[flag].addr << endl;
return flag;//沒查到
}
else
{
return -1;
}
}
//刪除聯系人
void Del_Person(struct AddressList *addperson)
{
int ret=-1;
cout << "進入刪除聯系人功能,謹慎操作!!!" << endl;
cout << "請輸入您要刪除的聯系人的姓名:" << endl;
string name;
cin >> name;
ret=Check_Person_Name(addperson,name);
if(ret==-1)
{
cout << "查無此人" << endl;
}
else//查到
{
for(int i=ret; i < addperson->size; i++)
{
addperson->person_arr[i]=addperson->person_arr[i + 1] ;
}
addperson->size --;
cout << "刪除成功" << endl;
}
system("pause");
system("cls");//清屏
}
int Check_Person_Age(const struct AddressList *addperson ,int age)
{
return 0;
}
int Check_Person_Gender(const struct AddressList *addperson ,int gender)
{
return 0;
}
int Check_Person_Phone_num(const struct AddressList *addperson ,string phone_num)
{
return 0;
}
int Check_Person_Addr(const struct AddressList *addperson ,string addr)
{
return 0;
}
//查找聯系人小菜單
int LookUp_Menu(const struct AddressList *addperson)
{
int select=0;
while(true)
{
cout << "****** 1,按名字查找 ******" << endl;
cout << "****** 2,按性別查找 ******" << endl;
cout << "****** 3,按年齡查找 ******" << endl;
cout << "****** 4,按電話查找 ******" << endl;
cout << "****** 5,按地址查找 ******" << endl;
cout << "****** 6,退出查找功能 ******" << endl;
cout << "請選擇功能:" << endl;
cin >> select;
switch(select)
{
case 1:
{
string name;
cout << "請輸入待查找聯系人的名字:" <<endl;
cin >> name;
if(Check_Person_Name(addperson,name));//not modify
break;
}
case 2://not modify
{
int gender;
cout << "請輸入待查找聯系人的性別:" <<endl;
cin >> gender;
Check_Person_Gender(addperson,gender);
break;
}
case 3:
{
int age;
cout << "請輸入待查找聯系人的年齡:" <<endl;
cin >> age;
Check_Person_Age(addperson,age);
break;
}
case 4:
{
string phone_num;
cout << "請輸入待查找聯系人的電話:" <<endl;
cin >> phone_num;
Check_Person_Phone_num(addperson,phone_num);
break;
}
case 5:
{
string addr;
cout << "請輸入待查找聯系人的地址:" <<endl;
cin >> addr;
Check_Person_Addr(addperson,addr);
break;
}
case 6:
{
cout << "退出查找功能" << endl;
system("pause");
system("cls");//清屏
return 0;//7,退出通訊錄
}
default:break;//非法操作
}
select=0;
system("pause");
system("cls");//清屏
}
system("pause");
system("cls");//清屏
return 0;
}
//修改聯系人信息,根據姓名進行修改
void Modify_Person(struct AddressList *addperson )
{
int ret;
struct Person temp;
string name;
cout << "進入通訊錄修改模式" << endl;
cout << "輸入欲修改信息的名字:"<< endl;
cin >> name;
ret=Check_Person_Name(addperson,name);
if(ret==-1)
{
cout << "查無此人,無法進行信息修改!!!" << endl;
return ;
}
else
{
cout << "通訊錄中查到此人" << endl;
cout << "請輸入修改相關信息:"<< endl;
cout << "請輸入修改后的姓名:"<< endl;
//string name;
cin >> temp.name;
//addperson->person_arr[ret].name=name;
cout << "請輸入修改后的性別:"<< endl;
//int gender;
cin >> temp.gender;
//addperson->person_arr[ret].gender=gender;
cout << "請輸入修改后的年齡:"<< endl;
//int age;
cin >> temp.age;
//addperson->person_arr[ret].age=age;
cout << "請輸入修改后的電話:"<< endl;
//string phone_num;
cin >> temp.phone_num;
//addperson->person_arr[ret].phone_num=phone_num;
cout << "請輸入修改后的地址:"<< endl;
//string addr;
cin >> temp.addr;
//addperson->person_arr[ret].addr=addr;
cout << "修改后的信息如下:" << endl;
cout << "姓名:" << temp.name << '\t'
<< "性別:" << temp.gender<< '\t'
<< "年齡:" << (temp.age==6 ?"男":"女")<< '\t'
<< "電話號碼:" << temp.phone_num<< '\t'
<< "地址:" <<temp.addr << endl;
cout << "是否確認修改" << endl;
int enter=0;
cout << "1,確認修改" << endl;
cout << "其它鍵取消" << endl;
cin >> enter;
if(enter==1)
{
addperson->person_arr[ret]=temp;
cout << "修改成功" << endl;
}
else
{
cout << "取消修改" << endl;
}
}
system("pause");
system("cls");//清屏
}
//清空通訊錄
void Clean_AddressList(struct AddressList *addperson)
{
int method=0;
cout << "請選擇清空方式:" << endl;
cout << "1,物理清空" << endl;
cout << "2,邏輯清空" << endl;
cin >> method;
if(method==1)
{
//物理清空
cout << "此功能暫時無法使用" << endl;
}
else if(method==2)
{
addperson->size=0;//邏輯清空
cout << "通訊錄已清空" << endl;
}
else
cout << "輸入有誤" << endl;
system("pause");
system("cls");//清屏
}
#ifndef __Address_Book_Management_System_H
#define __Address_Book_Management_System_H
#include <iostream>
#include <string>
using namespace std;
struct Person
{
string name; //姓名
int gender; //性別
int age; //年齡
string phone_num; //電話號碼
string addr; //住址
};
#define MAX 100 //通訊錄中最大的數量
struct AddressList
{
struct Person person_arr[MAX];//通訊錄名單
int size;//通訊錄當前記錄的個數
};
void Show_Menu(void);
int Add_Person(struct AddressList *addperson);
int Dispaly_Person(const struct AddressList *addperson);
int Main_Menu(void);
int Check_Person_Name(const struct AddressList *addperson ,string name);
void Del_Person(struct AddressList *addperson);
int Check_Person_Age(const struct AddressList *addperson ,int age);
int Check_Person_Gender(const struct AddressList *addperson ,int gender);
int Check_Person_Phone_num(const struct AddressList *addperson ,string phone_num);
int Check_Person_Addr(const struct AddressList *addperson ,string addr);
int LookUp_Menu(const struct AddressList *addperson);
void Modify_Person(struct AddressList *addperson);
void Clean_AddressList(struct AddressList *addperson);
#endif
#include "Address_Book_Management_System.h"
int main()
{
Main_Menu();
system("pause");
return 0;
}
更多精彩內容:
微信公眾號 或 號 或 B站 搜索并關注 “逗比小憨憨”
錫前洲辦公軟件培訓,品文教育小班教學,零基礎學到會
洛社周邊專業電腦設計培訓機構,無錫品文教育
辦公軟件不會用,Word不會寫,Excel表不會畫??,PPT不會做。工作做不好,怎么升職加薪?
不用擔心,品文教育讓你從小白變成大神。
【培訓內容】
一、計算機基礎知識
2、 計算機的發展、類型及應用領域及數據的表示與存儲
3、 多媒體技術、計算機病毒及因特網的概念、組成、和分類
4、 計算機與網絡信息安全的概念和防控
5、 Outlook 電子郵箱的郵件處理
【 Word 的功能和使用】
3、 Word 的基本功能,文檔的創建、編輯、保存、打印及保護等基本操作
4、 文字的字體段落樣式的設置及頁眉頁腳目錄及頁面的布局
5、 文檔中圖片文本框的插入,表格的繪制計算、郵件合并批量處理
【 Excel 功能的數據處理及圖表的轉化】
4、 單元格格式的設置、數據格式的設置、工作簿及工作表的保護修訂
5、 單元格的引用、公式和函數的使用數據的排序、篩選、分類匯總、合并計算
6、 數據透視表和數據透視圖的
【 PPT 演示文稿的使用】
1、 演示文稿的主題設置、背景、母版的制作、
2、 幻燈片中文本、圖形、 SmartArt、圖像圖表音頻、視頻、藝術字等的插入
3、 幻燈片中對象動畫、幻燈片切換效果、鏈接操作等交互設置
商務辦公有五點要求:一是首先寫出日常工作的內容。二是將日常工作的內容的重要性按照先后順序排列。三是寫出每天可以利用的時間。四是將 重要的事情盡量排在前面,而且時間盡量要安排多一些。五是將排在后面的內容可以安排少一些時間,如果不是非做不可的事情,可以將其刪去。
Windows系統操作大全
辦公軟件班學習內容
圖片處理和工程白領設計
設計:軟件的基本操作,實例講解:
1、 婚紗摳圖與合成
2、 商業海報精美制作
3、 公司年會慶典特效制作
設計:1、基本操作 2、圖紙繪制實戰 3、建筑詳圖的繪制 4、三維建模 以及圖形導出 5、圖紙布局輸出 6、辦公室、娛樂會所、小區住宅、學校圖書 館、別墅建筑等
聯系人:王老師
電話:17712390035
你的手里有一個excel表格,里面有聯系人,幾百個、幾千個、甚至幾萬個,你想把他們快速批量存入手機通訊錄,不管你是安卓手機還是蘋果手機,跟著下面的操作方法,通過借助工具,金芝號碼提取導入助手,均可一鍵批量快速導入,僅僅幾步和幾分鐘即可搞定。
(1)把你的excel表格在電腦上打開,就像我下圖那樣,銘字和號碼準備好,沒有銘字也沒有關系,照樣可以導入,直接多復制一遍就可以。聲明:我下圖的材料是虛擬的,并非真實,僅作為講解導入過程使用。
(2)把銘字和號碼,分別復制好,各自粘貼到工具,金芝號碼提取導入助手,第一個框和第二個框,放好了以后,點下方的“轉換通訊祿”,即可出來一個文件,把它保存到電腦桌面,同時起個好記的文件名比如abc,這樣待會好認好找。
(3)把上一步轉換好的放在電腦桌面的文件abc,發送給你的手機,可以借助電腦某信或者電腦球球,發送給你的手機某信或者手機球球,這是兩種常見的傳送文件的方式,一般的人都懂。
(4)在你的手機上,點開剛才接收到的文件,選擇“其他應用方式打開”,順著提示一步步操作即可完成。安卓手機,選“聯系仁”或者“電括本”或者“撥號與聯系仁”等常見的選項,確定導入。蘋果手機,下方有個“通訊祿”,就選它,存儲,導入確定。
通過便捷的工具,金芝號碼提取導入助手,來跟著上面的四步講解來看看,操作的過程其實很快,花不了幾分鐘,導入的過程也是個把分鐘,就能搞定的。