数据结构家谱图代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//main.cpp
# include
# include
# include
# include
# include
# include "Head.h"
void main()
{
HANDLE consolehwnd;
//字体颜色的改变
consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);
//字体颜色的改变
int chose,i;
BinTree T;
T=NULL;
while(1)
{
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY+FOREGROUND_RED);
//字体颜色的改变
printf("***************家谱信息功能表*************\n");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY+FOREGROUND_BLUE|F OREGROUND_GREEN);
printf("1:新建一个根节点\n");
printf("2:以添加成员节点构造家谱图\n");
printf("3:家谱树的层次显示\n");
printf("4家谱树保存到文件!\n");
printf("5:家谱树读入文件!\n");
printf(":家谱信息的删除\n");
printf("6:结束程序\n");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY+FOREGROUND_RED);
//字体颜色的改变
printf("************按以上功能表进行操作*************\n");
SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY+FOREGROUND_BLUE+F OREGROUND_GREEN+FOREGROUND_RED);
for(i=1;i<=100;)
{
printf("请输入你在功能表上的选项:") ;
scanf("%d",&chose);
if(1<=chose<=11)
break;
else
printf("你输入的选项不正确,请重新输入!\n");
}
switch(chose)
{
case 1:
system("cls"); //在控制台程序使用清屏函数InPut(T); //录入个人信息
printf("按任意键返回"); //等待程序
system("pause");
system("cls");
break;
case 2:
system("cls");
Addchild(T); //比较兄弟岁数后再添加
system("pause");
system("cls");
break;
case 3:
system("cls");
LevelOutput(T);
system("pause");
system("cls");
break;
case 4:
system("cls");
KCreatTree(T); //将家谱信息保存到文件中
system("pause");
system("cls");
break;
case 5:
system("cls");
LCreateTree(T); //从文件中读出家谱成员的信息system("pause");
system("cls");
break;
case 6:
system("cls");
exit(0);
system("pause");
system("cls");
break;
default:
fflush(stdin);
printf("你输入的选项不正确!\n");
printf("请从新输入菜单的选项!\n");
system("pause");
system("cls");
}
}
}
//Head.h
# include
# include
# include
# include
# include
# define QUEUESIZE 100
typedef struct Data //出生日期结构体
{
int day;
int month;
int year;
}dataly;
typedef struct BiTNode //个人资料信息
{
char live[15]; //建在(T表示活着,F表示过世)char name[20]; //姓名
char sex[15]; //性别
char marriage[15]; //是否已婚(Y为已婚,N为未婚)char birthadd[20]; //出生地
char address[15]; //家庭地址
char profession[20]; //职业
char fathername[20]; //父亲姓名
int generation; //辈分
int message; //接点孩子的个数
int hight; //升高
int age; //年龄
dataly birthday; //出生日期
dataly dieday; //死亡日期(如果其已经死亡)
struct BiTNode *brother; //兄弟
struct BiTNode *child; //孩子
struct BiTNode *parent; //父母
}BiTNode,*BinTree;
typedef BinTree QElemType;