![長春大學數(shù)據(jù)結(jié)構(gòu)任務書_第1頁](http://file4.renrendoc.com/view/bf24066571432aa75c8acdd9a63086f5/bf24066571432aa75c8acdd9a63086f51.gif)
![長春大學數(shù)據(jù)結(jié)構(gòu)任務書_第2頁](http://file4.renrendoc.com/view/bf24066571432aa75c8acdd9a63086f5/bf24066571432aa75c8acdd9a63086f52.gif)
![長春大學數(shù)據(jù)結(jié)構(gòu)任務書_第3頁](http://file4.renrendoc.com/view/bf24066571432aa75c8acdd9a63086f5/bf24066571432aa75c8acdd9a63086f53.gif)
![長春大學數(shù)據(jù)結(jié)構(gòu)任務書_第4頁](http://file4.renrendoc.com/view/bf24066571432aa75c8acdd9a63086f5/bf24066571432aa75c8acdd9a63086f54.gif)
![長春大學數(shù)據(jù)結(jié)構(gòu)任務書_第5頁](http://file4.renrendoc.com/view/bf24066571432aa75c8acdd9a63086f5/bf24066571432aa75c8acdd9a63086f55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄一、設計題目二、設計目的三、設計分析四、總體設計五、詳細設計六、系統(tǒng)調(diào)試七、結(jié)論一、設計題目家譜管理系統(tǒng)二、設計目的用已經(jīng)學過的知識設計一個簡單的應用程序,方便家譜的管理。了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設計方法,具備初步的獨立分析和設計能力;初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設計、程序編碼、測試等基本方法和技能;提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;訓練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),培養(yǎng)軟件工作者所應具備的科學的工作方法和作風。家譜用于記錄某家族歷代家族成員的情況與關(guān)系。本課程設計要求設計并實現(xiàn)一個計算機軟件,支持對家譜的存儲、更新、查詢、統(tǒng)計等操作。培養(yǎng)大家的由理論到實踐的學習能力,增強同學們的團隊合作精神。三、設計分析內(nèi)部要求:要求將家譜信息看作樹形結(jié)構(gòu)處理,并可存儲在外存。數(shù)據(jù)可一次讀入內(nèi)存;外部要求:這一級要求系統(tǒng)具備下列基本功能:1、家庭成員信息存儲:將每個家庭成員的基本信息存儲在計算機中(可永久保存)。家庭成員的基本信息至少應包括:(姓名,出生地,出生日期,死亡日期,性別,身高,學歷,職業(yè),最高職務/職稱,…);2、家族關(guān)系存儲:將各家庭成員之間的關(guān)系,存儲在計算機中(可永久保存);3、更新:家譜數(shù)據(jù)的更新(修改、刪除、加入);D)輸出:將家譜以較友好的格式輸出(顯示);4、查詢:按基本信息查詢成員,按親戚關(guān)系查詢;四、總體設計對問題描述中涉及的操作對象定義相應的數(shù)據(jù)類型,并按照以數(shù)據(jù)結(jié)構(gòu)為中心的原則劃分模塊,定義主程序模塊和各抽象數(shù)據(jù)類型。邏輯設計的結(jié)果應寫出每個抽象數(shù)據(jù)類型的定義(包括數(shù)據(jù)結(jié)構(gòu)的描述和每個基本操作的功能說明),各個主要模塊的算法,并畫出模塊之間的調(diào)用關(guān)系圖。五、詳細設計家庭成員基本信息用線性表表示,程序結(jié)束后存儲在磁盤上,程序開始是從磁盤讀出;家庭成員之間的關(guān)系,用樹形結(jié)構(gòu)(家族樹)表示;家族樹在程序結(jié)束后存儲在磁盤上,程序開始是從磁盤讀出;樹在內(nèi)存中的存儲結(jié)構(gòu):鄰接表或孩子兄弟鏈,帶父指示器;家庭成員基本信息設置數(shù)字編號,用于唯一地標識記錄;樹結(jié)點用家庭成員的編號標識。通過編號,建立家庭成員的基本信息與樹結(jié)點的聯(lián)系;樹在磁盤文件中的存儲結(jié)構(gòu):存儲串行化結(jié)果,如“根-葉序列”;所謂“根-葉序列”,是指,從樹根到每個葉子結(jié)點的路徑。路徑的排列次序表示兄弟的次序。例如,下圖表示的樹的“根-葉序列”為:1,2,41,2,61,2,8,5(這三行的次序,表示4,6,8的次序,即4,6,8分別是2的第1,2,3個孩子)1,71,3,91,3,10六、系統(tǒng)調(diào)試系統(tǒng)的所有功能:如圖1圖1建立家譜:如圖2圖2七、結(jié)論在設計的初期,首先通過文檔的整理,初步定了一下本系統(tǒng)主要實現(xiàn)的功能:建立新的家庭系譜圖,在家譜中增加新成員以及其基本信息,更新一個成員的信息,刪除和查看一個人的信息,通過親屬尋找一個成員。在設計中期,進行算法設計,代碼編寫。最后進行上機調(diào)試,并在調(diào)試過程中改進代碼。撰寫說明書。此次設計使我學的知識得到了升華。附源代碼:#include<iostream.h>#include<fstream.h>#include<string.h>#include<stdlib.h>#include"genealogy.h"voidmain(){GEnealogyged;personpnode=newCSNode;personresultname=newCSNode;intchoice1;charName[max_char_num],tag[max_char_num];strcpy(tag,"-1");while(1){//輸出主畫面選擇菜單cout<<"***************************GenealogySystem***************************"<<endl;cout<<"1.BuildanewGenealogy"<<endl;cout<<"2.ReadGenealogyDatafromabinarydatfile"<<endl;cout<<"3.SaveGenealogyDataintodisk"<<endl;cout<<"4.AddapersontotheGenealogy"<<endl;cout<<"5.ModifyapersonintheGenealogy"<<endl;cout<<"6.Deleteapersonandhisalloffspring"<<endl;cout<<"7.DisplaytheGenealogyinthetreeform"<<endl;cout<<"8.StatisticapersonstatusintheGenealogy"<<endl;cout<<"9.Findapersonbyhisinformation"<<endl;cout<<"10.Findapersonbyrelativerelationshiop"<<endl;cout<<"0.Exit"<<endl;cin>>choice1;switch(choice1){case1://選1,建立一個二叉樹家譜,并輸入根結(jié)點信息system("cls");cout<<"*************BuildanewGenealogyOperation*********************"<<endl;strcpy(pnode->data.parentname,tag);ged.NewGEnealogy();cout<<"Pleaseinputtheinformationoftherootperson"<<endl;ged.InputData(pnode);ged.Add(NULL,pnode);break;case2://選2,從文件讀取數(shù)據(jù)建立二叉樹ged.CreateGEnealogy();system("cls");cout<<"***********************ReadOpertation***************************"<<endl;cout<<"Readsuccessfully"<<endl;break;case3://選3,保存二叉樹信息到文件system("cls");cout<<"***********************SaveOpertation***************************"<<endl;ged.SaveGEnealogy();cout<<"Savesuccessfully"<<endl;break;case4://選4,在二叉樹添加結(jié)點system("cls");cout<<"***********************AddChildOpertation***************************"<<endl;if(ged.GetRoot())ged.AddOperation();//根結(jié)點非空,調(diào)用addoperation()添加結(jié)點else{//否則添加根結(jié)點ged.NewGEnealogy();cout<<"It'sanullGenealogy,Pleaseinputtheinformationoftherootperson"<<endl;ged.InputData(pnode);ged.Add(NULL,pnode);}break;case5://選5,修改樹結(jié)點信息system("cls");cout<<"***********************ModifyOpertation***************************"<<endl;cout<<"Pleaseinputthenameofthepersonyouwanttomodify"<<endl;cin>>Name;resultname=NULL;ged.FindByName(ged.GetRoot(),resultname,Name);if(resultname){cout<<"Pleaseinputnewinformationoftheperson"<<endl;ged.InputData(pnode);ged.Modify(resultname,pnode);}elsecout<<"Inputerror"<<endl;break;case6://選6,刪除某個結(jié)點以及他的所有孩子結(jié)點system("cls");cout<<"***********************DeleteOpertation***************************"<<endl;cout<<"Pleaseinputthenameofthepersonandhisoffspringyouwanttodelete"<<endl;cin>>Name;resultname=NULL;ged.FindByName(ged.GetRoot(),resultname,Name);if(resultname){ged.Delete(resultname);cout<<"Deletesuccessfully"<<endl;}elsecout<<"Inputerror"<<endl;break;case7://選7,輸出樹型表system("cls");cout<<"***********************DisplayOpertation***************************"<<endl;if(ged.GetRoot())ged.DisplayTree(ged.GetRoot());elsecout<<"GenealogyisNULL"<<endl;break;case8://選8,調(diào)用統(tǒng)計函數(shù)system("cls");cout<<"***********************StatisticOpertation***************************"<<endl;ged.Statistic();break;case9://選9,調(diào)用按基本信息查詢函數(shù)system("cls");cout<<"***********************InquieOpertationI***************************"<<endl;ged.Inquire();break;case10://選10,查詢親屬關(guān)系system("cls");cout<<"***********************InquieOpertationII***************************"<<endl;cout<<"Pleaseinputthenameofthepersonyouwanttofindabouthisrelative"<<endl;cin>>Name;ged.FindByName(ged.GetRoot(),resultname,Name)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廚房承包合同
- 宿舍承包合同范本
- 2025雜工勞務分包合同
- 2025關(guān)于住房公積金借款合同書例文
- 房子裝修承包合同
- 提高創(chuàng)新和問題解決能力的培訓
- 2025會計工作勞動合同范本
- 2025副食品供貨合同范文
- 工程材料采購合同簡單
- 2025共有產(chǎn)權(quán)住房 預售合同 (范本)
- 《小學作文指導》課件
- 小學六年級數(shù)學方程應用題100道及答案解析
- 2025新譯林版英語七年級下單詞表
- 海洋工程設備保溫保冷方案
- 文藝演出排練指導服務合同
- 魏寧海超買超賣指標公式
- (正式版)FZ∕T 80014-2024 潔凈室服裝 通 用技術(shù)規(guī)范
- 新起點英語二年級下冊全冊教案
- 【幼兒園戶外體育活動材料投放的現(xiàn)狀調(diào)查報告(定量論文)8700字】
- 剪映專業(yè)版:PC端短視頻制作(全彩慕課版) 課件 第3章 短視頻剪輯快速入門
- 湖南省長沙市開福區(qū)青竹湖湘一外國語學校2023-2024學年九年級下學期一模歷史試題
評論
0/150
提交評論