通訊錄的管理實驗報告_第1頁
通訊錄的管理實驗報告_第2頁
通訊錄的管理實驗報告_第3頁
通訊錄的管理實驗報告_第4頁
通訊錄的管理實驗報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)結(jié)構(gòu)課外實踐報告項目名稱:通訊錄的管理所在班級:計算機科學與技術(shù)小組成員:***********************任課教師:******起止時間:2012.11.19——2012.12.16

項目基本信息項目名稱通訊錄的管理項目簡介隨著當今社會的發(fā)展,人們的人際交往不斷增多,在不同的時間,不同的地點處理不同的事情,有時卻很難搞清每個人的聯(lián)系方式,特別是那些不經(jīng)常聯(lián)系的人,遇到緊要的事時,卻聯(lián)系不上本人,所以通訊錄的管理系統(tǒng)能夠便捷的給我們帶來需要的相關(guān)信息。隨著計算機的普及,人們擺脫了傳統(tǒng)的電話薄,越來越多的靠計算機來幫助人們記住這些事情,使我們的生活變得簡單。那么,這就需要有一個通訊錄管理系統(tǒng)來查閱自己所需要的信息,而不必大費周折的去翻開那些繁瑣的電話薄。通訊錄管理系統(tǒng)是一個專門針對同學們聯(lián)系方式以及一些簡單個人信息的使用管理系統(tǒng),它方便了眾多同學間信息的存儲和快速查閱功能,大大減少了查找過程的時間,使我們的交流更加簡單。該通訊錄管理是基于數(shù)據(jù)結(jié)構(gòu)、C++和C語言中所學知識進行實現(xiàn)的。用鏈表的結(jié)構(gòu)來存儲數(shù)據(jù),就是對鏈表進行添加、插入、查找、修改、刪除、顯示、讀取、保存信息等操作。小組成員********************************************任務分工***:程序代碼框架,實驗報告,ppt修改,信息的收集***:程序中系統(tǒng)功能的添加,ppt修改,程序的完善***:部分功能的實現(xiàn),ppt的制作,信息的整理課外實踐評定成績記錄指導教師意見系統(tǒng)完成情況:優(yōu)良中差報告完成情況:優(yōu)良中差答辯評定成績團隊整體成績:成員成績綜合成績

問題描述及分析隨著通訊業(yè)發(fā)展,學生生活中需要一種電子電話號碼本,也為預防手機故障、遺失造成聯(lián)系電話丟失,設計該通訊錄查詢系統(tǒng),需要實現(xiàn)添加、插入、查找、修改、刪除、顯示、讀取保存信息等功能。用鏈表的結(jié)構(gòu)來存儲數(shù)據(jù),共有9個模塊,imenu函數(shù)是主菜單,用InsertCon函數(shù)實現(xiàn)插入聯(lián)系人的基本信息的功能,用AddDataType函數(shù)實現(xiàn)初始化聯(lián)系人的基本信息的功能,用FindCon函數(shù)實現(xiàn)查找聯(lián)系人的基本信息的功能,用changeMessage函數(shù)實現(xiàn)修改聯(lián)系人的基本信息的功能,用DeleteMessage函數(shù)實現(xiàn)刪除聯(lián)系人的基本信息的功能,用showmessage函數(shù)實現(xiàn)顯示聯(lián)系人的基本信息的功能,用saveFilelinklist函數(shù)實現(xiàn)保存聯(lián)系人的基本信息的功能,用readFilelinklist函數(shù)實現(xiàn)讀取聯(lián)系人的基本信息的功能,使用的是頭插法定義鏈表,從尾部插入的方法實現(xiàn)鏈表。在主函數(shù)則是用一個switch函數(shù)控制和一個整數(shù)型全局變量,可以來選擇鏈表函數(shù),也實現(xiàn)了函數(shù)的循環(huán)使用。功能模塊及數(shù)據(jù)結(jié)構(gòu)描述主菜單menu{創(chuàng)建窗口“通訊錄管理系統(tǒng)”;}初始化聯(lián)系人的基本信息AddDataType{通過該函數(shù)實現(xiàn)初始化聯(lián)系人基本信息的功能}3、插入聯(lián)系人的基本信息InsertCon{通過該函數(shù)實現(xiàn)插入聯(lián)系人基本信息的功能}查找聯(lián)系人的基本信息FindCon{通過該函數(shù)實現(xiàn)查找聯(lián)系人基本信息的功能}5、修改聯(lián)系人的基本信息changeMessage{通過該函數(shù)實現(xiàn)修改某個聯(lián)系人某些基本信息的功能}刪除聯(lián)系人的基本信息DeleteMessage{通過該函數(shù)實現(xiàn)刪除某個聯(lián)系人全部信息的功能}保存文件saveFilelinklis{通過該函數(shù)實現(xiàn)保存已輸入信息的功能}讀取文件內(nèi)容readFilelinklist{通過該函數(shù)實現(xiàn)讀取文件中信息的功能}顯示信息showmessage{通過該函數(shù)實現(xiàn)顯示已存入的全部聯(lián)系人的基本信息的功能}主要算法流程描述及部分核心算法1、算法流程圖顯示所有聯(lián)系人顯示所有聯(lián)系人開始查找聯(lián)系人插入聯(lián)系人添加聯(lián)系人選擇操作選1輸出界面修改聯(lián)系人刪除聯(lián)系人選2選3選4選5選6讀取數(shù)據(jù)選7保存修改信息退出程序顯示所有聯(lián)系人開始查找聯(lián)系人插入聯(lián)系人添加聯(lián)系人選擇操作選1輸出界面修改聯(lián)系人刪除聯(lián)系人選2選3選4選5選62、部分核心算法(1)初始化聯(lián)系人的基本信息intAddDataType(linklist*&L){ linklist*p,*q; if(L==NULL) { L=(linklist*)malloc(sizeof(linklist)); L->next=NULL; } inti,n; system("CLS"); q=L; cout<<"請輸入你想輸入聯(lián)系人的人數(shù):"<<endl; cin>>n; for(i=1;i<=n;i++) { p=(linklist*)malloc(sizeof(linklist)); cout<<"開始添加第"<<i<<"個聯(lián)系人信息:"<<endl; cout<<"請輸入聯(lián)系人編號:"; cin>>p->ID; find(L,p->ID); cout<<"請輸入聯(lián)系人姓名:"; cin>>p->name; cout<<"請輸入聯(lián)系人姓別:"; cin>>p->sex; cout<<"請輸入聯(lián)系人班級:"; cin>>p->Class; cout<<"請輸入聯(lián)系人住址:"; cin>>p->Addr; cout<<"輸入手機號:"; cin>>p->Mobi; p->next=L->next; L->next=p; } return0;}(2)插入聯(lián)系人的基本信息intInsertCon(linklist*&L){ linklist*p; if(L==NULL) { cout<<"還沒有添加任何聯(lián)系人,請先添加聯(lián)系人?。?<<endl; return0; } p=(linklist*)malloc(sizeof(linklist)); cout<<"請依次輸入被插入人的信息:編號姓名性別班級住址手機號"<<endl; cout<<"請輸入聯(lián)系人編號:"; cin>>p->ID; find(L,p->ID); cout<<"請輸入聯(lián)系人姓名:"; cin>>p->name; cout<<"請輸入聯(lián)系人姓別:"; cin>>p->sex; cout<<"請輸入聯(lián)系人班級:"; cin>>p->Class; cout<<"請輸入聯(lián)系人住址:"; cin>>p->Addr; cout<<"輸入手機號:"; cin>>p->Mobi; p->next=L->next; L->next=p; saveFilelinklist(L); system("CLS"); cout<<" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" <<" >><<"<<endl <<" >>信息修改成功!已保存修改!<<"<<endl <<" >><<"<<endl <<" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl; return0;}(3)查找聯(lián)系人的基本信息intFindCon(linklist*&L){ system("CLS"); charna[20]; linklist*p,*q; if(L==NULL) { cout<<"沒有聯(lián)系人的信息,請先添加"<<endl; return0; } cout<<"請您輸入要查找人的姓名:"<<endl; cin>>na; p=L; while(p!=NULL) { if(strcmp(p->name,na)==0) { q=p; cout<<"找到聯(lián)系人,信息如下!!"<<endl; cout<<"-----------------------------------------------------------"<<endl <<"······························"<<endl <<"-----------------------------------------------------------"<<endl <<"編號:"<<q->ID<<endl <<"-----------------------------------------------------------"<<endl <<"姓名:"<<q->name<<endl <<"-----------------------------------------------------------"<<endl <<"性別:"<<q->sex<<endl <<"-----------------------------------------------------------"<<endl <<"班級:"<<q->Class<<endl <<"-----------------------------------------------------------"<<endl <<"住址:"<<q->Addr<<endl <<"-----------------------------------------------------------"<<endl <<"手機號:"<<q->Mobi<<endl <<"-----------------------------------------------------------"<<endl; break; } else p=p->next; } return0;}(4)修改聯(lián)系人的基本信息intchangeMessage(linklist*&L){ linklist*p; charid[10]; charnam[10]; charsex[5]; charAddr[50]; charClass[20]; charMobi[20]; if(L==NULL) { cout<<"沒有任何信息,請返回添加信息?。?!"<<endl; return0; } else p=L; cout<<"請你輸入要修改的人的名字:"; cin>>nam; while(p!=NULL&&p->name!=nam) { if(strcmp(p->name,nam)==0) { strcpy(p->name,nam); intchoose; do { cout<<"請選擇要修改哪一項的信息?。。?<<endl; cout<<"1修改編號2修改性別3修改班別4修改地址5修改手機號碼"<<endl; cin>>choose; switch(choose) { case1: cout<<"請輸入要修改后的編號:"; cin>>id; find(L,id); strcpy(p->ID,id); cout<<"編號修改成功!!!"<<endl; system("CLS"); return0; break; case2: cout<<"請輸入要修改后的性別:"; cin>>sex; strcpy(p->sex,sex); cout<<"性別修改成功!!!"<<endl; system("CLS"); return0; break; case3: cout<<"請輸入修改后的班別:"; cin>>Class; strcpy(p->Class,Class); system("CLS"); cout<<"班別修改成功!!!"<<endl; return0; break; case4: cout<<"請輸入修改后的地址:"; cin>>Addr; strcpy(p->Addr,Addr); system("CLS"); cout<<"地址修改成功!!!"<<endl; return0; break; case5: cout<<"請輸入修改后的手機號碼:"; cin>>Mobi; strcpy(p->Mobi,Mobi); system("CLS"); cout<<"手機號修改成功!!!"<<endl; return0; break; default: cout<<"輸入錯誤,重新選擇!!"<<endl; break; } }while(choose!=0); } elseif(p->next!=NULL&&p->name!=nam) { p=p->next; } else { cout<<"輸入名字錯誤,請重新選擇4修改?。?!"<<endl; return0; } }}(5)刪除聯(lián)系人的基本信息intDeleteMessage(linklist*&L){ linklist*p,*q; chara[20]; cout<<"請輸入要刪除聯(lián)系人的姓名:"; cin>>a; if(L==NULL) { cout<<"沒有任何信息可刪除,請?zhí)砑有畔ⅲ。?<<endl; return0; } p=L->next; q=L; while(p!=NULL) { if(strcmp(p->name,a)==0) { q->next=p->next; delete(p); cout<<"該聯(lián)系人已成功刪除"<<endl; return0; } q=q->next; p=p->next; } while(p==NULL) { cout<<"對不起,沒有該聯(lián)系人"<<endl; return0; }}(6)保存文件intsaveFilelinklist(linklist*&L){ char*fileName; FILE*fp; linklist*p; p=(linklist*)malloc(sizeof(linklist)); if(p==NULL) { cout<<"分配內(nèi)存失敗"<<endl; } if(L==NULL) { cout<<"沒有任何信息,請先添加信息!!"<<endl; return0; } else { ofstreamfout("123.txt",ios::out); if(!fout) { cout<<"cannotopenoutputfile.\n"; return1; } p=L->next; do { fout<<p->ID; fout<<""; fout<<p->name; fout<<""; fout<<p->sex; fout<<""; fout<<p->Class; fout<<""; fout<<p->Addr; fout<<""; fout<<p->Mobi; if(p->next!=NULL)//若不是最后一個記錄 fout<<"\n"; p=p->next; }while(p!=NULL); fout.close; cout<<" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl <<" >><<"<<endl <<" >>信息保存成功<<"<<endl <<" >><<"<<endl <<" >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl; } return0;}(7)讀取文件內(nèi)容intreadFilelinklist(linklist*&L){ linklist*p; if(L==NULL) { L=(linklist*)malloc(sizeof(linklist)); L->next=NULL; } ifstreamfin("123.txt",ios::in); if(!fin) { cout<<"cannotopeninputfile.\n"; return1; } charstr[200]; while(!fin.eof()) { p=(linklist*)malloc(sizeof(linklist)); for(inti=0;i<6;i++) { fin>>str; switch(i) { case0: strcpy(p->ID,str); break; case1: strcpy(p->name,str); break; case2: strcpy(p->sex,str); break; case3: strcpy(p->Class,str); break; case4: strcpy(p->Addr,str); break; case5: strcpy(p->Mobi,str); break; } } p->next=L->next; L->next=p; } fin.close; return0;}(8)顯示信息voidshowmessage(linklist*&L){ linklist*p; inti=0; if(L==NULL) { cout<<"沒有任何信息可輸出,請?zhí)砑有畔?!!"<<endl; } else { p=L->next; cout<<"*******************************聯(lián)系表如下***************************************"; cout<<"********************************************************************************"; cout<<""<<"編號"<<"姓名"<<"性別"<<"班別"<<"住址"<<"手機號"<<endl; cout<<"--------------------------------------------------------------------------------"; do { i++; cout<<endl; cout<<i; cout<<""<<p->ID<<""<<p->name<<""<<p->sex<<""<<p->Class<<""<<endl <<p->Addr<<""<<p->Mobi<<endl; cout<<"------------------------------------------------------------------------------"<<endl; p=p->next; if(i==70) break; }while(p!=NULL); do { i++; cout<<endl; cout<<i; cout<<""<<p->ID<<""<<p->name<<""<<p-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論