




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
駁目;家譜管理系疫
目錄
L問題陳述1
2.設計方法闡述1
2.1總體規(guī)劃1
2.2功能分析與實現(xiàn)3
主界面介紹3
增加成員功能5
顯示家族成員信5
刪除功能6
查詢功能7
查詢第n代所有人得信息8
修改成員信息8
連接數據庫9
繪制圖形家譜10
小結11
3.總結11
4.代碼11
5.家族成員44
1.問題陳述
家譜用于記錄某家族歷代家族成員的情況與關系?,F(xiàn)編制一個家譜資料管理
軟件,實現(xiàn)對一個家族所有的資料進行收集整理C支持對家譜的存儲、更新、查
詢、統(tǒng)計等操作。并用計算機永久儲存家族數據,方便隨時調用。
2.設計方法闡述
2.1總體規(guī)劃
在動手編制程序之前,先要做好程序的規(guī)劃,包括程序儲存數據所用的垢構,
數據類型等等,只有確定了數據類型和數據結構,才能在此根底上進行各種算法
的設計和程序的編寫。
首先是考慮數據類型。在家譜中,家族成員是最根本的組成局部,對于家族
管理中,已經不能再進行細分了,所以選定家族成員作為數據的根本類型,并在
程序中定義Person類。
ClassPerson{
Stringnama;//姓幺
intage;//年齡
Stringsex;//性別
Birthdayymd;//出生日期
StringfatherName;
StringmotherName;
StringspouseName;
intchildNum;
intlevelTemp;//代數
BooleanisAlive;//是否健在
)
為方便計算機進行比擬,在Person類的某些屬性中用數字代替了某些不會
改變的字符串,譬如判斷是否健在〔irue為是,false為否)。在設置日期上,為
有的家族成員的信息用一個TXT文本存儲起來,然后讀出來,用一個數組mem
存起來,之后初始化祖先節(jié)點,根據祖先節(jié)點的數據域的信息來添加,先添加
祖先的父(母)親,假設有那么從數組中讀出來添加,否則添加兄弟姐妹,再
添加配偶,最后添加孩子,最重要的是每添加一個節(jié)點時應該判斷該節(jié)點是否
三經在家族樹中了,假設存在那么直接重家族樹中找出來對其進行相應的操作
,假設不在那么從數組mem中讀取,之后遍歷創(chuàng)立其兄弟姐妹,配偶,孩子。
2.2功能分析與實現(xiàn)
設想好總體規(guī)劃之后,便開始設計程序中需要用到的各個功能函數,初步設
想是要先實現(xiàn)最根本的幾項功能,其中數據操作的有:增加成員,修改成員資料,
刪除成員,數據查詢的有:查看某代信息,按姓名查找,按生日查找,查看成員
關系以及顯示杳看家族成員信息表,還有就是繪制家譜圖以及連接數據庫的操
作。
主界面介紹
主界面由三局部組成:菜單、生日公告欄以及歡送封面。下面為主界面圖:
圖1主界面
圖2菜單1
圖3菜單2
說明:(1)菜單中主要包括三大子菜單:文件、編輯、幫助。其中文件菜單中有
連接數據庫以及退出的操作,編輯中有所有功能實現(xiàn)操作。
(2)生日公告欄為系統(tǒng)自動獲取當日時間以判斷今日家族中是否有人生日,如
果有那么會自動發(fā)出祝福,本功能為創(chuàng)新功能。
(3)特別說明:在每一個功能界面中都設有帶圖標的快捷功能鍵,便于操作。
(4)主界面的代碼位于:FTFrame.java中,下面將---介紹功能。
實現(xiàn)主界面的方法:位于publicclassFTFrame類中
增加成員功能
我設計了兩種添加方式,首先,添加進去的人要與家族里的某一個或某幾個
有聯(lián)系,比方是某個人的孩子啊,或配偶,不然是無法參加進這個家族的。
(1)根據要添加人的父親添加,父親必須在家族中找到。
(2)根據添加人的配偶。假設這個配偶已有配偶那么不允許添加,不允許
三妻四妾。
實現(xiàn)增加成員的方法:publicStringaddMember(Personp){代碼省略}〃該
方法位于familyTest類中
圖4添加功能界面
顯示家族成員信
家族成員信息表是用于顯示及查看家族所有成員信息以及及時查看新增及
刪除后的情況,進入界面點擊顯示按鈕即可完成功能。
實現(xiàn)顯示成員信息表的方法:publicvoidinitrowData(Familyroot){代
碼省略}〃該方法位于FTFrame類中;
實現(xiàn)顯示成員信息表界面的方法:位于AddMember類中;
圖5家庭信息表
刪除功能
刪除功能執(zhí)行時,會將本人及其后代及配偶全部刪除。
實現(xiàn)刪除功能以及界面的代碼:位于deleteMember類和familyTest類中。
圖6刪除成員圖1
圖7刪除操作圖
該刪除功能只通過姓名進行刪除,刪除后通過家庭成員信息表觀察出其本人
以及其后代及配偶以及完全被刪除。
查詢功能
查詢功能中有兩種查找功能:查詢相同生日的所有成員、查找兩人關系。
(1)查詢兩人關系時,輸入兩人姓名即可按查詢按鈕進行查詢。
(2)查詢相同生日成員時,在下拉列表中選中日期即可查詢。
圖8查詢操作
實現(xiàn)查詢功能以及界面的代碼:位于searchMember類和familyTest中,其
中實現(xiàn)關系查詢的函數為relationship(namezName),生日查詢?yōu)?/p>
brithday(Familyroot,Birthdayd).
查詢第n代所有人得信息
進入操作界面,輸入代數即可進行查詢,如下列圖中查詢第3代人。
圖9代數查詢
實現(xiàn)顯示成員信息表界面和方法:AddMember類中(界面)和familyTest中
05inquire_N(Familyroot,intanger)方法。
修改成員信息
修改操作中有明確的說明規(guī)則,方便操作。在修改中好友根據姓名杳詢的
操作,方便查看修改后是否正確。
圖10修改成員
連接數據庫
在文件菜單中點擊連接數據庫操作,在彈出來的對話框中選擇確定,在彈出
的登陸框中輸入用戶名及密碼便可以連接數據庫。
說明:由于技術原因本系統(tǒng)只可以連接MySQL數據庫,還望諒解。
圖11菜單中選擇連接數據庫
圖12確定連接數據庫
圖13連接數據庫
實現(xiàn)數據庫連接的方法:位于familyTest中Family類的publicvoid
connectionDB_MySQL(StringpassNum)方法。
繪制圖形家譜
根據家族樹的存儲結構畫出來,難點是其中的間距很難調準。
圖14家譜圖
實現(xiàn)繪制家譜圖的方法:位于CFrame類中。
小結
至此,本家譜管理系統(tǒng)實現(xiàn)了在不同界面上操作不同的功能,其中包括七大
主要功能以及主功能下的多個小功能。
本家譜管理系統(tǒng)根本實現(xiàn)了要求的所有內容,界面使用了美化包。但是由于
技術知識有限,本系統(tǒng)或多或少存在一些缺乏之處,待在今后改正。
3.總結
通過這次大作業(yè),體會很深刻,用剛學的java都運用到這上面,學以致用,
對所學知識有了更深刻的理解,同時還發(fā)現(xiàn)了許多平時在書本上沒有遇見過的問
題,促進了自己對知識的渴望,遇見了問題,就希望能夠通過查找課外書來解決
它們。剛接觸題目的時候,自己就有了一定的想法,覺得這個程序做起來是問題
不大的,但到了自己真正開始編程的時候卻發(fā)現(xiàn)遠遠沒有想象中那么簡單,很多
細節(jié)的問題沒有預想到,很多關系的處理想得過于簡單,以至于實施起來遇到了
很大的困難,花了大量的時間。關于這個程序的缺點方面,由于自己花的時間不
是很多,再加上知識有限,編寫出來的界面不夠友好,在功能上還是有不完善的
地方,譬如說各項數據的統(tǒng)計還沒有弄,數據的存儲還不夠理想等等。
對于這個程序的改良,我自己還是有不少想法的,因為怎么說都是自己親手
編制出來的程序,當然是希望盡善盡美。首先是需要加強數據的存儲這方面的知
識,使自己編寫出來的程序能以一種標準的格式存儲下來,方便以后其它程序的讀
取。
總的來說,通過這次任務,收獲還是挺多的,也發(fā)現(xiàn)了不少的問題,并給自
己以后的學習指引了方向,知道自己缺少哪方面的知識,需要補充哪些知識等等。
自己將會以這次作業(yè)為契機,看更多編程方面的書籍,不斷充實自己的知識庫。
4.代碼
我只提供的功能實現(xiàn)的代碼,至于界面我沒提供
importjava.awt.*;
importjava.io.*;
importjava.utiL*;
importjava.sql.*;
importjavax.swing.*;
publicclassfamilyTest{
/**
*@paramargs
*/
publicstaticvoidmain(Slring[largs){〃測試函數
//TODOAuto-generatedmethodstub
/*Memberm=newMember();
for(inti=O;i<m.memberNum;i++)
System.out.println(m.member[i]);*/
System.out.println();
Familyf=newFamily。;
f.inilRoot();
f.CreateFamilyTrce(Family.root);
//Birthdaya=newBirthday(8888,6JI);
//Familyt=f.isAlTree(Family.root,"賈演");
//System.out.prinlln(t.parents.in);
//f.birthday(Family.root,a);
//Systcm.out.println(f.birthday);
//f.showFamilyTree(Family.root);
//System.out.println(t.in);
〃System.out.prinUn(f.deleleTree("賈演"));
//System.out.println(t.parents.in);
Birthdaydl,d2;
dl=newBirthday(2,l);
d2=newBirthday。,3);
Personpl.p2;
p1=ncwPerson(“林四",20,“男”,d1,“林如海)
p2=newPerson("張三",25,d2,”林黛玉)
//System.out.println(f.addMember(p1));
//System.out.prin(ln(f.addMember(p2));
//System.out.println(f.num);
//f.showFamilyTrcc(Family.root);
〃System.out.prinUn(f.modification("王夫","假貸",20,dI,true));
//f.showFainilyTrcc(Family.root);
CFramec=newCFrame(Family.root);
//f.conncctionDB.MySQLC'cjtc");
}
)
classBirthday{〃生日
iniyear;
intmonth;
iniday;
Birthday(){
)
Birthday(intm,intd){
year=8888;
month=m;
day=d;
)
Birthday(inty,intin,inid){
year=y;
month=m;
day=d;
1
publicStringtoStringO{
retummonth+day;
I
I
classPerson{〃家族成員的類
Stringname;〃姓名
intage;〃年齡
Stringsex;〃性別
Birthdayymd;〃出生日期
StringfatherNanic;〃父親名字
StringmotherName;//母親名字
StringspouseNanie;〃伴侶
intchildNum;〃孩子個數
intlevelTemp;〃代數
BooleanisAlivc;
AiTayList<String>brothers_sisters;〃兄弟蛆妹
ArrayList<String>children;〃孩子
Person(){
name=null;
age=0;
sex=null;
ymd=null;
levelTemp=0;
fathcrNamc="無;
motherName="無";
spouseName=null;
childNum=0;
isAlive=true;
brothcrs_sistcrs=null;
children=null;
}
Person(Stringname,intage,S(ringsex,Birthdayymd,StringfatherName){
=name;
this.age=age;
this.sex=sex;
this.ynid=ynid;
this.isAlive=true;
this.fathcrName=fathcrName;
)
Person(Stringname,iniage,Birthdayymd,StringspouseNanie){
=name;
this.age二age;
this.ymd=ymd;
this.isAlive=true;
this.spouscNamc=spouscNamc;
)
Person(Stringname,intage,Stringsex,Birthdayymd,StringfatherName,String
moiherName,SiringspouseNameJnlchildNum,intlevelTemp,BooleanisAlive,ArrayList<String>
brothers_sisters,ArrayList<String>children){〃構造方法,用于初始化
=name;
this.age=age;
this.scx=sex;
(his.ymd=ymd:
this.levellcmp=levelTcnip;
if(!falherName.equals("無"))
this.fatherName=fatherName;
elsethis.fatherName=null;
if(!motherName.equals("無"))
this.mothcrNamc=inothcrNamc;
elsethis.inotherName=null;
if(!spouseName.equals("無"))
ihis.spouseName=spouseName;
elsethis.spouseName=null;
this.childNum=childNum;
this.isAlive=isAlive;
this.brothcrs_sistcrs=brothcrs_sistcrs;
this.children=children;
I
publicStringtoStringO(
return"姓名:"+this.namc+,年齡:"+this.age+",性別:"+this.sex+",出生日期:"
+this.ymd+",父親:"-this.fatherName+",母親:"+this.motherName+",配偶:"+
this.spouseName+”,子女個數:"+this.childNum+",是第"+this.levelTemp+"代人"+",
是否健在:"+this.isAlive+”,兄弟姐妹:"+this.brothcrs_sistcrs+",孩子:"+this.children;
I
}
classMember(〃用于存儲成員,
Person[]member;
intmeinberNum=0;
publicfinalintMaxSize=100;
MeniherO{
member=newPersonfMaxSizel;
Strings="家譜管理系統(tǒng)成員.txt”;〃存儲成員的文件
Siringline;
try(
BufferedReaderin=newBufferedReader(newFileReader(s));
line=in.readLine();
while(line!=null){
Stringf](;
String[]time;
S(ring[]bsNum;
String[]cNuni:
ArrayList<String>bro_sis=newArrayList<String>();
ArrayList<String>child=newArrayList<String>();
Booleanbl;
t=linc.split(",");
time=t[3].split("-n);
Birthdayb=new
Birthday(8888,Intcger.parseInt(time[0]),Intcger.parscInt(tinie[l]));
if(t[9]=="FALSE")bl=false;
elsebl=true:
bsNum=tllO].split(,';");
cNum=t[1ll.split(";n);
if(bsNum[0].equals("無"))
bro_sis=null;
else{
for(inti=O;i<bsNum.lenglh;i++)
bro_sis.add(bsNum[i]);
I
if(cNum[O].equals("無"))
child=null;
else{
fbr(inti=O;i<cNum.lcngth;i++)
child.add(cNum[i]);
)
member[memberNum]=new
Person(t[0],lnteger.parselnt(t[1|),t[2],b,t[4],t[5],tf6],lnteger.parselnt(t[7]),lnteger.parselnt(t[8]),bl,
bro_sis,child);
memberNum++;
line=in.readLine。;
}catch(IOExceptione){
e.prin(S(ackTrace();
)
I
classXY{〃每個節(jié)點的位置(x,y)
inix,y;
XY(){
)
XY(inty){
this.x=x;
this.y=y;
I
I
classFamily{〃家族樹的類
staticintnum=0;
Personin;//數據域
Familyparents;〃指向父親的引用
Familyspouse;〃指向配偶的引用
Familychild;〃指向孩子的引用
Familybro_sis;
Membermem=newMember。;
ArrayLis?Person>birthday=newArrayList<Person>();
AirayList<Person>n_People=newArrayList<Person>();
XYlocation;//坐標
StringdbUL="jdbc:mysql://localhost/dbgoods";
StringdbNcwUL="jdbc:mysql://localhost/";
StringuserName="root";
StringuserPwd;
ConnectiondbConn;
ConnectionnewConn;
Statementstmt;
ResultSetrs;
staticFamilyroot=newFamilyO;〃根節(jié)點,祖先節(jié)點
voidinitRoot(){〃初始化祖先節(jié)點
root.in.agc=9999;
="祖先";
root.in.fatherNamc=null;
root.in.spouseName=null;
root.in.sex="男";
root.in.childrcn=newArrayList<String>();
root.in.children.add("賈源)
root.in.children.add("賈演");
root.in.childNum=root.in.children.size();
root.in.ymd=newBirthday(888,888,888);
root.in.isAlive=false;
root.location=newXY();
}
FamilyO{
in=newPerson();
parents=null;
spouse=null;
child=null;
bro_sis=null;
this.location=newXY();
1
Family(Pcrsonp){
in=p;
parents=null;
spouse=null;
child=null;
bro_sis=null;
this.location=ncwXY();
I
publicvoidCreateFamilyTree(Familyroot){〃創(chuàng)立家族樹
if(root!=null){
Familyparents,spouse,child,bro_sis;
〃找root雙親節(jié)點
if(root.in.fatherName!=null||root.in.motherName!=null){
parents=this.isAtTree(this.root,root.in.fatherName);〃找root的雙親
節(jié)點是否己經存在于家族樹中
if(parents!=null){
root,parents=parents;
)
else{
parents=this.isAlTree(this.root,root.in.ino(herName);
if(parents!=null){
root.parcnts=parents;
I
)
}
〃找root的兄弟姐妹節(jié)點
if(root.in.broihers_sisters!=null){
for(inti=0;i<root.in.brothers_sisters.size();i++){
bro_sis=this.isAtTrcc(this.root,root.in.brothcrs_sistcrs.gct(i));
if(bro_sis==null){
Personp_bs=this.inqureMember(root.in.brothers_sisters.get(i));
bro_sis=newFamily(p_bs);
Familyt=root;
while(t.bro_sis!=null){
t=t.bro_sis;
)
t.bro_sis=bro_sis;
num++;
〃找root的配偶節(jié)點
if(root.in.spcuseName!=null){
spouse=this.isAtTrcc(this.root,root.inspouscNamc);〃找root
的配偶節(jié)點是否已經存在于家族樹中
if(spouse==null){
Personp_spouse;
p_spouse=this.inqureMember(root.in.spouseName);
if(p_spouse!=null){
spouse=newFamily(p_spousc);
root.spousc=spouse;
num++;
if(root.in.children!=null){
child=lhis.isAtTree(this.root,root.in.children.get(O));
if(child==null){
Personp_child=this.inqureMember(root.in.children.get(0));
if(p_child!=null){
child=newFamily(p_child);
root.child=child;
num++;
I
)
}
if(root.bro_sis!=null)
CreateFamilyTree(root.bro_sis);
if(root.spouse!=null)
CreateFamilyTree(root.spouse);
if(root.child!=null)
CrcatcFamilyTrcc(root.child);
I
}
publicFamilyisAtTree(Family^Stringname){〃判斷節(jié)點是否在家族樹中
if(!=null){
if(.equals(name)){
returnr;
else{
if(r.bro_sis!=null){
Familyp=isAlTree(r.bro_sis,name);〃從兄弟姐妹節(jié)點找
if(p!=null)returnp;
if(r.spouse!=null){
Familyp=isAtTree(r.spouse,name);〃從配偶節(jié)點找
if(p!=null)returnp;
if(r.child!=null){
Familyp=isAtTree(r.child,name);〃從孩子節(jié)點找
if(p!=null)returnp;
returnnull;
1
publicPersoninqureMcmber(Stringname){〃根據姓名查找家族成員
fbr(inli=O;i<merrj.memberNum;i++)
if(niem.niember[i].nanie.equals(nanie))
returnn)eni.inember[ij;
returnnull;
I
publicvoidshowFamilyTree(Familyr){〃顯示家族所有成員
if(r!=null){
System.out.prin(ln(r.in);
if(r.bro_sis!=null)
showFamilyTree(r.bro_sis);
if(r.spouse!=null)
showFainilyTrcc(r.spousc);
if(r.child!=null)
showFamilyTrcc(r.child);
)
}
publicvoidbirthday(Familyr,Birlhdaya){〃查找過生日的人
if(r!=null){
y==a.day)this.birthday.add(r.in);
if(r.bro_sis!=null)birthday(r.bro_sis,a);
if(r.spouse!=null)binhday(r.spouse,a);
if(r.child!=null)birthday(r.child,a);
)
publicStringrelationship(Stringname1,Stringname2){〃判斷兩人的關系
if(namel!=null&&nanie2!=null&&!name1.equals。'")&&!name2.equalsC,")){
Familyfl,f2;
fl=this.isAtTrce(this.root,nainc1);
12=this.isAiTree(this.root,name2);
if(fl!=null&&f2!=null){
if(fl.parents!=null&&^.parents!=null&&fI.parents==t2.parents){
if(fl==f2)
return”輸入的兩人是同一個人!
if(fl.in.age>f2.in.age){
if(fl.in.sex.equals("男")&&fZ.in.sex.equals("女"))
return+"與"++”為兄妹關系"+">且"
+fl.in.name+”為兄,"++”為妹?!保?/p>
if(fl.in.sex.equals("男")&&fi.in.sex.equals("男"))
return+"與"++"為兄弟關系"+",且"
++”為兄,"++”為弟。
if(fl.in.sex.equals。'女")&&£2.山即入2411&15("男"))
return+"與"++”為姐弟關系"+",且"
++”為姐,"+I2.+”為弟。H;
if(fl.in.sex.equals("女")&&fZ.in.sex.equals("女"))
return+"與"++”為姐妹關系"+",且"
++"為姐,"+12.+"為妹。";
else{
if(fl.in.sex.equals("男")&&fZ.in.sex.equals("女"))
return+"與"++”為姐弟美系"+"?且”
++”為弟,”++”為姐。
iRfl.in.sex.equals("男")&&fl.in.sex.equals("男"))
return+"與"++”為兄弟關系"+",且"
++”為弟,”++”為兄
if(fl.in.sex.equals("女")&&fl.in.sex.equals("男"))
return+"與"++”為兄妹關系"+",且"
++"為妹,"++"為兄。";
if(fl.in.sex.cquals("女")&&fZ.in.sex.equals("女"))
return+”與"++”為姐妹關系"+",且"
+fl.in.name+”為妹,”++”為姐?!保?/p>
elseif(fl.in.sex.equals("男")&&f2.in.sex.equals("男")){
if(fl.parents!=null&&fl.parents==f2)
return+"與"+f2,+"為父子關系"+",且"+
+"為兒子,"++"為父親。
if(t2.parents!=null&&f2.parents==fl)
return+"與"+f2,+"為父子關系"+",且"+
+"為父親,"+2in.name+"為兒子。
if(fl.parents!=null&&fl.parents.bro_sis==f2){
if(fl.parents.in.age>f2.in.age)return+"為侄干,"
++"為叔父。
elsereturn+”為侄子,M++"為伯父。
ro_sis==fl){
if(f2.parents.in.age>fl.in.age)return+”為叔父,"
++"為侄子。
elsereturnfl.+"為伯父,"++"為侄子。
1
if(fl.parents!=null&&fl.parents.parents!=null&&fl.parents.parenls
==f2)
return+"與"++”為爺孫關系"+",且"+
fl.in.name+"為孫子,"++"為爺爺。
if(t2.parents!=null&&f2.parents.parents!=null&&f2.parents.parents
==fl)
return+"與"+f2,+”為爺孫關系"+且"+
fl.in.name+"為爺爺,"++"為孫子。
return''無法考證!”;
)
elseif(fl.in.sex.equals("男")&&f2.in.sex.equals("女")){
if(fI.parents!=null&&fl.parents.spouse==f2)
return+"與"++"為母子關系"+",且"+
fl.in.name+"為兒子,"++"為母親。
if(f2.parents!=null&&f2.parents==fl)
return+"與"++”為父女關系"+”,且"+
fl.in.name+"為父親,”+2in.name+"為女兒。
if(fl.in!=null&&
fl.in.spouseName!=null&&fI.in.spouseName.equals())
return+"與"+f2,+"為夫妻關系"+"?且"+
+"為丈夫,"++"為妻子。
if(fl.parents!=null&&fl.parents.bro_sis!=null&&
fl.parents.bro_sis.spousc==f2){
if(f1.parents.in.age>fl.paren(s.bro_sis.in.age)
return+"為侄子,"+f2.in.namc+"為嬸嬸°
elsereturn+"為侄子,"++"為伯母。
)
if(f2.parcnts!=null&&f2.parcnts.spousc==null){
FamilyHnother=this.isAtTree(this.root,12.in.mo(herName);
if(f_mother!=nul!&&f_mother.in.brothers_sisters!=null){
for(inti=0;i<f_inother.in.brothers_sisters.size();i++){
FamilyCm_bs=this.isAtTree(this.root,
fLmother.in.brothers_sisters.get(i));
if(f_m_bs!=null)(
if(f_m_bs.in.sex.equals("男")&&f_m_bs==fl)
return+"為舅舅,"++
為外甥女。”;
}
if(fl.parents!=null&&fl.parents.parents!=null&&
fl.parents.parents.spouse==f2)
returnfl.in.name+"為孫子,"++"為奶奶。
if(12.parents!=null&&f2.parents.parents==fl)
return+"為爺爺,"++"為孫女。
if(i2.parents!=null&&f2.parents.spouse==null){
Familyf_mother=this.isAtTree(this.root,f2.in.motherName);
if(f_mother!=null&&f_mother.parents==fl)
return+"為外公,"+f2.in.namc+"為外孫女。
1
return"無法考證!
1
elseif(fl.in.sex.equals("女")&&Q.in.sex.equals("男")){
if(fl.parents!=null&&fl.parents==f2)
return+"與"+fl,+"為父女關系"+",且"+
fl.in.name+"為女兒,"++"為父親。
if(f2.parents!=null&&f2.parents.spouse==fl)
return+"與"++"為母子關系"+">且”+
+"為母親,"++"為兒子。
if(fl.in.spouseName!=null&&fl.in.spouseName.equals(>)
return+"與"+f2,+”為夫妻關系"+",且"+
fl.in.name+"為妻子,"++"為丈夫。
if(f2.parents!=null&&f2.parents.bro_sis!=null&&
f2.parents.hro_sis.spouse==fl){
if(f2.parents.in.age>f2.parents.bro_sis.in.age)
return+"為嬸嬸,"++"為侄子。
elsereturn+"為伯母,"++"為侄子。";
I
if(fl.parents!=null&&fl.parents.spouse==null){
Family匚mother=(his.isAtTree(this.root,fl.in.motherName);
if(f_mother!=nu11&&Lmother.in.brothcrs_sisters!=nu11){
for(inti=0;i<f_mother.in.brothers_sisters.size();i++){
FamilyCm_bs=this.isAtTree(this.root,
Cmother.in.brothers_sisters.get(i));
if(f_m_bs!=null){
if(f_m_bs.in.sex.equals("男")&&f_m_bs==f2)
returnfl.+"為夕卜甥女,"++
“為舅舅。
if(fl.parents!=null&&fl.parents.parents==f2)
return+"與"++"為爺孫關系"+",且"+
+"為孫女,"++"為爺爺?
if(f2.parents!=null&&f2.parents.parents!=null&&
f2.parents.parcnts.spousc==fl)
return+"為奶奶,"+12.+"為孫子。
if(fl.parents!=nuil&&fl.parents.spouse==null){
Familyf_mother=(his.isAtTree((his.root,fl.in.mo(herName);
if(Cniother!=null&&Lmother.parents==⑵
return+”為外孫女,"++"為外公。
}
return”無法考證!
I
elseif(fl.in.sex.equals("女")&&f2.in.scx.equals("女")){
if(fl.parents!=null&&fl.parents.spouse==f2)
return+"與"+f2,+"為母女關系"+",且"+
fl.in.name+"為女兒,"++"為母親?
if(f2.parents!=null&&f2.parents.spouse==fl)
return+"與"+f2,+"為母女關系"+",且"+
fl.in.name+"為母親,”+⑵+"為女兒。
if(fl.in.motherName!=null&&fl.in.motherName.equals())
return+"與"++”為母女關系"+”,且”+
fl.in.name+"為女兒,"++"為母親。
if(i2.in.mo(herName!=null&&f2.in.motherName.equals(fl.))
return+"與"++"為母女關系"+"?且"+
fl.in.name+"為母親,"++"為女兒。
if(fl.parents!=null&&fl.parents.spouse==null){
me);
if(Cmother!=nul1&&Lmother.in.brolhers_sisters!=nu11){
fbr(inti=0;i<f_mother.in.brothers_sisters.size();i++){
Family匚m_b$=this.isAtTree(this.root,
Lmother.in.brothers_sisters.get(i));
if(f_m_bs!=null){
if(f_m_bs.in.sex.equals("女")&&f_m_bs==f2)
returnfl.+"為外甥女,"++
"為姑姑。
}
if(f2.parents!;null&&f2.parents.spouse==null){
FamilyJmothcr=this.isAtTrce(this.root,f2.in.mothcrName);
if(Lmother!=null&&Lmolher.in.brothers_sisters!=null){
for(inti=0;i<f_rnother.in.brothers_sisters.sizeO;i++){
Family=this.isAtTree(this.root,
f_mother.in.brothers_sisters.get(i));
if(f_m_bs!=null){
if(f_m_bs.in.sex.equals("女")&&f_m_bs==f1)
returnfL+"為姑姑,"+f2.in.namc+"
為外甥女。
if(fl.parents!=null&&fl.parents.parcnts!=null&&
fl.parents.parcnts.spousc==f2)
returnfl.+"為孫女,"++"為奶奶。
if(f2.parents!=null&&f2.parents.parents!=null&&
f2.parents.parents.spouse==fl)
return+"為奶奶,"++"為孫女。
if(fl.parents!=null&&fl.parents.spouse==null){
FamilyJmother=this.isAtTree(this.root,fl.in.motherName);
if(Lniothcr!=nuil&&flniothcr.parcnts!=null&&
f_mother.parents.spouse==f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年監(jiān)理考試-高速公路監(jiān)理崗前考核歷年參考題庫含答案解析(5套典型考題)
- 2025年環(huán)保知識生態(tài)建設知識競賽-氣候環(huán)境保護知識競賽歷年參考題庫含答案解析(5套典型考題)
- 2025年建筑水利市政公路三類人員-陜西建筑三類人員考試歷年參考題庫含答案解析(5套典型考題)
- 2025年建筑八大員(九大員)住房城鄉(xiāng)建設領域現(xiàn)場專業(yè)人員考試-標準員歷年參考題庫含答案解析(5套典型考題)
- 2025年安全知識安全生產知識競賽-職業(yè)健康知識競賽歷年參考題庫含答案解析(5套典型考題)
- 2025年大學試題(財經商貿)-經濟統(tǒng)計學歷年參考題庫含答案解析(5套典型考題)
- 2025年大學試題(計算機科學)-超文本標記語言(HTML)歷年參考題庫含答案解析(5套典型考題)
- 2025年大學試題(計算機科學)-TCP-IP原理歷年參考題庫含答案解析(5套典型考題)
- 2025年大學試題(管理類)-娛樂文化市場管理歷年參考題庫含答案解析(5套典型考題)
- 2025年大學試題(大學選修課)-人工智能歷年參考題庫含答案解析(5套典型考題)
- 社工的勞動合同范本(2025版)
- 2025年老年司機三力測試題及答案解析
- (2025標準)pos機代理協(xié)議書
- 2025年食品安全員業(yè)務培訓試題(含答案)
- 紡織服裝產業(yè)園項目建設方案
- 2025年護士條例試題及答案
- DB44T 1597-2015 電鍍水污染物排放標準
- 2025年丹東市元寶區(qū)社區(qū)專職工作者招聘23人筆試備考題庫及答案解析
- 國際信貸(劉金波)
- 部編道德與法治整體解讀及三上教材分析
- 護理髖關節(jié)置換術后健康宣教
評論
0/150
提交評論