📄 main.cpp
字号:
#include<fstream.h>
#include<assert.h>
#include <string.h>
#define N 50
class CTeacher;
class CStudent
{
public:
CStudent(char *name="未知",char *number="00000",double mark=0.0)
{
int len=strlen(name);
m_name=new char[len+1];
strcpy(m_name,name);
strcpy(m_number,number);
m_mark=mark;
}
~CStudent()
{
delete []m_name;
}
void showMsg()
{
cout <<m_name<<"\t"<<m_number<<"\t"<<m_mark<<endl;
}
protected:
//**1**
};
class CTeacher
{
public:
CTeacher(){};
~CTeacher(){
for(int i=0;i<m_count;i++)
{
delete m_pStu[i];
m_pStu[i]=NULL;
}
};
int Best(CStudent *pS[]);
void Input();
void Display();
void Sort();
protected:
CStudent *m_pStu[N];
double m_average;
int m_count;
};
void CTeacher::Input()
{
ifstream in("records.txt");
assert(in);
char name[20];
char number[5];
double mark=0;
m_count=0;
cout <<"姓 名\t"<<"学 号\t"<<"成 绩\t"<<endl;
for( int i=0; !in.eof(); i++){
in>>name;
in>>number;
in>>mark;
m_count++;
m_pStu[i]=new CStudent(name,number,mark);
cout <<name<<"\t"<<number<<"\t"<<mark<<endl;
}
}
void CTeacher::Sort()
{
//**2**
}
void CTeacher::Display()
{
cout <<"姓 名\t"<<"学 号\t"<<"成 绩\t"<<endl;
for(int j=0; j<m_count; j++)
{
m_pStu[j]->showMsg();
}
}
int CTeacher::Best(CStudent *pS[])
{
//**3**
}
void main()
{
CTeacher Teacher;
CStudent *pStudent[N];
Teacher.Input();
Teacher.Sort();
Teacher.Display();
cout<<"查询成绩最高的学生信息:"<<endl;
int n=Teacher.Best(pStudent);
while(n--)
{
pStudent[n]->showMsg();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -