可以锻炼的东西!!谢谢高手出手帮忙!!
#include<iostream.h>#include<string.h>
#include<conio.h>//用getch();
#include<windows.h>//用system();
const L=20;
//*****************CPerson 类*********************
class Cperson{
private:
char * Name ; //学生姓名
char * IDNo ; //身份证号码
char * Addr ; //所住地址
char * Tel; //电话号码
public:
void input1() //输入学生姓名,身份证号码的功能
{
char n[L],i[L];
cout<<"请输入学生的姓名:";
cin>>n;
Name=new char[strlen(n)+1];
strcpy(Name,n);
cout<<"请输入学生的身份证号码:";
cin>>i;
IDNo=new char[strlen(i)+1];
strcpy(IDNo,i);
}
void input2() //输入地址与电话号码的功能
{
char a[L],t[L];
cout<<"请输入学生的住址:";
cin>>a;
Addr=new char[strlen(a)+1];
strcpy(Addr,a);
cout<<"请输入学生的电话号码:";
cin>>t;
Tel=new char[strlen(t)+1];
strcpy(Tel,t);
}
void output1() //输出姓名、身份证号码、地址、电话号码的功能
{
cout<<"学生的姓名:"<<Name<<endl;
cout<<"学生的身份证号码:"<<IDNo<<endl;
cout<<"学生的住址:"<<Addr<<endl;
cout<<"学生的电话号码:"<<Tel<<endl;
}
Cperson::~Cperson() //析构函数 释放空间的作用
{
delete Addr;
delete IDNo;
delete Name;
delete Tel;
}
};
//################## 类 Cstudent定义######################
class Cstudent:public Cperson{ //公有继承基类 Cperson 类
private:
char *StudNo; //学生证号码
float Math; //数学成绩
float English; //英语成绩
float Average; //平均成绩
public:
Cstudent() //构造函数赋值作用
{
Average=English=Math=0.0;
}
void xinxishuru() //信息输入
{
Cperson::input1(); //调用基类的input1函数
char q[L];
cout<<"请输入学生证号:";
cin>>q;
StudNo=new char[strlen(q)+1];
strcpy(StudNo,q);
}
void cjishuru() //输入成绩函数
{
Cperson::input2(); //调用基类的input2函数
cout<<"请输入数学成绩:";
cin>>Math;
cout<<"请输入英语成绩:";
cin>>English;
}
void output2() //输出全部信息函数
{
Average=(Math+English)/2;
Cperson::output1(); //调用基类output1函数
cout<<"学生证号:"<<StudNo<<endl;
cout<<"数学成绩:"<<Math<<endl;
cout<<"英语成绩:"<<English<<endl;
cout<<"平均成绩是:"<<Average<<endl;
cout<<endl;
}
~Cstudent() //类Cstudent的析构函数
{
delete StudNo;
}
};
//******************* 类Cclass的定义 *************
class Cclass{
private:
char *ClassName;
Cstudent *p[50];
int c;
public:
Cclass(){}
void men() //菜单
{
cout<<" 学 生 信 息 管 理 系 统 "<<endl;
cout<<" 1.创建班级 "<<endl;
cout<<" 2.添加学生信息 "<<endl;
cout<<" 3.修改学生信息 "<<endl;
cout<<" 4.删除学生信息 "<<endl;
cout<<" 5.打印学生信息 "<<endl;
cout<<" 6.退出 "<<endl;
cout<<"\n\t\t\n\t\t请选择:";
}
void addclass() //创建班级
{
char x[L];
for(int i=0;i<50;i++)
p[i]=NULL;
cout<<"请输入班级名称:";
cin>>x;
ClassName=new char[strlen(x)+1];
strcpy(ClassName,x);
cout<<"请输入班级学生数:";
cin>>c;
}
void input() //输入一个学生信息
{
for(int i=0;i<c;i++)
{
p[i]=new Cstudent;
cout<<"第"<<(i+1)<<"个学生信息"<<endl;
p[i]->xinxishuru();
p[i]->cjishuru();
}
}
void xg() //修改
{
int a;
cout<<"请输入要修改的学生号:";
cin>>a;
if((a==0&&a>0)||(a==c&&a<c))
cout<<"请重新输入第"<<(a+1)<<"个学生信息"<<endl;
p[a]->cjishuru();
}
void sc() //删除
{
int b;
cout<<"请输入要删除的学生号:";
cin>>b;
if((b==0&&b>0)||(b==c&&b<c))
delete p[b];
for(int i=b;i<c;i++)
p[b]=p[b+1];
p[c-1]=NULL;
}
void display() //打印
{
cout<<endl;
cout<<" 班级学生信息 "<<endl;
cout<<"班级名称"<<ClassName<<endl;
for(int i=0;i<c;i++)
{if(p[i]!=NULL)
p[i]->output2();}
}
~Cclass()
{
delete ClassName;
}
};
//******************主函数***********************
main()
{
int i;
bool quit=false;
Cclass Cc;
system("color 2F"); //背景色
while(!quit)
{
system("cls"); //清屏
Cc.men();
cin>>i;
switch(i)
{
case 1:Cc.addclass();break;
case 2:Cc.input();break;
case 3:Cc.xg();getch();break;
case 4:Cc.sc();break;
case 5:Cc.display();getch();break;
case 6:quit=true;break;
default:cout<<"选择错误!!!\n";
}
}
return 0;
}
帮我改下 可以录取多个班级。