郑州轻工业学院。
课程设计任务书。
题目家族关系查询系统
专业、班级软件外包11-01学号541107080145 姓名周朱莉
主要内容、基本要求、主要参考资料等:
主要内容:建立家族关系数据库,实现对家族成员关系的相关查询。
基本要求:1)建立家族关系并能存储到文件中;
2)实现家族成员的添加。
3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。
课程设计按照教学要求需要一周时间完成,总共要上机调试程序10小时。对每个题目要有需求分析,在需求分析中,将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来。
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。程序能够运行,要有基本的容错功能。尽量避免出现操作错误时出现死循环;
主要参考资料:数据结构(c语言版),在网上查询的相关资料及部分**。
完成期限:2013.6.18-2013.6.20
指导教师签名:
课程负责人签名:
2013年 6 月 18 日。
郑州轻工业学院本科。
设计题目:家族关系查询系统。
学生姓名:周朱莉。
系别:计算机与通信工程。
专业:软件外包。
班级:11-01
学号:541107080145
指导教师:卢冰。
2013年6月20日。
一、 设计题目(任选其一)
家族关系查询系统。
二、 运行环境(软、硬件环境)
电脑及visual c++ 6.0
三、 算法设计的思想。
随着社会发展,人们使用纸质的家谱已经非常不方便而且不利于在家谱里进行添加和修改。而用算法设计一个家族关系查询系统则可以解决这个问题。数据结构的二叉树刚好满足家谱的基本结构。
首先建立一个文件作为家谱,然后在文件中输入字符串,实现了在文件中按照数据的逻辑关系进进输入便可建立相应的三叉链表。然后就是进行数据的存储、删除及查找工作。
四、 算法的流程图。
家谱的创建:
载入家谱:修改家谱:
成员查询:五、 算法设计分析。
本次设计研究的是建立家族关系,实现对家族成员关系相关查询的问题。在设计中使用的数据结构为树状结构,树状结构采用三叉链表实现。我们在建立好家族关系后将其存储在文件中,在文件中家族关系是以树的形式存储,运用树的操作使家族关系得以准确建立。
家族关系查询系统可分为六大模块,分别是创建、修改、查询、保存、退出等。建立家族关系模块,建立家族关系并存入文件。建立时首先输入家族关系的名称,以此名称为名建立文本文件。
接下来按层输入成员姓名,输入一个在文件中写入一个字符串,以回车键结束。打开一个家族关系。在界面输入选项名,以家族关系名为文件名打开文件,如果家族关系不存在,返回空;如果存在,打开文件,读取文件。
向家族中添加一个新成员,添加的新成员要根据其父亲确定其在家族中的位置。首先判断该父亲是否在此家族关系中,若存在,则查找其父亲,将新节点插入其父亲的最后一个孩子之后;若没有孩子,直接作为左孩子插入。以写入的方式打开文件,更新数组中的信息,然后将数组中的信息写入文件保存,关闭文件。
查找功能模块,查找一个成员的所有祖先及其兄弟,查找一个成员的所有祖先路径,需要从它的父亲一直向上查找带根结点。查找一个成员的兄弟,一个成员的兄弟为其父亲除了该结点以外的所有孩子。对于要操作的结点,先判断它是否是根结点,若是根结点,则无兄弟;若不是根结点,则找到该结点的父亲。
接着判断父亲的兄弟是否都存在,如果都不存在,则无兄弟;如果都存在,对父亲的孩子操作。
六、源**。
#include <>
#include <>
#include <>
#include<>
typedef char telemtype;
typedefint status;
typedefstructbitpnode
if((fp=fopen(filename,"w"))null)
printf("请输入家谱内容:");
while (strlen(gets(str))>0)
fclose(fp); 关闭文件。
printf("按任一键继续!")
getch();
return 1;
statusloc(biptreet,biptree&p,telemtype name[10])
elsereturn 0;
/构造二叉树。
statusinittree(biptree&t)
if((fp=fopen(filename,"r"))null)
inittree(t);
fscanf(fp,"%s",name); 从文件读入姓名。
strcpy(t->data,name);
t->lchild=null;
t->rchild=null;
t->parent=null;
fclose(fp);
if((fp=fopen(filename,"r"))null)
fscanf(fp,"%s",name);
while(!feof(fp))
strcpy(q->data,name);
m->rchild=q;
q->parent=m;
q->lchild=null;
q->rchild=null;}
fscanf(fp,"%s",name);
printf("信息载入成功,按任一键继续!")
数据结构课程设计步骤及内容
算法设计的核心是给出问题求解的基本算法。所给出的算法并非一定要用某种计算机语言来描述,但应能较方便地转换为某种计算机语言程序。4 编写程序 编程是用指定的计算机语言来描述算法和数据结构,并将其转换为完整的上机程序。编写出的 一定要注重程序设计风格,提高程序的可读性。5 测试 对设计者来说,很难保证所...
课程设计总结报告
一 课程名称 数字电子钟的设计。二 内容 设计并制作一台数字电子钟,完成设计说明书。三 设计内容及要求 设计内容 要求由所学的数字电子知识以及查阅有关资料设计并制作出一台数字电子钟。而且要完成电路的装配和调试。设计基本框图如下 要求 1 采用位数码管,显示范围0分00秒 9分59秒。2 提出至少两种...
课程设计总结报告模版
音频放大器的设计。题目 三号,黑体,居中 空一行 一 设计任务与要求 标题均为小三号,宋体 1正文均为小四号,宋体,行距1.5倍 二 方案设计与论证。首段,对设计要求的总体分析 方案一 要画系统原理框图。方案二 要画系统原理框图。三 单元电路设计与参数计算。要画单元电路图 四 过程与 结果。prot...
数据库课程设计报告
姓名 余宏搌 学号 200724132126 起始时间 2010年4月27日。起止时间 2010年5月1日。第一章概述 2 1.1 项目背景 2 1.2 编写目的 2 1.3 开发环境 2 第二章需求分析 2 2.1 信息要求 2 2.2 安全与完整性要求 2 2.3 处理要求 2 第三章概念结构设...
数据结构与算法课程设计心得体会学习体会 14
课程设计的心得体会。经过这次课程设计,不但巩固了c语言 c 以及数据结构的知识,更加很好的将这三门专业课的知识融会贯通。刚开始抽到这个题目的时候,看了好半天,不懂题目的意思,也找不到与书上哪种存储结构挂上钩,看到是游戏设计,心就有点慌了。看了几遍,在任务书的后面看了提示,慢慢的弄懂了是什么意思,一开...
课程设计报告和总结
小组课程设计报告。小组成员 姓名班级学号 姓名班级学号 1 前言。介绍选题的背景 意义。参考了哪些文献和信息系统。数据库系统的名称是什么,该数据库系统有什么特点和主要功能,能解决什么现实问题。2 需求分析。2.1 用户分析。2.2 功能需求。2.3 性能需求。2.4 运行环境。3 数据库设计。3.1...
PLC课程设计报告
南京工程学院。课程设计说明书 题目交通信号灯与自动刀库控制实验 课程名称机床电气与plc 专业机械设计制造及其自动化。班级。学生姓名。同组学生。学号。设计地点基础楼c210 指导教师。工业中心。设计起止时间 2013年11月18日至2013年11月29日。交通信号灯自动控制。1 设计目的与任务2 2...
课程设计总结
重庆文理学院建筑馆。工程招投标模拟。课。程。设。计。总。结。小组成员 蒋海南 201212064057谭美玲 201212064044 赵春燕 201212064052 牟易婷 201212064045 王婷 201212064043 王文文 201212064053 潘梦娇 20121206404...