目录
一、需求分析 1
1.1项目背景 1
1.2 实现功能 2
二、项目设计 2
2.1总体设计 2
2.1.1设计思路 2
2.1.2 模块介绍 3
2.1.3 UI介绍 3
2.2程序流程图 4
2.3算法分析 5
2.4使用的数据结构 7
2.4.1 字典 7
2.4.2 列表 7
三、测试报告(以截图为主) 7
3.1实现从登录页面的跳转 8
3.2 实现添加家庭成员信息 8
3.3 实现信息的查找/修改 9
3.4 查找关系 11
3.5 查看家谱 12
3.6 统计信息 12
3.7 删除信息 13
3.8 退出系统 13
四、设计过程中遇到的问题及解决方法 14
4.1 UI设计遇到的问题 14
4.2家谱的显示 14
4.3 文件读取 14
五、尚未解决的问题及考虑应对的策略 15
5.1 姓名的修改 15
5.2 UI的优化 15
5.3 菜单栏的优化 15
六、收获和心得 16
一、需求分析
1.1项目背景
家谱是人类生活中具有重要地位的内容,它记载着一个以血缘关系为主题的家族世代的绵延,记录着一个家族的成员以及血脉关系的载体,更是一个家族文化的延续的象征。家谱是中国特有的文化遗产,是中华民族的三大文献之一,属于珍贵的文化资料,对于历史学、民俗学、人口学、社会学和经济学的深入研究,都有着不同替代的独特作用。对于作为社会中各种家族的一份子的我们来说,家谱管理与我们的生活息息相关,因此我们需要将家谱管理与当代科技紧密的结合起来,以便于更好的将家谱文化保存下来以及发扬光大。
1.2 实现功能
(1)实现家庭成员信息存储:包括姓名,出生地,出生日期,死亡日期,性别,身高,职业等;
(2)家族关系存储:将各家庭成员之间的关系,存储在计算机中(可永久保存);
(3)家谱数据的更新:修改、删除、加入;
(4)将家谱以较友好的格式输出(显示);
(5)按基本信息查询成员,按亲戚关系查询;
(6)统计:平均寿命、平均身高、家庭平均人口等;
(7)屏幕显示家谱树形结构(类似Windows 目录);
(8)支持鼠标操作。
二、项目设计
2.1总体设计
2.1.1设计思路
考虑到C++掌握了数据结构的相关知识但不会C++的Qt设计,但是python会Qt设计,而且有了C++的基础更易上手和学习,我们决定使用python语言实现家谱管理信息系统的基本功能,同时利用Qtdesigner和pyqt5来进行家谱管理系统的界面GUI设计与开发,利用Qt的信号与槽,将GUI界面和基本功能相结合,实现了家谱信息管理系统的成功运行。同时,我们将家谱信息存储在json文件中,相比于txt文件,json文件更易操作。