90后家谱管理系统.docx
《90后家谱管理系统.docx》由会员分享,可在线阅读,更多相关《90后家谱管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
90后家谱管理系统
宁波大红鹰学院
信息工程学院
课
程
设
计
报
告
项目名称:
停车场管理系统
项目组长:
丁雷
项目成员:
竹宇琪,马蒋斌,雷金霞
班级名称:
09计科1班
专业名称:
计算机科学与技术
完成时间:
2011年12月1日
信息工程学院制
目录
一、案例描述-1-
1、总体描述-1-
2、模块描述-1-
二、设计思路-1-
三、程序设计-2-
1、数据结构描述-2-
2、主函数及其流程图-3-
3、源程序-4-
四、调试与分析-5-
1、主菜单-5-
2、增加信息-6-
3、查找某人并相应输出-6-
4、输出整个家谱信息-6-
5、姓氏查询-7-
五、设计总结-7-
1、完成情况-7-
2、心得体会-8-
一、案例描述
1、总体描述
家谱管理系统是查询家谱信息必不可少的一部分,利用家谱管理系统可以清楚的查询到家族成员的详细信息。
该家谱管理系统是通过树来实现的。
本程序具有插入、查找等功能,可以实现存放家谱中各成员的信息。
程序的操作界面简洁美观,易于操作。
本程序运用了函数、循环、树等知识来进行设计,实现系统和数据结构设计。
2、模块描述
1)菜单设计:
家谱管理系统是为了让用户能够清楚地获得自己想要信息。
为了要使设计的菜单体现用户的需求,就需要设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,简易明了,方便用户使用本系统,让用户第一时间能够清楚的查询到需要的信息。
本程序包含主程序模块,菜单选择模块和树操作模块。
调用关系如下图1-11所示:
图1模块调用示意图
2)添加家谱信息:
输入成员姓名,性别,子女个数,子女姓名,性别,成功建立家谱。
操作简单。
3)查找并输出相应信息:
输入要查找家谱成员的姓名,通过一个比较函数,找到要查找的成员的信息并输出。
4)退出:
选择操作D退出,即可退出程序,实现了操作的简单高效。
5)姓氏查询:
预先存入大量中国姓氏的历史。
输入你想了解的姓氏,可输出该姓氏的历史。
二、设计思路
本程序要求模块化管理,分成菜单函数、创建函数、添加函数、查找函数、控制各个部分从而将程序简单化出来分析。
本程序的主要功能是:
创建数据:
创建各相关数据,例如创建家谱信息。
添加数据:
增加家谱成员孩子信息。
查询信息:
按照姓名来查询成员信息,还可以通过输入姓氏来查询该家谱信息。
退出系统:
程序编译结束后退出系统。
图2家谱管理系统功能模块图
三、程序设计
1、数据结构描述
本程序首先定义了五个结构体,一是时间结构体,定义了小时和分钟;二是车辆信息结构体,定义了车位信息,车辆进入和离开的信息;三是模拟车站信息结构体;四是节点的结构体,定义了data和next两个指针域;五是队列结构体,定义了head和rear两个指针域。
项目结构体
定义如下:
typedefstructTreeNode
{
intNum;//记录这个人拥有几个儿女
charName[20];//记录这个人的姓名
charKind;//标示节点的种类有女G男B
structTreeNode*NextNode[20];//记录这个人的儿女
structTreeNode*Parent;//记录这个节点的父节点
}TreeNode;
2、主函数及其流程图
图3家谱管理流程图
图4创建家谱流程图
3、源程序
intmain(void);
intmain()//主函数
{
inta;//选择操作
printf("\n\n\t*********请选择你的操作********");
printf("\n\n\t**************1:
english**********************\n");
printf("\n\n\t**************2:
中文版**********************\n");
printf("\n");
printf("请输入编号(choose):
");
scanf("%d",&a);
if(a==2)//输入2,则进入中文版
chinese();
elseif(a==1)//输入2,则进入英文版
english();
else
printf("error!
");//输入的数字不为1、2,则进入输出错误
}
voidsearch()//查询姓氏、输出姓氏历史
{
charxm[2];
printf("请输入你想查询的姓(如:
王):
");
scanf("%s",&xm);
if(strcmp(xm,"王")==0)//字符比较
{
printf("王氏发展\n\n");
printf("王姓在先秦、汉晋时期一直以华北地区为主要的活动地区,发展十分迅猛。
隋唐时期王姓各支派向各地迁播之外,最重要的事件是河南固始人王审知南迁福建,建立闽国,成为五代十国之一,是福建王姓的总开山祖,史称开闽王氏。
\n\n");
printf("王氏族谱\n\n");
printf("王氏家门乃武都郡北望族。
其始迁祖宋时由山东徙居山西,转即入甘移居武都安化青草湾。
居不久,王氏宗室远祖欣其牛蹄关以北,有蛇山逶迤苍秀,竹木交荫,猿鸟争啼,碧水中流,风光秀美,土地肥厚,居人无多,遂卜居今之隆兴蛇崖。
数百年间,族室繁衍。
延至世盈王公以其雄勃才略,勤苦创业,欲营方圆百里家业,而中道殂谢,虽为环玦,亦拥广袤土地,奠定殷厚基业。
世盈公生前仁义好施,乡民以“王老爷”称之。
逮清乾隆世盈嫡孙(其次子喜宗子)聪王公,荣受皇清诰封登左侍郎之爵位,为官清正。
隆兴一地,距郡治远窎,聪分理乡曲诉讼,因决断审慎公正,民赠“万民伞”拥戴称颂。
其积德累仁,关心民瘼,赈济空乏,泽被百里。
“王老爷”之称,世传不替。
甘陕比邻因有“天不下雨有菩萨爷,没饭吃了有王老爷”之俚语传闻远近。
");
exit(0);
}
elseif(strcmp(xm,"李")==0)//通过比较函数进行查找
{
printf("李氏介绍\n\n");
printf("李姓是世界上人口最多的姓氏,2011年最新百家姓排名,李姓为中国第一大姓。
为区别其他同音姓,常说“十八子李”或“木子李”。
在台湾、朝鲜和越南,李姓也是常见姓氏,在朝鲜李姓为第二大姓。
据统计,李姓人口总数约为1亿,其中中国大陆有李姓9207.4万人,占中国人口总数的7.19%。
河南省是中国李姓的第一大省。
\n\n");
exit(0);
}
else{//输入不规则则错误
printf("没有你要查询的信息!
\n");
exit(0);
}
}
四、调试与分析
1、主菜单
将源程序编译运行后会看到如下所示的主界面,输入2后按回车,根据提示输入信息,如图5所示:
图5家谱管理系统的主界面
2、增加信息
输入数字a/A,按回车,并根据提示输入姓名,性别等,出现如图6的界面:
图6插入家谱信息
3、查找某人并相应输出
输入数字b/B,按回车,并根据提示输入选项查看信息,出现如图7的界面:
图7查询家谱成员信息的界面
4、输出整个家谱信息
输入数字c/C,按回车,并根据提示输入选项查看信息,出现如图8的界面:
图8家谱信息的界面
5、姓氏查询
输入数字d/D,按回车,输入要查询的姓氏,出现如图9的界面:
图9姓氏查询的界面
五、设计总结
1、完成情况
进程
第1次课
第2次课
第3次课
第4次课
负责人
项目计划
丁雷
总体方案
全体成员
编写代码
竹宇琪
实验报告
雷金霞
视频制作
丁雷
整体完善
全体成员
答辩
全体成员
2、心得体会
——马蒋斌
本次项目我拍了许多照片,找到了许多的素材,对项目组员的工作流程进行了安排,也对组员对这个项目进行分析,编写代码,总结修改的整个过程进了记录和分析。
这次我主要用到的设备有摄像机、闪光灯、抓拍控制系统、图像处理机。
我也分析了很多程序解决方法最后就是对视频的制作和技术的分析拉,做视频是件很费时间很飞脑力的事情,做一段好的视频需要很多工作,需要音乐,需要合适的背景,需要很好的过度,更需要一个完美的解说。
不过这都不是能难的倒我的越难我就越有动力,幸好我把视频做好了,没有辜负大家对我的期望。
大家都说我做的很好,我非常的开心。
对我们90后小组想当的看好和赞赏!
——竹宇琪
在这个项目里我做了对家谱管理的系统分析。
刚开始我们从网上下载好了我们需要的资料,通过取其精华去其糟粕,本来是想把系统整合的很完美,可是由于我c语言基础不太扎实,未能完成。
也向同学请教,只能做到现在这个地步。
通过这次课程设计,我对这个树的操作有了深刻的了解,对C语言也有了更深刻的了解。
但我们需要更深刻地思考其实质是什么。
了解实验所需的基本程序,并用所学知识实现它。
——雷金霞
这次的项目我的主要任务是撰写实验报告,刚开始的几天我开始写项目描述,接着我也卡了下代码,关于树我懂的不多,看了以前的书,也是浑浑噩噩的。
通过之前下载好的资料,我也试着去整合一些好的地方,不过未能完成。
通过本次的项目我意识到自己知识的匮乏。
在之后的日子里我会好好的补习知识。
希望在下次的项目中可以完成的好点。
——丁雷
本次实验感触颇多,本次我的主要任务就是制作视频。
我自学了一个视频后期处理软件,利用了AE制作了片头,用flash做了片尾,然后在会声会影里进行组合,加特效,这又是一次进步,在下一次的项目中,我能够对刚上手的软件熟练的应用,这样制做出来的视频效果会更好。
另外我还学习了树的相关操作和存储