好文档 - 专业文书写作范文服务资料分享网站

家谱管理系统 - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

7、成员改名 8、遍历家谱 9、 查询孩子信息 10、 删除成员 三、结论(应当准确、完整、明确精练;可以是心得体会,也可以在结论或讨论中提出建议、设想、尚待解决问题等。) 前期主要是准备阶段,运用哪些技术,中期实践阶段,通过几天的上机编写代码,然后完成,后期完善阶段,对一些难点和重点再细化,和做一些数据输入时的异常处理。经过分析,发现这个题目需要用到树,而树我又没有学好,所以写的时候非常吃力。最一开始,我用的是二叉树来存储,后来写到一半发现写不下去了,用递创建函数始终不合适,最后不得不放弃。于是我在网上开始查找资料,不过查到的资料大多于本次实验不相符,还有一些也是看不懂。只有一个,我发现他是用的多叉树,看了一会发现也能理解。于是打算用多叉树来储存。可是又不知道该如何写起,但还是在网上查了多叉树的递归创建方法就开始写了。 理论与实际相结合的设计,锻炼了我综合运用所学的基础知识,解决实际问题的能力,同时也提高我查阅文献资料、对程序整体的把握等其他能力水平。而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,我的各方面经验都得到了极大的丰富。 附录 全部代码 Familytree.h #ifndef FAMILYTREE_H #define FAMILYTREE_H #include #include #include #include #include #include using namespace std; struct BirthDay { int year; int month; int day; friend istream& operator>>(istream &is,BirthDay &b); friend ostream& operator<<(ostream &os,const BirthDay &b); }; struct Information { string name; string birthPlace; BirthDay birthDay; string sex; string education; string job; string father; string spouse; char life; }; struct Node { Information data; Node* child; Node* brother; }; class FamilyTree { private: Node* root; Node* Creat( ); void Release(Node *root); static int Numberofpeople; static int LifePeopele; public: FamilyTree(); ~FamilyTree(); void SetNode(Node *root); Node* Getroot(); void PreOrder(Node *root); void InOrder(Node *root); void PostOrder(Node *root); int Generation(Node *root); int NumberOfPeople( ); int LifeNum( ); void PrintMessage(Node *root ); int Message(Node *root,string Name); Node* PreFindFather(Node *root,string FatherName); Node* PreFindBrother(Node *root,string FatherName); void AddNewPeople(Node *root,string FatherName,string NAme); int DeletePeople(Node *root,string FatherName,string Deletepeople); int SetNewName(Node *root,string NAme,string NewName); int FindChild(Node *root,string NAme); void SaveToFile(Node *root); void FileToFamilyTree( Node *root) ; }; #endif Familytree.cpp #include \int FamilyTree::Numberofpeople=0; int FamilyTree::LifePeopele=0; //生日结构体变量输入输出友元重载 istream& operator>>(istream &is,BirthDay &b) { is>>b.year>>b.month>>b.day; return is; } ostream& operator<<(ostream &os,const BirthDay &b) { os<root=Creat(); } FamilyTree::~FamilyTree() // 析构函数,释放链表中各结点的存储空间 { Release(root); } Node* FamilyTree::Getroot() //获取根结点 { return root; } Node* FamilyTree::Creat()// 构造函数调用 { Node *root; string ch; cout<<\请问是否创建(是: “y”, 否: “#)”:\cin>>ch; //输入名字 if(ch!=\异常处理 { if(ch!=\if(ch!=\{ int t=1; do { cout<<\输入不明确,请重新输入! !\cout<<\请问是否创建(是: “y”, 否: “#)”:\cin>>ch; if((ch==\

家谱管理系统 - 图文 

7、成员改名8、遍历家谱9、查询孩子信息10、删除成员三、结论(应当准确、完整、明确精练;可以是心得体会,也可以在结论或讨论中提出建议、设想、尚待解决问题等。)前期主要是准备阶段,运用哪些技术,中期实践阶段,通过几天的上机编写代码,然后完成,后期完善阶段,对一些难点和重点再细化,和做一些数据输入时的异常处理。经过分析,发现这个题目
推荐度:
点击下载文档文档为doc格式
5b0yc1zlio44p5c1cp2i5zpak1cssx00d8p
领取福利

微信扫码领取福利

微信扫码分享