日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ 通讯录管理系统实验报告

發(fā)布時(shí)間:2025/3/17 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 通讯录管理系统实验报告 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【概述】

手機(jī)通訊錄中的聯(lián)系人的信息既可以存儲在手機(jī)中,也可以存儲在手機(jī)卡中,也可以同時(shí)存儲在兩個(gè)位置上(每個(gè)位置上的存儲容量為1000,即手機(jī)卡中或手機(jī)上最多只能存儲1000個(gè)聯(lián)系人)。

存儲在手機(jī)中的聯(lián)系人的信息只包含用戶名和電話號碼兩項(xiàng)信息。存儲在電話卡上的聯(lián)系人的信息除了上面提到的兩項(xiàng)信息外,還包含籍貫,QQ號等信息。

根據(jù)通用的手機(jī)通訊錄的使用方式,采用OOP(Object Oriented Programming,面向?qū)ο缶幊?#xff09;方法編寫一個(gè)手機(jī)通訊錄管理。

【要求】

1.創(chuàng)建文本文件,記錄聯(lián)系人的信息(需要?jiǎng)?chuàng)建兩個(gè)文本文件,分別存儲手機(jī)和手機(jī)卡上的存儲的聯(lián)系人的信息)。

2.以菜單方式工作(字符界面即可)

3.存儲在手機(jī)上的聯(lián)系人的信息包括:姓名和電話號碼;存儲在手機(jī)卡上的聯(lián)系人的信息包括姓名,籍貫,電話號碼,QQ號等信息

4.管理系統(tǒng)的功能包括:

????a)新建聯(lián)系人:添加新的聯(lián)系人(添加時(shí)確定是添加到手機(jī)上還是手機(jī)卡中)

????b)刪除:刪除一個(gè)聯(lián)系人(輸入電話號碼,刪除該聯(lián)系人。說明,如果兩個(gè)存儲位置上都存在該聯(lián)系人的話,需要在兩個(gè)存儲位置上都要進(jìn)行刪除操作)

????c)修改:修改某個(gè)聯(lián)系人的信息(輸入電話號碼,查詢到聯(lián)系人之后進(jìn)行信息的修改。說明,如果兩個(gè)存儲位置上都存在該聯(lián)系人的話,需要在兩個(gè)存儲位置上都要進(jìn)行修改操作)

????d)查詢:根據(jù)名字查詢聯(lián)系人信息(查詢結(jié)果不唯一)

????e)瀏覽:顯示所有聯(lián)系人的信息

????f)將聯(lián)系人的信息從手機(jī)轉(zhuǎn)存到手機(jī)卡上(同時(shí)要避免重復(fù)數(shù)據(jù)的存在。并且在轉(zhuǎn)存是要檢查容量是否受限。下同。)

????g)將聯(lián)系人的信息從手機(jī)卡上準(zhǔn)存到手機(jī)上(同時(shí)要避免重復(fù)數(shù)據(jù)的存在)

5.要支持繼承、多態(tài)、重載(運(yùn)算符重載、函數(shù)重載)等面向?qū)ο蟮幕咎攸c(diǎn)

6.提交程序源碼和課程設(shè)計(jì)報(bào)告。

7.課程設(shè)計(jì)評分說明:實(shí)現(xiàn)功能:通過;使用了繼承技術(shù):中;實(shí)現(xiàn)了運(yùn)算符的重載:良;支持多態(tài):優(yōu)

【實(shí)驗(yàn)過程分析】

一開始思路沒捋清楚,就簡單的分為聯(lián)系人類、通訊錄類、菜單類、用戶類四個(gè)類,然后在一個(gè)文件里按照功能一個(gè)個(gè)硬寫,敲了500多行發(fā)現(xiàn)不僅思路跑偏了而且代碼亂的寫不下去了,看了老師發(fā)的實(shí)驗(yàn)過程分析有了新思路,于是用多文件結(jié)構(gòu)的寫法,將下述的七個(gè)類分拆成聲明的頭文件和實(shí)現(xiàn)的源文件,成功實(shí)現(xiàn)。

說明:

1.實(shí)驗(yàn)過程分析為老師所發(fā)的過程分析+自己理解整合而成;

2.為了便于數(shù)據(jù)存儲與使用,聯(lián)系人姓名、號碼、籍貫、QQ均使用string類進(jìn)行操作;

3.為了易于進(jìn)行聯(lián)系人新建、刪除、修改、查詢等操作,故將手機(jī)通訊簿類和手機(jī)卡通訊簿類中的對象數(shù)組改用 STL 容器中的 vector 動(dòng)態(tài)數(shù)組;

4.為避免一個(gè)源文件中實(shí)現(xiàn)所有功能使得代碼冗長復(fù)雜,故使用多文件結(jié)構(gòu)進(jìn)行功能實(shí)現(xiàn);

5.程序的核心為手機(jī)通訊簿類與手機(jī)卡通訊簿類,實(shí)質(zhì)是具有手機(jī)聯(lián)系人對象與具有手機(jī)卡聯(lián)系人對象的兩個(gè)數(shù)據(jù)庫,其成員函數(shù)用于實(shí)現(xiàn)通訊錄系統(tǒng)的增刪改查;

6.程序的操作由菜單類與用戶類實(shí)現(xiàn),菜單類提供操作界面,用戶類提供操作;用戶類中兩個(gè)對象分別為手機(jī)通訊簿類與手機(jī)卡通訊簿類,通過在用戶類對這兩個(gè)類的動(dòng)態(tài)聯(lián)編,從而實(shí)現(xiàn)在兩個(gè)文本文件中的操作;

7.程序開始時(shí),用戶類及其對象的構(gòu)造函數(shù)會自動(dòng)打開文件進(jìn)行數(shù)據(jù)讀入,結(jié)束時(shí)會自動(dòng)關(guān)閉文件進(jìn)行數(shù)據(jù)寫入并保存;

8.本程序大量使用了轉(zhuǎn)向語句,只有按0才會結(jié)束。

?

————————————————————————————————————————————————

?

建立兩個(gè)文本文件:記錄存儲在手機(jī)上聯(lián)系人的基本信息(文本文件:手機(jī).txt)和存儲在手機(jī)卡上的聯(lián)系人的信息(文本文件:手機(jī)卡.txt)。

建立以下幾個(gè)類:

1.手機(jī)聯(lián)系人類PhoneContact:表示一個(gè)手機(jī)聯(lián)系人

????數(shù)據(jù)成員:

????????姓名:string name;

????????電話號碼:string tel_num;

????成員函數(shù):

????????并帶默認(rèn)值參數(shù)的構(gòu)造函數(shù):PhoneContact(string rname = "新聯(lián)系人", string rtel_num = "無號碼");

? ? ? ? 修改數(shù)據(jù)成員值的函數(shù):void modify();

????????重載>>運(yùn)算符,完成對象的輸入操作:friend istream &operator >>(istream &input, PhoneContact &obj);

????????重載<<運(yùn)算符,完成對象的輸出操作:friend ostream &operator <<(ostream &output, PhoneContact &obj);

????? ? 獲取姓名的函數(shù):get_name();

? ??? ? 獲取號碼的函數(shù):string get_tel_num();

? ??? ? 為數(shù)據(jù)成員賦值的函數(shù):void set(string rname, string rtel_num);

2.手機(jī)卡聯(lián)系人(CardContact):繼承于手機(jī)聯(lián)系人類,表示一個(gè)手機(jī)卡聯(lián)系人

????新增數(shù)據(jù)成員:

????????籍貫:string homeland;

????????QQ號:string QQ;

? ? 成員函數(shù):

????????并帶默認(rèn)值參數(shù)的構(gòu)造函數(shù):CardContact(string rname = "新聯(lián)系人", string rtel_num = "無號碼", string rhomeland = "無地址", string rQQ = "無QQ");

? ? ? ??修改數(shù)據(jù)成員值的函數(shù):void?modify();

????????重載>>運(yùn)算符,完成對象的輸入操作:friend istream & operator >>(istream &input, CardContact &obj);

????????重載<<運(yùn)算符,完成對象的輸出操作:friend ostream & operator <<(ostream &output, CardContact &obj);

????? ? 獲取籍貫的函數(shù):string get_homeland();

? ??? ? 獲取QQ的函數(shù):string get_QQ();

? ??? ? 為數(shù)據(jù)成員賦值的函數(shù):void set(string rname, string rtel_num,string rhomeland,string rQQ);

3.通訊簿抽象類(Maillist):為支持多態(tài),將函數(shù)封裝為純虛函數(shù)

? ? 數(shù)據(jù)成員:無

? ? 成員函數(shù):

????????新建聯(lián)系人的函數(shù):virtual void add() = 0;

????? ? 刪除聯(lián)系人的函數(shù):virtual void Delete(string rtel_num) = 0;

????????修改聯(lián)系人的信息:virtual void change(string rtel_num) = 0;

? ? ? ? 查詢并顯示某一聯(lián)系人的信息的函數(shù):virtual void inquiry(string rname) = 0;

????? ? 顯示所有聯(lián)系信息的函數(shù):virtual void display() = 0;

4.手機(jī)通訊簿類(PhoneMaillist):繼承于通訊簿抽象類,用于記錄手機(jī)中存儲的所有聯(lián)系人的信息

????數(shù)據(jù)成員:

????????手機(jī)聯(lián)系人的數(shù)量:int phone_contact_num;

????????手機(jī)聯(lián)系人對象數(shù)組:vector <PhoneContact>?phone_contact;

????成員函數(shù):

????????構(gòu)造函數(shù):PhoneMaillist(); ? ?//讀取文本文件(手機(jī).txt)中的數(shù)據(jù),并根據(jù)文件內(nèi)容創(chuàng)建聯(lián)系人對象數(shù)組

????????析構(gòu)函數(shù):~PhoneMaillist();? ? //將對象數(shù)組中的內(nèi)容寫入到文本文件(手機(jī).txt)中

????????新建聯(lián)系人的函數(shù):void add();

????? ? 刪除聯(lián)系人的函數(shù):void Delete(string rtel_num);

????????修改聯(lián)系人的信息:void change(string rtel_num);

? ? ? ? 查詢并顯示某一聯(lián)系人的信息的函數(shù):void inquiry(string rname);

????? ? 顯示所有聯(lián)系信息的函數(shù):void display();

? ? ? ? 獲取手機(jī)通訊錄聯(lián)系人數(shù)量的函數(shù):int get_phone_contact_num();

? ? ? ? 獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的姓名的函數(shù): string get_name(int i);????//用于查詢聯(lián)系人信息

????????獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的號碼的函數(shù):string get_tel_num(int i);? ? //用于查詢聯(lián)系人信息

? ? ? ? 將姓名、號碼壓入動(dòng)態(tài)數(shù)組的函數(shù):void copy(string rname, string rtel_num);????//用于兩個(gè)通訊簿之間數(shù)據(jù)復(fù)制、移動(dòng)

????? ? 清空手機(jī)通訊錄的函數(shù):void clear();????//用于兩個(gè)通訊簿之間數(shù)據(jù)復(fù)制、移動(dòng)

5.手機(jī)卡通信簿類(CardMaillist):繼承于通訊簿抽象類,用于記錄手機(jī)卡中存儲的所有聯(lián)系人的信息

????數(shù)據(jù)成員:

????????手機(jī)卡聯(lián)系人的數(shù)量:int card_contact_num;

????????手機(jī)卡聯(lián)系人對象數(shù)組:vector <CardContact> card_contact;

????成員函數(shù):

????????構(gòu)造函數(shù):CardMaillist(); ? ?//讀取文本文件(手機(jī)卡.txt)中的數(shù)據(jù),并根據(jù)文件內(nèi)容創(chuàng)建聯(lián)系人對象數(shù)組

????????析構(gòu)函數(shù):~CardMaillist();? ? //將對象數(shù)組中的內(nèi)容寫入到文本文件(手機(jī)卡.txt)中

????????新建聯(lián)系人的函數(shù):void add();

????? ? 刪除聯(lián)系人的函數(shù):void Delete(string rtel_num);

????????修改聯(lián)系人的信息:void change(string rtel_num);

? ? ? ? 查詢并顯示某一聯(lián)系人的信息的函數(shù):void inquiry(string rname);

????? ? 顯示所有聯(lián)系信息的函數(shù):void display();

? ? ? ? 獲取手機(jī)卡通訊錄聯(lián)系人數(shù)量的函數(shù):int get_card_contact_num();

? ? ? ? 獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的姓名的函數(shù): string get_name(int i);????//用于查詢聯(lián)系人信息

????????獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的號碼的函數(shù):string get_tel_num(int i);????//用于查詢聯(lián)系人信息

? ? ? ? 將姓名、號碼壓入動(dòng)態(tài)數(shù)組的函數(shù):void copy(string rname, string rtel_num);? ? //用于兩個(gè)通訊簿之間數(shù)據(jù)復(fù)制、移動(dòng)

????? ? 清空手機(jī)卡通訊錄的函數(shù):void clear();? ? //用于兩個(gè)通訊簿之間數(shù)據(jù)復(fù)制、移動(dòng)

6.用戶類(User):對通訊錄進(jìn)行管理,利用基類指針,調(diào)用相應(yīng)的通訊簿對象,從而實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編。

? ? 數(shù)據(jù)成員:

? ? ? ? 手機(jī)通訊簿:phonemaillist;

? ? ? ? 手機(jī)卡通訊簿:cardmaillist;

? ? ? ? 菜單類對象:uimenu;

????成員函數(shù):

????????新建聯(lián)系人的函數(shù):void add();

????? ? 刪除聯(lián)系人的函數(shù):void Delete();

????????修改聯(lián)系人的信息:void change();

? ? ? ? 查詢并顯示某一聯(lián)系人的信息的函數(shù):void inquiry();

????? ? 顯示所有聯(lián)系信息的函數(shù):void display();

????????移動(dòng)手機(jī)卡通訊錄到手機(jī)通訊錄:void move_card_to_phone();

????????移動(dòng)手機(jī)通訊錄到手機(jī)卡通訊錄:void move_phone_to_card();

????????復(fù)制手機(jī)卡通訊錄到手機(jī)通訊錄:void copy_card_to_phone();

? ? ? ? 復(fù)制手機(jī)通訊錄到手機(jī)卡通訊錄:void copy_phone_to_card();

7.界面菜單類(Uimenu):用來給出操作提示

? ? 數(shù)據(jù)成員:無

? ? 成員函數(shù):

????? ? 主菜單:void MainUimenu();

? ? ? ? ?添加菜單:void AddUimenu();

? ? ? ? ?刪除菜單:void DeleteUimenu();

? ? ? ? ?修改菜單:void ChangeUimenu();

? ? ? ? ?修改手機(jī)聯(lián)系人菜單:void ChangePhoneUimenu();

? ? ? ? ?修改手機(jī)卡聯(lián)系人菜單:void ChangeCardUimenu();

? ? ? ? ?查詢菜單:void InquiryUimenu();

? ? ? ? ?顯示菜單:void DisplayUimenu();

? ? ? ? ?轉(zhuǎn)存菜單:void TransferredMethod();

【源程序】

1.頭文件

1)手機(jī)聯(lián)系人類

//phonecontact.h

/*手機(jī)聯(lián)系人類*/#ifndef PHONECONTACT_H #define PHONECONTACT_H#include<iostream> #include<string> using namespace std; class PhoneContact { protected:string name;string tel_num; public:PhoneContact(string rname = "新聯(lián)系人", string rtel_num = "無號碼");??? //有參構(gòu)造函數(shù)void modify();????????????????????????????????????????????????????????//修改數(shù)據(jù)成員的值friend istream &operator >>(istream &input, PhoneContact &obj);???????//重載>>運(yùn)算符friend ostream &operator <<(ostream &output, PhoneContact &obj);??? ?//重載<<運(yùn)算符string get_name();????????????????????????????????????????????????????//獲取姓名string get_tel_num();???????????????????????????????????????????????? //獲取號碼void set(string rname, string rtel_num);??????????????????????????????//為數(shù)據(jù)成員賦值 };#endif

2)手機(jī)卡聯(lián)系人類

//cardcontact.h

/*手機(jī)卡聯(lián)系人類*/#ifndef CARDCONTACT_H #define CARDCONTACT_H#include"phonecontact.h" class CardContact : public PhoneContact{ protected:string homeland;string QQ; public:CardContact(string rname = "新聯(lián)系人", string rtel_num = "無號碼", string rhomeland = "無地址", string rQQ = "無QQ");????//有參構(gòu)造函數(shù)void modify();????//修改數(shù)據(jù)成員的值friend istream & operator >>(istream &input, CardContact &obj);?? ??????//重載>>運(yùn)算符friend ostream & operator <<(ostream &output, CardContact &obj);????????//重載<<運(yùn)算符string get_homeland();??????????????????????????????????????????????????//獲取籍貫string get_QQ();????????????????????????????????????????????????????????//獲取QQvoid set(string rname, string rtel_num,string rhomeland,string rQQ);????//為數(shù)據(jù)成員賦值 };#endif

3)通訊簿抽象類

//maillist.h

/*通訊簿抽象類*/#ifndef MAILLIST_H #define MAILLIST_H#include<iostream> #include<string> using namespace std; class Maillist { public:virtual void add() = 0; //新建聯(lián)系人virtual void Delete(string rtel_num) = 0; //刪除聯(lián)系人virtual void change(string rtel_num) = 0; //修改聯(lián)系人信息 virtual void inquiry(string rname) = 0; //查詢聯(lián)系人信息 virtual void display() = 0; //顯示所有聯(lián)系人信息 };#endif

4)手機(jī)通訊簿類

//phonemaillist.h

/*手機(jī)通訊簿類*/#ifndef PHONEMAILLIST_H #define PHONEMAILLIST_H#include"cardcontact.h" #include"maillist.h" #include<vector> class PhoneMaillist:public Maillist { protected:int phone_contact_num; //手機(jī)聯(lián)系人數(shù)量vector <PhoneContact> phone_contact; ??//手機(jī)聯(lián)系人對象動(dòng)態(tài)數(shù)組 public:PhoneMaillist(); //構(gòu)造函數(shù),讀取文本文件中的數(shù)據(jù),并根據(jù)文件內(nèi)容創(chuàng)建聯(lián)系人對象數(shù)組~PhoneMaillist(); //析構(gòu)函數(shù),將對象數(shù)組中的內(nèi)容寫入到文本文件中void add(); //新建聯(lián)系人void Delete(string rtel_num); //刪除聯(lián)系人void change(string rtel_num); //修改聯(lián)系人信息 void inquiry(string rname); //查詢聯(lián)系人信息 void display(); //顯示所有聯(lián)系人信息int get_phone_contact_num(); //獲取手機(jī)通訊錄聯(lián)系人數(shù)量void copy(string rname, string rtel_num); //將姓名、號碼壓入動(dòng)態(tài)數(shù)組string get_name(int i); //獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的姓名string get_tel_num(int i); //獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的號碼void clear(); //清空手機(jī)通訊錄 };#endif

5)手機(jī)卡通訊簿類

//cardmaillist.h

#ifndef CARDMAILLIST_H #define CARDMAILLIST_H#include"cardcontact.h" #include"maillist.h" #include<vector> class CardMaillist :public Maillist { protected:int card_contact_num; //手機(jī)卡聯(lián)系人數(shù)量vector <CardContact> card_contact; //手機(jī)卡聯(lián)系人對象動(dòng)態(tài)數(shù)組 public:CardMaillist(); //構(gòu)造函數(shù),讀取文本文件中的數(shù)據(jù),并根據(jù)文件內(nèi)容創(chuàng)建聯(lián)系人對象數(shù)組~CardMaillist(); //析構(gòu)函數(shù),將對象數(shù)組中的內(nèi)容寫入到文本文件中void add() ; //新建聯(lián)系人void Delete(string rtel_num) ; //刪除聯(lián)系人void change(string rtel_num) ; //修改聯(lián)系人信息 void inquiry(string rname) ; //查詢聯(lián)系人信息 void display() ; //顯示所有聯(lián)系人信息int get_card_contact_num(); //獲取手機(jī)卡通訊錄聯(lián)系人數(shù)量void copy(string rname, string rtel_num); //將姓名、號碼壓入動(dòng)態(tài)數(shù)組string get_name(int i); //獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的姓名string get_tel_num(int i); //獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的號碼void clear(); //清空手機(jī)卡通訊錄 };#endif

6)用戶類

//user.h

#ifndef USER_H #define USER_H#include"cardmaillist.h" #include"phonemaillist.h" #include"uimenu.h" class User {PhoneMaillist phonemaillist;CardMaillist cardmaillist;Uimenu uimenu; public:User(); //構(gòu)造函數(shù)~User(); //析構(gòu)函數(shù)void add(); //新建聯(lián)系人void Delete(); //刪除聯(lián)系人void change(); //修改聯(lián)系人信息 void inquiry(); //查詢聯(lián)系人信息 void display(); //顯示所有聯(lián)系人信息void move_card_to_phone(); //移動(dòng)手機(jī)卡通訊錄到手機(jī)通訊錄void move_phone_to_card(); //移動(dòng)手機(jī)通訊錄到手機(jī)卡通訊錄void copy_card_to_phone(); //復(fù)制手機(jī)卡通訊錄到手機(jī)通訊錄void copy_phone_to_card(); //復(fù)制手機(jī)通訊錄到手機(jī)卡通訊錄 };#endif

7)菜單類

//uimenu.h

/*菜單類*/#ifndef UIMENU_H #define UIMENU_H#include<iostream> using namespace std; class Uimenu { public:void MainUimenu(); //主菜單void AddUimenu(); //添加菜單void DeleteUimenu(); //刪除菜單void ChangeUimenu(); //修改菜單void ChangePhoneUimenu(); //修改手機(jī)聯(lián)系人菜單void ChangeCardUimenu(); //修改手機(jī)卡聯(lián)系人菜單void InquiryUimenu(); //查詢菜單void DisplayUimenu(); //顯示菜單void TransferredMethod(); //轉(zhuǎn)存菜單 }; #endif

2.除主函數(shù)外的源文件

1)手機(jī)聯(lián)系人類的實(shí)現(xiàn)

//PhoneContact.cpp

/*手機(jī)聯(lián)系人類的實(shí)現(xiàn)*/#include"PhoneContact.h" #include"Uimenu.h" PhoneContact::PhoneContact(string rname , string rtel_num ) {//有參構(gòu)造函數(shù)name = rname;tel_num = rtel_num; } void PhoneContact::modify() {//修改數(shù)據(jù)成員的值int n;Uimenu obj;change1:{obj.ChangePhoneUimenu();cin >> n;switch (n){case 1: {cout << "請重新輸入聯(lián)系人姓名:";cin >> name;cout << "請重新輸入聯(lián)系人號碼:";cin >> tel_num;break;}case 2: {cout << "請重新輸入聯(lián)系人姓名:";cin >> name;break;}case 3: {cout << "請重新輸入聯(lián)系人號碼:";cin >> tel_num;break;}case 0: {return;}default:{cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto change1;}}} } istream &operator >>(istream &input, PhoneContact &obj) {//重載>>運(yùn)算符cout << "請輸入聯(lián)系人姓名:";input >> obj.name;cout << "請輸入聯(lián)系人號碼:";input >> obj.tel_num;return input; } ostream &operator <<(ostream &output, PhoneContact &obj) {//重載<<運(yùn)算符output << "聯(lián)系人姓名:" << obj.name << "\t";output << "聯(lián)系人號碼:" << obj.tel_num << endl;return output; } string PhoneContact::get_name() { //獲取姓名return name; } string PhoneContact::get_tel_num() { //獲取號碼return tel_num; } void PhoneContact::set(string rname, string rtel_num) {//為數(shù)據(jù)成員賦值name = rname;tel_num = rtel_num; }

2)手機(jī)卡聯(lián)系人類的實(shí)現(xiàn)

//CardContact.cpp

/*手機(jī)卡聯(lián)系人類的實(shí)現(xiàn)*/#include"cardcontact.h" #include"Uimenu.h" CardContact::CardContact(string rname, string rtel_num, string rhomeland, string rQQ) :PhoneContact(rname, rtel_num){//有參構(gòu)造函數(shù)homeland = rhomeland; QQ = rQQ; } void CardContact::modify() {//修改數(shù)據(jù)成員的值int n;Uimenu obj;change2: {obj.ChangeCardUimenu();cin >> n;switch (n){case 1: {cout << "請重新輸入聯(lián)系人姓名:";cin >> name;cout << "請重新輸入聯(lián)系人號碼:";cin >> tel_num;cout << "請重新輸入聯(lián)系人籍貫:";cin >> homeland;cout << "請重新輸入聯(lián)系人QQ:";cin >> QQ;break;}case 2: {cout << "請重新輸入聯(lián)系人姓名:";cin >> name;break;}case 3: {cout << "請重新輸入聯(lián)系人號碼:";cin >> tel_num;break;}case 4: {cout << "請重新輸入聯(lián)系人籍貫:";cin >> homeland;break;}case 5: {cout << "請重新輸入聯(lián)系人QQ:";cin >> QQ;break;}case 0: {return;}default: {cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto change2;}}} } istream & operator >> (istream & input, CardContact & obj){//重載>>運(yùn)算符cout << "請輸入聯(lián)系人姓名:";input >> obj.name;cout << "請輸入聯(lián)系人號碼:";input >> obj.tel_num;cout << "請輸入籍貫:";input >> obj.homeland;cout << "請輸入QQ:";input >> obj.QQ;return input; } ostream & operator << (ostream &output, CardContact &obj){//重載<<運(yùn)算符output << "聯(lián)系人姓名:" << obj.name << "\t";output << "聯(lián)系人號碼:" << obj.tel_num << "\t";output << "聯(lián)系人籍貫:" << obj.homeland << "\t";output << "聯(lián)系人QQ:" << obj.QQ << endl;return output; } string CardContact::get_homeland() { //獲取籍貫return homeland; } string CardContact::get_QQ() { //獲取QQreturn QQ; } void CardContact::set(string rname, string rtel_num, string rhomeland, string rQQ) { //為數(shù)據(jù)成員賦值PhoneContact::set(rname,rtel_num);//調(diào)用基類set函數(shù)homeland = rhomeland;QQ = rQQ; }

3)手機(jī)通訊簿類的實(shí)現(xiàn)

//PhoneMaillist.cpp

/*手機(jī)通訊簿類的實(shí)現(xiàn)*/#include"phonemaillist.h" #include"uimenu.h" #include<fstream> PhoneMaillist::PhoneMaillist() { //構(gòu)造函數(shù),讀取文本文件中的數(shù)據(jù),并根據(jù)文件內(nèi)容創(chuàng)建聯(lián)系人對象數(shù)組ifstream fin("手機(jī).txt");//打開文件 /*吸收標(biāo)題行*/char str[100];fin.getline(str, 100);fin.getline(str, 100);fin.getline(str, 100);fin.getline(str, 100);phone_contact_num = -1;string rname, rtel_num;while (fin >> rname >> rtel_num )//讀取文件中的聯(lián)系人姓名與號碼,且跳過姓名為“新聯(lián)系人”的聯(lián)系人{(lán)PhoneContact temp; //建立手機(jī)聯(lián)系人臨時(shí)對象temp.set(rname, rtel_num); //存儲聯(lián)系人姓名和號碼phone_contact.push_back(temp); //壓入vector容器phone_contact_num++; //聯(lián)系人數(shù)量+1}fin.close();//關(guān)閉文件 } PhoneMaillist::~PhoneMaillist() { //析構(gòu)函數(shù),將對象數(shù)組中的內(nèi)容寫入到文本文件中ofstream fout("手機(jī).txt");//打開文件 /*寫入文件標(biāo)題*/fout << " ----------------------------------------------- " << endl;fout << "| 手機(jī)聯(lián)系人 |" << endl;fout << " ----------------------------------------------- " << endl;fout << " 姓名\t\t\t號碼\t\t\t" << endl;for (int i = phone_contact_num; i >= 0; i--){fout.setf(ios::left); //設(shè)置左對齊fout.width(24); //設(shè)置域?qū)?#xff0c;與上述三個(gè)/t對應(yīng)fout << phone_contact[i].get_name(); //寫入姓名fout.width(24); //設(shè)置域?qū)?#xff0c;與上述三個(gè)/t對應(yīng)fout << phone_contact[i].get_tel_num() << endl; //寫入號碼}phone_contact_num = -1; //待存儲聯(lián)系人數(shù)量清空phone_contact.clear(); //vector容器清空fout.close(); //關(guān)閉文件 } void PhoneMaillist::add() { //新建聯(lián)系人if (phone_contact_num>1000) { //當(dāng)達(dá)到容量上限時(shí)不再添加cout << "手機(jī)通訊錄容量已滿,無法新建聯(lián)系人!" << endl; cout << "請嘗試在手機(jī)卡通訊錄新建聯(lián)系人" << endl;return; } PhoneContact temp; //建立臨時(shí)對象cin >> temp; //使用重載 >> 輸入數(shù)據(jù) phone_contact.push_back(temp); //壓入vector容器phone_contact_num++; //手機(jī)聯(lián)系人個(gè)數(shù)+1cout << "新建聯(lián)系人成功!" << endl; } void PhoneMaillist::Delete(string rtel_num) { //刪除聯(lián)系人if (phone_contact_num<0) { //手機(jī)通訊錄沒有聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return;}while (true) {bool flag = false;for (int i = 0; i <= phone_contact_num; i++) { //枚舉所有聯(lián)系人if (phone_contact[i].get_tel_num() == rtel_num) { //如果號碼相同flag = true;cout << "該聯(lián)系人信息為:" << endl;cout << phone_contact[i];cout << "是否刪除該聯(lián)系人?" << endl;cout << "1.確定刪除" << endl;cout << "2.取消刪除" << endl;int t;cin >> t;if (t == 1){phone_contact.erase(phone_contact.begin() + i);phone_contact_num--;cout << "刪除成功!" << endl;}else //如果取消刪除,繼續(xù)向下枚舉continue;}}if (flag == false) { //如果未找到相應(yīng)聯(lián)系人cout << "在手機(jī)通訊錄未找到相應(yīng)聯(lián)系人!" << endl;cout << "是否重新輸入號碼?" << endl;cout << "1.重新輸入" << endl;cout << "2.不重新輸入" << endl;int t; cin >> t;if (t == 1) {cout << "請重新輸入號碼 :";cin >> rtel_num;continue;}else { cout << "輸入取消" << endl;return;}}else { //如果找到相應(yīng)聯(lián)系人cout << "搜索結(jié)束,刪除完畢!" << endl; return; }} } void PhoneMaillist::change(string rtel_num) { //修改聯(lián)系人信息 if (phone_contact_num<0) { //手機(jī)通訊錄沒有聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return;}while (true){bool flag = false;for (int i = 0; i <= phone_contact_num; i++) { //枚舉所有聯(lián)系人if (phone_contact[i].get_tel_num() == rtel_num) { //如果號碼相同flag = true;cout << "該聯(lián)系人信息為:" << endl;cout << phone_contact[i];cout << "是否修改該聯(lián)系人?" << endl;cout << "1.確定修改" << endl;cout << "2.取消修改" << endl;int t;cin >> t;if (t == 1) {phone_contact[i].modify(); cout << "修改成功!" << endl;cout << "是否尋找相同姓名聯(lián)系人?" << endl;cout << "1.確定尋找" << endl;cout << "2.取消尋找" << endl;int t;cin >> t;if (t == 1)continue;elsebreak;}else { //如果取消修改,繼續(xù)向下枚舉cout << "是否尋找相同姓名聯(lián)系人?" << endl;cout << "1.確定尋找" << endl;cout << "2.取消尋找" << endl;int t;cin >> t;if (t == 1)continue;elsebreak;}}}if (flag == false) { //如果未找到相應(yīng)聯(lián)系人cout << "在手機(jī)通訊錄未找到相應(yīng)聯(lián)系人!" << endl;cout << "是否重新輸入號碼?" << endl;cout << "1.重新輸入" << endl;cout << "2.不重新輸入" << endl;int t;cin >> t;if (t == 1) {cout << "請重新輸入號碼 :";cin >> rtel_num;continue;}else {cout << "輸入取消" << endl;return;}}else { //如果找到相應(yīng)聯(lián)系人cout << "搜索結(jié)束,修改完畢!" << endl;return;}} } void PhoneMaillist::inquiry(string rname) { //查詢聯(lián)系人信息 if (phone_contact_num<0) { //手機(jī)通訊錄沒有聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return;}while (true){bool flag = false;for (int i = 0; i <= phone_contact_num; i++) { //枚舉所有聯(lián)系人if (phone_contact[i].get_name() == rname) { //如果姓名相同flag = true;cout << "該聯(lián)系人信息為:" << endl;cout << phone_contact[i];cout << "是否尋找相同姓名聯(lián)系人?" << endl;cout << "1.確定尋找" << endl;cout << "2.取消尋找" << endl;int t;cin >> t;if (t==1) continue;else break;}}if (flag == false) { //如果未找到相應(yīng)聯(lián)系人cout << "在手機(jī)通訊錄未找到相應(yīng)聯(lián)系人!" << endl;cout << "是否重新輸入姓名?" << endl;cout << "1.重新輸入" << endl;cout << "2.不重新輸入" << endl;int t;cin >> t;if (t == 1) {cout << "請重新輸入姓名 :";cin >> rname;continue;}else {cout << "輸入取消" << endl;return;}}else { //如果找到相應(yīng)聯(lián)系人cout << "搜索結(jié)束,查詢完畢!" << endl;return;}} } void PhoneMaillist::display() { //顯示所有聯(lián)系人信息if (phone_contact_num<0) { //手機(jī)通訊錄沒有聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return; }cout << "手機(jī)通訊錄中共有" << phone_contact_num + 1 << "個(gè)聯(lián)系人." << endl;cout << "信息如下:" << endl;vector <PhoneContact>::iterator temp; //vector迭代器for (temp = phone_contact.begin(); temp != phone_contact.end(); temp++) //顯示vector容器內(nèi)的所有信息cout << (*temp); } int PhoneMaillist::get_phone_contact_num() { //獲取手機(jī)通訊錄聯(lián)系人數(shù)量return phone_contact_num; } void PhoneMaillist::copy(string rname, string rtel_num) { //將姓名、號碼壓入動(dòng)態(tài)數(shù)組for (int i = 0; i <= phone_contact_num; i++) { //枚舉所有聯(lián)系人 if (phone_contact[i].get_name() == rname && phone_contact[i].get_tel_num() == rtel_num) { //避免存在相同的聯(lián)系人cout << "姓名為:" << rname << " 電話為:" << rtel_num << " 的聯(lián)系人已存在!" << endl;return;}}PhoneContact temp; //建立手機(jī)聯(lián)系人臨時(shí)對象temp.set(rname, rtel_num); //將聯(lián)系人信息賦給臨時(shí)對象phone_contact.push_back(temp); //壓入動(dòng)態(tài)數(shù)組phone_contact_num++; //手機(jī)聯(lián)系人數(shù)量+1cout << "已存入姓名為:" << rname << " 電話為:" << rtel_num << " 的聯(lián)系人!" << endl; } string PhoneMaillist::get_name(int i) { //獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的姓名return phone_contact[i].get_name(); } string PhoneMaillist::get_tel_num(int i) { //獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的號碼return phone_contact[i].get_tel_num(); } void PhoneMaillist::clear() { //清空手機(jī)通訊錄phone_contact.clear();phone_contact_num = -1; }

4)手機(jī)卡通訊簿類的實(shí)現(xiàn)

//CardMaillist.cpp

/*手機(jī)卡通訊簿類的實(shí)現(xiàn)*/#include"cardmaillist.h" #include"uimenu.h" #include<fstream>CardMaillist::CardMaillist() { //構(gòu)造函數(shù),讀取文本文件中的數(shù)據(jù),并根據(jù)文件內(nèi)容創(chuàng)建聯(lián)系人對象數(shù)組ifstream fin("手機(jī)卡.txt");//打開文件 /*吸收標(biāo)題行*/char str[100];fin.getline(str, 100);fin.getline(str, 100);fin.getline(str, 100);fin.getline(str, 100);card_contact_num = -1;string rname, rtel_num,rhomeland,rQQ;while (fin >> rname >> rtel_num >> rhomeland >> rQQ)//讀取文件中的聯(lián)系人姓名、號碼、籍貫與QQ{ CardContact temp; //建立手機(jī)卡聯(lián)系人臨時(shí)對象temp.set(rname, rtel_num , rhomeland , rQQ); //存儲聯(lián)系人姓名和號碼card_contact.push_back(temp); //壓入vector容器card_contact_num++; //聯(lián)系人數(shù)量+1}fin.close();//關(guān)閉文件 } CardMaillist::~CardMaillist() { //析構(gòu)函數(shù),將對象數(shù)組中的內(nèi)容寫入到文本文件中ofstream fout("手機(jī)卡.txt");//打開文件 /*寫入文件標(biāo)題*/fout << " ----------------------------------------------------------------------- " << endl;fout << "| 手機(jī)卡聯(lián)系人 |" << endl;fout << " ----------------------------------------------------------------------- " << endl;fout << " 姓名\t\t號碼\t\t籍貫\t\tQQ\t\t" << endl;for (int i = card_contact_num; i >= 0; i--){fout.setf(ios::left); //設(shè)置左對齊fout.width(16); //設(shè)置域?qū)?#xff0c;與上述2個(gè)/t對應(yīng)fout << card_contact[i].get_name(); //寫入姓名fout.width(16); //設(shè)置域?qū)?#xff0c;與上述2個(gè)/t對應(yīng)fout << card_contact[i].get_tel_num(); //寫入號碼fout.width(16); //設(shè)置域?qū)?#xff0c;與上述2個(gè)/t對應(yīng)fout << card_contact[i].get_homeland(); //寫入籍貫fout.width(16); //設(shè)置域?qū)?#xff0c;與上述2個(gè)/t對應(yīng)fout << card_contact[i].get_QQ() << endl; //寫入QQ}card_contact_num = -1; //待存儲聯(lián)系人數(shù)量清空card_contact.clear(); //vector容器清空fout.close(); //關(guān)閉文件 } void CardMaillist::add() { //新建聯(lián)系人if (card_contact_num>1000) { //當(dāng)達(dá)到容量上限時(shí)不再添加cout << "手機(jī)通訊錄容量已滿,無法新建聯(lián)系人!" << endl;cout << "請嘗試在手機(jī)卡通訊錄新建聯(lián)系人" << endl;return;}CardContact temp; //建立臨時(shí)對象cin >> temp; //使用重載 >> 輸入數(shù)據(jù) card_contact.push_back(temp); //壓入vector容器card_contact_num++; //手機(jī)聯(lián)系人個(gè)數(shù)+1cout << "新建聯(lián)系人成功!" << endl; } void CardMaillist::Delete(string rtel_num) { //刪除聯(lián)系人if (card_contact_num<0) { //手機(jī)通訊錄沒有聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return;}while (true) {bool flag = false;for (int i = 0; i <= card_contact_num; i++) { //枚舉所有聯(lián)系人if (card_contact[i].get_tel_num() == rtel_num) { //如果號碼相同flag = true;cout << "該聯(lián)系人信息為:" << endl;cout << card_contact[i];cout << "是否刪除該聯(lián)系人?" << endl;cout << "1.確定刪除" << endl;cout << "2.取消刪除" << endl;int t;cin >> t;if (t == 1){card_contact.erase(card_contact.begin() + i);card_contact_num--;cout << "刪除成功!" << endl;}else //如果取消刪除,繼續(xù)向下枚舉continue;}}if (flag == false) { //如果未找到相應(yīng)聯(lián)系人cout << "在手機(jī)通訊錄未找到相應(yīng)聯(lián)系人!" << endl;cout << "是否重新輸入號碼?" << endl;cout << "1.重新輸入" << endl;cout << "2.不重新輸入" << endl;int t;cin >> t;if (t == 1) {cout << "請重新輸入號碼 :";cin >> rtel_num;continue;}else {cout << "輸入取消" << endl;return;}}else { //如果找到相應(yīng)聯(lián)系人cout << "搜索結(jié)束,刪除完畢!" << endl;return;}} } void CardMaillist::change(string rtel_num) { //修改聯(lián)系人信息 if (card_contact_num<0) { //手機(jī)通訊錄沒有聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return;}while (true){bool flag = false;for (int i = 0; i <= card_contact_num; i++) { //枚舉所有聯(lián)系人if (card_contact[i].get_tel_num() == rtel_num) { //如果號碼相同flag = true;cout << "該聯(lián)系人信息為:" << endl;cout << card_contact[i];cout << "是否修改該聯(lián)系人?" << endl;cout << "1.確定修改" << endl;cout << "2.取消修改" << endl;int t;cin >> t;if (t == 1) {card_contact[i].modify();cout << "修改成功!" << endl;cout << "是否尋找相同姓名聯(lián)系人?" << endl;cout << "1.確定尋找" << endl;cout << "2.取消尋找" << endl;int t;cin >> t;if (t == 1)continue;elsebreak;}else { //如果取消修改,繼續(xù)向下枚舉cout << "是否尋找相同姓名聯(lián)系人?" << endl;cout << "1.確定尋找" << endl;cout << "2.取消尋找" << endl;int t;cin >> t;if (t == 1)continue;elsebreak;}}}if (flag == false) { //如果未找到相應(yīng)聯(lián)系人cout << "在手機(jī)通訊錄未找到相應(yīng)聯(lián)系人!" << endl;cout << "是否重新輸入號碼?" << endl;cout << "1.重新輸入" << endl;cout << "2.不重新輸入" << endl;int t;cin >> t;if (t == 1) {cout << "請重新輸入號碼 :";cin >> rtel_num;continue;}else {cout << "輸入取消" << endl;return;}}else { //如果找到相應(yīng)聯(lián)系人cout << "搜索結(jié)束,修改完畢!" << endl;return;}} } void CardMaillist::inquiry(string rname) { //查詢聯(lián)系人信息 if (card_contact_num<0) { //手機(jī)通訊錄沒有聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return;}while (true){bool flag = false;for (int i = 0; i <= card_contact_num; i++) { //枚舉所有聯(lián)系人if (card_contact[i].get_name() == rname) { //如果姓名相同flag = true;cout << "該聯(lián)系人信息為:" << endl;cout << card_contact[i];cout << "是否尋找相同姓名聯(lián)系人?" << endl;cout << "1.確定尋找" << endl;cout << "2.取消尋找" << endl;int t;cin >> t;if (t == 1)continue;elsebreak;}}if (flag == false) { //如果未找到相應(yīng)聯(lián)系人cout << "在手機(jī)通訊錄未找到相應(yīng)聯(lián)系人!" << endl;cout << "是否重新輸入姓名?" << endl;cout << "1.重新輸入" << endl;cout << "2.不重新輸入" << endl;int t;cin >> t;if (t == 1) {cout << "請重新輸入姓名 :";cin >> rname;continue;}else {cout << "輸入取消" << endl;return;}}else { //如果找到相應(yīng)聯(lián)系人cout << "搜索結(jié)束,查詢完畢!" << endl;return;}} } void CardMaillist::display() { //顯示所有聯(lián)系人信息if (card_contact_num<0) { //手機(jī)通訊錄沒有聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return;}cout << "手機(jī)通訊錄中共有" << card_contact_num + 1 << "個(gè)聯(lián)系人." << endl;cout << "信息如下:" << endl;vector <CardContact>::iterator temp; //vector迭代器for (temp = card_contact.begin(); temp != card_contact.end(); temp++) //顯示vector容器內(nèi)的所有信息cout << (*temp); } int CardMaillist::get_card_contact_num() { //獲取手機(jī)卡通訊錄聯(lián)系人數(shù)量return card_contact_num; } void CardMaillist::copy(string rname, string rtel_num) { //將姓名、號碼壓入動(dòng)態(tài)數(shù)組for (int i = 0; i <= card_contact_num; i++) { //枚舉所有聯(lián)系人 if (card_contact[i].get_name() == rname && card_contact[i].get_tel_num() == rtel_num) { //避免存在相同的聯(lián)系人cout << "姓名為:" << rname << " 電話為:" << rtel_num << " 的聯(lián)系人已存在!" << endl;return;}}CardContact temp; //建立手機(jī)卡聯(lián)系人臨時(shí)對象temp.set(rname, rtel_num, "無地址", "無QQ"); //將聯(lián)系人信息賦給臨時(shí)對象card_contact.push_back(temp); //壓入動(dòng)態(tài)數(shù)組card_contact_num++; //手機(jī)卡聯(lián)系人數(shù)量+1cout << "已存入姓名為:" << rname << " 電話為:" << rtel_num << " 的聯(lián)系人!" << endl; } string CardMaillist::get_name(int i) { //獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的姓名return card_contact[i].get_name(); } string CardMaillist::get_tel_num(int i) { //獲取動(dòng)態(tài)數(shù)組第i個(gè)聯(lián)系人的號碼return card_contact[i].get_tel_num(); } void CardMaillist::clear() { //清空手機(jī)卡通訊錄card_contact.clear();card_contact_num = -1; }

5)用戶類的實(shí)現(xiàn)

//User.cpp

/*用戶類的實(shí)現(xiàn)*/#include"user.h" #include<iostream> using namespace std; User::User() { //構(gòu)造函數(shù)cout << "****************************************" << endl;cout << "* 歡迎使用通訊錄管理系統(tǒng) *" << endl;cout << "* 手機(jī)通訊錄目前有" << phonemaillist.get_phone_contact_num() + 1 << "個(gè)聯(lián)系人 *" << endl;cout << "* 手機(jī)卡通訊錄目前有" << cardmaillist.get_card_contact_num() + 1 << "個(gè)聯(lián)系人 *" << endl;cout << "****************************************" << endl; } User::~User() { //析構(gòu)函數(shù)cout << "****************************************" << endl;cout << "* 感謝您使用本通訊錄管理系統(tǒng) *" << endl;cout << "* 手機(jī)通訊錄目前有" << phonemaillist.get_phone_contact_num() + 1 << "個(gè)聯(lián)系人 *" << endl;cout << "* 手機(jī)卡通訊錄目前有" << cardmaillist.get_card_contact_num() + 1 << "個(gè)聯(lián)系人 *" << endl;cout << "****************************************" << endl;/*顯示控制,使界面更友好*/system("pause");system("cls"); } void User::add() { //新建聯(lián)系人change3: {uimenu.AddUimenu(); //新建菜單Maillist *temp; //通訊簿基類指針int t;cin >> t;switch (t) {case 1: { //新建聯(lián)系人到手機(jī)temp = &phonemaillist; //指針指向手機(jī)通訊簿對象 temp -> add(); //調(diào)用手機(jī)通訊簿對象函數(shù) break;}case 2: { //新建聯(lián)系人到手機(jī)卡temp = &cardmaillist; //指針指向手機(jī)卡通訊簿對象 temp -> add(); //調(diào)用手機(jī)卡通訊簿對象函數(shù) break;}case 0: { //返回上一級return;}default: { //選擇錯(cuò)誤cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto change3;}}} } void User::Delete() { //刪除聯(lián)系人change4: {uimenu.DeleteUimenu(); //刪除菜單Maillist *temp; //通訊簿基類指針string rtel_num;int t;cin >> t;switch (t){case 1: { //在手機(jī)通訊錄刪除聯(lián)系人cout << "請輸入要?jiǎng)h除的聯(lián)系人的號碼:";cin >> rtel_num;temp = &phonemaillist; //指針指向手機(jī)通訊簿對象 temp -> Delete(rtel_num); //調(diào)用手機(jī)通訊簿對象函數(shù) break;}case 2: { //在手機(jī)卡通訊錄刪除聯(lián)系人cout << "請輸入要?jiǎng)h除的聯(lián)系人的號碼:";cin >> rtel_num;temp = &cardmaillist; //指針指向手機(jī)通訊簿對象 temp -> Delete(rtel_num); //調(diào)用手機(jī)卡通訊簿對象函數(shù) break;}case 3: { //在兩個(gè)通訊錄都進(jìn)行刪除cout << "請輸入要?jiǎng)h除的聯(lián)系人的號碼:";cin >> rtel_num;cout << "--------------手機(jī)通訊錄----------------" << endl;temp = &phonemaillist; //指針指向手機(jī)通訊簿對象 temp -> Delete(rtel_num); //調(diào)用手機(jī)通訊簿對象函數(shù) cout << "--------------手機(jī)卡通訊錄----------------" << endl;temp = &cardmaillist; //指針指向手機(jī)通訊簿對象 temp -> Delete(rtel_num); //調(diào)用手機(jī)卡通訊簿對象函數(shù) break;}case 0: { //返回上一級return;}default: { //選擇錯(cuò)誤cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto change4;}}}} void User::change() { //修改聯(lián)系人信息 change5: {uimenu.ChangeUimenu(); //修改菜單Maillist *temp; //通訊簿基類指針string rtel_num;int t;cin >> t;switch (t){case 1: { //在手機(jī)通訊錄修改聯(lián)系人cout << "請輸入要修改的聯(lián)系人的號碼:";cin >> rtel_num;temp = &phonemaillist; //指針指向手機(jī)通訊簿對象 temp -> change(rtel_num); //調(diào)用手機(jī)通訊簿對象函數(shù) break;}case 2: { //在手機(jī)卡通訊錄修改聯(lián)系人cout << "請輸入要修改的聯(lián)系人的號碼:";cin >> rtel_num;temp = &cardmaillist; //指針指向手機(jī)通訊簿對象 temp -> change(rtel_num); //調(diào)用手機(jī)卡通訊簿對象函數(shù) break;}case 3: { //在兩個(gè)通訊錄都進(jìn)行修改cout << "請輸入要修改的聯(lián)系人的號碼:";cin >> rtel_num;cout << "--------------手機(jī)通訊錄----------------" << endl;temp = &phonemaillist; //指針指向手機(jī)通訊簿對象 temp -> change(rtel_num); //調(diào)用手機(jī)通訊簿對象函數(shù) cout << "--------------手機(jī)卡通訊錄----------------" << endl;temp = &cardmaillist; //指針指向手機(jī)通訊簿對象 temp -> change(rtel_num); //調(diào)用手機(jī)卡通訊簿對象函數(shù) break;}case 0: { //返回上一級return;}default: { //選擇錯(cuò)誤cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto change5;}}} } void User::inquiry() { //查詢聯(lián)系人信息 change6: {uimenu.InquiryUimenu(); //查詢菜單Maillist *temp; //通訊簿基類指針string rname;int t;cin >> t;switch (t){case 1: { //在手機(jī)通訊錄查詢聯(lián)系人cout << "請輸入要查詢的聯(lián)系人的姓名:";cin >> rname;temp = &phonemaillist; //指針指向手機(jī)通訊簿對象 temp -> inquiry(rname); //調(diào)用手機(jī)通訊簿對象函數(shù) break;}case 2: { //在手機(jī)卡通訊錄查詢聯(lián)系人cout << "請輸入要查詢的聯(lián)系人的姓名:";cin >> rname;temp = &cardmaillist; //指針指向手機(jī)通訊簿對象 temp ->inquiry(rname); //調(diào)用手機(jī)卡通訊簿對象函數(shù) break;}case 3: { //在兩個(gè)通訊錄都進(jìn)行修改cout << "請輸入要查詢的聯(lián)系人的姓名:";cin >> rname;cout << "--------------手機(jī)通訊錄----------------" << endl;temp = &phonemaillist; //指針指向手機(jī)通訊簿對象 temp ->inquiry(rname); //調(diào)用手機(jī)通訊簿對象函數(shù) cout << "--------------手機(jī)卡通訊錄----------------" << endl;temp = &cardmaillist; //指針指向手機(jī)通訊簿對象 temp ->inquiry(rname); //調(diào)用手機(jī)卡通訊簿對象函數(shù) break;}case 0: { //返回上一級return;}default: { //選擇錯(cuò)誤cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto change6;}}} } void User::display() { //顯示所有聯(lián)系人信息change6: {uimenu.DisplayUimenu(); //顯示菜單Maillist *temp; //通訊簿基類指針int t;cin >> t;switch (t){case 1: { //顯示手機(jī)通訊錄所有聯(lián)系人cout << "--------------手機(jī)通訊錄----------------" << endl;temp = &phonemaillist; //指針指向手機(jī)通訊簿對象 temp -> display(); //調(diào)用手機(jī)通訊簿對象函數(shù) break;}case 2: { //顯示手機(jī)卡通訊錄所有聯(lián)系人cout << "--------------手機(jī)卡通訊錄----------------" << endl;temp = &cardmaillist; //指針指向手機(jī)通訊簿對象 temp -> display(); //調(diào)用手機(jī)卡通訊簿對象函數(shù) break;}case 3: { //顯示兩個(gè)通訊錄的所有聯(lián)系人cout << "--------------手機(jī)通訊錄----------------" << endl;temp = &phonemaillist; //指針指向手機(jī)通訊簿對象 temp -> display(); //調(diào)用手機(jī)通訊簿對象函數(shù) cout << "--------------手機(jī)卡通訊錄----------------" << endl;temp = &cardmaillist; //指針指向手機(jī)通訊簿對象 temp -> display(); //調(diào)用手機(jī)卡通訊簿對象函數(shù) break;}case 0: { //返回上一級return;}default: { //選擇錯(cuò)誤cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto change6;}}} } void User::move_card_to_phone() { //移動(dòng)手機(jī)卡通訊錄到手機(jī)通訊錄if (cardmaillist.get_card_contact_num()<0) { //手機(jī)卡通訊錄無聯(lián)系人時(shí)cout << "手機(jī)卡通訊錄無聯(lián)系人!" << endl;return;}for (int i = 0; i <= cardmaillist.get_card_contact_num(); i++) { //枚舉手機(jī)卡通訊錄所有聯(lián)系人if (phonemaillist.get_phone_contact_num() >= 1000) { //當(dāng)手機(jī)通訊錄容量滿時(shí)cout << "手機(jī)通訊錄已滿!無法增加新聯(lián)系人!" << endl;return;}phonemaillist.copy(cardmaillist.get_name(i), cardmaillist.get_tel_num(i)); //將手機(jī)卡通訊錄的第i個(gè)用戶存入手機(jī)通訊錄}cardmaillist.clear(); //清空手機(jī)卡通訊錄cout << "移動(dòng)成功!" << endl; } void User::move_phone_to_card() { //移動(dòng)手機(jī)通訊錄到手機(jī)卡通訊錄if (phonemaillist.get_phone_contact_num()<0) { //手機(jī)通訊錄無聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return;}for (int i = 0; i <= phonemaillist.get_phone_contact_num(); i++) { //枚舉手機(jī)通訊錄所有聯(lián)系人if (cardmaillist.get_card_contact_num() >= 1000) { //當(dāng)手機(jī)卡通訊錄容量滿時(shí)cout << "手機(jī)卡通訊錄已滿!無法增加新聯(lián)系人!" << endl;return;}cardmaillist.copy(phonemaillist.get_name(i), phonemaillist.get_tel_num(i)); //將手機(jī)通訊錄的第i個(gè)用戶存入手機(jī)卡通訊錄}phonemaillist.clear(); //清空手機(jī)通訊錄cout << "移動(dòng)成功!" << endl; } void User::copy_card_to_phone() { //復(fù)制手機(jī)卡通訊錄到手機(jī)通訊錄if (cardmaillist.get_card_contact_num()<0) { //手機(jī)卡通訊錄無聯(lián)系人時(shí)cout << "手機(jī)卡通訊錄無聯(lián)系人!" << endl;return;}for (int i = 0; i <= cardmaillist.get_card_contact_num(); i++) { //枚舉手機(jī)卡通訊錄所有聯(lián)系人if (phonemaillist.get_phone_contact_num() >= 1000) { //當(dāng)手機(jī)通訊錄容量滿時(shí)cout << "手機(jī)通訊錄已滿!無法增加新聯(lián)系人!" << endl;return;}phonemaillist.copy(cardmaillist.get_name(i), cardmaillist.get_tel_num(i)); //將手機(jī)卡通訊錄的第i個(gè)用戶存入手機(jī)通訊錄}cout << "復(fù)制成功!" << endl; } void User::copy_phone_to_card() { //復(fù)制手機(jī)通訊錄到手機(jī)卡通訊錄if (phonemaillist.get_phone_contact_num()<0) { //手機(jī)通訊錄無聯(lián)系人時(shí)cout << "手機(jī)通訊錄無聯(lián)系人!" << endl;return;}for (int i = 0; i <= phonemaillist.get_phone_contact_num(); i++) { //枚舉手機(jī)通訊錄所有聯(lián)系人if (cardmaillist.get_card_contact_num() >= 1000) { //當(dāng)手機(jī)卡通訊錄容量滿時(shí)cout << "手機(jī)卡通訊錄已滿!無法增加新聯(lián)系人!" << endl;return;}cardmaillist.copy(phonemaillist.get_name(i), phonemaillist.get_tel_num(i)); //將手機(jī)通訊錄的第i個(gè)用戶存入手機(jī)卡通訊錄}cout << "復(fù)制成功!" << endl; }

6)菜單類的實(shí)現(xiàn)

//Uimenu.cpp

/*菜單類的實(shí)現(xiàn)*/#include"uimenu.h" void Uimenu::MainUimenu() { //主菜單cout << "***********************************************" << endl;cout << "* 1.新建聯(lián)系人 *" << endl;cout << "* 2.刪除聯(lián)系人 *" << endl;cout << "* 3.查詢聯(lián)系人 *" << endl;cout << "* 4.修改聯(lián)系人信息 *" << endl;cout << "* 5.瀏覽所有聯(lián)系人信息 *" << endl;cout << "* 6.將聯(lián)系人的信息從手機(jī)轉(zhuǎn)存到手機(jī)卡上 *" << endl;cout << "* 7.將聯(lián)系人的信息從手機(jī)卡轉(zhuǎn)存到手機(jī)上 *" << endl;cout << "* 0.退出 *" << endl;cout << "***********************************************" << endl;cout << "請選擇要進(jìn)行的操作:"; } void Uimenu::AddUimenu() { //添加聯(lián)系人菜單cout << "***********************************" << endl;cout << "* 1.新建聯(lián)系人到手機(jī) *" << endl;cout << "* 2.新建聯(lián)系人到手機(jī)卡 *" << endl;cout << "* 0.返回上一級 *" << endl;cout << "***********************************" << endl;cout << "請選擇要進(jìn)行的操作:"; } void Uimenu::DeleteUimenu() { //刪除菜單cout << "************************************" << endl;cout << "* 1.在手機(jī)通訊錄刪除聯(lián)系人 *" << endl;cout << "* 2.在手機(jī)卡通訊錄刪除聯(lián)系人 *" << endl;cout << "* 3.在兩個(gè)通訊錄都進(jìn)行刪除 *" << endl;cout << "* 0.返回上一級 *" << endl;cout << "************************************" << endl;cout << "請選擇要進(jìn)行的操作:"; } void Uimenu::ChangeUimenu() { //修改菜單cout << "************************************" << endl;cout << "* 1.在手機(jī)通訊錄修改聯(lián)系人 *" << endl;cout << "* 2.在手機(jī)卡通訊錄修改聯(lián)系人 *" << endl;cout << "* 3.在兩個(gè)通訊錄都進(jìn)行修改 *" << endl;cout << "* 0.返回上一級 *" << endl;cout << "************************************" << endl;cout << "請選擇要進(jìn)行的操作:"; } void Uimenu::ChangePhoneUimenu() { //修改手機(jī)聯(lián)系人菜單cout << "**********************************" << endl;cout << "* 1.修改聯(lián)系人姓名和號碼 *" << endl;cout << "* 2.修改聯(lián)系人姓名 *" << endl;cout << "* 3.修改聯(lián)系人號碼 *" << endl;cout << "* 0.返回上一級 *" << endl;cout << "**********************************" << endl;cout << "請選擇要進(jìn)行的操作:"; } void Uimenu::ChangeCardUimenu() { //修改手機(jī)卡聯(lián)系人菜單cout << "**********************************" << endl;cout << "* 1.修改聯(lián)系人全部信息 *" << endl;cout << "* 2.修改聯(lián)系人姓名 *" << endl;cout << "* 3.修改聯(lián)系人號碼 *" << endl;cout << "* 4.修改聯(lián)系人籍貫 *" << endl;cout << "* 5.修改聯(lián)系人QQ *" << endl;cout << "* 0.返回上一級 *" << endl;cout << "**********************************" << endl;cout << "請選擇要進(jìn)行的操作:"; } void Uimenu::InquiryUimenu() { //查詢菜單cout << "************************************" << endl;cout << "* 1.在手機(jī)通訊錄查詢聯(lián)系人 *" << endl;cout << "* 2.在手機(jī)卡通訊錄查詢聯(lián)系人 *" << endl;cout << "* 3.在兩個(gè)通訊錄都進(jìn)行查詢 *" << endl;cout << "* 0.返回上一級 *" << endl;cout << "************************************" << endl;cout << "請選擇要進(jìn)行的操作:"; } void Uimenu::DisplayUimenu() { //顯示菜單cout << "************************************" << endl;cout << "* 1.顯示手機(jī)通訊錄所有聯(lián)系人 *" << endl;cout << "* 2.顯示手機(jī)卡通訊錄所有聯(lián)系人 *" << endl;cout << "* 3.顯示兩個(gè)通訊錄的所有聯(lián)系人 *" << endl;cout << "* 0.返回上一級 *" << endl;cout << "************************************" << endl;cout << "請選擇要進(jìn)行的操作:"; } void Uimenu::TransferredMethod() { //轉(zhuǎn)存菜單cout << "************************************" << endl;cout << "* 1.復(fù)制 *" << endl;cout << "* 2.移動(dòng) *" << endl;cout << "* 0.返回上一級 *" << endl;cout << "************************************" << endl;cout << "請選擇要進(jìn)行的操作:"; }

3.主函數(shù)源文件

//Main.cpp

/*主函數(shù)*/#include"uimenu.h" #include"phonecontact.h" #include"cardcontact.h" #include"maillist.h" #include"phonemaillist.h" #include"cardmaillist.h" #include"user.h" int main() {User user; //創(chuàng)建用戶對象Uimenu uimenu; //創(chuàng)建菜單對象int m=1;while (m != 0) {change_begin: {/*顯示控制,使界面更友好*/system("pause");system("cls");uimenu.MainUimenu(); //顯示主菜單cin >> m;switch (m) { //對主菜單操作選擇case 1: { //新建聯(lián)系人user.add();goto change_begin;}case 2: { //刪除聯(lián)系人user.Delete();goto change_begin;}case 3: { //查詢聯(lián)系人user.inquiry();goto change_begin;}case 4: { //修改聯(lián)系人信息user.change();goto change_begin;}case 5: { //瀏覽所有聯(lián)系人信息user.display();goto change_begin;}case 6: { //將聯(lián)系人的信息從手機(jī)轉(zhuǎn)存到手機(jī)卡上Transferred1: {uimenu.TransferredMethod();int n;cin >> n;switch (n) {case 1: {user.copy_phone_to_card();goto change_begin;}case 2: {user.move_phone_to_card();goto change_begin;}case 0: {goto change_begin;}default: {cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto Transferred1;}}}}case 7: { //將聯(lián)系人的信息從手機(jī)卡轉(zhuǎn)存到手機(jī)上 Transferred2: {uimenu.TransferredMethod();int n;cin >> n;switch (n) {case 1: {user.copy_card_to_phone();goto change_begin;}case 2: {user.move_card_to_phone();goto change_begin;}case 0: {goto change_begin;}default: {cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto Transferred2;}}}}case 0: { //退出/*顯示控制,使界面更友好*/system("pause");system("cls");break;}default: {cout << "選擇錯(cuò)誤,請重新選擇!" << endl;goto change_begin;}}}}getchar();return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的C++ 通讯录管理系统实验报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

免费人成在线观看 | 精品国内自产拍在线观看视频 | 天天摸天天操天天爽 | 黄色www | 爱干视频 | 久久久婷| 99色国产| 国产精品网站一区二区三区 | 91高清一区 | 亚洲一级电影在线观看 | 亚洲精品自在在线观看 | 国产一区二区三区视频在线 | 婷婷久久五月 | 97在线影视 | 免费亚洲成人 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产成人综合在线观看 | 亚洲国产丝袜在线观看 | 国产成人不卡 | 狠狠色伊人亚洲综合成人 | 久久网站免费 | 欧美日韩不卡一区二区 | av电影免费在线播放 | 欧美激情视频一区 | a视频在线看 | 欧美日韩高清在线 | 欧美日韩观看 | 亚洲va欧美va人人爽 | 精品国模一区二区 | av中文资源在线 | 久久污视频 | www.久久免费视频 | 狠狠色丁香婷婷综合久久片 | 免费看的毛片 | 一区二区三区四区五区六区 | 91网页版在线观看 | 国产中文在线观看 | 亚洲一区精品人人爽人人躁 | 久久久免费少妇 | 日韩成人免费在线 | 成人小视频在线播放 | 国内精品久久久久久久影视简单 | 99精品久久精品一区二区 | 97超碰在线久草超碰在线观看 | 久久婷亚洲五月一区天天躁 | 日日爱视频 | 美女亚洲精品 | 中文字幕视频网站 | 中国一级片在线 | 国产成人综合在线观看 | 中文字幕日韩免费视频 | 91丨九色丨国产丨porny精品 | 欧美精品免费一区二区 | 五月天精品视频 | 日韩欧美综合 | 国产麻豆电影在线观看 | 日本中文字幕在线一区 | 亚洲精品88欧美一区二区 | 在线天堂中文在线资源网 | 国内精品久久久久影院一蜜桃 | 国产精品乱码久久久久 | 国产高清不卡在线 | 日韩一区精品 | 免费成人av | 国产特级毛片aaaaaa毛片 | 亚洲激情视频在线 | 久久精品99国产精品酒店日本 | 久久久综合九色合综国产精品 | 亚洲欧美日韩国产 | aaa毛片视频 | 色婷婷激情 | 亚洲天堂网视频在线观看 | 韩国精品福利一区二区三区 | 国产一级性生活视频 | 91观看视频 | 久久人人看 | 天天操天天玩 | 精品美女在线视频 | 天天综合精品 | 中文字幕永久在线 | 中文视频一区二区 | 天天操天天操天天操天天操天天操天天操 | 在线观看亚洲免费视频 | 国产色视频| 久久99国产视频 | 亚洲激情视频在线观看 | 日韩欧美电影在线 | 黄色国产高清 | 丁香五婷 | 日韩国产精品毛片 | 亚洲成人免费在线 | 超碰在线色 | 中文字幕欧美日韩va免费视频 | 欧美一区二区免费在线观看 | 免费aa大片 | 九九色网| 久草免费色站 | 国产精品一区二区免费在线观看 | 久久免费a | 91精品视频免费观看 | 久久线视频| 亚洲欧美在线观看视频 | 久久精品网站免费观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 久久综合在线 | 亚洲女人天堂成人av在线 | 天天干 天天摸 天天操 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美一级片在线播放 | 精品字幕在线 | 久久精品伊人 | 亚洲激情一区二区三区 | 日韩免费观看一区二区 | 揉bbb玩bbb少妇bbb | 久久国产热视频 | 激情丁香在线 | 色欧美成人精品a∨在线观看 | 五月激情电影 | av电影久久| 国产精品久久99 | 夜夜夜草 | 亚洲精品福利在线 | 91片在线观看 | 在线国产福利 | 黄色官网在线观看 | 日韩精品大片 | 四虎成人精品在永久免费 | 97热在线观看 | 亚洲国产精品电影 | 国产色视频一区二区三区qq号 | 国产精品福利午夜在线观看 | 日日夜夜人人精品 | 人人插人人做 | 国产综合久久 | 亚洲黄色在线观看 | 精品一区二区精品 | 国产v亚洲v | 美女久久久 | 伊人天天狠天天添日日拍 | 亚洲精品在线电影 | www.久久久.cum| 国产精品自产拍在线观看桃花 | 99精品黄色 | 中文字幕久久精品一区 | 久久99精品国产一区二区三区 | 久久歪歪 | 国产精品99久久免费观看 | www.xxx.性狂虐 | 夜夜躁日日躁狠狠久久88av | 欧美另类v | 成人在线视频你懂的 | 美女网站视频一区 | 色噜噜日韩精品一区二区三区视频 | 色999精品 | 午夜在线免费观看 | 国产在线视频一区二区 | 色婷婷国产精品一区在线观看 | 黄毛片在线观看 | 欧美99热 | 黄色视屏在线免费观看 | 精品久久久久久亚洲综合网 | 91视频久久久久久 | 国产一区欧美日韩 | 超碰97免费在线 | 国产一区二区高清 | 日韩精品久久中文字幕 | 五月天六月婷 | 亚洲综合涩 | 日韩精品一区二区三区在线视频 | 久久综合久色欧美综合狠狠 | 中文字幕精品久久 | 91成人免费观看视频 | 97精产国品一二三产区在线 | 久热av| 91桃色视频 | 亚洲国产欧美一区二区三区丁香婷 | 97福利| 欧美日韩视频在线 | 中文字幕在线播放日韩 | 婷婷视频在线播放 | 久久小视频 | 麻豆成人精品 | 免费a v在线| 成人午夜电影免费在线观看 | 国产在线播放一区二区 | 黄av免费| 国产高清精 | 国产亚洲观看 | 午夜av色 | 午夜av片| 国产精品毛片一区视频 | 看av在线| 欧美日韩综合在线 | av成人免费在线观看 | 天天性天天草 | 超碰97公开 | 中文乱码视频在线观看 | 99爱精品视频 | 97国产情侣爱久久免费观看 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产精品一区二区在线观看 | 日本中文字幕在线一区 | av久久久| 综合网婷婷 | 91精品亚洲影视在线观看 | 久久久久久国产精品久久 | 91av国产视频 | www.久久久精品 | 狠狠色噜噜狠狠 | 成年人网站免费在线观看 | 欧美日韩国产一区二区三区 | 久草在线久草在线2 | 亚洲精品成人av在线 | 色综合a | 草久在线视频 | 91精品久久久久久 | 久久精品4 | 日本狠狠色 | 日本精品久久久久影院 | 五月婷婷六月丁香在线观看 | 久久精品波多野结衣 | 91 在线视频 | 国产99区| 成人久久综合 | 久久久黄色av | 在线看的av网站 | 中文字幕在线观看完整版 | 97国产在线| 在线观看一级视频 | 成人av资源站 | 又黄又爽的免费高潮视频 | 国产精品99久久久精品 | 免费在线观看国产精品 | av永久网址 | 久久久久欧美精品 | 麻豆久久久久久久 | 国产一区二区三区免费观看视频 | 久久久人人人 | 麻豆影视在线免费观看 | 999电影免费在线观看 | 成 人 黄 色 视频播放1 | 欧美视频www| 狠狠操狠狠操 | 日韩综合一区二区三区 | 精品一区 在线 | 精品国产一区二区三区日日嗨 | 国产精品99蜜臀久久不卡二区 | 久久久久一区二区三区四区 | 国产999精品 | 亚洲精品18日本一区app | 91大神在线看 | 久久综合色播五月 | 日韩伦理片一区二区三区 | 激情视频免费在线观看 | 免费一级毛毛片 | 日日成人网 | 亚洲一一在线 | 最近中文字幕免费 | 欧美在线日韩在线 | 国产最新福利 | 国产精品成人在线 | 久久久综合精品 | 国产99久久久国产精品免费看 | 亚洲一区二区91 | 999一区二区三区 | 午夜国产福利视频 | 天天激情 | 日韩免费视频在线观看 | 狠狠狠狠狠狠狠狠 | 成人av在线看 | 日本久久综合视频 | 成人黄色视 | 91香蕉视频污在线 | 久久福利在线 | a v在线视频 | 久久黄色免费观看 | 麻豆视频在线观看免费 | 在线观看韩日电影免费 | 91麻豆国产福利在线观看 | 9在线观看免费高清完整版在线观看明 | 国产视频91在线 | 国产一级一级国产 | 欧美另类高清 | 麻豆传媒在线视频 | 伊人五月天av | 91大神精品视频在线观看 | 欧美精品亚洲精品日韩精品 | 国产精品99久久久精品 | 久久ww| 国产成人精品一区二 | 国产尤物在线观看 | 亚洲精品在线国产 | 亚洲自拍av在线 | 天天干天天摸天天操 | 九九久久久久99精品 | 午夜久久影视 | 日韩在线中文字幕视频 | 国产精品视频一二三 | 久久国产美女视频 | 欧美精品国产精品 | 三级黄色片在线观看 | 不卡电影免费在线播放一区 | 国产成人精品av久久 | 午夜成人影视 | 91在线视频在线观看 | 欧美精品久久久久久久久久久 | 久久黄色片 | 超碰在97 | 中文字幕在线观看资源 | 九九热只有精品 | 日本三级吹潮在线 | 免费视频黄色 | 麻豆传媒视频在线免费观看 | 日韩经典一区二区三区 | 国产麻豆精品久久一二三 | 日韩欧美精品一区二区三区经典 | 17婷婷久久www| 国产成人99久久亚洲综合精品 | 亚洲精品视频二区 | 国产精品免费成人 | 精品亚洲一区二区 | 91精品国产一区二区三区 | 亚洲综合小说电影qvod | 精品一区二区在线观看 | 亚洲欧美日韩一级 | 黄色精品网站 | 综合精品久久久 | 久久久精品电影 | av黄色成人 | 日本丰满少妇免费一区 | 日韩在线观看视频一区二区三区 | 999久久精品 | 久久精品国产成人 | 国产成人av免费在线观看 | 欧美色图另类 | 激情视频综合网 | 黄色视屏在线免费观看 | 成人免费在线电影 | 国产一区黄色 | 91免费观看网站 | 色狠狠婷婷 | 色欧美日韩 | www亚洲国产 | 久久精品艹 | 久久久久久久久网站 | 久久精品国产亚洲 | 视频一区二区视频 | 国产美女精品在线 | 精品视频www | 成年人黄色免费视频 | 国产色在线 | 国产视频久久久 | 蜜桃视频成人在线观看 | www国产亚洲精品久久网站 | 日韩精品在线播放 | 欧美日韩1区| 亚洲精品国精品久久99热 | 国产精品亚州 | 人人看人人爱 | 中文字幕av有码 | 五月婷婷香蕉 | 精品国产自在精品国产精野外直播 | 成人a在线观看高清电影 | 欧美日韩视频一区二区三区 | 国产精品久久久777 成人手机在线视频 | 久久国产精品偷 | 国产伦精品一区二区三区四区视频 | 亚洲婷婷伊人 | 国产精品成人国产乱一区 | 国产三级香港三韩国三级 | 欧美极品xxx | 久久99日韩 | 天天操天天舔天天爽 | 亚洲精品久久久蜜臀下载官网 | 国产精品网站一区二区三区 | 日批视频在线观看免费 | 91在线免费视频观看 | 日本最新中文字幕 | 五月天综合网站 | 亚洲欧美视频一区二区三区 | 久久国产精品99精国产 | 夜夜夜影院 | 手机在线看永久av片免费 | 狠狠操导航 | 国产精品1区2区3区在线观看 | 国产v亚洲v| 国产五十路毛片 | 91免费看黄色 | 黄色亚洲 | 精品电影一区二区 | 999久久久久久久久 69av视频在线观看 | 操天天操| 在线观看日韩中文字幕 | 亚洲综合精品在线 | 一区 二区 精品 | 日韩欧美在线综合网 | 欧美一级片免费 | 偷拍视频一区 | 亚洲精品自拍视频在线观看 | 久久精品免费播放 | 九九久久国产 | 一级片在线 | 五月天综合色 | 91黄色影视 | 西西人体www444 | av免费看网站 | 99中文在线 | 国产精品久久久久免费观看 | 久久电影日韩 | 亚洲伊人网在线观看 | 在线韩国电影免费观影完整版 | 五月婷在线播放 | 午夜影院先 | 伊人久久国产 | 免费日韩av电影 | 国产精品免费一区二区 | 免费a视频在线观看 | 精品视频专区 | 国产二区精品 | 日韩免费视频观看 | 亚洲精品白浆高清久久久久久 | 日本aaaa级毛片在线看 | 手机av网站 | 久久久久国产精品免费免费搜索 | 狠狠的干狠狠的操 | 天天爽天天摸 | 成人a视频片观看免费 | 97色综合 | 97在线观看免费高清 | 92精品国产成人观看免费 | 久久久久久国产精品亚洲78 | 一区二区视 | 99爱在线观看 | 久久久久久久久久国产精品 | 国产亚洲综合性久久久影院 | 亚洲精品一区中文字幕乱码 | 夜夜视频资源 | 福利网址在线观看 | 超碰个人在线 | 久久久久久久久久久久久久av | 久久综合之合合综合久久 | 麻豆 91 在线 | 国产91对白在线 | 超碰在线官网 | 黄色av一区二区三区 | 亚洲播播 | 一区中文字幕在线观看 | 欧美性大战久久久久 | 亚洲精品合集 | aaa亚洲精品一二三区 | 在线电影中文字幕 | 国产一区在线观看免费 | 免费观看成年人视频 | 日韩伦理一区二区三区av在线 | 欧美另类tv | 国产高清免费 | 欧美 日韩 久久 | 国产日韩精品在线观看 | 久久天天躁狠狠躁亚洲综合公司 | 激情偷乱人伦小说视频在线观看 | 欧美日韩一区二区在线观看 | 久久综合九色综合欧美就去吻 | 国产黄色看片 | 国产第一页精品 | 天天干夜夜 | 久久国产精品99久久人人澡 | 黄色av高清 | 一级黄色片在线观看 | 久久一区精品 | 伊人网综合在线观看 | 久久国产乱 | 视频在线一区二区三区 | av网站在线免费观看 | 国产精品自产拍在线观看中文 | 亚洲精品自在在线观看 | 久久爱导航 | 国内久久精品视频 | 久久综合激情 | 日本精品视频一区二区 | 黄色a一级视频 | 久久精品国产免费看久久精品 | 日韩电影在线一区 | 91精品啪啪 | 99九九热只有国产精品 | 在线看v片| 亚洲精品tv久久久久久久久久 | 最近免费中文字幕大全高清10 | 在线观看亚洲视频 | 色干干 | 韩国av免费 | 色香网 | 在线三级播放 | 色吊丝av中文字幕 | 久久国产精品久久精品国产演员表 | 欧美性久久久 | 日韩一级黄色大片 | 91丨九色丨91啦蝌蚪老版 | 亚洲精品视频二区 | 国产剧情av在线播放 | 高潮久久久久久 | 探花视频免费观看高清视频 | 精品国产伦一区二区三区 | 日日干av | 日批视频在线观看免费 | 免费观看一级一片 | 日韩免费电影在线观看 | 成人wwwxxx视频 | 99热在线观看 | 天天做日日爱夜夜爽 | 十八岁免进欧美 | 亚洲色图美腿丝袜 | 91精品福利在线 | 91丨porny丨九色 | 成年美女黄网站色大片免费看 | 日本性久久 | 九九视频精品免费 | 亚洲最大av网站 | 国产午夜精品一区二区三区在线观看 | 日韩精品视频在线观看免费 | 久久1电影院 | a天堂一码二码专区 | 91最新视频在线观看 | 国产午夜一区二区 | 欧美成人免费在线 | 亚洲mv大片欧洲mv大片免费 | 亚洲精品美女久久久 | 一本一本久久a久久精品综合妖精 | 日韩av电影网站在线观看 | 久久综合狠狠综合久久狠狠色综合 | 这里只有精品视频在线观看 | 国产午夜三级一区二区三桃花影视 | 97在线观看免费视频 | 狠狠操综合网 | 中文字幕a在线 | 少妇搡bbbb搡bbb搡aa | 久久久久国产a免费观看rela | 亚洲国内精品视频 | 色wwww| 免费国产在线视频 | 欧美日韩一级久久久久久免费看 | 免费一级片视频 | 日日天天| 久久精品免费观看 | 国产涩涩网站 | 91精品国产一区二区在线观看 | 99热精品免费观看 | 国产精品观看在线亚洲人成网 | 亚洲欧洲一区二区在线观看 | 亚洲视频在线观看网站 | 中文字幕色网站 | 91天堂在线观看 | 国产精品少妇 | 97在线精品 | 日韩乱码在线 | 午夜精品一区二区三区在线视频 | 国产三级午夜理伦三级 | 国产精品久久精品国产 | 天天操天天干天天综合网 | 黄色免费观看网址 | 天天干天天在线 | 区一区二区三在线观看 | 欧美日韩免费在线视频 | 色六月婷婷 | 久久国产精品99国产精 | 西西www4444大胆在线 | 成人中文字幕+乱码+中文字幕 | 国产精品高潮在线观看 | 精品国产综合区久久久久久 | 国产高清视频 | 免费观看完整版无人区 | 国产视频不卡 | 国产黄影院色大全免费 | 欧美一区二区三区在线播放 | 99久久夜色精品国产亚洲 | 成人亚洲免费 | 成年人视频在线观看免费 | 欧美一级黄大片 | 麻豆精品国产传媒 | 国产精品久久久久久久电影 | 天天射天天色天天干 | 911国产精品 | 91超碰在线播放 | 亚洲精品成人免费 | 人人插人人做 | 久久久久电影网站 | 日韩资源在线播放 | 久久免费成人精品视频 | 一区二区三区四区五区在线视频 | 99色免费视频 | 96国产精品| 黄色特级毛片 | 在线一区观看 | 在线观看岛国 | 亚洲jizzjizz日本少妇 | 日韩国产精品毛片 | 国产精品色 | 在线观看国产www | 免费看片亚洲 | 国产在线a不卡 | 亚洲精品国产区 | 美女免费视频黄 | 中文字幕免费高清在线 | 香蕉色综合 | 国产精品一区一区三区 | 欧美一区二区精美视频 | 久久国产精品一区二区三区四区 | 日韩www在线 | 免费网站污 | 97爱爱爱| 国产精品久久一区二区三区不卡 | 亚洲一级国产 | 91精品国自产拍天天拍 | www.亚洲在线| 亚洲精品欧美专区 | 很黄很黄的网站免费的 | 91免费黄视频 | 日本中文字幕在线电影 | 特级xxxxx欧美 | 91爱看片| 狠狠干天天操 | 99热在线国产 | 黄色高清视频在线观看 | 国产手机在线 | 狠狠干成人 | 欧美日本国产在线观看 | 99久久久久久 | 夜夜夜夜爽 | 欧美午夜理伦三级在线观看 | 操操操综合 | 色网站黄 | 嫩嫩影院理论片 | 欧美夫妻生活视频 | 人人dvd| 伊人亚洲综合 | 色综合久久综合中文综合网 | 婷婷av在线 | 成人在线观看日韩 | 视色网站 | 波多野结衣小视频 | 四虎永久精品在线 | 狠狠狠色丁香综合久久天下网 | 日韩性网站 | 日本大片免费观看在线 | av网址aaa| 国产香蕉视频在线播放 | 亚洲精品乱码久久久久v最新版 | 久久精品99北条麻妃 | 免费在线播放av电影 | 97精品国产一二三产区 | 国产免费区| 国产精品亚州 | 99热这里只有精品1 av中文字幕日韩 | 国精产品一二三线999 | 日韩欧美一区二区三区在线观看 | 一本一本久久a久久精品综合妖精 | 国产美女精品久久久 | 中文字幕在线看片 | 色综合中文字幕 | 黄色一级在线视频 | 成人av在线一区二区 | 波多野结衣精品在线 | 在线观看国产中文字幕 | 免费精品国产va自在自线 | 国产不卡一二三区 | 免费观看成年人视频 | 最近中文字幕高清字幕免费mv | 日日夜夜艹| 国产中文在线视频 | 97色综合| 国产高清精品在线 | 国产精品国产三级在线专区 | 在线观看中文字幕网站 | 成人作爱视频 | 精品久久久久久久久久岛国gif | 狠狠色狠狠色综合系列 | 天天爱天天 | 97福利| 成年人视频在线免费观看 | 国产精品免费在线视频 | 日韩性色 | 91av视频观看 | 日韩视频在线播放 | 一区二区三区精品在线视频 | 国内精品免费 | 一区二区精品国产 | 久久久久久久99精品免费观看 | av片在线观看 | 日韩精品在线播放 | 国产精品淫 | 黄色av电影一级片 | 久久伊人综合 | 国产精品一区二区精品视频免费看 | 成人av播放 | 天天操天天色综合 | 国产在线播放一区二区三区 | 精品a在线 | 成人av免费播放 | 夜夜夜草 | 国产精品九九久久久久久久 | 久久美女精品 | 日本精品视频在线 | 久久综合久久久久88 | 久久国产欧美日韩 | free,性欧美 九九交易行官网 | 久久狠狠婷婷 | 一级片免费观看视频 | 天天操天天操天天操天天操天天操 | 久久黄色美女 | 欧美在线观看视频一区二区三区 | 色av男人的天堂免费在线 | 日韩免费精品 | 午夜视频一区二区三区 | 久久视频在线 | av久久在线| 99热精品国产| 欧美一区二区视频97 | 久久久香蕉视频 | 亚洲国产精品电影 | 国产五月色婷婷六月丁香视频 | 日韩av电影中文字幕 | 欧美网站黄色 | 国产蜜臀av | 肉色欧美久久久久久久免费看 | 婷婷成人亚洲综合国产xv88 | 日韩精品免费专区 | 99这里都是精品 | 日韩成人在线一区二区 | 天天操天天干天天综合网 | 97在线观看免费高清 | 中文字幕乱在线伦视频中文字幕乱码在线 | 色婷婷狠狠18 | 亚洲精品一区二区三区高潮 | 91福利社在线观看 | 亚洲mv大片欧洲mv大片免费 | 日韩免费不卡av | 欧美一级片在线观看视频 | 日韩国产精品久久久久久亚洲 | 国内外成人免费在线视频 | 久久精品福利 | 国产精品第52页 | 久久免费高清 | 亚洲91精品在线观看 | 91av片| 狠狠色狠狠综合久久 | 国产黄色观看 | 亚洲精品在线资源 | 欧美日韩视频在线观看免费 | 久久久久久久久久久高潮一区二区 | 久久精品高清 | 麻豆视频免费入口 | 中文免费在线观看 | 在线观看黄色小视频 | 亚洲一区日韩 | 国产手机av | 九九热视频在线免费观看 | 日韩高清www | 欧美成人手机版 | 亚洲精品系列 | 亚洲女欲精品久久久久久久18 | 国内精品在线看 | 99精品视频在线观看播放 | 欧美激情va永久在线播放 | 激情av在线资源 | 免费视频一区 | 不卡精品 | 国产九九九视频 | 麻豆国产精品va在线观看不卡 | 五月婷影院 | 中文字幕在线免费97 | 91免费的视频在线播放 | 欧美精品久久久久久久免费 | 日本黄网站 | 激情大尺度视频 | 国产精品永久免费视频 | 干干日日 | 国产视频欧美视频 | 亚洲精品免费播放 | 色亚洲激情 | 丁香婷五月 | 久久久久亚洲国产精品 | 91完整版观看 | 欧美激情视频免费看 | 国产黄色看片 | 日韩精品视频一二三 | 婷婷久月 | 亚洲精品动漫成人3d无尽在线 | 精品亚洲一区二区三区 | 美女视频黄免费的久久 | av免费在线网 | 日韩在线三级 | 亚洲精品伦理在线 | 色综合激情久久 | 男女精品久久 | 国产黄色一级片 | 97国产精品一区二区 | 国产精品视频999 | 精品9999| 日韩成人不卡 | 91麻豆精品国产91久久久使用方法 | 九草在线视频 | 狠狠的干狠狠的操 | 免费看成人av | www.日韩免费 | 人人玩人人添人人澡超碰 | 久久国产精品久久精品 | 一区二区精品在线 | 国产精品久久久久久久99 | 久久影院精品 | 日韩精品一区二区三区不卡 | 国产一级电影在线 | 97精品久久人人爽人人爽 | 热99在线视频 | 久久av中文字幕片 | 久草在线视频网 | 国产精品欧美久久久久无广告 | 久草视频观看 | 中文不卡视频 | 欧美国产大片 | 国产精品初高中精品久久 | 国产精品高清一区二区三区 | 日韩中文字幕亚洲一区二区va在线 | 91视频在线免费看 | 成人免费视频网站在线观看 | 亚洲片在线资源 | 国产系列 在线观看 | 色婷婷久久久 | 免费看成人av | 高潮久久久久久久久 | 亚洲丝袜一区 | 亚洲国产99 | 伊人黄色网 | 黄色av观看| 最近中文字幕第一页 | 亚洲精品免费播放 | 婷婷六月天综合 | 国产精品视频线看 | 久久综合狠狠综合 | 天天操天天摸天天射 | 在线亚洲欧美日韩 | avav99| 国产99色 | 国产高清日韩 | 国产精品一区二区久久精品 | 国产区精品 | 国产精品观看 | 亚洲一级片在线观看 | 亚洲精品久久久久58 | 91超级碰碰 | 国产一区高清在线观看 | 九九久久久 | 国产精品观看视频 | 中文字幕久久久精品 | av大片免费看 | www.com黄 | 国产亚洲精品综合一区91 | 国产精品久久久久四虎 | 97超在线| 成人在线视频论坛 | 蜜臀av网址 | 成人9ⅰ免费影视网站 | 成人黄色av免费在线观看 | av福利第一导航 | 精品福利片 | 久久精品在线 | 天天夜操 | 五月激情五月激情 | 日韩三级久久 | 国产精品手机在线 | 欧美日本三级 | 亚洲精品xxxx | 美女网站视频免费黄 | 天堂av在线 | 99精品乱码国产在线观看 | 在线成人免费 | 久久成人免费电影 | 国产亚洲人成网站在线观看 | 欧美久久久一区二区三区 | 亚洲最新在线视频 | 手机成人在线 | 成人av.com| 国产精品1区2区 | 国产成人av免费在线观看 | 综合铜03 | 91精品国自产拍天天拍 | 国产精品久久久久久久久久新婚 | 九九久| 五月激情丁香婷婷 | 亚洲国产欧美在线看片xxoo | 最近中文字幕免费观看 | 久久亚洲专区 | 日韩中文字幕在线不卡 | 一区二区三区免费看 | 九九热在线精品 | 精品亚洲国产视频 | 久久久国产网站 | 久久综合狠狠狠色97 | 99久久久精品 | 在线免费中文字幕 | 黄色三级av| 天天插狠狠插 | 午夜国产成人 | a视频在线观看免费 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 久久在现 | 久久久国产精品一区二区三区 | 91黄色在线看 | 久久色视频 | 婷婷色5月| 在线中文字母电影观看 | 亚洲乱码国产乱码精品天美传媒 | 国产女v资源在线观看 | 中文字幕在线观看免费高清电影 | 国产在线综合视频 | 国产成人在线一区 | 欧美精品一区二区三区四区在线 | 国产精品久久久久久久久久久久久 | 国内揄拍国内精品 | 久久免费视频这里只有精品 | 特黄特色特刺激视频免费播放 | 中文字幕在线观看2018 | 日韩丝袜在线 | 激情 一区二区 | 伊甸园av在线 | 97在线精品国自产拍中文 | 免费看黄色大全 | 亚洲视频 中文字幕 | 久久精品久久国产 | 久久久久久久久久久久久久免费看 | 三级黄色大片在线观看 | 高清不卡免费视频 | 日韩影视在线观看 | 中文字幕一区二区三区四区 | 中文字幕色在线视频 | 国产精品久久久久久久99 | 亚洲黄网址 | 天天综合网入口 | 日本在线观看中文字幕 | 亚洲国产精品电影 | 免费a视频 | 人人爱爱 | 欧美日韩国产精品久久 | 97国产小视频 | 亚洲国产wwwccc36天堂 | 久久久久久网站 | 91成人在线视频观看 | 最近日本字幕mv免费观看在线 | 狠狠干中文字幕 | 国产成视频在线观看 | 蜜臀av网站 | 亚洲成人动漫在线观看 | 国产美女视频 | 久久天 | 欧美在线aaa | 色偷偷97| 日韩精品在线看 | 黄色小说免费在线观看 | 91成人网页版 | 欧美 另类 交 | 欧美精品少妇xxxxx喷水 | 在线一二三区 | 欧美在线视频一区二区三区 | 日韩电影一区二区在线 | 亚洲午夜久久久综合37日本 | 九九九九九九精品任你躁 | 中文字幕资源站 | 五月婷婷在线播放 | 日韩在线免费高清视频 | 九九九九九九精品任你躁 | 国产精品va在线播放 | 日韩欧美精品免费 | a色视频| 毛片一二区 | 又湿又紧又大又爽a视频国产 | 激情导航| 日日躁夜夜躁aaaaxxxx | www.午夜色.com | 夜夜操网站 | 国产尤物视频在线 | www好男人 | 久久成| 免费av视屏 | 亚洲日韩中文字幕在线播放 | 99久久综合精品五月天 | 久久久久久久久久久影视 | 久人人 | 中文资源在线观看 | 五月婷婷在线播放 | 最近能播放的中文字幕 | 99热最新在线 | 国语精品久久 | 国产精品日韩高清 | 日韩视频1| 久久精品免费播放 | 99超碰在线播放 | 日韩成人黄色 | 91精品国产一区二区在线观看 | 色先锋av资源中文字幕 | 国产首页 |