当前位置:文档之家› 数据结构-家谱管理系统

数据结构-家谱管理系统

数据结构-家谱管理系统
数据结构-家谱管理系统

宁波大红鹰学院信息工程学院

项目名称:家谱查询系统

项目组长:白钰琦

项目成员:徐程凯、徐海域、项鸿伟

班级名称:10计科1班

专业名称:计算机科学与技术

完成时间: 2012年12月1日

信息工程学院制

目录

一、案例描述........................................................................................................... - 3 -

1、总体描述...................................................................................................... - 3 -

2、模块描述...................................................................................................... - 3 -

二、设计思路........................................................................................................... - 3 -

三、程序设计........................................................................................................... - 4 -

1、数据结构描述.............................................................................................. - 4 -

2、主函数及其流程图...................................................................................... - 4 -

3、源程序.......................................................................................................... - 5 -

四、调试与分析....................................................................................................... - 5 -

1、主菜单........................................................................................................ - 10 -

2、显示家谱信息............................................................................................ - 11 -

3、显示家谱中第n代人所有信息................................................................ - 11 -

4、按姓名查找某人并相应输出.................................................................... - 11 -

5、按出生日期查找家谱成员信息.....................................错误!未定义书签。

6、为家谱中成员添加孩子信息.................................................................... - 12 -

7、为家谱中成员添加妻子信息.........................................错误!未定义书签。

8、删除家谱中成员及其后代信息.....................................错误!未定义书签。

9、修改家谱中成员信息................................................................................ - 12 -

10、确定家谱中两个成员关系...........................................错误!未定义书签。

11、按出生年月排序家谱...................................................错误!未定义书签。

五、设计总结......................................................................................................... - 13 -

1、完成情况.................................................................................................... - 13 -

2、心得体会.................................................................................................... - 13 -

一、案例描述

1、总体描述

家谱管理系统是查询家谱信息必不可少的一部分,利用家谱管理系统可以清楚的查询到家族成员的详细信息。该家谱管理系统是通过树来实现的。

本程序具有插入、查找等功能,可以实现存放家谱中各成员的信息。程序的操作界面简洁美观,易于操作。本程序运用了函数、循环、树等知识来进行设计,实现系统和数据结构设计。

2、模块描述

1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:

姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。

2). 实现数据的存盘和读盘。

3). 以图形方式显示家谱。

4). 显示第n 代所有人的信息。

5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。

6). 按照出生日期查询成员名单。

7). 输入两人姓名,确定其关系。

8). 某成员添加孩子。

9). 删除某成员(若其还有后代,则一并删除)。

10).修改某成员信息。

11).按出生日期对家谱中所有人排序。

12).打开一家谱时,提示当天生日的健在成员。

主程序模块菜单选择模块树操作模块

图1 模块调用示意图

二、设计思路

本程序要求模块化管理,分成菜单函数、创建函数、添加函数、查找函数、控制各个部分从而将程序简单化出来分析。本程序的主要功能是:创建

数据:创建各相关数据,例如创建家谱信息。添加数据:增加家谱成员孩子信息。查询信息:按照姓名来查询成员信息,还可以通过输入出生日期来查询该家谱信息。退出系统:程序编译结束后退出系统。

三、程序设计

1、数据结构描述

本程序首先定义了结构体,定义了lc,rc两个指针域;

定义如下:

typedef struct BiTNode

{

int mark;//标记

int level;

char name[50];//姓名

char birthday[50];//生日

char address[MAXN];//住址

int marriage;//婚否(true表示结婚,false表示没结婚)

int live;//建在(true表示活着,false表示过世)

int sex;//性别(true表示男,false表示女)

char livemassage[50];//死亡日期(如果其已经死亡)

Elemtype data;//

struct BiTNode *lc,*rc;

}BiTNode,*BiTree;

2、主函数及其流程图

Main

ShowNth(T);

SearchByBirthday(T);

AddChild(T);

LocateTime();

SearchByName(T);

退出DeleteByName(T);

ShowFamilyTree(T);

AddWife(T);

图3 家谱管理流程图

CreateeTree()

()

申请节点,int i=1

输入成员名Tree->Name,给定Node->Num

分配节点

输入成员名Tree->Name

CreatTree(Node->NextNode[i]);

Y

i<=node->num

N

结束

图4 创建家谱流程图

3、源程序

#include

#include

#include

#include

typedef struct pnode

{

char male[10];

char female[10];

int n;

struct pnode *fchild,*brother;

}pnode,*ptree;

void creatfamily(ptree ,FILE );

void preorder(ptree p);

void show(ptree p);

int Menu(){

system("color 1f");

system("mode con:cols=76 lines=35");

int i;

printf("****************** 欢迎使用爱新觉罗家族管理系统*****************\n\n");

printf("请选择:\n");

printf(" \n");

printf(" 1.读取一个家庭关系\n");

printf(" \n");

printf(" 2.显示一个家庭关系\n");

printf(" \n");

printf(" 3.查找成员\n");

printf(" \n");

printf(" 4.添加新成员\n");

printf(" \n");

printf(" 5.修改成员\n");

printf(" \n");

printf(" 6.保存\n");

printf(" \n");

printf(" 7.退出系统\n\n\n");

printf(" \n");

printf("********************************************************************\ n\n");

printf("输入1~6之间的数字选择相应功能:");

scanf("%d",&i);

return i;

}

ptree creatfamily(FILE *fp)

{

if(!feof(fp))

{

ptree p;

p=(ptree)malloc(sizeof(pnode));

char fname[10],mname[10];

int i;

fscanf(fp,"%s %s %d\n", fname,mname,&i);

if((strcmp(fname,"n")==0) && (strcmp(mname,"n")==0) && (i==0))

{

p=NULL;

return p;

}

else

{

strcpy(p->male,fname);

strcpy(p->female,mname);

p->n=i;

printf("读取成功\n");

p->fchild=creatfamily(fp);

p->brother=creatfamily(fp);

return p;

}

}

}

void PreOrder(ptree p)

{

if(p)

{

show(p);

PreOrder(p->fchild);

PreOrder(p->brother);

}

}

void show(ptree p)

{

printf("名字配偶第几代\n");

printf("%2s %6s %d\n",p->male,p->female,p->n); }

void search(ptree p,char name[])

{

if(p)

{

if(strcmp(p->male,name)==0)

{

show(p);

getchar();

getchar();

}

search(p->fchild,name);

search(p->brother,name);

}

}

void add(ptree p,char name[])

{

char fname[10],mname[10];

int i;

if(p)

{

if(strcmp(p->male,name)==0)

{

printf("名字配偶第几代\n");

scanf("%s %s %d",fname,mname,&i);

p->fchild=(ptree)malloc(sizeof(pnode));

strcpy(p->fchild->male,fname);

strcpy(p->fchild->female,mname);

p->fchild->n=i;

p->fchild->fchild=NULL;

p->fchild->brother=NULL;

}

add(p->fchild,name);

add(p->brother,name);

}

}

void gai(ptree p,char name[])

{

char fname[10],mname[10];

int i;

if(p)

{

if(strcmp(p->male,name)==0)

{

printf("名字配偶第几代\n");

scanf("%s %s %d",fname,mname,&i);

strcpy(p->male,fname);

strcpy(p->female,mname);

p->n=i;

}

gai(p->fchild,name);

gai(p->brother,name);

}

}

void save(ptree p,FILE *stream)

{

if(p)

{

fprintf(stream,"%s %s %d",p->male,p->female,p->n);

save(p->fchild,stream);

save(p->brother,stream);

}

else

{

char out[20] = "n n 0";

fprintf(stream,"%s\n",out);

}

}

int main()

{ int status;

char name[10];

ptree p;

FILE *fp= fopen("lmx.txt","r+");

while(1){

status=Menu();

switch(status)

{

case 1:

p=creatfamily(fp);

getchar();

getchar();

break;

case 2:

PreOrder(p);

getchar();

getchar();

break;

case 3:

printf("请输入搜索的名字\n");

scanf("%s",name);

search(p,name);

break;

case 4:

printf("请输入要孩子的人\n");

scanf("%s",name);

add(p,name);

break;

case 5:

printf("请输入要修该的人\n");

scanf("%s",name);

gai(p,name);

break;

case 6:

save(p,fp);

getchar();

getchar();

break;

case 7:

printf("\n感谢使用本系统\n");

fclose(fp);

fclose(fp);

exit(0); //如果选择5,则退出循环终止程序

break;

default :

printf("\n您选择有误\n");

getchar();

}

}

}四、调试与分析

1、主菜单

家谱管理系统的主界面2、显示家谱信息

读取家谱信息

3、显示家谱中第n代人所有信息

显示家谱中第n代人所有信息4、按姓名查找某人并相应输出

查询家谱成员信息的界面5、为家谱中成员添加孩子信息

为家谱中成员添加孩子信息6、修改家谱中成员信息

修改家谱中成员信息

五、设计总结

1、完成情况

进程第1次课第2次课第3次课第4次课负责人项目计划全体成员总体方案全体成员编写代码徐程凯实验报告徐海域视频制作白钰琦整体完善全体成员答辩全体成员

2、心得体会

白钰琦:从这个项目中,我懂得了代码编写能力的提高不是一天两天的事,而是

一个日积月累的过程。在不断地编写调试,是在提出问题解决问题的过程中慢慢

提升起来的。所以,自己决定向编程高手看齐,多编程多提问多思考。在今后的

时间里更加努力地学习。

徐程凯:在这个项目里我做了对家谱管理的系统分析。刚开始我们从网上下载好

了我们需要的资料,通过取其精华去其糟粕,本来是想把系统整合的很完美,可

是由于我c语言基础不太扎实,未能完成。也向同学请教,只能做到现在这个地步。通过这次课程设计,我对这个树的操作有了深刻的了解,对C语言也有了更

深刻的了解。但我们需要更深刻地思考其实质是什么。了解实验所需的基本程序,并用所学知识实现它。

徐海域:这次的项目我的主要任务是撰写实验报告,刚开始的几天我开始写项目描述,接着我也卡了下代码,关于树我懂的不多,看了以前的书,也是浑浑噩噩的。通过之前下载好的资料,我也试着去整合一些好的地方,不过未能完成。通过本次的项目我意识到自己知识的匮乏。在之后的日子里我会好好的补习知识。希望在下次的项目中可以完成的好点。

项鸿伟:这次课程设计着实让人头疼,我们多次运行了程序,很可惜许多功能无法实现,这使我们非常的头疼,但是在百度强大的搜索下,我们找到了模版,经过了艰难的研究,我们终于完善了这个程序。

数据结构家谱管理系统范本

数据结构家谱管理 系统

宁波大红鹰学院 信息工程学院 课 程 设 计 报 告 项目名 家谱查询系统 称: 白钰琦 项目组 长: 徐程凯、徐海域、项鸿伟 项目成 员: 10计科1班 班级名 称: 计算机科学与技术 专业名 称: 完成时间: 12月1日 信息工程学院制 目录 一、案例描述 ............................................................ 错误!未定义书签。 1、总体描述 ....................................................... 错误!未定义书签。 2、模块描述 ....................................................... 错误!未定义书签。

二、设计思路 ............................................................ 错误!未定义书签。 三、程序设计 ............................................................ 错误!未定义书签。 1、数据结构描述................................................ 错误!未定义书签。 2、主函数及其流程图........................................ 错误!未定义书签。 3、源程序 ........................................................... 错误!未定义书签。 四、调试与分析 ........................................................ 错误!未定义书签。 1、主菜单 ........................................................... 错误!未定义书签。 2、显示家谱信息................................................ 错误!未定义书签。 3、显示家谱中第n代人所有信息 .................... 错误!未定义书签。 4、按姓名查找某人并相应输出 ........................ 错误!未定义书签。 5、按出生日期查找家谱成员信息 .................... 错误!未定义书签。 6、为家谱中成员添加孩子信息 ........................ 错误!未定义书签。 7、为家谱中成员添加妻子信息 ........................ 错误!未定义书签。 8、删除家谱中成员及其后代信息 .................... 错误!未定义书签。 9、修改家谱中成员信息.................................... 错误!未定义书签。 10、确定家谱中两个成员关系 .......................... 错误!未定义书签。 11、按出生年月排序家谱 .................................. 错误!未定义书签。 五、设计总结 ............................................................ 错误!未定义书签。 1、完成情况 ....................................................... 错误!未定义书签。 2、心得体会 ....................................................... 错误!未定义书签。

数据结构课程设计独立题目

题目2:运动会分数统计 1.问题描述 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 2.功能要求 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分; 3)可以按学校编号、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 。 题目6:哈夫曼编/译码器 1.问题描述 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。 2.功能要求 I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree 中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile 中。 D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码写入文件CodePrint中。 T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint 中。 题目9:构造可以使n个城市连接的最小生成树 1.问题描述 给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。 2.功能要求 城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。

员工信息管理系统(数据结构)

员工信息管理系统课程设计报告 系别:计算机与信息工程系 班级: B080501 姓名:李海鹏 学号: B08050128 指导教师:张红霞 课设时间:2010-6-21到2010-6-25

摘要 员工信息管理系统属于信息管理系统。员工信息管理是每个公司不可缺少的。系统用C程序开发,主要在于建立好一个合适的数据结构,并要求程序简洁实用。 本系统利用C语言简洁、灵活,数据结构丰富等特点,编写适合公司使用的系统。整个系统使用起来也比较方便,入手简单,操作方便。论文主要介绍了程序设计过程、设计方案以及测试过程,重点讲解了设计过程中的思想,技术解决方案等等。 关键字:员工信息管理,C程序,数据结构

前言 (3) 第1章课设题目 (4) 第2章开发运行环境及相关知识 (4) 第3章程序总体设计 (5) 3.1 主要功能模块 (5) 3.2 数据结构 (6) 第4章程序详细设计及实现 (7) 4.1 输入函数 (7) 4.2 排序函数 (7) 4.3 显示函数 (7) 4.4 查找函数 (7) 4.5更改函数 (8) 4.6 删除函数 (8) 4.7 主函数 (8) 4.8 其他函数 (9) 第5章系统功能测试 (9) 5.1 系统主界面 (9) 5.2 输入数据 (9) 5.3 显示数据 (10) 5.4 信息排序 (10) 5.5 更改信息 (11) 5.6 删除信息 (11) 第6章课设总结 (12) 第7章程序清单 (13) 参考文献 (22)

前言 本课程设计旨在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机编程解决实际问题的基本方法,熟悉C程序开发的全过程,掌握数据结构的使用方法,熟练应用各种数据结构。 本次任务是根据给定的数据和程序,应用单向链表处理一系列公司员工的信息。通过整个程序开发的过程,提高综合应用C语言的能力、编程和调试能力,为进一步学习相关专业课程创建较扎实的理论基础和实践基础。 报告将分6个章节来详细讲述本次课设题目的开发过程。 第1章主要描述课设的题目及要求; 第2章来介绍程序开发运行环境; 第3章介绍程序主体设计,网络程序概要; 第4章是对程序进行详细分析,对各个函数进行详细描述,并阐述程序实现技术等信息; 第5章为测试过程,主要用测试过程中的图片来表述最终信息; 第6章也是最后一章,为本次实践活动的心得体会。

家谱管理系统的源代码

#include #include #include #include struct per{ int data; char name[20]; char brith[20]; char marry; char address[20]; char live; char dietime[20]; char parent[20]; int generation; int child[10]; int numberchild; per(){ for(int i=0;i<20;i++) name[i]='\0'; for(i=0;i<20;i++)

brith[i]='\0'; for(i=0;i<20;i++) address[i]='\0'; for(i=0;i<20;i++) dietime[i]='\0'; for(i=0;i<10;i++) child[i]=0; for(i=0;i<20;i++) parent[i]='\0'; live='\0'; marry='\0'; data=-10; generation=0; numberchild=0; } }; void setupinfo(per person[]); void display(per person[],int&); void displayhome(per person[],int&); void displayinfo(per person[],int&); void namesearch(per person[],int&);

家谱管理系统 -数据结构大作业

/* 家谱管理系统 任务:实现具有下列功能的家谱管理系统 功能要求: 1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容: 姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。 2). 实现数据的存盘和读盘。 3). 以图形方式显示家谱。 4). 显示第n 代所有人的信息。 5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。 6). 按照出生日期查询成员名单。 7). 输入两人姓名,确定其关系。 8). 某成员添加孩子。 9). 删除某成员(若其还有后代,则一并删除)。 10).修改某成员信息。 11).按出生日期对家谱中所有人排序。 12).打开一家谱时,提示当天生日的健在成员。 要求:建立至少30个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。 测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。 测试数据及测试结果请在上交的资料中写明; */ #include #include

#include #include #include"map.h" #define MAXN 100 #define MAXMEM 100 #define Elemtype char ============================== //树 typedef struct BiTNode { i nt mark;//标记 int level; char name[50];//姓名 char birthday[50];//生日 char address[MAXN];//住址 bool marriage;//婚否(true表示结婚,false表示没结婚) bool live;//建在(true表示活着,false表示过世) bool sex;//性别(true表示男,false表示女) char livemassage[50];//死亡日期(如果其已经死亡) Elemtype data;// struct BiTNode *lc,*rc; }BiTNode,*BiTree; //树的相关操作 char nametemp[50];//姓名 char birthdaytemp[50];//生日 char addresstemp[MAXN];//住址 bool marriagetemp;//婚否(true表示结婚,false表示没结婚)bool livetemp;//建在(true表示或者,false表示过世)

家谱管理系统1(1)

《软件综合设计》 家谱管理系统 院系:计算机科学技术学院二系 班级:计11 – 2班 姓名:刘文秀(15) 合作者:姜雪(05) 、岳奉宜(33) 指导教师:薛曼玲 2013 年 12 月 01 日

《软件综合设计》任务书 一、题目:家谱管理系统 二、设计要求 (1)刘文秀(组长)、姜雪和岳奉宜组成课程设计小组。 (2)小组成员分工协作完成。要求每个成员有自己相对独立的模块,,同时要了解其他组员完成的内容。 (3)查阅相关资料,自学具体课题中涉及到的新知识。 (4)采用结构化、模块化程序设计方法设计,功能要完善,界面美观。 (5)所设计的系统应有菜单、动画和音乐。 (6)按要求写出课程设计报告,并于设计结束后1周内提交。其主要内容包括:封皮、课程设计任务书,指导教师评语与成绩、目录、概述、软件需求分析、总体设计、详细设计、程序的调试与测试、总结与体会、结束语、程序清单(带中文注释)、参考文献等。报告一律用A4纸打印,正文的中文字体为宋体,西文字体用Time New Roma,一律用小四号字,行距采用“固定值”18磅,首行缩进2字符。1级标题中文字体为黑体,西文字体为Time New Roma,采用三号字;段落为居中、段前18磅、段后12磅、行距采用“固定值”18磅,首行缩进:无,段中不分页,与下段同页。仅一级标题上目录。 三、课程设计工作量 由于是设计小组团结协作完成设计任务,一般每人的程序量在400行有效程序行以上,不得抄袭。 四、课程设计工作计划 2013年12月2日,指导教师讲课,学生根据题目准备资料,需求分析; 2013年12月3日,设计小组进行总体方案设计和任务分工; 2013年12月4日~2013年12月10日,每人完成自己承担的程序模块并通过独立编译; 2013年12月11日~12日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行; 2013年12月13日,验收、开始撰写课程设计报告; 2013年12月18日前,提交课程设计报告和软件。 指导教师签章: 教研室主任签章

数据结构家谱管理系统

//////////////////////////////////////////////////////////// /////////////////// //题目:家谱资料管理 //要求:家谱用于记录某家族历代家族成员的情况与关系。现编制一个家谱资料管理软件, //实现对一个家族所有的资料进行收集整理。支持对家谱的增加,删除,更新,统计等。 //////////////////////////////////////////////////////////// /////////////////// #include #include #include int MATEFLAG=0; typedef struct TreeNode

int Num; //记录这个人拥有几个儿女 char Name[20]; //记录这个人的姓名 char Kind; //标示节点的种类有女G男B struct TreeNode * NextNode[20]; //记录这个人的儿女struct TreeNode * Parent; //记录这个节点的父节点 }TreeNode; void CreatTree(TreeNode *Tree); void OutPutAll(TreeNode *Tree); TreeNode * SearchTree(TreeNode *Tree,char name[],int length); void MainMenue(TreeNode *Tree); void SubMenue1(TreeNode * Tree); void SubMenue2(TreeNode *Tree); void Change(TreeNode * Tree); void AddNew(TreeNode * Tree);

最新数据结构课程设计题目

数据结构课程设计 一、考核方法和内容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。评分标准: 优秀:答辩所有问题都能答出+报告良好 或报告良好+实现“提高部分”的功能; 良好:答辩所有问题都能答出+报告一般; 或报告一般+实现“提高部分”的功能; 中等:答辩大部分问题能答出+报告良好; 及格:答辩大部分问题能答出+报告一般; 以下四种,都不及格: 1)答辩几乎答不出问题; 2)报告几乎都是代码; 3)雷同部分达到60%; 4)课设报告与数据结构和c/c++关联不大。 课设报告的装订顺序如下: 任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)-----1、设计任务(题目要求)-----2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)-----3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)----4、编码实现(重要函数的实现代码)-----5、调试分析(选择多组测试数据、运行截图、结果分析)-----6、课设总结(心得体会)-----7、谢辞-----8、参考文献; 课设报告打印要求: B5纸张打印,报告总页数控制在10—15页内,报告中不能全是代码,报告中代码总量控制在3页内。版式:无页眉,有页码,页码居中 字号:小四,单倍行距 字体:宋体+Times new Romar 截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图” 二、课程设计的题目 1.长整数的加法运算 2.通讯录管理系统的设计与实现——顺序表 3.广义表的应用 4.学生成绩管理系统的设计与实现 5.家谱管理系统的设计与实现 6.集合的并、交和差运算的程序 7.运动会分数统计 8.一元多项式计算器 9.文章编辑 10.哈夫曼树及其编码 11.校园导游咨询 12.通讯录管理系统的设计与实现——单链表 13.地图着色问题 14.内部排序算法比较 15.火车售票系统 16.图书管理系统 17.客户消费积分管理系统 18.产品进销存管理系统

数据结构物流信息管理系统

2014-2015学年第一学期学号 《数据结构》 课程设计报告 题目:物流信息管理系统 专业:计算机科学与技术 班级: 姓名: 学号: 指导教师: 成绩: 目录 摘要 (1) 1设计内容及要求 (1) 1.1内容描述 (1) 1.2基本要求 (1) 2详细设计 (1) 2.1概要设计 (1) 2.2功能模块详细设计 (1) 2.3程序流程图 (4) 3源代码 (5)

4程序结果 (9) 5总结 (12) 6参考文献 (12)

摘要 物流信息管理系统是利用单链表实现信息管理,进而掌握C语言中的结构体,链表,指针,函数(系统函数,自定义函数)等C语言知识。 本文通过利用模块化程序设计思想,使用单链表和结构体等编写出的创建,删除,查询等功能的物流信息管理系统。通过完成这个程序设计让我们熟悉并掌握c语言中使用结构体,单链表,指针,函数,和模块化设计思想。 关键词结构体,链表,指针,函数 1设计内容及要求 1.1内容描述 对客户的基本信息进行存储,利用取货号来查询顾客信息,核对信息后方可取货。 1.2基本要求 1.采用一定的存储结构进行客户信息的存储; 2.对客户的信息可以进行修改、删除、查询; 2详细设计 2.1概要设计 本系统用到的主要数据结构为数组和文件。一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和电话号码。然后将数组写入文件,查询时读取文件,提取相应信息。 2.2功能模块详细设计 本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了取货人的取货号、身份证、姓名、电话号码,其中身份证用了字符型数组进行定义,然后定义了客户取货链表,每添加一个取货人,先分配内存,再添加取货人的信息,之后将链表中最后一个指针指向该新的取货人,删除时,需先找到该取货人前面的取货人,直接将其指针指向删除取货人的下一个取货人,修改信息时,先找到该去人,选择修改的内容,再进行修改。 void create(Linklist &h){ Linklist s,t; int j=1; char x; h=(Listnode *)malloc(sizeof(Listnode)); h->next=NULL;t=h; while(j){ s=(Listnode*)malloc(sizeof(Listnode)); printf("顾客取货号为%d\n",i); s->customer.m=i; printf("请输入身份证号码:"); scanf("%c",&x);

家谱管理系统(含源代码)

家谱管理系统——C语言(数据结构) 目的和要求:树形结构是一种非常重要的非线性结构,它用于描述数据元素之间的层次关系,人类家谱是树形结构的典型体现,通过此项训练让学生掌握树形结构的知识;使学生重点掌握树与二叉树的转换,二叉树的存储和遍历,和二叉树相关的一些运算;要求完成家谱信息的录入和保存,任意成员的查找及某一成员祖先、子孙、兄弟、堂兄弟的查找。 排答疑和辅导。 完整代码: #include #include #include int MATEFLAG=0; //是否入赘或嫁入这家的,1表示为是,0表示否 typedef struct TreeNode//树节点定义 { int Num; //保存此人儿女个数 char Name[20]; //保存此人姓名 char Kind; //保存此人性别,男M,女F struct TreeNode * NextNode[20]; //保存此人的儿女,NextNode[0]里存放配偶的地址struct TreeNode * Parent; //保存此节点的父节点 }TreeNode; void CreatTree(TreeNode *Tree);//创建树 void OutPutAll(TreeNode *Tree);//输出树 TreeNode * SearchTree(TreeNode *Tree,char name[],int length); void MainMenu(TreeNode *Tree); void SubMenue1(TreeNode * Tree); void SubMenue2(TreeNode *Tree); void Change(TreeNode * Tree); void AddNew(TreeNode * Tree); void OutPutMessage(TreeNode * Tree,char name[],int length); //主函数 void main() { TreeNode *Tree;//产生根节点 Tree=(TreeNode *)malloc(sizeof(TreeNode)); Tree->Parent =NULL; strcpy(Tree->Name,"0"); MainMenu(Tree);//显示主菜单 } //添加新的成员 void AddNew(TreeNode * Tree) { SubMenue2(Tree);//添加新成员界面 } //显示添加家庭信息的界面

数据结构物流信息管理系统设计

数据结构物流信息管 理系统设计 Revised on November 25, 2020

目 录 摘要...................................................1 1设计内容及要求...........................................................................1 内容描述..............................................................................1 基本要求..............................................................................1 2详细设计....................................................................................1 概要设计..............................................................................1 功能模块详细设计..................................................................1 程序流程图...........................................................................4 3源代码 .....................................................................................5 4程序结果....................................................................................9 5总结...........................................................................................12 6参考文献 (12) 数据结构物流信息管理系统设计 【最新资料,WORD 文档,可编辑修改】

大数据结构(二叉树)家谱管理系统

数学与计算机学院 课程设计说明书 课程名称: 数据结构与算法课程设计 课程代码: 题目: 二叉树生成家谱 年级/专业/班: 学生姓名: 学号: 开始时间:2015 年12 月09 日 完成时间:2015 年12 月29 日课程设计成绩:

指导教师签名:年月日 目录(小三黑体,居中) 1 需求分析 (8) 1.1任务与分析 (8) 1.2测试数据 (9) 2 概要设计 (9) 2.1 ADT描述 (9) 2.2程序模块结构 (10) 2.3各功能模块 (12) 3 详细设计 (14) 3.1结构体定义 (14) 3.2 初始化 (15) 3.3 插入操作 (18) 3.4 查询操作 (22) 4 调试分析 (25) 5 用户使用说明 (26)

6 测试结果 (26) 结论 (30) 附录 (32) 参考文献 (33)

摘要 随着计算机科学技术、计算机产业的迅速发展,计算机的应用普及也在以惊人的速度发展,计算机应用已经深入到人类社会的各个领域。计算机的应用早已不限于科学计算,而更多地应用在信息处理方面。计算机可以存储的数据对象不再是纯粹的数值,而扩展到了字符、声音、图像、表格等各种各样的信息。对于信息的处理也不再是单纯的计算,而是一些如信息存储、信息检索等非数值的计算。那么,现实世界的各种数据信息怎样才能够存储到计算机的存之中,对存入计算机的数据信息怎样进行科学处理,这涉及计算机科学的信息表示和算法设计问题。为解决现实世界中某个复杂问题,总是希望设计一个高效适用的程序。这就需要解决怎样合理地组织数据、建立合适的数据结构,怎样设计适用的算法,以提高程序执行的时间效率和空间效率。“数据结构”就是在此背景下逐步形成、发展起来的。 在各种高级语言程序设计的基本训练中,解决某一实际问题的步骤一般是:分析实际问题;确定数学模型;编写程序;反复调试程序直至得到正确结果。所谓数学模型一般指具体的数学公式、方程式等,如牛顿迭代法解方程,各种级数的计算等。这属于数值计算的一类问题。而现实生活中,更多的是非数值计算问题,如手机中的通讯录,人们对它的操作主要是查找、增加、删除或者修改记录。再如,人们经常在互联网上查阅各种新闻,或查阅电子地图,人们可以在某城区地图上查找自己所需的街道或店铺,其操作主要是搜索和查询。下面

数据结构课程设计题目

数据结构课程设计 一、考核方法和容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。 评分标准: 优秀:答辩所有问题都能答出+报告良好 或报告良好+实现“提高部分”的功能; 良好:答辩所有问题都能答出+报告一般; 或报告一般+实现“提高部分”的功能; 中等:答辩大部分问题能答出+报告良好; 及格:答辩大部分问题能答出+报告一般; 以下四种,都不及格: 1)答辩几乎答不出问题; 2)报告几乎都是代码; 3)雷同部分达到60%; 4)课设报告与数据结构和c/c++关联不大。 课设报告的装订顺序如下: 任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)-----1、设计任务(题目要求)-----2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)-----3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)----4、编码实现(重要函数的实现代码)-----5、调试分析(选择多组测试数据、运行截图、结果分析)-----6、课设总结(心得体会)-----7、谢辞-----8、参考文献; 课设报告打印要求: B5纸打印,报告总页数控制在10—15页,报告中不能全是代码,报告中代码总量控制在3页。版式:无页眉,有页码,页码居中 字号:小四,单倍行距 字体:宋体+Times new Romar 截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图” 二、课程设计的题目 1.长整数的加法运算 2.通讯录管理系统的设计与实现——顺序表 3.广义表的应用 4.学生成绩管理系统的设计与实现 5.家谱管理系统的设计与实现

数据结构家谱管理系统报告书

数据结构大作业说明文档 一、题目的选择 这次数据结构的大作业,我的选题是家谱管理系统的设计与实现。由于平时疏于编程——针对我得个人实际——我把主要的目标定位在完成家谱管理系统得基本要求。(基本要求大纲中有,就不浪费版面了) 二、设计的思路 接到这个题目,我的总体设计思路是先为程序搭建好一个结构框架,再跟据时间的宽裕程度和其它的要求逐步增强程序的性能。 关于IO的设计: 考虑到题目要求家谱信息以树形的形式一次读入内存,而个人的各种资料现在虽然条目不多,但随着程序的升级,以后可能变得越来越大。我把树形结构和个人信息记录的文档分为两个文件保存在外存中,一个文件串行化地记录家谱树的结构信息,保存少量个人信息作为识别标志;另一个文件保存完整的个人信息,所有的个人信息以线性记录的方式记录在其中。当程序运行要读入家谱结构时,只读入保存少量记录的文件并建立起树形结构。索引时,以树形中的少量信息为依据在另一个文件中找到全部的各人信息资料。 这样的好处主要有两点: 1. 由于树形结构是串行化记录于外存,一个节点记录多次,信息大量冗余,如果树形节点中保留全部信息,必将造成大量的空间浪费;只保存作为索引的少量信息在树形结构中,节约了空间。 2. 由于结构的精简,在家谱初始化时读入内存需要的时间相应减少,节约了装载时间。 这样做存在的问题: 每次执行修改,添加,删除,查询时都要直接访问外存来取得或写入数据。内外存访问上的巨大时间差的存在,使得进行这些操作相对来说并不显得很高效。 关于树形的结构: 在树形结构的选择上,根据实际中多子女的现象选择一般树,考虑到家谱中成员可能存在的不定成员数问题,抛弃了以数组为基础的一般树方案,决定用链表来实现。 树形结构的外存保存。为了提高效率,树形结构在程序初始化时由外存文件一次读入内存,此后不管插入还是修改,删除都不再对外存的树结构保存文件进行操作,只在内存中处理,程序退出时对外存树结构文件进行一次更新。也就是说,不管在程序运行中中对家谱结构进行多少种,多少次的操作,外存的树结构文件始终只会被程序访问两次。

数据结构家谱课程设计报告

家谱管理系统 姓名:田鑫磊 学号:1514020421 (1)功能部分: 本程序共实现了6个功能分别为: 1.读出家谱并显示 2.确定指定成员在家族中的辈份 3.输出指定辈的所有成员 4.在家谱中添加新成员,并追加到文件中 5.输出指定家庭的所有成员 6. 退出本系统 (2)各功能的算法思想: 1.读出家谱并显示 存储结构用栈,按照先显示双亲,然后显示其所有孩子的顺序显示所有的家庭成员。 2.确定指定成员在家族中的辈份 用求成员所在的二叉树中的层数(按层遍历二叉树)来确定,这里采用的是递归算法3.输出指定辈的所有成员 此处定义了一个新的结构体类型(增加存储节点所在的层数),定义如下: struct { BTNode *q; int loc; //存结点所在的层数 }qu[10]; 并用一个队列来比较显示同辈分的所有成员。 4.在家谱中添加新成员,并追加到文件中 首先,输入一个新成员的名字; 然后,输入其双亲; 之后,再添加到整个存储二叉链表中。 然后,再将新的存储结构写回到文件中。 二叉链表的结点类型为:typedef struct node { ElemType data[10]; //存放成员的名字 struct node *child; //其孩子指针 struct node *brother; //其兄弟指针 }BTNode; 5.输出指定家庭的所有成员 首先,设一个栈,并设一个标记位,先置1; 然后,找到输入的要待显示的成员,将标记位置0; 再次,显示其孩子和兄弟,依次下去直到显示完其所有的亲戚。 6.退出本系统 通过一个输入字符q来控制,每完成一个功能,系统提示是否要继续操作:

数据结构简单的职工管理系统完整版

湖南涉外经济学院数据结构课程设计报告 题目:简单的职工管理系统 院系名称:计算机学院 专业名称:计算机科学与技术 班级:计科201001班 学生姓名:刘兴斌 学号:30 指导教师:张建明 设计起止时间:2011年11月20日~2011年12月30日

完成于2011年12月29日星期四 目录 第一章序 (1) 第二章系统总体功能的设计和分析 (3) 1、问题描述 (3) 2、详细要求 (3) 3、功能分析 (4) 1、具体要求.............................................................. 错误!未定义书签。 2、系统流程分析 (4) 3、系统功能结构 (5) 4、模块函数构造 (6) 第三章详细设计分析 (7) 1、抽象数据类型定义 (7) 2、主函数设计 (8)

3、查找算法设计 (9) 4、排序算法设计 (8) 第四章源程序代码 (11) 第五章系统实现 (29) 第六章课程设计总结 (31)

第一章序 电子信息时代由如洪水一样的凶猛,能在现实社会应用软件给我们的生活和工作带来方便和实用性就是软件存在的最大的价值。数据结构所能解决的就是这些复杂的问题简单化。 《数据结构》是计算机专业学生学习的一门基础课程,但十分的重要。本课程系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术。本课程将为整个专业的学习以及软件设计水平的提高打下良好的基础。为了学好《数据结构》,必须掌握编写一些在特定数据结构上的算法,并通过上机调试,更好地掌握各种数据结构及其特点。 经过本次课程设计,我们对于数据结构基本理论和存储结构及算法设计将有更加深入的理解,并提高我们在实际设计操作中系统分析、结构确定、算法选择、数学建模和信息加工的能力,提高我们的C/C++语言程序设计能力,以及培养学我们编写程序设计文档的能力,为将来在实战工作中打下良好的基础。 在经济发达的今天对于职工简单的管理都是有很大程度上的要求,一个工司能否较好较快的运行,与职工管理的好坏分不开关系,通过该系统,将一系列的问题系统化,能够更好的管理职工。简化管理,使管理更方便,准确性、直观性和实用性更强。本着以锻炼自己的能力为目的,通过设计与制作进一步学习和掌握简单的职工管理系统的原理和使用方法。虽然在一定程度上较为简单,但也能体现在出在人员管理上的方便快捷,也体现一个领导的管理水平是不是充满艺术。

(完整word版)家谱管理系统

洛 阳 理 工 学 院 课 程 设 计 报 告 课程名称 ___________________________________ 设计题目 ___________________________________ 专 业 ___________________________________ 班 级 ___________________________________ 学 号 ___________________________________ 姓 名 ___________________________________ 完成日期 ___________________________________ 数据结构课程设计 家谱管理系统 计算机科学与技术 B150405 B15080822 宋士龙 2016年12月30日

课程设计任务书 设计题目:家谱管理系统 设计内容与要求: 【问题描述】:实现具有下列功能的家谱管理系统 1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。 2). 实现数据的存盘和读盘。 3). 显示家谱。 4). 按照出生日期查询成员名单。 5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。 6). 修改某成员信息。 【基本要求】: 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。 测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。 测试数据及测试结果请在上交的资料中写明。 指导教师:_______________ 年月日 课程设计评语 成绩: 指导教师:_______________ 年月日

家谱管理系统数据结构大作业

家谱管理系统 任务:实现具有下列功能的家谱管理系统功能要求: 1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的2). 实现数据的存盘和读盘。 3). 以图形方式显示家谱。 4). 显示第n 代所有人的信息。 5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。 6). 按照出生日期查询成员名单。 7). 输入两人姓名,确定其关系。 8). 某成员添加孩子。 9). 删除某成员(若其还有后代,则一并删除)。 10).修改某成员信息。 11).按出生日期对家谱中所有人排序。 12).打开一家谱时,提示当天生日的健在成员。要求:建立至少30 个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。测试数据:要求使用1、全部合法数据; 2、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; */ #include #include #include #include #include"map.h" #define MAXN 100 #define MAXMEM 100 #define Elemtype char // 树 typedef struct BiTNode { int mark;// 标记 int level; char name[50];// 姓名 char birthday[50];// 生日 char address[MAXN];// 住址 bool marriage;// 婚否(true 表示结婚,false 表示没结婚) bool live;// 建在(true 表示活着,false 表示过世) bool sex;// 性别(true 表示男,false 表示女) char livemassage[50];// 死亡日期(如果其已经死亡) Elemtype data;// struct BiTNode *lc,*rc; }BiTNode,*BiTree; // 树的相关操作 char nametemp[50];// 姓名 char birthdaytemp[50];// 生日

数据结构课程设计题目

数据结构课程设计题目 题目一考试报名系统(必做) 项目简介: 考试报名工作给各高校报名工作带来了新的挑战,给教务管理部门增加了很大的工作量。本项目是对考试报名管理的简单模拟,用控制台选项的选择方式完成下列功能:输入考生信息;输出考生信息;查询考生信息;添加考生信息;修改考生信息;删除考生信息。 项目功能要求: 本项目的实质是完成对考生信息的建立,查找,插入,修改,删除等功能。其中考生信息包括准考证号,姓名,性别,年龄和报考类别等信息。项目在设计时应首先确定系统的数据结构,定义类的成员变量和成员函数;然后实现各成员函数以完成对数据操作的相应功能;最后完成主函数以验证各个成员函数的功能并得到运行结果。(建议采用链表实现) 系统示例 题目二约瑟夫生者死者游戏

项目简介 约瑟夫生者死者游戏的大意是:30个旅客同乘一条船,因为严重超载,加上风高浪大危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难。无奈,大家只得统一这种方法,并议定30个人围成一圈,由第一个人开始,依次报数,数到第9人,便将他投入大海中,然后从他的下一个人数起,数到第9人,再将他投入大海,如此循环,直到剩下15个乘客为止。问哪些位置是将被扔下大海的位置。 项目功能要求:(要求采用单循环链表) 本游戏的数学建模如下:假如N个旅客排成一个环形,依次顺序编号1, 2, …, N。从某个指定的第S号开始。沿环计数,每数到第M个人就让器出列,且从下一个人开始重新计数,继续进行下去。这个过程一直进行到剩下K个旅客为止。 本游戏要求用户输入的内容包括: 1、旅客的个数,也就是N的值; 2、离开旅客的间隔书,也就是M的值; 3、所有旅客的序号作为一组数据要求存放在某种数据结构中。 本游戏要求输出的内容是包括: 1.离开旅客的序号; 2.剩余旅客的序号。 系统示例 题目三勇闯迷宫游戏 项目简介: 迷宫只有两个门,一个门叫入口,另一个门叫出口。一个骑士骑马从入口进入迷宫,迷宫设置很多障碍,骑士需要在迷宫中寻找通路以到达出口。

相关主题
文本预览
相关文档 最新文档