版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.PAGE :.;3 通訊簿管理順序表的運用【問題描畫】通訊簿是一個線性表,可以存儲一定數(shù)量的聯(lián)絡(luò)人記錄,提供查找、插入、刪除和修正等操作。通訊簿的特點是以查找為主要操作,要求快速查找到指定對象的位置,故宜采器具有隨機訪問功能的順序表。【數(shù)據(jù)構(gòu)造】運用順序表SeqList建立通訊簿。作為表項的聯(lián)絡(luò)人記錄,至少應(yīng)包括以下屬性: 序號,姓名,與本人關(guān)系,號碼其中序號具有獨一性。序號和姓名可作為查找的主要關(guān)鍵字。與本人關(guān)系可枚舉為“親人、“朋友和“同事,主要作用是為聯(lián)絡(luò)人分組,并作為次要關(guān)鍵字。將上述聯(lián)絡(luò)人記錄定義為一個構(gòu)造struct,在主程序中建立模板類順序表SeqList的對象時用該構(gòu)造實例化
2、表結(jié)點的類型。【主要功能】程序應(yīng)為用戶提供操作選擇界面,必要的操作包括:查找某人號碼,添加新記錄,修正記錄,刪除記錄,打印親人清單、朋友清單或同事清單以及退出等。另外,為初始化方便,原始數(shù)據(jù)可存儲在磁盤文件中?!局饕a】#include#includestatic n=1;enum RelationFriend,Relative,colleague;templatestruct People char Number10;/編號 char PNumber12;/號碼 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請輸入您要查找的姓名或號碼:pr;bool flag=1;for(int li=0;lin-1;li+)if(deng(pr,
6、)|deng(pr,datali.PNumber)cout#datali.Numbert姓名:t號碼:;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è)置錯誤!;break; flag=0;if(flag) cout查找失?。ndl;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號碼:;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è)置錯誤!;break;template void SeqList:showfriend()cout朋友的信息如下:endl;for(int lm=0;lmn-1;lm+)if(datalm.m=0)cou
9、t#datalm.Numbert姓名:t號碼:;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è)置錯誤!;break;template void SeqList:showrelative()cout親人的信息如下:endl;for(int lmm=0;lmmn-1;lmm+)if(datal
10、mm.m=1)cout#datalmm.Numbert姓名:t號碼:;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è)置錯誤!;break;template void SeqList:showcolleague()cout同事的信息如下:endl;for(int lmp=0;lmpn
11、-1;lmp+)if(datalmp.m=2)cout#datalmp.Numbert姓名:t號碼:;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è)置錯誤!;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 謝謝運用! endl end
15、l; flag1=1; break; default: break; if(flag1) break; 【實驗過程】 * 通 迅 錄 * 1. 添加新聯(lián)絡(luò)人. 6. 顯示同事信息. 2. 刪除聯(lián)絡(luò)人. 7. 修正信息. 3. 顯示一切聯(lián)絡(luò)人. 8.查詢聯(lián)絡(luò)人. 4.顯示親人信息. 按其他退出 5.顯示朋友信息. 選擇:1請輸入您要添加的人的姓名:kuang請輸入您要添加人的號碼輸入您要添加人與您的關(guān)系0為朋友,1為親人,2為同事:0信息已保管好!選擇:1請輸入您要添加的人的姓名:huqiong請輸入您要添加人的號碼輸入您要添加人與您的關(guān)系0為
16、朋友,1為親人,2為同事:1信息已保管好!選擇:3一切人的信息如下:#1姓名:kuang號碼友#2姓名:huqiong號碼人選擇:2請輸入您要刪除的姓名或號碼:kuang信息已刪除!選擇:3一切人的信息如下:#1姓名:huqiong號碼人選擇:8請輸入您要查找的姓名或號碼1姓名:huqiong號碼人選擇:0謝謝運用!Press any key to continue【實驗領(lǐng)會】再寫通訊錄時,開場遇到了很多問題,最主要的一個就是經(jīng)過順序表來存放一個人的信息,究竟是存放這個節(jié)點,還是存放這個節(jié)點的指針。再一個就是字符串的輸入,假設(shè)用cin.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024硬件設(shè)備代理與售后服務(wù)合作協(xié)議2篇
- 2025年度GPS技術(shù)在應(yīng)急救援領(lǐng)域的應(yīng)用合作協(xié)議3篇
- 二零二四年商務(wù)考察接送服務(wù)合同模板3篇
- 2024食用菌品牌授權(quán)與營銷推廣合同3篇
- 2025年校園安保服務(wù)合同含校園安全設(shè)施建設(shè)及維護協(xié)議3篇
- 2025年消防應(yīng)急照明及疏散指示系統(tǒng)采購合同范本2篇
- 二零二五年度海鮮餐廳特許經(jīng)營許可合同3篇
- 二零二五版煤礦掘進設(shè)備出租及維護保養(yǎng)服務(wù)合同3篇
- 二零二五版廠房租賃合同終止及費用結(jié)算及保險服務(wù)協(xié)議3篇
- 二零二五年建筑施工人員雇傭合同3篇
- 直播帶貨助農(nóng)現(xiàn)狀及發(fā)展對策研究-以抖音直播為例(開題)
- 腰椎間盤突出疑難病例討論
- 《光伏發(fā)電工程工程量清單計價規(guī)范》
- 2023-2024學(xué)年度人教版四年級語文上冊寒假作業(yè)
- (完整版)保證藥品信息來源合法、真實、安全的管理措施、情況說明及相關(guān)證明
- 營銷專員績效考核指標
- 陜西麟游風電吊裝方案專家論證版
- 供應(yīng)商審核培訓(xùn)教程
- 【盒馬鮮生生鮮類產(chǎn)品配送服務(wù)問題及優(yōu)化建議分析10000字(論文)】
- 肝硬化心衰患者的護理查房課件
- 2023年四川省樂山市中考數(shù)學(xué)試卷
評論
0/150
提交評論