#include <iostream.h>
#include <string.h>class Student
{
public:
char m_strName[10];
char m_strNum[20];
char m_strDept[20];
char m_strAddr[20];
int  m_nLessonNum;
char m_strProfName[20]; Student(){}
Student(char *name,char *num,char *dept,char *addr,int lessonnum,char *profname);
virtual void ShowMe(int i)
{

cout<<i<<"|"<<m_strName<<"|"<<m_strNum<<"|"<<m_strDept<<"|"<<m_strAddr<<"|"<<m_nLessonNum<<"|"<<m_strProfName<<endl; }
};
Student::Student(char *name,char *num,char *dept,char *addr,int lessonnum,char *profname)
{
strcpy(m_strName,name);
strcpy(m_strNum,num);
strcpy(m_strDept,dept);
strcpy(m_strAddr,addr);
m_nLessonNum=lessonnum;
strcpy(m_strProfName,profname);
}
class Student1 : public Student
{
public:
char m_strType[20];
Student1(char *name,char *num,char *dept,char *addr,int lessonnum,char *profname)
:Student(name,num,dept,addr,lessonnum,profname)
{strcpy(m_strType,"在校生");}
virtual void ShowMe(int i)
{

cout<<i<<"|"<<m_strName<<"|"<<m_strNum<<"|"<<m_strDept<<"|"<<m_strAddr<<"|"<<m_nLessonNum<<"|"<<m_strProfName<<"|"<<m_strType<<endl; }
};
class Student2 : public Student
{
public:
char m_strType[20];
Student2(char *name,char *num,char *dept,char *addr,int lessonnum,char *profname)
:Student(name,num,dept,addr,lessonnum,profname)
{strcpy(m_strType,"函授生");}
virtual void ShowMe(int i)
{

cout<<i<<"|"<<m_strName<<"|"<<m_strNum<<"|"<<m_strDept<<"|"<<m_strAddr<<"|"<<m_nLessonNum<<"|"<<m_strProfName<<"|"<<m_strType<<endl; }
};
void main()
{

int count=0;
Student1 stu1[50];
Student2 stu2[50];
int i,j,lessonnum;
char name[10],num[20],dept[20],addr[20],profname[20];
bool bstutype;

for(;;)
{
cout<<"====================================="<<endl;
cout<<"= 1.显示所有学生信息                ="<<endl;
cout<<"= 2.增加一条学生记录                ="<<endl;
cout<<"= 3.删除一条学生记录                ="<<endl;
cout<<"= 4.退出程序                        ="<<endl;
cout<<"====================================="<<endl;
cout<<"请输入选项编号(1-4):"<<endl;
cin>>i;

switch(i)
{
case 1:
{
cout<<endl<<"====================================="<<endl;
cout<<"序号"<<"|姓名"<<"|学号"<<"|年级"<<"|住址"<<"|课程数目"<<"|专业"<<endl;
for(i=0;i<count;i++)
{
if(bstutype)
{
stu1[i].ShowMe(i);
}
}
for(i=0;i<count;i++)
{
if(!bstutype)
{
stu2[i].ShowMe(i);
}
}
cout<<endl<<"====================================="<<endl;
break;
}
case 2:
{
cout<<"请选这输入学生类型:1.在校生 2.函授生"<<endl;
cin>>i;
if(i=1){bstutype=true;}
if(i=2){bstutype=false;}
if(bstutype)
{
if(count<50)
{
i=count++;
cout<<"请依次输入学生姓名,学号,年级,住址,所修课程的数目,就读的专业。"<<endl;
cin>>name>>num>>dept>>addr>>lessonnum>>profname;
stu1[i]=Student(name,num,dept,addr,lessonnum,profname);
}
else
{
cout<<"#>存储空间已满!"<<endl;
}
}
else
{
if(count<50)
{
i=count++;
cout<<"请依次输入学生姓名,学号,年级,住址,所修课程的数目,就读的专业。"<<endl;
cin>>name>>num>>dept>>addr>>lessonnum>>profname;
stu2[i]=Student(name,num,dept,addr,lessonnum,profname);
}
else
{
cout<<"#>存储空间已满!"<<endl;
}
}
break;
}
case 3:
{
cout<<"请选这输入学生类型:1.在校生 2.函授生"<<endl;
cin>>i;
if(i=1){bstutype=true;}
if(i=2){bstutype=false;}
if(bstutype)
{
cout<<"输入要删除的学生序号:"<<endl;
cin>>i;
if(i<=count&&i>0)
{
for(j=i;j<count;j++){stu1[j-1]=stu1[j];}
count--;
cout<<"#>记录已删除!^_^"<<endl;
}
else
{
cout<<"#>输入错误!"<<endl;
}
}
else
{
cout<<"输入要删除的学生序号:"<<endl;
cin>>i;
if(i<=count&&i>0)
{
for(j=i;j<count;j++){stu2[j-1]=stu2[j];}
count--;
cout<<"#>记录已删除!^_^"<<endl;
}
else
{
cout<<"#>输入错误!"<<endl;
}
}
break;
}
default:
return;
}
}
}
/*代码如上,不知道是那里错了,请指点!*/