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

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、示通訊錄中的所有記錄。;【設(shè)計(jì)要求】1) 每條信息至包含 :姓名(NAME )、性別(GENDER)、電話(TEL) 、城市(CITY)郵編(EIP)幾項(xiàng)。2) 作為一個(gè)完整的系統(tǒng),應(yīng)具有友好的界面和較強(qiáng)的容錯(cuò)能力; 2、總體設(shè)計(jì)2.1、功能模塊設(shè)計(jì)根據(jù)課程設(shè)計(jì)題目的功能要求,各個(gè)功能模塊的組成框圖如下: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、所有功能模塊的流程圖開(kāi)始Menu輸入流tmpMenuCreateAddFindAlterDeleteListQuit根據(jù)tmp值判斷ClearPush-backFindFind結(jié)束賦值操作賦值操作3、詳細(xì)設(shè)計(jì)模塊功能說(shuō)明:如函數(shù)功能、入口及出口參數(shù)說(shuō)明,函數(shù)調(diào)用關(guān)系描述等;3.1、程序中所采用的數(shù)據(jù)結(jié)構(gòu)及存儲(chǔ)結(jié)構(gòu)的說(shuō)明class

5、 BASEDATApublic:HRESULT CreateData(void);friend class ADDRESSBOOK;private:INT Code; /郵政編碼BOOL bGender; /性別INT Tel; /電話號(hào)碼string sName; /姓名string sCity; /城市;/BaseData子存儲(chǔ)結(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; /基本存儲(chǔ)結(jié)構(gòu)容器;/AddressBook3.2、算法的設(shè)計(jì)思想BASEDATA為基本的存儲(chǔ)結(jié)構(gòu),包含最為基本的數(shù)據(jù)類型。子存儲(chǔ)結(jié)構(gòu)通過(guò)友元訪問(wèn)基本存儲(chǔ)結(jié)構(gòu)的私有成員,調(diào)用接口修改該和創(chuàng)建元素。4、調(diào)試與測(cè)試:F10啟動(dòng)調(diào)試,編譯器開(kāi)始編譯源碼,編譯成功,排除語(yǔ)法錯(cuò)誤,現(xiàn)逐塊執(zhí)行語(yǔ)句。顯示<> Data Base h

7、as been initialized! 表明數(shù)據(jù)結(jié)構(gòu)已經(jīng)創(chuàng)建完畢,自動(dòng)窗口顯示變量為:繼續(xù)逐塊執(zhí)行,輸出菜單選項(xiàng);逐個(gè)功能測(cè)試,查看是否有中斷出現(xiàn)。4.2、測(cè)試結(jié)果的分析與討論:追加功能:查找功能:修改功能:列表功能:刪除功能:4.3、測(cè)試過(guò)程中遇到的主要問(wèn)題及采取的解決措施:本人邏輯很好,已在寫(xiě)碼前構(gòu)思完整,基本沒(méi)有測(cè)試問(wèn)題(語(yǔ)法/邏輯)。對(duì)于本程序速度會(huì)較慢的問(wèn)題,本人已經(jīng)使用Release優(yōu)化,并設(shè)置多線程(/MT)將需要的DLL編譯至exe文件中,使得不含開(kāi)發(fā)環(huán)境的計(jì)算機(jī)可以執(zhí)行本程序。5、源程序清單和執(zhí)行結(jié)果/-/項(xiàng)目(ITEM):通訊錄 Address Book/時(shí)間(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論