二叉树家谱(5)

2019-04-04 23:01

程序,往往会有一种成就感,这是一种动力,我相信我会越走越远?

5.结束语

这次实训让我学到了很多关于树和结构体、队列等的相关操作,使我对编程有了更大的信心,很感谢阳树洪老师对我的教导,不懂的地方也是能够耐心解释,虽然只是一个小程序,但我感到很自豪,因为它是我自己的成果。 附录:程序清单

//头文件 #include #include #include #include

#define len 20 #define MAX 100

////////////////////////////////////////////////

typedef struct Date { int year; //年 int month; //月

int day; //日}Date;

typedef struct ifo { char Name[len]; Date Birthday; char SW[len]; Date Dieday; char Kind[len]; char Marital[len]; char Brothadd[len]; char Address[len]; char Vocation[len];

char Degree[len]; //定义时间结构体 //成员信息结构体 //记录这个人的姓名 //记录这个人的出生日期 //记录这个人是否死亡 //记录这个人的死亡日期 //记录这个人的性别 //记录这个人婚否 //记录这个人的出生地址 //记录这个人的家庭住址 //记录这个人的职业 //记录这个人的简历

- - 21 - -

char Father[len]; //记录这个人的父亲姓名 int Degress; //记录这个人的辈分 int Height; //记录这个人身高 int Age; //记录这个人年龄

int Num; //记录这个人拥有几个儿女

}ifo;

typedef struct BinNode //定义树 {

ifo data; //成员信息

struct BinNode *child; //定义孩子指针 struct BinNode *brother; //定义兄弟指针 struct BinNode *parent; //定义父亲指针

}BinNode,*BinTree;

/////////////////////////////////////////////////////////////////////// typedef BinTree QElemType;

typedef struct QNode //队列 {

QElemType Data; struct QNode *next;

}QNode,*QueuePtr; typedef struct {

QueuePtr front,rear;

}LinkQueue;

///////////////////////////////////////////////////////////////////////

void MainMenue1(BinTree T); //子菜单选择 void MainMenue(BinTree T); //菜单选择

int Inspect1(Date B,Date D); //判断日期大小--B大于D int Inspect(Date D); //判断时间的正确性 BinTree Value(BinTree T,char Name[len]); //查找指定结点

void AddDegress(BinTree &T); //添加祖先时树的每个成员辈分加一

void Add(BinTree &T); //增加成员 void CreateTree(BinTree &T,BinTree F); //单个节点的录入 void BaoCun(BinTree T); //把家谱保存到文件中

- - 22 - -

void InPut(BinTree &B,FILE *fp); //从文件读取信息辅助函数 void ReadTree(BinTree &T); //从文件读取信息建立家谱树 void Put(BinTree T); //输出成员信息

void InquireName(BinTree T); //姓名查询家谱成员并显示该成员的各项信息

void DeleteTree(BinTree &T); //删除成员 void XiuGaiName(BinTree &T); //修改成员姓名 void ChangeBirthday(BinTree &T); void ChangeSW(BinTree &T); void ChangeBrothadd(BinTree &T); void ChangeAddress(BinTree &T); void ChangeVocation(BinTree &T); void ChangeDegree(BinTree &T); void OutPutFamily(BinTree T); int ValueBirthday(BinTree T,Date Birth); void InquireBirthday(BinTree T); int ValueDie(BinTree T,Date Die); int ValueSW(BinTree T); void InquireSW(BinTree T); 查找

int ValueBrothadd(BinTree T,char Birthadd[len]); void InquireBrothadd(BinTree T); int ValueBrothadd(BinTree T,char Address[len]); void InquireAddress(BinTree T); int ValueVocation(BinTree T,char Vocation[len]); void InquireVocation(BinTree T); int ValueFather(BinTree T,char Father[len]); void InquireFather(BinTree T); int ValueDegress(BinTree T,int Degress); void InquireDegress(BinTree T); int ValueHeight(BinTree T,int Height); void InquireHeight(BinTree T); int ValueAge(BinTree T,int Age); void InquireAge(BinTree T); void MainMenueTongji(BinTree T); - - 23 - -

//修改成员出生日期 //修改成员是否健在 //修改成员出生地址 //修改成员家庭住址 //修改成员职业 //修改成员简历 //按层次遍历输出家谱 //按出生日期查找辅助函数 //按出生日期查找 //按死亡日期查找辅助函数 //查找健在的人的辅助函数 //按成员是否健在及死亡日期 //按成员出生地址查找辅助函数 //按成员出生地址查找 //按成员家庭住址查找辅助函数 //按成员家庭住址查找 //按成员职业查找辅助函数 //按成员职业查找 //按父亲姓名查找辅助函数 //按父亲姓名查找 //按辈分查找辅助函数 //按辈分查找 //按身高查找辅助函数 //按身高查

//按年龄查找辅助函数 //按身高查找 //统计操作

void CengciPut(BinTree T); //层次遍历输出

int ValueZhixi(BinTree T,char Name[len]); //查询某一成员的所有直系亲属辅助函数

void InquireZhixi(BinTree T); //查询某一成员的所有直系亲属 void InquireRoot(BinTree T); //查询某一成员的所有嫡系祖先

void RelationShip(BinTree T); //查询两个人的关系 int Count_day(BinTree T); //生存天数计算 void Inquireday(BinTree T); //生存天数

#include #include #include //#include #include\

//typedef BinTree QElemType;

////////////////////////////////////////////////////////////////////////// void MainMenue1(BinTree T) {//菜单选择

SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_GR

int c; while(1) {

system(\好像是清屏幕 HANDLE consolehwnd;

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);

EEN|FOREGROUND_RED); //设置文字颜色为黄色

SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_GR

printf(\

printf(\ ---*****---请选择你的操作---****---\

EEN|FOREGROUND_RED|FOREGROUND_BLUE);//设置文字颜色为白色

printf(\

- - 24 - -

SetConsoleTextAttribute(consolehwnd,FOREGROUND_GREEN|FOREGROUND_INTENS

ITY); //设置文字颜色为绿色

printf(\修改姓名------------------------------\printf(\修改出生日期--------------------------\

printf(\修改成员是否健在及死亡日期------------\printf(\修改出生地址--------------------------\printf(\修改家庭住址--------------------------\printf(\修改职业------------------------------\printf(\修改简历------------------------------\printf(\返回上一菜单--------------------------\

SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_GR

EEN|FOREGROUND_RED|FOREGROUND_BLUE); //设置文字颜色为白色

printf(\printf(\请输入你的选项:(0~5)\fflush(stdin); scanf(\switch(c) { case 1:

system(\清屏幕 if (T==NULL) { } else { }

printf(\请按Enter键继续操作--------------\fflush(stdin); getchar(); break;

XiuGaiName(T);

printf(\不存在家谱树!请返回重新选择\

case 2:

system(\清屏幕

- - 25 - -


二叉树家谱(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1.第二代支付系统报文交换标准(概述) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: