网站大量收购独家精品文档,联系QQ:2885784924

数据结构大作业之家谱管理系统方案.doc

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. . . C++实现的数据结构大作业之家谱管理系统 欢迎界面: 主菜单: 其他一些运行结果不在一一列举,一面篇幅过长。 这个家谱管理系统,支持键盘操作,所有的操作都可以用键盘完成,如选择功能、退出等。代码的实现使用的是c++11标准,与旧标准或有不同。 类的头文件: #includeiostream #includestring using std::string; using std::ostream; using std::istream; struct BirthDay{ //生日结构变量 int year=0; int month=0; int day=0; }; class Member{ friend class FamilySystem; friend ostream operator(ostream out, const Member m);//输出成员信息到控制台 friend istream operator(istream in, Member m);//从文件中读入成员信息 public: Member()=default;//使用默认合成构造函数 void setE();//通过控制台输入给成员赋值 ~Member() = default;//使用默认合成析构函数 Member* pson=nullptr;//指向儿子的指针 Member* pbro = nullptr;//指向兄弟的指针 private: //成员的各种数据 string name=未知; string birthPlace = 未知; BirthDay birthDay; string sex = 未知; float height=0; int age=0; string education = 未知; string job = 未知; string father = 未知; }; class FamilySystem{ public: FamilySystem() = default;//使用默认合成构造函数 ~FamilySystem(){ delete root; } bool fileInit();//从文件中读取数据 int menu();//显示菜单(功能) bool addMem();//增加成员 bool deleteMem();//删除成员 bool demandMem();//查询 bool demandAve();//查询家庭整体情况 bool modifyMem();//修改成员 bool showFamily();//展示整个家谱 bool saveFile();//保存信息到文件中,将使用两个文件,一个保存成员信息,一个保存家谱整体信息 Member* root = nullptr;//家谱数结构的根节点指针? private: int total = 0;//总人数 float aveAge=0;//平均年龄 float aveHeight=0;//平均身高 float aveMember=0;//家庭平均人数 float ratio=0;//男女比例 void calculate();//计算平均值等 Member *seek(string);//查找是否存在成员 void display(Member*, int);//先序遍历树,用于显示所有成员 }; extern string gets();//用于接收键盘的输入 类的函数及相关操作函数的实现 #includeiomanip #includevector #includefstream #includesstream #includeconio.h #includeSystemClass.h using std::cin; using std::cout; using std::endl; using std::setw; using std::vector; using std::ios; using std::ifstream; using std::ofstream; using std::istringstream; string gets(){//从控制台获取字符等信息 string s; while (int n = _getch()){ if (n == 27){ throw 27; break; } else if (n == 13){ cout endl; break; } else if (n == 8){ s.pop_back(); cou

文档评论(0)

smdh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档