哥们你太有才啦!!!!
谢谢!!!清空以后搞定了!!!
#include<iostream.h>
#include<memory.h> //提供内存操作相关函数
//-------------------------基类person
class person
{
unsigned num; //编号
char name[10]; //名字
void test(); //姓名测试
public:
void set();
void print()const
{
cout<<"编号:"<<num<<endl;
cout<<"姓名:"<<name<<endl;
}
};
void person::set()
{
cout<<"编号:"; cin>>num;
cout<<"姓名:"; cin>>name;
test();
}
void person::test() //不允许输入阿拉伯数字
{
for(int i=0;i<10 && name[i]!='\0';i++)
if(name[i]>='0'&&name[i]<='9')
{
memset(name,0,10); //清空数组
cout<<"姓名输入有误,请重新输入!"<<endl;
cout<<"姓名:"; cin>>name;
test(); //直接递归
}
}
//-------------------------派生类student
class student:public person
{
unsigned classnum; //班级号
unsigned achievement; //成绩
void test(); //成绩测试
public:
void set();
void print()const;
};
void student::set()
{
cout<<"输入一个学生的数据:"<<endl;
person::set();
cout<<"班号:"; cin>>classnum;
cout<<"成绩:"; cin>>achievement;
test();
}
void student::print()const
{
cout<<"显示一个学生的数据:"<<endl;
person::print();
cout<<"班号:"<<classnum<<endl;
cout<<"成绩:"<<achievement<<endl;
}
void student::test()
{
if(achievement<0||achievement>100)
{
cout<<"成绩输入有误!"<<endl;
cout<<"成绩:"; cin>>achievement;
test();
}
}
//-----------------------派生类teacher
class teacher:public person
{
char ZC[50]; //职称
char apartment[50]; //部门
void Ztest(); //职称测试
void atest(); //部门测试
public:
void set();
void print()const;
};
void teacher::set()
{
cout<<"输入一个教师的数据:"<<endl;
person::set();
cout<<"职称:"; cin>>ZC;
Ztest();
cout<<"部门:"; cin>>apartment;
atest();
}
void teacher::print()const
{
cout<<"显示一个教师的数据:"<<endl;
person::print();
cout<<"职称:"<<ZC<<endl;
cout<<"部门:"<<apartment<<endl;
}
void teacher::Ztest() //不允许输入阿拉伯数字
{
for(int i=0;i<50 && ZC[i]!='\0';i++)
if(ZC[i]>='0' && ZC[i]<='9')
{
memset(ZC,0,50); //清空
cout<<"职称输入有误,请重新输入!"<<endl;
cout<<"职称:"; cin>>ZC;
Ztest();
}
}
void teacher::atest() //不允许输入阿拉伯数字
{
for(int i=0;i<50 && apartment[i]!='\0';i++)
if(apartment[i]>='0' && apartment[i]<='9')
{
memset(apartment,0,50); //清空
cout<<"部门输入有误,请重新输入!"<<endl;
cout<<"部门:"; cin>>apartment;
atest();
}
}
红色字是新增加的代码~~
谢谢!!
如果有什么意见或是好的设计方案请狠狠地指教