数据结构家谱管理系统方案

发布时间 : 星期一 文章数据结构家谱管理系统方案更新完毕开始阅读

p->brother=creatfamily(fp); return p; } } }

void PreOrder(ptree p) {

if(p) {

show(p); PreOrder(p->fchild); PreOrder(p->brother); } }

void show(ptree p) {

printf(\名字 配偶 第几代\\n\

printf(\ }

void search(ptree p,char name[]) { if(p) {

if(strcmp(p->male,name)==0) {

show(p); getchar(); getchar(); }

search(p->fchild,name); search(p->brother,name); } }

void add(ptree p,char name[]) {

char fname[10],mname[10]; int i; if(p) {

if(strcmp(p->male,name)==0) {

printf(\名字 配偶 第几代\\n\

scanf(\ p->fchild=(ptree)malloc(sizeof(pnode));

strcpy(p->fchild->male,fname); strcpy(p->fchild->female,mname); p->fchild->n=i;

p->fchild->fchild=NULL; p->fchild->brother=NULL; }

add(p->fchild,name); add(p->brother,name); } }

void gai(ptree p,char name[]) {

char fname[10],mname[10]; int i; if(p) {

if(strcmp(p->male,name)==0) {

printf(\名字 配偶 第几代\\n\

scanf(\ strcpy(p->male,fname); strcpy(p->female,mname); p->n=i; }

gai(p->fchild,name); gai(p->brother,name); } }

void save(ptree p,FILE *stream) { if(p) {

fprintf(stream,\ save(p->fchild,stream); save(p->brother,stream); } else {

char out[20] = \

fprintf(stream,\ } }

int main() { int status;

char name[10]; ptree p;

FILE *fp= fopen(\ while(1){ status=Menu(); switch(status) {

case 1:

p=creatfamily(fp); getchar(); getchar(); break; case 2: PreOrder(p); getchar(); getchar(); break; case 3: printf(\请输入搜索的名字\\n\ scanf(\ search(p,name); break; case 4: printf(\请输入要孩子的人\\n\ scanf(\ add(p,name); break; case 5: printf(\请输入要修该的人\\n\ scanf(\ gai(p,name); break; case 6: save(p,fp); getchar(); getchar(); break; case 7: printf(\感谢使用本系统\\n\ fclose(fp); fclose(fp); exit(0); //如果选择5,则退出循环终止程序

}

break; default : printf(\您选择有误\\n\ getchar(); }

}四、调试与分析

1、主菜单

家谱管理系统的主界面

联系合同范文客服:xxxxx#qq.com(#替换为@)