用c语言写一个家谱系统
时间: 2023-10-10 09:09:41 浏览: 188
家谱管理系统C语言.zip
家谱系统是一个比较复杂的系统,需要设计数据库、界面等,不过可以让我们先从一个简单的家谱系统开始,只用存储家族成员的姓名和关系,可以使用C语言中的结构体来实现。
以下是一个简单的家谱系统的代码示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_MEMBERS 100 // 家庭成员最大数量
struct member {
char name[20]; // 成员姓名
char relation[10]; // 与本人的关系
};
struct family {
struct member members[MAX_MEMBERS]; // 家族成员数组
int count; // 家族成员数量
};
void add_member(struct family *f, char *name, char *relation) {
if (f->count >= MAX_MEMBERS) {
printf("家族成员数量已达上限\n");
return;
}
strcpy(f->members[f->count].name, name);
strcpy(f->members[f->count].relation, relation);
f->count++;
}
void print_family(struct family *f) {
printf("家族成员列表:\n");
for (int i = 0; i < f->count; i++) {
printf("%s\t%s\n", f->members[i].name, f->members[i].relation);
}
}
int main() {
struct family f = {0};
add_member(&f, "张三", "本人");
add_member(&f, "李四", "父亲");
add_member(&f, "王五", "母亲");
add_member(&f, "赵六", "兄弟");
print_family(&f);
return 0;
}
```
上面的代码中,定义了两个结构体,`member`结构体表示家族成员,包含成员姓名和与本人的关系;`family`结构体表示整个家族,包含家族成员数组和家族成员数量。
`add_member`函数用于添加家族成员,将成员姓名和与本人的关系作为参数传入,将新成员添加到家族成员数组中。若家族成员数量已达上限,则提示无法添加。
`print_family`函数用于打印家族成员列表,遍历家族成员数组,依次输出成员姓名和与本人的关系。
在`main`函数中,首先创建了一个空的家族结构体`f`,然后调用`add_member`函数添加了四个家族成员,最后调用`print_family`函数打印家族成员列表。
以上仅是一个简单的家谱系统示例,具体实现还需要根据实际需求进行设计和开发。
阅读全文