Cây gia phả

Mô tả bài toán:
Dòng họ Lý thời nhà Trần cần quản lý gia phả của gia tộc với các thông tin quản lý được mô tả như sau:
- Thông tin mỗi thành viên trong gia tộc phải có: mã thành viên, họ và tên, giới tính, ngày sinh, ngày mất, nghề nghiệp, thành tựu.
- Thông tin quan hệ giữa các thành viên gồm có: mã quan hệ, tên quan hệ. Mối quan hệ của các thành viên được lưu trữ ở mức cha, mẹ, anh, em từ đó suy luận ra các quan hệ tổ tiên khác như ông, bà, cô, chú …
- Thông tin quan hệ giữa hai người trong gia tộc là: mã thành viên 1, mã thành viên 1, mã quan hệ. Các mã thành viên 1 và mã thành viên 2 được lấy dữ liệu từ thông tin thành viên.
Yêu cầu chức năng của chương trình:
- Cho phép cập nhật (thêm xoá sửa) thông tin các thành viên mới. Chỉ thêm thông tin vợ hoặc chồng đối với các thành viên trong gia đình và con cái đối với người nam trong gia tộc không thêm con cái của thành viên nữ (nữ sinh ngoại tộc).
- Xác định mối quan hệ giữa các thành viên trong họ tộc với nhau.
- Liệt kê con cái, anh em của các thành viên.
- Vẽ cây gia phả cho bài toán và cây gia phả con trong trường hợp họ tộc có quá nhiều thế hệ (chia ra nhiều phân hệ và đời).
Yêu cầu ngôn ngữ và cấu trúc dữ liệu lưu trữ ngoài:
- Ngôn ngữ: C Sharp trong Visual Studio 2008 hoặc 2010 (kết hợp với công nghệ Linq to SQL để lập trình theo dạng cấu trúc)
- Cấu trúc dữ liệu lưu trữ ngoài: tập tin kiểu có cấu trúc hoặc tập tin có cấu trúc của SQL Server 2005 hoặc 2008.
- Sử dụng cấu trúc dữ liệu dạng lớp trong Linq để cài đặt bài toán.
Hướng dẫn thuật toán: sử dụng một số thuật toán trên cây tổng quát như tìm tổ tiên chung gần nhất, duyệt theo mức trên cây, tính chiều cao và độ sâu của cây …
[/font]