數(shù)據(jù)結(jié)構(gòu)課程設(shè)計()_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計()_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計()_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計()_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計()_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、安徽省巢湖學院計算機與信息工程學院課程設(shè)計報告課程名稱:數(shù)據(jù)結(jié)構(gòu)課題名稱:通訊錄的制作專業(yè):計算機科學與技術(shù)班級: 學號:姓名:聯(lián)系方式:指導(dǎo)教師: 2011年11月21日目 錄1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書1.1、題目1.2、要求2、總體設(shè)計2.1、功能模塊設(shè)計2.2、所有功能模塊的流程圖3、詳細設(shè)計3.1、程序中所采用的數(shù)據(jù)結(jié)構(gòu)及存儲結(jié)構(gòu)的說明4、調(diào)試與測試:5、源程序清單和執(zhí)行結(jié)果6、C程序設(shè)計總結(jié)7、參考文獻1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書1.1、題目通訊錄的制作1.2、要求【模塊要求】第一個模塊主函數(shù)main()的功能是:根據(jù)選單的選項調(diào)用各函數(shù),并完成相應(yīng)的功能。 第二個模塊Menu()的功

2、能是:顯示英文提示選單。 第三個模塊Quit()的功能是:退出選單。 第四個模塊Create()的功能是:創(chuàng)建新的通訊錄。 第五個模塊Add()的功能是:在通訊錄的末尾,寫入新的信息,并返回選單。 第六個模塊Find()的功能是:查詢某人的信息,如果找到了,則顯示該人的信息,如果未找到,則提示通訊錄中沒有此人的信息,并返回選單。 第七個模塊Alter()的功能是:修改某人的信息,如果未找到要修改的人,則提示通訊錄中沒有此人的信息,并返回選單。 第八個模塊Delete()的功能是:刪除某人的信息,如果未找到要刪除的人,則提示通訊錄中沒有此人的信息,并返回選單。 第九個模塊List()的功能是:顯

3、示通訊錄中的所有記錄。;【設(shè)計要求】1) 每條信息至包含 :姓名(NAME )、性別(GENDER)、電話(TEL) 、城市(CITY)郵編(EIP)幾項。2) 作為一個完整的系統(tǒng),應(yīng)具有友好的界面和較強的容錯能力; 2、總體設(shè)計2.1、功能模塊設(shè)計根據(jù)課程設(shè)計題目的功能要求,各個功能模塊的組成框圖如下:BASEDATA-Code: INT-bGender: BOOL-Tel: INT-sName: string-sCity: string+CreateData: HRESULTADDRESSBOOK-Data: vector<BASEDATA>+ADDRESSBOOK+

4、Menu: VOID+Quit: VOID+Create: HRESULT+Add: HRESULT+Find: vector<BASEDATA>:size_type+Alter: HRESULT+Delete: HRESULT+List: VOID2.2、所有功能模塊的流程圖開始Menu輸入流tmpMenuCreateAddFindAlterDeleteListQuit根據(jù)tmp值判斷ClearPush-backFindFind結(jié)束賦值操作賦值操作3、詳細設(shè)計模塊功能說明:如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等;3.1、程序中所采用的數(shù)據(jù)結(jié)構(gòu)及存儲結(jié)構(gòu)的說明class

5、 BASEDATApublic:HRESULT CreateData(void);friend class ADDRESSBOOK;private:INT Code; /郵政編碼BOOL bGender; /性別INT Tel; /電話號碼string sName; /姓名string sCity; /城市;/BaseData子存儲結(jié)構(gòu):class ADDRESSBOOKpublic:ADDRESSBOOK(VOID); /constructorVOID Menu(VOID);VOID Quit(VOID);HRESULT Create(VOID);HRESULT Add(VOID);vect

6、or<BASEDATA>:size_type Find(VOID);HRESULT Alter(VOID);HRESULT Delete(VOID);VOID List(VOID);private:vector<BASEDATA> Data; /基本存儲結(jié)構(gòu)容器;/AddressBook3.2、算法的設(shè)計思想BASEDATA為基本的存儲結(jié)構(gòu),包含最為基本的數(shù)據(jù)類型。子存儲結(jié)構(gòu)通過友元訪問基本存儲結(jié)構(gòu)的私有成員,調(diào)用接口修改該和創(chuàng)建元素。4、調(diào)試與測試:F10啟動調(diào)試,編譯器開始編譯源碼,編譯成功,排除語法錯誤,現(xiàn)逐塊執(zhí)行語句。顯示<> Data Base h

7、as been initialized! 表明數(shù)據(jù)結(jié)構(gòu)已經(jīng)創(chuàng)建完畢,自動窗口顯示變量為:繼續(xù)逐塊執(zhí)行,輸出菜單選項;逐個功能測試,查看是否有中斷出現(xiàn)。4.2、測試結(jié)果的分析與討論:追加功能:查找功能:修改功能:列表功能:刪除功能:4.3、測試過程中遇到的主要問題及采取的解決措施:本人邏輯很好,已在寫碼前構(gòu)思完整,基本沒有測試問題(語法/邏輯)。對于本程序速度會較慢的問題,本人已經(jīng)使用Release優(yōu)化,并設(shè)置多線程(/MT)將需要的DLL編譯至exe文件中,使得不含開發(fā)環(huán)境的計算機可以執(zhí)行本程序。5、源程序清單和執(zhí)行結(jié)果/-/項目(ITEM):通訊錄 Address Book/時間(TIME)

8、:2011/11/21/作者(WIRTER):趙洋(Elan Chao), 方圓/環(huán)境(COMPILE ENVIRONMENT):Microsoft Visual Studio 2010,/Windows 7 Professional Service Park 1 x64/-#include <iostream>#include <string>#include <vector>#include <Windows.h>using namespace std;class BASEDATApublic:HRESULT CreateData(void)

9、string tmp;cout << "<> Enter the data you want" << endl;cout << "<> Order: Name, Gender, Tel, City, Code;" << endl;cin >> sName >> tmp >> Tel >> sCity >> Code;if(tmp = "man")bGender = 1;elsebGender = 0;co

10、ut << sName << "," << tmp << "," << Tel << "," << sCity << "," << Code << "" << endl;return S_OK;friend class ADDRESSBOOK;private:INT Code;BOOL bGender;INT Tel;string sName;string sCit

11、y;/BaseDataclass ADDRESSBOOKpublic:ADDRESSBOOK(VOID) /constructor cout << "<> Data Base has been initialized!" << endl; VOID Menu(VOID);VOID Quit(VOID);HRESULT Create(VOID);HRESULT Add(VOID);vector<BASEDATA>:size_type Find(VOID);HRESULT Alter(VOID);HRESULT Delete(VO

12、ID);VOID List(VOID);private:vector<BASEDATA> Data;/AddressBookVOID ADDRESSBOOK:Menu(VOID)cout << "<> Enter the keys:" << endl;cout << "-" << endl;cout << "-> CREATE(2);" << endl;cout << "-> ADD(3);" &

13、lt;< endl;cout << "-> FIND(4);" << endl;cout << "-> ALTER(5);" << endl;cout << "-> DELETE(6);" << endl;cout << "-> LIST(7);" << endl;cout << "-> QUIT(8);" << endl;cout <

14、< "-" << endl;VOID ADDRESSBOOK:Quit(VOID)exit(0);HRESULT ADDRESSBOOK:Create(VOID)cout << "-> Warning: Clear all the data!" << endl;Data.clear();cout << "-> Information: Create new data(2)!" << endl;return S_OK;HRESULT ADDRESSBOOK:A

15、dd(VOID)BASEDATA Tmp;if(SUCCEEDED(Tmp.CreateData()Data.push_back(Tmp);return S_OK;elsereturn E_FAIL;vector<BASEDATA>:size_type ADDRESSBOOK:Find(VOID)string tmp;cout << "-> Please Enter the name:" << endl;cin >> tmp;for(vector<BASEDATA>:size_type i = 0;i !=

16、Data.size(); +i)if(tmp = Datai.sName)cout << Datai.sName << "," << Datai.Tel << "," <<Datai.Code << "," << Datai.sCity << ","if(Datai.bGender = 1)cout << "man" << endl;elsecout << &quo

17、t;womam" << endl;return i;cout << "-> Warning: Don't exist!" << endl;return Data.size();HRESULT ADDRESSBOOK:Alter(VOID)vector<BASEDATA>:size_type iter = Find();if(iter = Data.size()return E_FAIL;elseBASEDATA tmp;tmp.CreateData();Dataiter = tmp;return S_O

18、K;HRESULT ADDRESSBOOK:Delete(VOID)vector<BASEDATA>:size_type iter = Find();if(iter = Data.size()return E_FAIL;elseDataiter.bGender = 1;Dataiter.Code = 0;Dataiter.sCity = "default"Dataiter.sName = "default"Dataiter.Tel = 0;cout << "-> Delete!" << end

19、l;return S_OK;VOID ADDRESSBOOK:List(VOID)if(Data.size() = 0)cout << "Warning-> No Data!" << endl;elsefor(vector<BASEDATA>:size_type i = 0; i != Data.size(); +i)cout << i << ":"cout << Datai.sName << "," << Datai.Tel <

20、;< "," <<Datai.Code << "," << Datai.sCity << ","if(Datai.bGender = 1)cout << "man" << endl;elsecout << "womam" << endl;/-/DESC:Global Variable/-ADDRESSBOOK test;VOID KeyDown(VOID)INT tmp;cin >>

21、 tmp; switch( tmp ) case 1: test.Menu();break;/onecase 2: test.Create();break;/twocase 3: test.Add();break;/threecase 4: test.Find();break;/fourcase 5: test.Alter();break;/fivecase 6: test.Delete();break;/sixcase 7: test.List();break;/sevencase 8: test.Quit();break;/eight VOID Operation(VOID)for(;)KeyDo

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論