📄 main.cpp
字号:
#include<iostream>
#include<conio.h>//getch()
#include"Family.h"
using namespace std;
int memberNum;//全局变量,显示家谱中的成员个数
int isInt(char s[])//判断字符数组s是否可以转化为一个非负整数,如果可以则返回这个整数,不是则返回-1
{
int num=0;
int length=strlen(s);
for(int i=0;i<length;i++)
if(s[i]<='9'&&s[i]>='0')
{
num=s[i]-'0'+num*10;
}
else return -1;
return num;
}
int main()
{
vector<Person>v;
Family fa;
while(1)
{
bool flag=true;
fa.menu1();
char choice;
while(flag)
{
fa.menu1();
choice=getch();
cout<<choice<<endl;
switch(choice)
{
case '1':fa.buildFamily(v);flag=false;break;
case '2': if(fa.readFamily(v)) flag=false;//如果文件读入成功则跳出
else {cout<<"按任意键继续"<<endl;getch();}//否则继续
break;
case '3':if(fa.writeFamily(v)) exit(1);//如果写入文件成功则跳出
else {cout<<"按任意键继续"<<endl;getch();}//否则继续
break;
case '0':exit(1);
default:cout<<"输入错误!!!按任意键继续"<<endl;getch();break;
}
}
int t=1;//控制返回上一层
while(t!=9)
{
flag=true;
fa.menu2();
while(flag)
{
fa.menu2();
choice=getch();
cout<<choice<<endl;
switch(choice)
{
case '1':fa.outputgeneration(v);flag=false;break;//显示第n 代所有人的信息
case '2':fa.outputbyName(v);flag=false;break;//按照姓名查询,输出成员信息
case '3':fa.outputbyBirth(v);flag=false;break;//按照出生日期查询成员名单
case '4':fa.relationship(v);flag=false;break;//输入两人姓名,确定其关系
case '5':fa.addchild(v);flag=false;break;//某成员添加孩子
case '6':fa.deletemember(v);flag=false;break;//删除某成员(若其还有后代,则一并删除)
case '7':fa.updatemember(v);flag=false;break;//修改某成员信息
case '8':fa.birthsort(v);flag=false;break;//按出生日期对家谱中所有人排序
case '9':t=9;flag=false;break;//返回上层
case '0':fa.writeFamily(v);exit(1);//退出并保存
default:cout<<"输入错误!!!按任意键继续"<<endl;getch();break;
}
}
cout<<"按任意键继续"<<endl;getch();
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -