用java编写需要设置普通用户、超级管理员不同角色,不同角色登录后的权限各不相同,普通用户可以进行查询;超级管理员有对所有成员增加、删除和修改的权限。 (2)家谱中成员的信息中均应包含姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡)等 ,也可附加其它信息,并存储于文本文件中。 (3)查询功能。可按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息、所在辈分);按照出生日期查询成员名单。 (4)按出生日期对家谱中所有人排序。 (5)打开家谱时,提示当天生日的健在成员。 (6)输入任意两个姓名,能够查询这两个姓名之间的是否具有直系祖先后裔关系。
时间: 2023-07-15 19:10:39 浏览: 248
这是一个比较复杂的需求,需要用到多个模块和技术。以下是一个大致的实现思路:
1. 实现用户登录和权限控制:可以使用Spring Security框架来实现。在其中定义两个角色:普通用户和超级管理员,并对应不同的权限(查询权限和修改权限)。用户登录后,会根据角色的不同自动跳转到对应的页面。
2. 实现家谱信息的存储:可以使用文本文件来存储家谱信息,每个成员信息之间用特定的符号分隔。同时也可以考虑使用数据库来存储家谱信息,方便查询和排序。
3. 实现家谱信息的查询:可以使用Java IO或者第三方库来读取家谱信息文件,并根据用户输入的查询条件进行筛选和输出。查询条件包括姓名、出生日期等。同时,为了方便显示家族成员的辈分关系,可以将家谱信息存储为树形结构,并使用递归算法进行查询。
4. 实现家谱信息的排序:可以使用Java自带的Collections.sort()方法,或者自己实现快速排序等算法。排序的依据是成员的出生日期。
5. 实现生日提醒功能:可以使用Java自带的日期处理类,获取当前日期,并遍历家谱信息,查找今天生日的健在成员。
6. 实现直系祖先后裔关系查询:可以先按照姓名查询到两个成员的信息,然后根据家谱信息中的父子关系,递归查找两个成员是否存在直系祖先后裔关系。
以上是一个大致的实现思路,具体实现过程中还需要注意一些细节和问题。
阅读全文