概述

题目的理解和分析:

该程序带有MFC界面,有树形控件来展示家庭成员的层次关系,还有list控件来浏览家庭成员信息。以及有对家谱成员的添加,删除,修改,查询功能,统计男女比例和求平均年龄,以及有对家谱成员信息保存到文件和读取文件的家谱成员信息。①首先是MFC界面的设计,需要输入输入框让用户输入,需要静态文本提示用户,还有一些展示成员信息的控件,以及按钮,完成对事件的监听功能,以及一些容错的对话框等。②然后通过对用户输入的信息来建立树形结构来存储,写出对应的遍历查找删除等操作。

功能模块划分

  • FamilyRecordDlg.cpp,主要写的是对MFC界面对输入框的数据获取,按钮监听,以及对展示框的数据更新操作。

  • FRTree.cpp,主要是存储家庭成员的信息结构,以及对家庭成员的操作,还有队列的操作。

  • IDD_FAMILYRECODER,家谱管理系统的总界面

  • IDR_MENU1,家谱管理系统的菜单

开发环境:

这个家谱管理系统在VS2013编译器上开发。

技术要求:

懂得运用c和c++编程,并且会基本的MFC界面的知识,以及文件的读取和保存,还有对树的创建,遍历等操作。

程序概要设计

程序流程:

双击打开家谱信息管理系统的EXE文件可进入系统。进入系统后,该系统顶部有菜单栏,有文件和操作,文件中包括关闭程序,导入信息,导出信息,其中操作有清空系统家谱的操作。

  1. 首先可以进行导入信息,或者选择逐个添加家庭成员的信息。其中除了第一位祖先的父亲可以设置不输入外,后面的每一个人输入都要带上父亲的名字,并且输入的父亲名字的信息已经添加过在系统中。而且添加性别必须是男或女,否则不让添加。添加完信息后,底部有一块list框可以看添加的信息,以及左侧有一块树可以看添加的成员信息对应的层次关系。
  2. 添加完数据后可以浏览信息界面的按钮,点击后会由输入框来显示list表中的第一条数据,同时输入框不能再进行输入,然后可以点击上一条记录和下一条记录来查看信息,也是在输入框查看。或者添加完信息后直接点击下一条记录或上一条记录,也能直接进入浏览信息界面进行查看记录。如果此时需要回去添加信息,需要先点击添加信息界面,才能让输入框能进行输入,再开始添加信息。
  3. 然后是查询,如果用户登录到该系统,没有添加过任何用户,会提示用户添加数据后再进行查询。如果用户添加过数据,则点击查询后,系统没有此人则提示用户输入正确姓名,有此人则会进入到浏览信息界面,让输入框展示查询用户的信息。
  4. 修改信息,如果用户登录到该系统,没有添加过任何用户,会提示用户添加数据后再进行修改。如果用户添加过数据,则点击修改后,系统会系统会将用户的信息展示到输入框让用户修改其中的数据,但是不能让他更改父亲姓名。如果没有则让用户输入正确的姓名进行修改。同时需要更新list表,树状图的展示数据。
  5. 删除信息,如果用户登录到该系统,没有添加过任何用户,会提示用户先添加数据后再进行删除。如果添加过数据,点击删除后,确认系统有无此人,无提示要先添加数据,有则进行删除,删除同时也要删除他的孩子节点,同时要更新树和list表。
  6. 导出信息,如果当前系统没有信息,会提示用户请先添加数据后再进行导出, 如果有信息,提示导出成功。
  7. 统计男女比例,计算出当前系统的男女比例。
  8. 平均年龄,计算出当前系统人的平均年龄。
  9. 退出程序点击文件中的关闭即可。

程序流程框图

总流程

程序测试

程序添加信息时



第一次输入,因为此时t==NULL,所以父亲名字可以有,也可以没有,直接添加即可,但是输入姓名不能为空,以及性别一定要是男或者女。如果为空,弹出姓名不能空,性别出现其他,弹出性别只能出现男女,成功的话会有提示成功。

修改信息


点击修改后,能查询到下面输入框会让你进行修改信息,除了父亲姓名不能更改,其余都可以更改,当你点击确定修改信息之后,下面展示框会显示你修改后的数据,且会提示修改成功。

删除信息

删除成功后list框也会删除掉数据,同时提示删除成功。

导入家谱

导入成功会提示导出信息成功,否则提示导入失败。

导出信息

导出信息成功也会提示导出信息成功,否则提示失败。

浏览信息界面

首先点击浏览界面会跳到list的第一条数据,点击下一条记录则跳转,上一条则跳到上一条,小于0,则跳到最后一条记录。

平均年龄和性别比例

点击后都会显示对应的数据。

清空家谱

所有的数据都会给清除完成,也可以再次导入数据,或手动添加数据都可以。

♻️ 资源


大小: 146MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87247893

基于C++实现(MFC界面)家谱管理系统【100010005】相关推荐

  1. 基于角色管理的简易家谱管理系统(C++/C(几乎都是C))2020-06-16

    一.课题内容和要求 (一)课题要求 家谱管理系统是查询家谱信息必不可少的一部分,利用家谱管理系统可以清楚的了解家族成员信息.该家谱管理系统是通过树来实现的.要求系统界面友好,易于操作. (二)课题要求 ...

  2. C语言家谱管理程序,课内资源 - 基于C语言实现的家谱管理系统

    一.项目简介 家谱是一种以表谱形式,记载一个以血缘关系为主体的家族世袭繁衍和重要任务事迹的特殊图书体裁.家谱是中国特有的文化遗产,是中华民族的三大文献(国史,地志,族谱)之一,属于珍贵的人文资料,对于 ...

  3. 基于对话框的MFC界面添加菜单栏

    在资源视图中右键单击->添加资源->menu->新建,并命名ID为IDR_MENU1 新建之后默认ID为IDR_MENU1;(若想要修改ID,可以找到属性栏(方法见下),之后双击ID ...

  4. mysql存储家庭成员信息_家谱管理系统的设计与实现(MyEclipse,MySQL)

    家谱管理系统的设计与实现(MyEclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,毕业论文16700字,程序代码,MySQL数据库,答辩PPT) 家谱是现代人们怀旧的重要部分,因此, ...

  5. 基于MFC的餐饮管理系统(C++实现 后附源码)

    餐饮管理系统实现功能: ①利用MFC的向导,创建基于对话框的应用程序,添加按钮.编辑框等控件: ②用文件保存餐桌信息,包括餐桌编号.座位数.状态(0:空闲:1:已订:2:就餐):可以按座位数和餐桌状态 ...

  6. 基于人脸识别的课堂签到管理系统(一)---环境设置以及简单的QT界面设计

    基于人脸识别的课堂签到管理系统(一)---环境设置以及简单的QT界面设计 一.前言 二.Pycharm安装与环境配置 2.1 Pycharm安装配置 2.2 Pycharm环境配置 三.QT界面设计 ...

  7. java家谱树_青锋家谱系统-基于springboot+orgtree的青锋家谱树管理系统

    gen 青锋家谱系统:基于springboot架构的家谱项目系统 项目介绍 基于springboot.orgtree的家谱树管理系统,将纸质版的家谱进行电子化.信息化,建立家族的家谱血脉联系. [青锋 ...

  8. MFC超市商品管理系统学生成绩管理系统学生信息管理系统通讯录管理系统图书管理系统

    MFC超市商品管理系统学生成绩管理系统学生信息管理系统通讯录管理系统图书管理系统 序号 题目 数组保存数据 文件保存数据 数据库保存数据 1 超市商品管理系统 2 学生成绩管理系统 3 学生信息管理系 ...

  9. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

最新文章

  1. Executor框架、ThreadPoolExecutor、3种常见的线程池
  2. 错误:C:\Windows\System32\ssleay32.dll: Can't load IA 32-bit .dll on a AMD 64-bit
  3. RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播
  4. Visual Studio 2005 Tip:编辑项目文件
  5. 行政区划代码转为字典形式
  6. c语言中整形精确到后面几位,C语言中普通整型变数在记忆体中占几个位元组
  7. feather 设置坐标刻度_matplotlib学习记录:调整刻度范围和刻度标签
  8. Exception 'ReflectionException' with message 'Class require does not exist'
  9. VB键码常数(速查)
  10. POJ 3037 SPFA
  11. 计算机机房需求调查表,机房建设需求调查表机房建设需求调查表.doc
  12. 解决VuePHP跨域请求
  13. python代码美化工具
  14. coron 小娜_Win10小娜近乎报废!教你卸载毫无用处的Cortana
  15. 计算机考证决心书怎样写
  16. AlignedReID
  17. 【科研】ET-BERT代码分析
  18. 智能优化算法期末复习
  19. Crosswalk/XwalkView研究
  20. 《歪笑小说》—— 读后总结

热门文章

  1. 2022-2028全球与中国景观灌溉系统市场现状及未来发展趋势
  2. 02进度控件-01水波进度条-progresswater
  3. Dialogue System for Unity使用(三)本地化语言
  4. 2018年10月ios最新退款方法 苹果内购退款流程 必看!!!
  5. impala/hive脱敏导数方法,建表跟hdfs路径关联
  6. 华为java校招面试流程_华为面试流程是什么?
  7. linux分屏方式显示2015,Linux下的分屏显示
  8. 计算机考研复试【英文文献翻译】
  9. 数据库服务器选购注意事项
  10. 复杂字符串分列,例如将“花生100公斤”拆分到三个单元格,分别是花生、100、公斤