数据结构大作业之家谱管理系统 联系客服

发布时间 : 星期一 文章数据结构大作业之家谱管理系统更新完毕开始阅读4850fd3bf46527d3250ce00e

C++实现的数据结构大作业之家谱管理系统 欢迎界面:

主菜单:

其他一些运行结果不在一一列举,一面篇幅过长。

这个家谱管理系统,支持键盘操作,所有的操作都可以用键盘完成,如选择功能、退出等。代码的实现使用的是c++11标准,与旧标准或有不同。

类的头文件:

#include #include 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();//用于接收键盘的输入

类的函数及相关操作函数的实现