family.h
#ifndef _TEST
#define _TEST
#include<iostream>
#include<stdio.h>
#include<String>
#define MaxSize 1000
using namespace std;
typedef struct
{
char data[MaxSize]; //存放字符串
int length; //存放串长
}SqString;
struct Tree
{
char name[100];
char sex[100];
char fed[100];//配偶
char thing[1000];//个人简介
char borth[100];//生日
int level;//辈分
struct Tree *child; //孩子指针
struct Tree *brother; //兄弟指针
struct Tree *parent; //父亲指针
};
Tree *Create(Tree *t,char s[]); //创建族谱
Tree *Find(Tree *b,char cname[]); //查找函数
void coutxinxi(Tree *b,char cname[]); //查询个人信息
int chaxunbeifen(Tree *b,char chaxunmingzi[]); //查询辈分
void add(Tree *b,char parent[],char erzi[]) ; //添加成员
void xiugai(Tree *b,char chaxunmingzi[]); //修改个人信息
void deletechengyan(Tree * &b,char chaxunmingzi[]); //删除成员
void bianli(Tree *b); //函数的遍历,查看族谱
void bianli(Tree *b,char aboutInformation[]); //根据关键字查询
void creatZupu(Tree * &u);//创建族谱
SqString changeSign(char sign[]); //将字符串转换成串存储结构
bool piPei(SqString s,SqString t);//串的模式匹配
void bianli1(Tree *b, char aboutInformation[]); //遍历搜索,根据关键字查询
void seven(Tree * u);//根据关键字查询,输入有关信息
int menu_select(); //菜单
#endif
family.cpp
#include<stdio.h>
#include<String>
#include "family.h"
int zuigaomax=1;
Tree *Create(Tree *t,char s[]) //创建族谱
{
Tree *p;
p=new Tree;
strcpy(p->name,s); //祖先名字
p->brother=NULL; //规定祖先只有一个人,即指向兄弟的指针为空,指向父亲节点的指针为空
p->child=NULL; //暂且将孩子指针赋值为空
p->parent=NULL;
p->level=1; //记录辈分,为第一代
cout<<"请输入性别:"<<endl;
cin>>p->sex;
cout<<"请输入配偶名称:"<<endl;
cin>>p->fed;
cout<<"请输入生日:"<<endl;
cin>>p->borth;
cout<<"请输入个人简介:"<<endl;
cin>>p->thing;
t=p;
return t; //创建祖先成功,返回
}
Tree *Find(Tree *b,char cname[]) //查询位置
{
Tree *p;
if(b==NULL) //如果树为空,则返回NULL
return NULL;
else
if(strcmp(b->name,cname)==0) //判断查询的是否为祖先节点
{
return b;
}
else //如果不符合上面的两种情况,则使用递归进行下一轮查询
{
p=Find(b->child,cname);
if(p!=NULL)
{
return p;
}
else
{
return Find(b->brother,cname);
}
}
}
void coutxinxi(Tree *b,char cname[]) //查询个人信息
{
Tree *p;
p=Find(b,cname); //使用查询位置函数,对所要查询的成员信息进行定位,然后再返回赋值给p
cout<<"名字:\t"<<p->name;
cout<<"第"<<p->level<<"代";
cout<<"父辈:\t"<<p->parent->name;
cout<<"性别:\t"<<p->sex;
cout<<"配偶:\t"<<p->fed;
cout<<"生日:\t"&
课程设计-家谱管理系统
最新推荐文章于 2024-09-03 10:53:46 发布
本文介绍了进行课程设计的一个项目——家谱管理系统。系统旨在帮助用户记录和管理家族成员信息,包括成员的基本资料、血缘关系等。通过设计与实现,锻炼了数据库管理、用户界面设计及后台逻辑处理等方面的技术能力。
摘要由CSDN通过智能技术生成