通訊簿管理(順序表的應(yīng)用)-C++程序_第1頁
通訊簿管理(順序表的應(yīng)用)-C++程序_第2頁
通訊簿管理(順序表的應(yīng)用)-C++程序_第3頁
通訊簿管理(順序表的應(yīng)用)-C++程序_第4頁
通訊簿管理(順序表的應(yīng)用)-C++程序_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.PAGE :.;3 通訊簿管理順序表的運(yùn)用【問題描畫】通訊簿是一個(gè)線性表,可以存儲(chǔ)一定數(shù)量的聯(lián)絡(luò)人記錄,提供查找、插入、刪除和修正等操作。通訊簿的特點(diǎn)是以查找為主要操作,要求快速查找到指定對(duì)象的位置,故宜采器具有隨機(jī)訪問功能的順序表?!緮?shù)據(jù)構(gòu)造】運(yùn)用順序表SeqList建立通訊簿。作為表項(xiàng)的聯(lián)絡(luò)人記錄,至少應(yīng)包括以下屬性: 序號(hào),姓名,與本人關(guān)系,號(hào)碼其中序號(hào)具有獨(dú)一性。序號(hào)和姓名可作為查找的主要關(guān)鍵字。與本人關(guān)系可枚舉為“親人、“朋友和“同事,主要作用是為聯(lián)絡(luò)人分組,并作為次要關(guān)鍵字。將上述聯(lián)絡(luò)人記錄定義為一個(gè)構(gòu)造struct,在主程序中建立模板類順序表SeqList的對(duì)象時(shí)用該構(gòu)造實(shí)例化

2、表結(jié)點(diǎn)的類型。【主要功能】程序應(yīng)為用戶提供操作選擇界面,必要的操作包括:查找某人號(hào)碼,添加新記錄,修正記錄,刪除記錄,打印親人清單、朋友清單或同事清單以及退出等。另外,為初始化方便,原始數(shù)據(jù)可存儲(chǔ)在磁盤文件中?!局饕a】#include#includestatic n=1;enum RelationFriend,Relative,colleague;templatestruct People char Number10;/編號(hào) char PNumber12;/號(hào)碼 char name20;/姓名 int m;/關(guān)系 People( int &ite) m=ite; People(int &p

3、1,char Name,char P, char item) for(int i=0;i20;i+) namei=Namei; for(int j=0;j11;j+) PNumberj=Pj; for(int k=0;k10;k+) Numberk=itemk; m=p1; ;templateclass SeqListprotected: People *data; int maxSize; int last; void reSize(int newSize);public: SeqList()data=new People; SeqList(T& x)data=new People(x);

4、People *getdata()return data; bool input(); void output(); void tianjia(); void chaxun(); void showall(); void remove(); void xiugai(); void showfriend(); void showrelative(); void showcolleague();template bool SeqList:input() static l;coutdatal.Number; ;coutdatal.PNumber;coutdatal.m;l

5、+;n+;return true;bool deng(char p1,char p2)bool flag=1;for(int i=0;p1i!=0|p2i!=0;i+)if(p1i!=p2i)return flag=0;return flag;template void SeqList:tianjia()this-input();cout信息已保管好!endl;template void SeqList:chaxun()char pr20;cout請(qǐng)輸入您要查找的姓名或號(hào)碼:pr;bool flag=1;for(int li=0;lin-1;li+)if(deng(pr,

6、)|deng(pr,datali.PNumber)cout#datali.Numbert姓名:t號(hào)碼:;for(int k=0;datali.PNumberk!=0;k+)coutdatali.PNumberk;coutt;switch(datali.m)case 0:cout朋友tendl;break;case 1:cout親人tendl;break;case 2:cout同事tendl;break;default: cout關(guān)系設(shè)置錯(cuò)誤!;break; flag=0;if(flag) cout查找失??!endl;void inface() cout endl; cou

7、ttt endl tt * endl tt 通 迅 錄 endl tt * endl tt 1. 添加新聯(lián)絡(luò)人. 6. 顯示同事信息. endl tt endl tt 2. 刪除聯(lián)絡(luò)人. 7. 修正信息. endl tt endl tt 3. 顯示一切聯(lián)絡(luò)人. 8.查詢聯(lián)絡(luò)人. endl tt endl tt 4.顯示親人信息. endltt 按其他退出 endltt 5.顯示朋友信息. endltt endl tt endl endl;template void SeqList:showall()cout一切人的信息如下:endl;for(int lm=0;lmn-1;lm+)cout#da

8、talm.Numbert姓名:t號(hào)碼:;for(int k=0;datalm.PNumberk!=0;k+)coutdatalm.PNumberk;coutt;switch(datalm.m)case 0:cout朋友tendl;break;case 1:cout親人tendl;break;case 2:cout同事tendl;break;default: cout關(guān)系設(shè)置錯(cuò)誤!;break;template void SeqList:showfriend()cout朋友的信息如下:endl;for(int lm=0;lmn-1;lm+)if(datalm.m=0)cou

9、t#datalm.Numbert姓名:t號(hào)碼:;for(int k=0;datalm.PNumberk!=0;k+)coutdatalm.PNumberk;coutt;switch(datalm.m)case 0:cout朋友tendl;break;case 1:cout親人tendl;break;case 2:cout同事tendl;break;default: cout關(guān)系設(shè)置錯(cuò)誤!;break;template void SeqList:showrelative()cout親人的信息如下:endl;for(int lmm=0;lmmn-1;lmm+)if(datal

10、mm.m=1)cout#datalmm.Numbert姓名:t號(hào)碼:;for(int k=0;datalmm.PNumberk!=0;k+)coutdatalmm.PNumberk;coutt;switch(datalmm.m)case 0:cout朋友tendl;break;case 1:cout親人tendl;break;case 2:cout同事tendl;break;default: cout關(guān)系設(shè)置錯(cuò)誤!;break;template void SeqList:showcolleague()cout同事的信息如下:endl;for(int lmp=0;lmpn

11、-1;lmp+)if(datalmp.m=2)cout#datalmp.Numbert姓名:t號(hào)碼:;for(int k=0;datalmp.PNumberk!=0;k+)coutdatalmp.PNumberk;coutt;switch(datalmp.m)case 0:cout朋友tendl;break;case 1:cout親人tendl;break;case 2:cout同事tendl;break;default: cout關(guān)系設(shè)置錯(cuò)誤!;break;template void SeqList:xiugai()char ptk20;coutptk;bool fl

12、ag=1;for(int lp=0;lpn-1;lp+)if(deng(ptk,)|deng(ptk,datalp.PNumber)coutdatalp.Number; ;coutdatalp.PNumber;coutdatalp.m;flag=0;if(flag) cout您要修正的人不存在!endl;template void SeqList:remove()char ptr20;coutptr;bool flag=1;for(int lr=0;lrn-1;lr+)if(deng(ptr,)|deng(ptr,dat

13、alr.PNumber)strcpy(datalr.Number,datan-2.Number); strcpy(,);strcpy(datalr.PNumber,datan-2.PNumber);datalr.m=datan-2.m;n-;cout信息已刪除!endl; flag=0;if(flag) cout刪除失敗!endl; void main() bool flag1=0; inface(); int x=0; SeqList a(x); while (1) coutttmmm; switch (mmm) case 1: a.tianji

14、a();/添加聯(lián)絡(luò)人 break; case 2: a.remove();/刪除聯(lián)絡(luò)人 break; case 3: a.showall();/顯示一切聯(lián)絡(luò)人 break;case 4: a.showrelative();/顯示親人清單 break; case 5: a.showfriend();/顯示朋友清單 break;case 6: a.showcolleague();/顯示同事清單 break;case 7: a.xiugai();/修正信息 break; case 8: a.chaxun();/查詢聯(lián)絡(luò)人 break; case 0: cout endl 謝謝運(yùn)用! endl end

15、l; flag1=1; break; default: break; if(flag1) break; 【實(shí)驗(yàn)過程】 * 通 迅 錄 * 1. 添加新聯(lián)絡(luò)人. 6. 顯示同事信息. 2. 刪除聯(lián)絡(luò)人. 7. 修正信息. 3. 顯示一切聯(lián)絡(luò)人. 8.查詢聯(lián)絡(luò)人. 4.顯示親人信息. 按其他退出 5.顯示朋友信息. 選擇:1請(qǐng)輸入您要添加的人的姓名:kuang請(qǐng)輸入您要添加人的號(hào)碼輸入您要添加人與您的關(guān)系0為朋友,1為親人,2為同事:0信息已保管好!選擇:1請(qǐng)輸入您要添加的人的姓名:huqiong請(qǐng)輸入您要添加人的號(hào)碼輸入您要添加人與您的關(guān)系0為

16、朋友,1為親人,2為同事:1信息已保管好!選擇:3一切人的信息如下:#1姓名:kuang號(hào)碼友#2姓名:huqiong號(hào)碼人選擇:2請(qǐng)輸入您要?jiǎng)h除的姓名或號(hào)碼:kuang信息已刪除!選擇:3一切人的信息如下:#1姓名:huqiong號(hào)碼人選擇:8請(qǐng)輸入您要查找的姓名或號(hào)碼1姓名:huqiong號(hào)碼人選擇:0謝謝運(yùn)用!Press any key to continue【實(shí)驗(yàn)領(lǐng)會(huì)】再寫通訊錄時(shí),開場(chǎng)遇到了很多問題,最主要的一個(gè)就是經(jīng)過順序表來存放一個(gè)人的信息,究竟是存放這個(gè)節(jié)點(diǎn),還是存放這個(gè)節(jié)點(diǎn)的指針。再一個(gè)就是字符串的輸入,假設(shè)用cin.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論