简易家谱系统的设计与开发(附程序源代码)

课程设计(论文)

PAGE

PAGE 1

编 号:

学 号:

课 程 设 计

教 学 院

计算机学院

课程名称

数据结构课程设计

题 目

简易家谱系统

专 业

计算机科学与技术

班 级

(1)班

姓 名

同组人员

指导教师

2013

1

8

目 录

TOC \* MERGEFORMAT 一 概述 PAGEREF _Toc32353 2

1.课程设计的目的 PAGEREF _Toc13174 2

2.课程设计的要求 PAGEREF _Toc15321 2

二 总体方案设计 PAGEREF _Toc2555 3

1.简单家谱系统整体设计思路 PAGEREF _Toc3876 3

2.简单家谱系统的主要特点及功能 PAGEREF _Toc169 5

三 详细设计 PAGEREF _Toc31244 7

1. 查询全部的家谱成员信息 PAGEREF _Toc28990 7

2.确定指定成员在家族中的辈份 PAGEREF _Toc14853 7

3.在家谱中添加新成员,并追加到文件中 PAGEREF _Toc2886 9

四 程序的调试与运行结果说明 PAGEREF _Toc12465 12

1.实验结果截图: PAGEREF _Toc24858 12

2.调试时遇到的问题 PAGEREF _Toc26967 12

五 课程设计总结 PAGEREF _Toc20968 13

附录一:程序源代码 PAGEREF _Toc27466 16

附录二:参考文献 PAGEREF _Toc24851 25

一 概述

1.课程设计的目的

1.理解和掌握该课程中的有关基本概念,程序设计思想和方法。

2.培养综合运用所学知识独立完成课题的能力。

3.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

4.掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

2.课程设计的要求

设计要求:输入家族成员情况,建立树结构,统计家族成员人数,能查询家族成员辈份情况。

系统功能:1. 输入、修改与删除家谱信息功能2. 查询功能:1)某家谱成员的所有子孙的集合2)某家谱成员的所有祖先的集合3)某家谱成员的所有同辈成员的集合4)求某家谱成员的所有上一辈成员的集合5)给出两个家谱成员,确定他们的关系

二 总体方案设计

1.简单家谱系统整体设计思路

此次课程设计的整体思路是采用遍历算法,整个树的定义使用两个结构体来表示,一个结构体专门用于存放每一个节点的信息,另一个节点中定义了三个指针域,分别为父指针域(兄长指针域),兄弟指针域,子指针域,整个树的输入采用文件导入的方式,首先将文件导入到树中,文件包含每一个家族成员的信息,以及一个标志位flag,标志位的值为0,1,2,0表示此节点没有兄弟节点,1表示此节点至少有一个子节点,2表示此节点至少有一个兄弟节点,使用的算法是先定义一个链式队列,将文件中第一个节点的内容读取放入开辟的树的节点的空间里,然后将树节点放入队列中,此时队列不为空,以队列不为空为判断条件,进行while循环,判断flag的值,循环体中再进行文件读取,循环中进行判断,若flag为0,则继续判断队列是否为空,为空就结束循环,若不为空,则继续出队列,取标志位进行判断,若标志位为1,则生成新节点,用刚刚出列的节点的子指针域进行指向新节点,新节点的父指针域指向出列的节点,剩余的域为空,然后将新生成的节点插入到队列中,若flag为1,则进行兄弟节点的插入,继续循环,若flag不为0,则在进行判断,若为2,则继续进行兄弟节点的插入,以此类推,根据文件的读取,将树生成,本程序中所有的算法都基于以上所介绍的算法。

关于IO的设计:

考虑到题目要求家谱信息以树形的形式一次读入内存,而个人的各种资料 现在虽然条目不多,但随着程序的升级,以后可能变得越来越大。我把树形结构和个人信息记录的文档分为两个文件保存在外存中,一个文件串行化地记录家谱树的结构信息,保存少量个人信息作为识别标志;另一个文件保存完整的个人信息,所有的个人信息以线性记录的方式记录在其中。当程序运行要读入家谱结构时,只读入保存少量记录的文件并建立起树形结构。索引时,以树形中的少量信息为依据在另一个文件中找到全部的各人信息资料。

这样的好处主要有两点:

1. 由于树形结构是串行化记录于外存,一个节点记录多次,信息大量冗余,如果树形节点中保留全部信息,必将造成大量的空间浪费;只保存作为索引的少量信息在树形结构中,节约了空间。

2. 由于结

java实战家谱管理系统_简易家谱系统的设计与开发(附程序源代码).doc相关推荐

  1. java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计作业自动评阅系统的设计和开发源程序+mysql+系统+lw文档+远程调试 本源码技 ...

  2. java 智能家居管理系统_智能家居系统手机客户端应用源码

    package com.friendlyarm.AndroidSDK; import android.util.Log; /** * 鎻忚堪锛氬嚱鏁板簱鎺ュ彛 * @author Administra ...

  3. java对账系统设计_对账系统产品设计(一)

    我是做技术的,为什么会要写产品设计呢?就像一句俗话"久病成医",当你负责一个系统足够久了,可能你就懂的比较多了.我想把自己遇见的听见的做一个系列,算是对自己过去工作的总结. 本文的 ...

  4. java 家谱管理系统_家谱管理系统

    [实例简介] 用JAVA写了一个简易的家谱管理系统,里面有所有的实现代码与过程 [实例截图] [核心代码] 家谱管理系统 ├── JM │   └── MyJob │   ├── Bookface.j ...

  5. 计算机毕业设计Java小型酒店管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java小型酒店管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java小型酒店管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  6. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  7. JAVA诊所信息管理系统计算机毕业设计Mybatis+系统+数据库+调试部署

    JAVA诊所信息管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 JAVA诊所信息管理系统计算机毕业设计Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  8. 计算机毕业设计Java微商后台管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java微商后台管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java微商后台管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  9. 计算机毕业设计Java诊所信息管理系统(源码+系统+mysql数据库+Lw文档)

    计算机毕业设计Java诊所信息管理系统(源码+系统+mysql数据库+Lw文档) 计算机毕业设计Java诊所信息管理系统(源码+系统+mysql数据库+Lw文档) 本源码技术栈: 项目架构:B/S架构 ...

最新文章

  1. vscode 高效使用指南
  2. 万字长文带你全面认识 Kubernetes 中如何实现蓝绿部署、金丝雀发布和滚动更新...
  3. 怎样做好敏捷项目管理?
  4. Windows Phone 7 IEnumerableT.Select和SelectMany的区别
  5. MySQL中删除重复数据
  6. [云炬创业学笔记]第二章决定成为创业者测试16
  7. asp。net中常用的文件操作类
  8. c构造函数和析构函数_C ++构造函数和析构函数| 查找输出程序| 套装2
  9. android so abi适配,Android NDK学习(六): so文件兼容之abiFilters的使用
  10. 盲人如何学计算机编程,盲人程序员是如何编程的?
  11. python 延时_理解Python多线程5:加锁解决问题,但又带来麻烦!
  12. python画三维图-Python使用matplotlib绘制三维图形示例
  13. day16 Python 类的继承关系
  14. HBASE元数据及数据读取过程
  15. 【mfc】通过鼠标钩子检测对话框外的点击
  16. LayUI项目之(查询会议签字)
  17. 当win10电脑,本地网络出现了一个意外的情况,不能完成所有你在设置中所要求的更改?
  18. 探索分布式服务框架Dubbo开篇:牛逼哄哄的RPC
  19. Lotus配置之六:IBM Lotus Note添加公共邮箱
  20. 干货必看|分销商城系统体系设计

热门文章

  1. windows应用商店修复_如何修复Windows应用商店中的卡死下载
  2. Linux下查看即时网速(查看网速)
  3. Mega网盘在opensuse上不能正常开机启动
  4. 一文读懂 Android FFmpeg 视频解码过程与实战分析
  5. 机房无网环境离线安装cobbler
  6. 任意密码登录——密码找回漏洞
  7. 微软公司招聘题目——狗的问题
  8. 卡尔曼滤波算法原理(KF,EKF,AKF,UKF)
  9. 计算机第一代及第四代发展概况,计算机第一代至第四代的发展过程是什么?
  10. ZA303学习笔记六管理应用程序的安全(密钥保管库,托管标识,管理应用程序,CA证书)