文档库 最新最全的文档下载
当前位置:文档库 › 家谱管理系统1

家谱管理系统1

家谱管理系统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日前,提交课程设计报告和软件。

指导教师签章:

教研室主任签章

指导教师评语与成绩

目录

第1章概述 (1)

1.1 课题研究的目的和技术发展现状 (1)

1.2 课题研究的主要内容 (1)

1.3 课题研究的难点 (1)

第2章需求分析 (2)

2.1 性能需求 (2)

2.2 功能需求 (2)

第3章可行性分析 (2)

3.1 经济可行性分析 (2)

3.2 技术可行性分析 (2)

第4章概要设计 (3)

4.1 程序设计的基本思想 (3)

4.2 总体功能模块图 (3)

4.3相关应用技术 (3)

第5章详细设计 (4)

5.1日期信息的合法性检验 (4)

5.2 添加成员孩子模块 (5)

5.3 添加成员兄弟模块 (8)

5.4 按照出生日期对家谱排序 (9)

5.5 由兄弟、孩子二叉树生成家谱文件 (12)

5.6 按照姓名、出生日期查找家谱成员 (13)

第6章调试分析与测试结果 (14)

6.1 测试方法 (14)

6.2 测试过程 (14)

6.3 测试结论 (15)

第7章结束语 (19)

参考文献 (20)

附录 (20)

第1章概述

1.1 课题研究的目的和技术发展现状

本《家谱管理系统》是以电子家谱的形式记载父系家族世袭、人物为中心。电子能准确记录家族成员出生卒年,以及生活地点、家庭成员等信息。一般情况下是不会出现信息丢失情况。更不需要担心传统家谱随着年代的久远字迹不清晰,有破损等情况的出现。所以本课题的研究目的是让大家不但能够非常容易的记录家族情况,而且能清楚的了解本家族信息,使用起来非常方便。现有的计算机技术足以支撑电子家谱的开发。家谱的科学管理不但有助于民族文化和地方文化的发展,而且有其自身的积极意义。例如本电子家谱是利用Visval C++ 6.0开发完成的。电子家谱的出现无疑让家谱焕然一新,但是传统家谱更能凸显出历史的韵味,文化的内涵。这是电子家谱所不能够替代的,电子家谱不可能成为文物。开发人员应该清楚的认识到这一点。

1.2 课题研究的主要内容

家谱,又称族谱、祖谱、宗谱等。一种以表谱形式,记载一个以血缘关系为主题的家族世系繁衍。本课题研究的主要内容是以电子家谱的形式记录、查询父系家族历史信息为主要内容。

1.3 课题研究的难点

建立输入文件以存放最初家谱中各成员的信息,以及能够对修改后的家谱存盘以备以后使用。用户界面的设计不够完美。功能上的设计难度很大。

第2章需求分析

2.1 性能需求

系统的核心是利用对话框的连接和文本处理来存储和修改家族管理系统的信息联系,其中的每一个动作都可能影响到其他的功能。使用方便,易于传播,数据共享等性能。易于维护。

2.2 功能需求

?建立输入文件以存放最初家谱中各成员的信息。

?成员的信息中均应包含以下内容:

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

?能对修改后的家谱存盘以备以后使用。

?能从文件中读出已有的家谱,形成树状关系。

?家谱建立好之后,以图形方式显示出来。

?显示第n代所有人的信息。

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

?按照出生日期查询成员名单。

?输入两人姓名,确定其关系。

?某人添加孩子。

?删除某人(若其还有后代,则一并删除)。

?修改某人信息。

?按出生日期对家谱中所有人排序。

?打开一家谱时,若家谱中某人的生日在打开家谱的那一天,应给出提示。

第3章可行性分析

3.1 经济可行性分析

对系统开发规模进行估算属此软件项目属于小规模软件开发。所以开发人员三到五人即可。开发,维护等成本相对较低。所以从经济可行性分析的角度来看此《家谱管理系统》适于开发。

3.2 技术可行性分析

根据软件系统功能、性能要求的各项约束条件从技术的角度实现系统的可行性。家谱信息以树的形式一次读入内存,而个人的各种资料虽然目前条目不多,但随着程序的升级,以后可能越来越大。我把树形结构和个人信息记录的文档分为两个文件保存在外存中,一个文件串行化的记录家谱树的结构化信息,保持少量个人信息作为识别标志;另一个文档保存完整的个人信息。索引时,以树形中的少量信息为依据在另一个文件中找到全部个人信息资料。

第4章概要设计

4.1 程序设计的基本思想

《家谱管理系统》的总体设计思路是先为程序搭建好一个人结构框架,家庭成员之间的关系,用树形结构(家族树)表示,这是本《家谱管理系统》的逻辑结构。根据MFC的特点,采用CfamilytreeDlg类实现用户窗口界面指令对于家谱的各种操作。有文件控制和家谱控制两大模块,按生日查找、删除成员、文件输入输出、修改成员信息、按名字查找、成员关系显示、按代数显示等各种操作。然后再根据需求分析逐步增强程序的功能和性能。

4.2 总体功能模块图

4.3相关应用技术

1.定义“家谱”类型

2.用结构Date存储日期

3.用结构QuickSortNode存储快速排序数组值(为快速排序而设)

4.根据家谱的特点,采用孩子-兄弟的二叉树链表表示法(链表的基本单位为

以结构PersonNode表示的结点),各种操作以COperationFamilytree类来实现。

5.根据MFC的特点,采用CfamilytreeDlg类实现用户窗口界面指令对于家谱

的各种操作。

第5章详细设计

5.1日期信息的合法性检验

图5-1 日期信息的合法性检查

Int COperationFamilytree::ReadNode(FILE *fp, Person &T,char* parentname)

{

//本函数从文件fp中读取信息到结点T中,并读取结点的父亲名字到字符数

组parentname中

//分别读取结点值,为:姓名,出生日期(年,月,日),婚否,地址,健在否,(如过世,还有死亡日期)

fscanf(fp,"%s%d%d%d%d%s%d",T->https://www.wendangku.net/doc/1916948730.html,,&T->info.birthday.year,&T ->info.birthday.month,

&T->info.birthday.day,&T->info.marry,T->info.addr,&T->info.live);

if(T->info.live==0)

fscanf(fp,"%d%d%d",&T->info.deathday.year,&T->info.deathday.month ,

&T->info.deathday.day);

fscanf(fp,"%s",parentname);

if(!IsDateValid(T->info.birthday)) //出生日期合法性检查return FILE_DATA_NOT_PRACTICAL;

if(T->info.live==0) //若过世,死亡日期合法性检查if(!IsDateValid(T->info.deathday))

return FILE_DATA_NOT_PRACTICAL;

return OK;

}

5.2 添加成员孩子模块

图5-2 添加成员孩子流程图

Int COperationFamilytree::CreateFamilytree(CString filename)

{

//本函数建立一新家谱

DestroyFamilytree(); //建立一新家谱之前,清空原有家谱FILE* fp;

if((fp=fopen(filename,"r"))==0) //打开文件filename return READ_FILE_ERROR;

T=new PersonNode; //定义根结点

if(!T)

return NOT_ENOUGH_MEMORY;

T->child=0;

T->sibling=0;

T->parent=0;

Person parentT, temp; //定义两个临时结点

char parentname[MAX_CHARNUM]; //定义一个临时字符串数组

//读取根结点值,(姓名,出生日期(年,月,日),婚否,地址,健在否,(如过世,还有死亡日期))

int result;

result=ReadNode(fp,T,parentname);

if(result==FILE_DATA_NOT_PRACTICAL){

delete T; //若不合法,删除申请的堆空间

T=0;

return result;

}

if(strcmp(T->https://www.wendangku.net/doc/1916948730.html,,parentname)==0){

//根结点名字与其父亲名字相同,说明为空树

delete T;

T=0;

return PEDIGREE_EMPTY;

}

temp=new PersonNode; //申请一结点

if(!temp){ //申请失败

DestroyFamilytree(); //释放申请空间

return NOT_ENOUGH_MEMORY;

}

result=ReadNode(fp,temp,parentname);

while(strcmp(temp->https://www.wendangku.net/doc/1916948730.html,,parentname)&&strcmp(temp->https://www.wendangku.net/doc/1916948730.html,,

"end")){ //读取信息结束的条件是两个人的名字同为end

if(result==FILE_DATA_NOT_PRACTICAL){

//若数据不合法,释放已申请空间,然后返回

delete temp;

DestroyFamilytree();

return result;

}

parentT=0;

Find(T,parentT,parentname); //找到parentname所在结点parentT

if(parentT){ //如果parentT存在,说明parentname在家谱中

//并且parentname为temp的父亲int cmp;

cmp=CompareDate(temp->info.birthday,parentT->info.birthday);

if(cmp<0){ //若孩子出生日期比父亲大,则不对delete temp;

DestroyFamilytree();

return FILE_DATA_NOT_PRACTICAL;

}

temp->child=temp->sibling=0;

temp->parent=parentT; //temp的父指针指向parentT;

if(parentT->child){ //parentname已经有孩子InsertSibling(parentT->child,temp);

}//if

else //parentname无孩子,则temp应为parentT->child=temp; //parentname的第一个孩子}//if

else{ //parentT不存在,说明家谱中不存在parentname此人

DestroyFamilytree(); //返回出错信息

return FILE_DATA_ERROR;

}

temp=new PersonNode; //申请一结点

if(!temp){ //申请失败

DestroyFamilytree(); //释放申请空间

return NOT_ENOUGH_MEMORY;

}

result=ReadNode(fp,temp,parentname); //继续读取数据

}//while

if(temp)

delete temp;

fclose(fp);

return OK;

}

5.3 添加成员兄弟模块

图5-3 添加成员兄弟模块

void SaveNode(FILE *fp, Person &pNode)

{

//本函数向文件fp中存取一结点pNode

char ch='\n';

if(pNode){

fprintf(fp,"%s %d %d %d %d %s %d ",pNode->https://www.wendangku.net/doc/1916948730.html,,pNode->info.birthday.year,

pNode->info.birthday.month,pNode->info.birthday.day,pNode->info.m arry,

pNode->info.addr,pNode->info.live);

if(pNode->info.live==0)

fprintf(fp," %d %d %d ",pNode->info.deathday.year,pNode->info.deathday.month,

pNode->info.deathday.day);

if(pNode->parent) //家谱结束fprintf(fp," %s ",pNode->parent->https://www.wendangku.net/doc/1916948730.html,);

else

fprintf(fp," %s","-1");

fprintf(fp," %c",ch);

}

}

int COperationFamilytree::SaveFamilytree(CString filename)

{

//本函数保存家谱到文件filename中

FILE* fp;

if((fp=fopen(filename,"w"))==0) //打开文件filename return WRITE_FILE_ERROR;

PreOrderTraverse(fp,T,SaveNode); //从根结点开始存储家谱数据

//置家谱数据结束标记(一结点的名字与其父结点的名字同为end)

fprintf(fp,"%s %d %d %d %d %s %d %s","end",1999,12,

2,1,"end",1,"end");

fclose(fp);

return OK;

}

void COperationFamilytree::PreOrderTraverse(FILE* fp,Person &T, void (__cdecl *Visit)(FILE* fp,Person &))

{

//本函数把所有以T结点为根结点的结点值存到文件fp中

if(T){

(*Visit)(fp,T);

PreOrderTraverse(fp,T->child,Visit);

PreOrderTraverse(fp,T->sibling,Visit);

}

}

5.4 按照出生日期对家谱排序

void CFamilytreeDlg::OnFamilytreeSort()

{

// TODO: Add your command handler code here

RefreshList();

QuickSortNode* order;

int totalNums=0;

operFamilytree.GetPersonNums(operFamilytree.GetRoot(),totalNums);

order=new QuickSortNode[totalNums+1];

if(!order){

AfxMessageBox("内存不足!");

return;

}

AfxMessageBox("排序后结果请见下部列表。");

operFamilytree.SortByBirthday(order);

for(int i=1;i

DisplayInListCtrl(order[i].oneself);

delete []order;

}

void COperationFamilytree::SortByBirthday(QuickSortNode *order)

{

//本函数对顺序表order以出生日期的大小排序

int totalNums=0;

QuickSortNode* startaddr=order;

startaddr++;

GetPersonNums(T,totalNums);

CopyInfoFromBiTreeToArray(T,startaddr);

QuickSort(order,1,totalNums);

}

int COperationFamilytree::Partition(QuickSortNode *order, int low, int high)

{

//本函数供QuickSort函数调用

//交换顺序表order中从low到high的记录,便枢轴记录到位,并返回其所在位置,此时

//在它之前(后)的记录均不大(小)于它

order[0]=order[low]; //用子表的第一个记录做枢轴记录

Date pivotkey=order[low].birthday; //枢轴记录关键字

while(low

||CompareDate(order[high].birthday,pivotkey)==0))

--high;

order[low]=order[high]; //将比枢轴记录小的记录移到低端

order[low].birthday=order[high].birthday; //枢轴记录到位

order[low].oneself=order[high].oneself;

while(low

||CompareDate(order[low].birthday,pivotkey)==0)) ++low;

order[high]=order[low]; //将比枢轴记录大的记录移到高端}

order[low]=order[0]; //枢轴记录到位

return low; //返回枢轴位置

}

void COperationFamilytree::QuickSort(QuickSortNode *order, int low, int high)

{

//本函数对顺序表order[low...high]作快速排序

int pivotloc;

if(low

pivotloc=Partition(order,low,high); //将order[low...high]一分为二

QuickSort(order,low,pivotloc-1); //对低子表递归排序,pivotloc是枢轴位置

QuickSort(order,pivotloc+1,high); //对高子表递归排序}

}

void COperationFamilytree::GetPersonNums(Person&T,int& personNums) {

//本函数返回以T为根结点的所有结点数,并把结果存入personNums中

//初始值personNums必须为0

if(T){

personNums++;

GetPersonNums(T->child,personNums); //递归调用

GetPersonNums(T->sibling,personNums);

}

}

void COperationFamilytree::CopyInfoFromBiTreeToArray(Person &T, QuickSortNode *&order)

{

//本函数先序遍历以T为根结点的所有结点,并把每一个结点的出生日期信

息及其指针值

//依次存入顺序表order中

if(T){

(*order).birthday=T->info.birthday;

(*order).oneself=T;

order++;

CopyInfoFromBiTreeToArray(T->child,order);

CopyInfoFromBiTreeToArray(T->sibling,order);

}

}

5.5由兄弟、孩子二叉树生成家谱文件

void SaveNode(FILE *fp, Person &pNode)

{

//本函数向文件fp中存取一结点pNode

char ch='\n';

if(pNode){

fprintf(fp,"%s %d %d %d %d %s %d",pNode->https://www.wendangku.net/doc/1916948730.html,,pNode->info.bi rthday.year,

pNode->info.birthday.month,pNode->info.birthday.day,pNode->info.m arry,

pNode->info.addr,pNode->info.live);

if(pNode->info.live==0)

fprintf(fp," %d %d %d ",pNode->info.deathday.year,pNode->info.deathday.month,

pNode->info.deathday.day);

if(pNode->parent) //家谱结束fprintf(fp," %s ",pNode->parent->https://www.wendangku.net/doc/1916948730.html,);

else

fprintf(fp," %s","-1");

fprintf(fp," %c",ch);

}

}

int COperationFamilytree::SaveFamilytree(CString filename)

{

//本函数保存家谱到文件filename中

FILE* fp;

if((fp=fopen(filename,"w"))==0) //打开文件filename

return WRITE_FILE_ERROR;

PreOrderTraverse(fp,T,SaveNode); //从根结点开始存储家谱数据

//置家谱数据结束标记(一结点的名字与其父结点的名字同为end)

fprintf(fp,"%s %d %d %d %d %s %d %s","end",1999,12,

2,1,"end",1,"end");

fclose(fp);

return OK;

}

void COperationFamilytree::PreOrderTraverse(FILE* fp,Person &T, void (__cdecl *Visit)(FILE* fp,Person &))

{

//本函数把所有以T结点为根结点的结点值存到文件fp中

if(T){

(*Visit)(fp,T);

PreOrderTraverse(fp,T->child,Visit);

PreOrderTraverse(fp,T->sibling,Visit);

}

}

5.6 按照姓名、出生日期查找家谱成员

void COperationFamilytree::Find(Person& T,Person& Tname,char* name) {

//本函数以T为根结点开始,搜索结点信息中名字等于name的结点

if(T){ //如果T存在

if(strcmp(T->https://www.wendangku.net/doc/1916948730.html,,name)==0) //T结点姓名和name相同,把T 结点指针传给Tname

Tname=T;

else{

Find(T->sibling,Tname,name); //对T的兄弟递归搜索

Find(T->child,Tname,name); //对T的孩子递归搜索}

}

}

void COperationFamilytree::Find(Person &T, Person*& Tname,int month, int day)

{

//本函数以T为根结点开始,搜索结点信息中生日等于month,day的结点, //并把所有符合条件的结点指针值存入以Tname为起始地址的地址数组中

if(T){ //如果T存在

if(T->info.birthday.month==month&&

T->info.birthday.day==day){

//T结点生日与所给相同,把T结点指针传给Tname,同时Tname指针前进*Tname=T;

Tname++;

}

else{

Find(T->sibling,Tname,month,day); //对T的兄弟递归搜索

Find(T->child,Tname,month,day); //对T的孩子递归搜索}

}

}

第6章调试分析与测试结果

6.1 测试方法

该课程设计只有一个主要类,即对孩子——兄弟二叉树的操作类。该类主要包括文件读取函数、创建孩子——兄弟二叉树函数、在树中查找函数、遍历函数以及对树中结点进行加入、删除、修改的函数。由于树存储结构的特殊性,故编制这些算法时大量使用了递归,虽然这样做可能会降低程序的执行效率,但程序的易读性较强。

6.2 测试过程

在调试时,遇到的几个问题如下:

(1)建立树时,由于新申请结点的孩子指针、兄弟指针、及双亲指针均未赋空值。而在以后的函数中对树进行递归操作时均以这些指针值中的一

个或几个是否为空作为递归结束条件。从而导致调用这些函数时出现系

统保护异常(使用了不安全的指针)。

(2)刚开始删除结点时,只考虑到删除其本身结点的情况,而删除其孩子结点的情况未考虑到,故在删除某些结点时使树出现了“断链”现象。

故在程序代码中对删除某一结点进行操作时,首先要判断此结点是否有

孩子及兄弟,然后进行相应操作。

(3)刚开始进行程序概要设计时,曾考虑到用控制台下的文本方式作为程序界面,实际操作后发现并不理想。一方面字符形式的界面友好性较差,

另一方面显示整个家谱树的信息时不方便。故考虑用VC++中MFC类自带

的树型控件显示家谱层次,而用列表控件显示家谱中的信息。用后效果

不错。

6.3 测试结论

(1)按下按钮“打开家谱”,打开一个家谱文件(*.ftf)

(2)按下按钮“新建家谱”,新建一个家谱文件(*.ftf)

(3)按下按钮“保存家谱”,将修改过的家谱保存

(4)按下按钮“另存家谱”,将修改过的家谱另存为一个家谱文件(*.ftf)(5)按下按钮“删除该人”,将树型控件中选中的成员及其后代删除

学生信息管理系统java课程设计(含源代码)

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 设计时间: 评阅意见: 评定成绩:

目录 一、系统描述 (2) 1、需要实现的功能 (3) 2、设计目的 (3) 二、分析与设计 (3) 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11) 三、系统测试 (16) 四、心得体会 (23) 五、参考文献 (24) 六、附录 (24)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,

学生学籍管理系统(含java源代码)

学生学籍管理详细设计 学号:____________ 姓名:____________ 班级:____________ 一、设计题目: 学生学籍管理 二:设计内容: 设计GUI学生学籍管理界面,用户可以加入学生信息,并对基本信息进行修改,添加,查询,删除。 三:设计要求: 进行简单的学生信息管理。 四:总体设计 (1)登陆界面的设计 (2)主窗体的设计 (3)添加学生信息窗体 (4)查询学生信息窗体 (5)修改学生信息窗体 (6)删除学生信息窗体 (7)事件响应的处理 五:具体设计 (1)程序结构的说明: A.入口程序:; B.登陆界面程序:; C.主窗体程序:; D.添加信息窗口程序:; E.修改信息窗口程序:;

F.查询信息窗口程序:; G.删除信息窗口程序:; H.程序数据连接:; (2)程序代码及分析说明 A.程序源代码(已提交) 是程序的入口。使登录窗口位于窗口中间,并且不可改变窗口大小。 是程序的登陆窗体。输入用户名和密码(用户名和密码在数据库的password表中)点击“进入系统”,然后登陆界面消失;出现要操作的界面(屏幕左上角)。是添加信息界面。添加基本信息后,点击“添加信息”按钮,将信息加入xinxi 表中。 是修改信息界面。输入要修改的学号或姓名(两者数其一或全部输入),并输入所有信息,点击“修改信息”按钮(如果数据库中不存在此学号,则弹出对话框“无此学生信息”),若有则修改。 是删除信息界面。输入要删除的学生的学号,点击“删除信息”按钮,弹出确认删除对话框,即可删除该生信息。 是查询信息界面。输入要查询的学生学号,点击“信息查询”按钮,在相应的文本区里显示查询的信息。 H:源代码 ; import .*; etScreenSize(); Dimension frameSize=(); if> { =; } if> { =; } ( (true); } public static void main(String[] args) { try{ ()); } catch(Exception e) { (); } new student(); } }

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

数据结构家谱管理 系统

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

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

家谱管理系统的源代码

#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质量管理的原则 1.1 以顾客为关注焦点 1.1.1 概述 质量管理的主要关注点是满足顾客要求并且努力超越顾客期望。 1.1.2 理论依据 组织只有赢得和保持顾客和其他有关的相关方的信任才能获得持续成功。 1.2 领导作用 1.2.1 概述 各级领导建立统一的宗旨和方向,创造全员积极参与的条件,实现组织的质量目标。1.2.2 理论依据 统一的宗旨和方向的建立,以及全员的积极参与,能够使组织将战略、方针、过程和资源保持一致,以实现其目标。 1.3 全员参与 1.3.1 概述 在整个组织内各级人员的胜任、被授权和积极参与,是提高组织创造和提供价值能力的必要条件。 1.3.2 理论依据 为了有效和高效的管理组织,各级人员得到尊重并参与其中是极其重要的。通过表彰、授权和提高能力,促进在实现组织的质量目标过程中的全员积极参与。 1.4 过程方法 1.4.1 概述 将活动作为相互关联、功能连贯的过程系统来理解和管理时,可更加有效和高效的得到一致的、可预知的结果。 1.4.2 理论依据 质量管理体系是由相互关联的过程所组成。理解体系是如何产生结果的,能够使组织尽可能地完善其体系和绩效。 1.5 改进 1.5.1 概述 成功的组织持续关注改进。 1.5.2 理论依据 改进对于组织保持当前的绩效水平,对其内、外部条件的变化做出反应并创造新的机会都是非常必要的。 1.6 循证决策 1.6.1 概述 基于数据和信息的分析和评价的决策,更有可能产生期望的结果。 1.6.2 理论依据 决策是一个复杂的过程,并且总是包含一些不确定因素。它经常涉及多种类型和来源的输入及其解释,而这些解释可能是主观的。重要的是理解因果关系和可能的非预期后果。对事实、证据和数据的分析可导致决策更加客观、可信。 1.7 关系管理

家谱管理系统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日前,提交课程设计报告和软件。 指导教师签章: 教研室主任签章

实验室管理程序

实验室管理程序 1目的 为了确保实验室具备所从事检测和校准活动的能力,健全实验室管理,以提供及时、准确、公正、严谨的服务,特制定本程序。 2范围 本程序适用于产品(性能)实验室、精密检测实验室、校准、理化实验室的范围、程序、人员要求、过程控制及外委过程的确定。 3术语 3.1实验室:检验、检测和校准的设施,可包括但不限于化学、冶金、尺寸、物理、电子或可靠性的测试。 3.2检验:通过观察和判断,适当时结合测量、试验所进行的符合性评价。 3.3检测:按照规定的程序,为确定给定的产品、材料、设备、生物组织、物理现象、工艺或服务的一种或多种特性的技术操作。 3.4校准:在规定条件下,为确立计量仪器或计量系统的示值或实物量具所代表的值与相对应的被计量的已知值之间关系的一组操作。 3.5实验室范围:包括以下内容的受控文件: ?实验室有资格开展的具体测试、评估和校验 ?开展上述活动的所需的设备清单 ?开展上述活动的方法和标准清单 3.6实验室认可:权威机构给予某实验室具有执行规定任务能力的正式承认。3.7非标准试验:指国际标准、国家标准、行业标准、地方标准中没有规定的试验方法。主要是指本企业自己确定的试验方法。 4职责 4.1产品工程处为本程序主管部门,负责产品(性能)试验室的管理。 4.2质量保证处计量检测中心负责产品检测及校准和理化实验室的管理。 4.3铸造分厂负责本单位实验室的管理。 4.4人力资源处负责实验室试验、检验人员的培训、建档工作。 5内容 5.1工作流程

责任部门 管理策划处 工业工程组 各实验室 人力资源处各实验室各实验室 各实验室 各实验室 实验室 各实验室 各实验室 各实验室 各实验室发展规划处各实验室采购供应处各实验室0 1 02 03 04 05 06 07 08 09 10 1 1 12 13 流程图输出文件 实验室编制和岗位描述,组 织机构图 质量方针 人员名单和技术档案 试验项目清单 标准设备清单,标准清单,标准物 质清单 试验标准清单 文件记录目录借阅记录 非标准试验规程确认记录 测量不确定度分析报告 试验设施环境的需求报告,实验 室环境监试测 检测设备采购立项申请 设备档案,维护计划,维护记录 使用维护说明书

学生信息管理系统程序

. C语言上机实践报告 专业:冶金工程 班级:冶金1102 姓名: 学号: 任课教师:丽华 时间:2012年8月

一、题目 学生信息管理系统设计 ●学生信息包括:学号,姓名,年龄,性别,出生年月,地址,,E-mail等。 ●试设计一学生信息管理系统,使之能提供以下功能: a)系统以菜单方式工作 b)学生信息录入功能(学生信息用文件保存)---输入 c)学生信息浏览功能---输出 d)查询、排序功能---算法 (1) 按学号查询 (2) 按姓名查询 e)学生信息的删除与修改(可选项) 一、系统功能模块结构图

二、数据结构设计及用法说明#include"stdio.h" #include"stdlib.h" #include"string.h" /*定义结构体用作创建链表*/ typedef struct z1 { char no[11]; //学生学号 char name[15]; //学生姓名 int age; //学生年龄 char sex; //学生性别 char birthday[8]; //学生出生年月char address[20]; //学生住址 char tel[12]; //学生联系 char e_mail[20]; //学生e-mail struct z1 *next; //指向下一链表}STUDENT; /*声明用户自定义函数*/ STUDENT *init();

STUDENT *create(); STUDENT *del(STUDENT *h); STUDENT *insert(STUDENT *h); STUDENT *revise(STUDENT *h); void print(STUDENT *h); void search1(STUDENT *h); void search2(STUDENT *h); void save(STUDENT *h); int menu_select(); void inputs(char *prompt,char *s,int count); /*主函数,用于选择功能*/ void main() { STUDENT *head; head=init(); //初始化链表表头 for(;;) { switch(menu_select()) { case 0:head=init();break; //初始化 case 1:head=create();break; //创建列表

数据结构家谱管理系统

//////////////////////////////////////////////////////////// /////////////////// //题目:家谱资料管理 //要求:家谱用于记录某家族历代家族成员的情况与关系。现编制一个家谱资料管理软件, //实现对一个家族所有的资料进行收集整理。支持对家谱的增加,删除,更新,统计等。 //////////////////////////////////////////////////////////// /////////////////// #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);

教师课程管理系统(c++课程设计源代码)

#include #include #include #include #include #include using namespace std; using std::string; class ke; ostream&operator<<(ostream&dist,ke&k); istream&operator>>(istream&sour,ke&k); class teacher; ostream&operator<<(ostream&dist,teacher&t); istream&operator>>(istream&sour,teacher&t); class ke { protected: static int keID; string keName; char keJB; int keXS; int keJC; int keBH; public: ke(string name="未命名的课程",char jb='0',int xs=0,int jc=0,int bh=0); void show(); friend ostream&operator<<(ostream&dist,ke&k); friend istream&operator>>(istream&sour,ke&k); int getkeJC(){return keJC;} string getkeName(){return keName;} }; int ke::keID=0; ke::ke(string name,char jb,int xs,int jc,int bh) { keID++; bh=keID; keName=name; keJB=jb; keXS=xs; keJC=jc; keBH=bh; } void ke::show() {

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

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

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

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

家谱管理系统——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);//添加新成员界面 } //显示添加家庭信息的界面

C语言程序设计——学生信息管理系统

C语言课程设计 姓名:徐宗博 学号:************ 班级:061092 指导教师:曹老师 2011 年 6 月25 日

目录 第一章:实习内容 1.1实习内容简介 (2) 1.2程序代号说明 (3) 第二章:程序流程图 第三章:函数模块介绍 3.1读取文件、存储文件 (6) 3.2 管理系统模块 (8) 3.3 恢复区系统模块 (12) 3.4 功能展示 (12) 第四章:实习总结 (16) 第五章:实习体会 (17) 附录: 参考文献 (19) 源代码 (19)

第一章:实习内容 1.1实习内容简介 题目:学生通讯录管理系统 要求:1.可实现信息的添加、删除,可按学号、姓名查询; 2.学生信息必须包含学号、姓名、学院、专业、籍贯。地址、电话号码; 3.必须有注释。 日期:2011年6月20日至27日,共8个半天。 地点:信息楼301 指导老师:曹雪莲 完成情况: 1.程序可完成信息的添加,可按学号、姓名分别查询; 2.程序可按姓名、学号分别删除,并在删除前显示删除学生的全部信息;按姓名删除, 若出现同名情况,会依次出现系统提示是否删除,可选择删除或跳过; 3.在程序文件夹中有一“学生信息库”的txt文件,可查看学生系统里全部学生信息; 4.设置有一个恢复区系统,可输出、查询删除的信息,并在可同文件夹中“删除信息库” 的txt文件中查看删除信息; 总体结构如下:

1.2程序代号说明 此外,局部变量的含义比较固定:

第二章:程序流程图程序流程图:

本次实习我的思路就是,先从二进制文件中读取信息,形成链表,对链表进行基本操作,如输出、添加、删除、查找。程序结束时将链表保存在二进制文件和文本文件中。 管理系统流程图: 运行管理系统部分时,先从文件“information.xls”中读取数据(若无该文件则创建文件),构建链表;后续操作都是对于链表进行操作,如添加、查找、删除、输出等;离开该部分时则保存链表里的信息到已存在的“information.xls”,并以ASCII形式存储至“学生信息库.txt”,方便检查。

家谱管理系统设计报告样本

目录 第一章绪论............................................................... 错误!未定义书签。第二章需求分析........................................................... 错误!未定义书签。 2.1题目...................................................................... 错误!未定义书签。 2.2设计任务.............................................................. 错误!未定义书签。 2.3数据测试.............................................................. 错误!未定义书签。第三章概要设计....................................................... 错误!未定义书签。 3.1 设计思想 ........................................................ 错误!未定义书签。 3.2 实现方法 ........................................................ 错误!未定义书签。第四章详细设计....................................................... 错误!未定义书签。 4.1功能构想.............................................................. 错误!未定义书签。 4.2界面设计.............................................................. 错误!未定义书签。 4.3增加成员.............................................................. 错误!未定义书签。 4.3.1 添加子女 .................................................... 错误!未定义书签。 4.3.2 添加配偶 .................................................... 错误!未定义书签。 4.4修改成员.............................................................. 错误!未定义书签。 4.4.1修改个人信息............................................. 错误!未定义书签。 4.4.2修改父母信息............................................. 错误!未定义书签。 4.4.3修改兄弟姐妹的信息................................. 错误!未定义书签。 4.4.4修改子女的信息......................................... 错误!未定义书签。第五章调试分析....................................................... 错误!未定义书签。

IATF16949体系文件S5.02 实验室管理程序

有限公司文件编号QP.S5.02 实验室管理程序IATF 16949:2016修订次数 A.0 制·修订 日期 [发布日期]

1、目的 为了确保内部实验室能按照规定的程序准确、及时地完成本实验室工作范围的检验、试验或校准服务,从而保证产品符合规定要求,特制订本程序。 2、范围 本程序规定了内外部实验室管理办法及要求,适用于本公司和委托外部实验室进行的所有产品检测和试验。 3、术语和定义 本程序引用ISO 9001:2015的术语和定义;其他: 3.1 实验室:进行检验、试验和校准的设施,其范围包括但不限于化学、金相、尺寸、物理、电性能或可靠性试验。 3.2 外部试验室:依据ISO/IEC17025或国家等效文件获得认可的,用于检验、试验或校准服务的外部/商业/独立的实验室。 4、职责 4.1. 技术部:负责内部实验室的管理,编制或提供试验大纲、试验标准、产品试验计划,以及所 有检测和试验的抽样、试验或委托试验。 4.2. 实验室:负责按要求进行试验,提供产品检测试验报告。

5、工作流程 负责部门输入流程输出方法说明 技术部 实验室资质要求 实验人员资质要求 R.S5.02.01. 实验室范 围清单 组织机构 上岗证 执行标准、作业要求等 -实验室范围,包括检验、试验和 校准服务的能力 -组织机构、执行标准(国际/国 家)、工作要求、工作程序以及必 要的作业指导书、实验室环境等 -实验室操作人员必须经过培训, 具备一定的实践经验,并持有上 岗证 技术部实验室手册 R.S5.02.02. 新产品开 发试验计划 R.S5.02.03. 年度产品 试验计划 -新产品试验:产品从开发至顾客 批准前的所有试验;按照新产品 开发试验计划安排试验 -常规试验:产品在批量投产后对 产品和零部件检验指导书中规定 的试验项目所进行的试验 -型式试验:产品在批量投产后为 验证生产过程中产生的产品变差 而进行全性能定期试验;按年度 产品试验计划安排试验;客户有 要求的按客户要求进行试验 -工艺试验:产品在批量投产后, 为验证生产过程中的质量改进而 进行的试验,以提供改进依据内部实验室资质 实验分类及策划 新产品试验型式试验 常规试验型式试验 是否内部 实验? C Y N 2/6

学生管理系统(界面+源代码)

内蒙古信息工程系 学实训报告 系部:信息技术系 课程名称:网站网页制作 专业班级:14计算机网络技术一班姓名:xxx 任课老师:xxx

左侧主要运用了TreeView控件,然后用户信息运用了GridView控件,链接数据源,在页面中展示用户信息,主要代码:

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

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

C语言程序设计——教室管理系统(源代码))

C语言程序设计——教室管理系统(源代码) 非常有用的。 #include #include #include #define szSTR 64 #define fileDB "c:\\contact.txt" struct CONTACT { char num[szSTR];/*教室编号*/ char site[szSTR];/*教室位置*/ char snum[szSTR];/*座位数*/ char tv[szSTR];/*有无多媒体*/ char use[szSTR];/*是否可用*/ }; typedef struct CONTACT CON; #define ANUM 1 #define ASITE 2 #define ASNUM 3 #define ATV 4 #define AUSE 5 #define BFULL 0xFF int OPER[6] = {BFULL, ANUM, ASITE, ASNUM, ATV,AUSE}; void input(CON * s, int mask) { if(mask & ANUM) { printf("请输入教室编号:"); scanf("%s", s->num); } if(mask & ASITE) { printf("请输入教室位置:"); scanf("%s", s->site); } if(mask & ASNUM) { printf("请输入座位数:"); scanf("%s", s->snum); } if(mask & ATV){printf("请输入是否有多媒体(有/Y*无/N):");scanf("%s",s->tv);} if(mask & AUSE) { printf("请输入是否可用(可/Y*否/N):"); scanf("%s", s->use); } }/*end input*/ void show (int id, CON * s) { if(!s) return ; if(id) printf("%d\t%s\t\t%s\t%s\t\t%s\t\t%s\n", id, s->num , s->site , s->snum , s->tv,s->use );

家谱管理系统.doc

家谱管理系统 。洛阳科技学院课程设计报告数据结构课程设计课程名称_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _家谱管理系统设计主题_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _计算机科学与技术专业_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ b 150405班级_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ b 15080822学校编号_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _宋世龙的姓氏是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ x XXX,2006年12月30日。完成日期_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 家谱管理系统设计的内容和要求; [问题描述] 以下内容: 实现了具有以下功能的家谱树管理系统1)。输入一个文件,将每个成员的信息保存在原始家谱中,每个成员的信息应包括以下内容: 姓名、出生日期、婚姻状况、地址、生活状况和死亡日期(如果

相关文档