数据结构课程设计(家族关系查询系统) 联系客服

发布时间 : 星期一 文章数据结构课程设计(家族关系查询系统)更新完毕开始阅读a21a23a7afaad1f34693daef5ef7ba0d4b736d43

家族关系查询系统

再通过主函数调用实现的。 主函数:

/* 主控函数*/

int main(int argc,char* argv[]) {

DataType str[MAXNUM]=\,input[40]; int i,j,flag,start=0,pos,tag1,tag2; TriTree *temp,*tree=NULL; while(1) { printf(\欢迎使用家族关系查询系统!\\n\); printf(\请输入与之匹配的函数和参数,如parent(C)\\n\); printf(\新建一个家庭关系: Create(familyname) 参数为字符串\\n\); printf(\打开一个家庭关系: Open(familyname) 参数为字符串\\n\); printf(\添加新成员的信息: Append() 无参数\\n\); printf(\查找一个成员的祖先: Ancesstor(name) 参数为字符串\\n\); printf(\查找一个成员的祖先路径:AncesstorPath(name) 参数为字符串\\n\); printf(\确定一个成员是第几代: Generation(name) 参数为字符串\\n\); printf(\查找一个成员的双亲: Parent(name) 参数为字符串\\n\); printf(\查找一个成员的兄弟: Brothers(name) 参数为字符串\\n\); printf(\查找一个成员的堂兄弟: Consin(name) 参数为字符串\\n\); printf(\查找一个成员的孩子: Children(name) 参数为字符串\\n\);

printf(\查找一个成员的子孙后代:Descendants(name) 参数为字符串\\n\); printf(\退出系统: Exit() 无参数\\n? \);

21

家族关系查询系统

gets(input); /* input数组存放输入的函数和参数*/ j=0,tag1=0,tag2=0; for(i=0;i

22

家族关系查询系统

else if(strcmp(input,\)==0) flag=7; else if(strcmp(input,\)==0) flag=8; else if(strcmp(input,\)==0) flag=9; else if(strcmp(input,\)==0) flag=10; else if(strcmp(input,\)==0) flag=11; else if(strcmp(input,\)==0) flag=12; else /* 无匹配则重新输入*/ { printf(\无匹配的函数,请重新输入!\\n\); continue; } if(!(flag==1||flag==2||flag==12)&&start==0) { /* 如果第一次输入函数不是建立、打开或退出,则重新输入*/ printf(\请先建立或打开一个家族关系!\\n\); continue; } start=1; /* 标记不是第一次输入input */ if(flag>=4&&flag<=11) /* 函数需要字符串型参数name */ { temp=Search(tree,str);/* 若存在则返回结点*/ if(!temp) /* 若不存在则返回*/ { printf(\该成员不存在!\\n\); continue; } } switch(flag) /* 根据flag标记调用函数*/ { case 1: tree=Create(str);

23

家族关系查询系统

}

break; case 2: tree=Open(str); break; case 3: Append(tree); break; case 4: Ancesstor(tree); break; case 5: AncesstorPath(temp); break; case 6: Parent(temp); break; case 7: Generation(temp); break; case 8: Brothers(temp,str); break; case 9: Consin(temp); break; case 10: Children(temp); break; case 11: Descendants(temp); break; case 12: exit(OK); } }

return 0;

24