C语言+家谱管理系统
时间: 2023-12-26 21:27:21 浏览: 344
C语言可以用来开发各种类型的应用程序,包括家谱管理系统。家谱管理系统是一种用于记录和管理家族成员信息的软件。下面是一个简单的C语言家谱管理系统的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
struct Person {
char name[50];
int age;
struct Person *father;
struct Person *mother;
};
struct Person family[MAX_SIZE];
int count = 0;
void addPerson() {
if (count >= MAX_SIZE) {
printf("家谱已满,无法添加新成员。\n");
return;
}
struct Person newPerson;
printf("请输入成员姓名:");
scanf("%s", newPerson.name);
printf("请输入成员年龄:");
scanf("%d", &newPerson.age);
if (count > 0) {
int fatherIndex, motherIndex;
printf("请输入父亲的编号:");
scanf("%d", &fatherIndex);
printf("请输入母亲的编号:");
scanf("%d", &motherIndex);
newPerson.father = &family[fatherIndex];
newPerson.mother = &family[motherIndex];
} else {
newPerson.father = NULL;
newPerson.mother = NULL;
}
family[count] = newPerson;
count++;
printf("成员添加成功。\n");
}
void displayFamily() {
printf("家谱成员列表:\n");
for (int i = 0; i < count; i++) {
printf("编号:%d,姓名:%s,年龄:%d", i, family[i].name, family[i].age);
if (family[i].father != NULL) {
printf(",父亲:%s", family[i].father->name);
}
if (family[i].mother != NULL) {
printf(",母亲:%s", family[i].mother->name);
}
printf("\n");
}
}
int main() {
int choice;
while (1) {
printf("\n家谱管理系统\n");
printf("1. 添加成员\n");
printf("2. 显示家谱\n");
printf("3. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
addPerson();
break;
case 2:
displayFamily();
break;
case 3:
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("无效的选择,请重新输入。\n");
}
}
return 0;
}
```
这个家谱管理系统使用结构体来表示每个家庭成员,包括姓名、年龄、父亲和母亲。用户可以选择添加成员或显示家谱。每个成员都有一个唯一的编号,可以通过编号来指定父亲和母亲。
阅读全文