版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄一、設(shè)計(jì)題目二、設(shè)計(jì)目的三、設(shè)計(jì)分析四、總體設(shè)計(jì)五、詳細(xì)設(shè)計(jì)六、系統(tǒng)調(diào)試七、結(jié)論一、設(shè)計(jì)題目家譜管理系統(tǒng)二、設(shè)計(jì)目的用已經(jīng)學(xué)過的知識設(shè)計(jì)一個(gè)簡單的應(yīng)用程序,方便家譜的管理。了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測試等基本方法和技能;提高綜合運(yùn)用所學(xué)的理論知識和方法獨(dú)立分析和解決問題的能力;訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。家譜用于記錄某家族歷代家族成員的情況與關(guān)系。本課程設(shè)計(jì)要求設(shè)計(jì)并實(shí)現(xiàn)一個(gè)計(jì)算機(jī)軟件,支持對家譜的存儲、更新、查詢、統(tǒng)計(jì)等操作。培養(yǎng)大家的由理論到實(shí)踐的學(xué)習(xí)能力,增強(qiáng)同學(xué)們的團(tuán)隊(duì)合作精神。三、設(shè)計(jì)分析內(nèi)部要求:要求將家譜信息看作樹形結(jié)構(gòu)處理,并可存儲在外存。數(shù)據(jù)可一次讀入內(nèi)存;外部要求:這一級要求系統(tǒng)具備下列基本功能:1、家庭成員信息存儲:將每個(gè)家庭成員的基本信息存儲在計(jì)算機(jī)中(可永久保存)。家庭成員的基本信息至少應(yīng)包括:(姓名,出生地,出生日期,死亡日期,性別,身高,學(xué)歷,職業(yè),最高職務(wù)/職稱,…);2、家族關(guān)系存儲:將各家庭成員之間的關(guān)系,存儲在計(jì)算機(jī)中(可永久保存);3、更新:家譜數(shù)據(jù)的更新(修改、刪除、加入);D)輸出:將家譜以較友好的格式輸出(顯示);4、查詢:按基本信息查詢成員,按親戚關(guān)系查詢;四、總體設(shè)計(jì)對問題描述中涉及的操作對象定義相應(yīng)的數(shù)據(jù)類型,并按照以數(shù)據(jù)結(jié)構(gòu)為中心的原則劃分模塊,定義主程序模塊和各抽象數(shù)據(jù)類型。邏輯設(shè)計(jì)的結(jié)果應(yīng)寫出每個(gè)抽象數(shù)據(jù)類型的定義(包括數(shù)據(jù)結(jié)構(gòu)的描述和每個(gè)基本操作的功能說明),各個(gè)主要模塊的算法,并畫出模塊之間的調(diào)用關(guān)系圖。五、詳細(xì)設(shè)計(jì)家庭成員基本信息用線性表表示,程序結(jié)束后存儲在磁盤上,程序開始是從磁盤讀出;家庭成員之間的關(guān)系,用樹形結(jié)構(gòu)(家族樹)表示;家族樹在程序結(jié)束后存儲在磁盤上,程序開始是從磁盤讀出;樹在內(nèi)存中的存儲結(jié)構(gòu):鄰接表或孩子兄弟鏈,帶父指示器;家庭成員基本信息設(shè)置數(shù)字編號,用于唯一地標(biāo)識記錄;樹結(jié)點(diǎn)用家庭成員的編號標(biāo)識。通過編號,建立家庭成員的基本信息與樹結(jié)點(diǎn)的聯(lián)系;樹在磁盤文件中的存儲結(jié)構(gòu):存儲串行化結(jié)果,如“根-葉序列”;所謂“根-葉序列”,是指,從樹根到每個(gè)葉子結(jié)點(diǎn)的路徑。路徑的排列次序表示兄弟的次序。例如,下圖表示的樹的“根-葉序列”為:1,2,41,2,61,2,8,5(這三行的次序,表示4,6,8的次序,即4,6,8分別是2的第1,2,3個(gè)孩子)1,71,3,91,3,10六、系統(tǒng)調(diào)試系統(tǒng)的所有功能:如圖1圖1建立家譜:如圖2圖2七、結(jié)論在設(shè)計(jì)的初期,首先通過文檔的整理,初步定了一下本系統(tǒng)主要實(shí)現(xiàn)的功能:建立新的家庭系譜圖,在家譜中增加新成員以及其基本信息,更新一個(gè)成員的信息,刪除和查看一個(gè)人的信息,通過親屬尋找一個(gè)成員。在設(shè)計(jì)中期,進(jìn)行算法設(shè)計(jì),代碼編寫。最后進(jìn)行上機(jī)調(diào)試,并在調(diào)試過程中改進(jìn)代碼。撰寫說明書。此次設(shè)計(jì)使我學(xué)的知識得到了升華。附源代碼:#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,建立一個(gè)二叉樹家譜,并輸入根結(jié)點(diǎn)信息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é)點(diǎn)system("cls");cout<<"***********************AddChildOpertation***************************"<<endl;if(ged.GetRoot())ged.AddOperation();//根結(jié)點(diǎn)非空,調(diào)用addoperation()添加結(jié)點(diǎn)else{//否則添加根結(jié)點(diǎn)ged.NewGEnealogy();cout<<"It'sanullGenealogy,Pleaseinputtheinformationoftherootperson"<<endl;ged.InputData(pnode);ged.Add(NULL,pnode);}break;case5://選5,修改樹結(jié)點(diǎn)信息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,刪除某個(gè)結(jié)點(diǎn)以及他的所有孩子結(jié)點(diǎn)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)計(jì)函數(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上教版必修1地理上冊階段測試試卷含答案
- 2025年蘇教新版選修5歷史上冊月考試卷
- 2025年外研版三年級起點(diǎn)選修五歷史上冊月考試卷
- 2025年新世紀(jì)版選擇性必修3化學(xué)上冊階段測試試卷含答案
- 2025年統(tǒng)編版2024選修2地理下冊階段測試試卷含答案
- 2025年蘇教版必修1歷史上冊月考試卷
- 2025年華東師大版必修三語文下冊階段測試試卷
- 2025年度體育場館場地租賃及賽事運(yùn)營服務(wù)合同范本3篇
- 鄉(xiāng)村旅游合作社經(jīng)營合同2024
- 二零二五年度大型活動(dòng)策劃與派遣公司臨時(shí)員工派遣合同4篇
- 風(fēng)電場事故案例分析
- 護(hù)理飲食指導(dǎo)整改措施及方案
- 項(xiàng)目工地春節(jié)放假安排及安全措施
- 印染廠安全培訓(xùn)課件
- 紅色主題研學(xué)課程設(shè)計(jì)
- 胸外科手術(shù)圍手術(shù)期處理
- 裝置自動(dòng)控制的先進(jìn)性說明
- 《企業(yè)管理課件:團(tuán)隊(duì)管理知識點(diǎn)詳解PPT》
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)二 軟文的寫作
- 英語詞匯教學(xué)中落實(shí)英語學(xué)科核心素養(yǎng)
- 《插畫設(shè)計(jì)》課程標(biāo)準(zhǔn)
評論
0/150
提交評論