📄 student.cpp
字号:
#include <iostream>
#include <string>
using namespace std;
using std::string;
class Score
{
public:
Score() {}
~Score() {}
scoreinput();
Score(Score &w);
float getmscore();
float getescore();
float getcscore();
private:
float mscore,escore,cscore;
};
Score::Score(Score &w)
{
mscore=w.mscore;
escore=w.escore;
cscore=w.cscore;
}
Score::scoreinput()
{
cout<<"请输入数学的学分:";
cin>>mscore;
cout<<"请输入英语的学分:";
cin>>escore;
cout<<"请输入计算机的学分:";
cin>>cscore;
}
float Score::getmscore()
{
return(mscore);
}
float Score::getescore()
{
return(escore);
}
float Score::getcscore()
{
return(cscore);
}
class Student
{
public:
void input();
~Student() {}
void show();
void getpoint();
void getspoint(Score &rd);
float getscorepoint();
private:
string m_name,m_id;
float maths,english,computer;
float scorepoint,mscorepoint,escorepoint,cscorepoint;
Score s;
};
void Student::input()
{
cout<<"请输入姓名:";
cin>>m_name;
cout<<"请输入学号:";
cin>>m_id;
cout<<"请输入所学课程及成绩:"<<endl;
label:
cout<<"请输入数学成绩:";
cin>>maths;
cout<<"请输入英语成绩:";
cin>>english;
cout<<"请输入计算机成绩:";
cin>>computer;
if((maths>=0&&maths<=100)&&(english>=0||english<=100)&&(computer>=0&&computer<=100))
return;
else
{
cout<<"INPUT ERROR!INPUT ERROR!";
goto label;
}
}
void Student::show()
{
cout<<"姓名:"<<m_name<<endl;
cout<<"学号:"<<m_id<<endl;
cout<<"数 学:"<<maths<<" | "<<"绩点:"<<mscorepoint<<endl;;
cout<<"英 语:"<<english<<" | "<<"绩点:"<<escorepoint<<endl;
cout<<"计算机:"<<computer<<" | "<<"绩点:"<<cscorepoint<<endl;
cout<<"平均绩点:"<<scorepoint<<endl;
}
void Student::getpoint()
{
if (maths>=60&&maths<=64.5) {mscorepoint=1.0;goto next1;}
else if (maths>=65&&maths<=69.5) {mscorepoint=1.5;goto next1;}
else if (maths>=70&&maths<=74.5) {mscorepoint=2.0;goto next1;}
else if (maths>=75&&maths<=79.5) {mscorepoint=2.5;goto next1;}
else if (maths>=80&&maths<=84.5) {mscorepoint=3.0;goto next1;}
else if (maths>=85&&maths<=89.5) {mscorepoint=3.5;goto next1;}
else if (maths>=90&&maths<=94.5) {mscorepoint=4.0;goto next1;}
else if (maths>=95&&maths<=99.5) {mscorepoint=4.5;goto next1;}
else if (maths==100) {mscorepoint=5;goto next1;}
else {mscorepoint=0;goto next1;}
next1:
if((english>=60)&&(english<=64.5)) {escorepoint=1.0;goto next2;}
else if((english>=65)&&(english<=69.5)) {escorepoint=1.5;goto next2;}
else if((english>=70)&&(english<=74.5)) {escorepoint=2.0;goto next2;}
else if((english>=75)&&(english<=79.5)) {escorepoint=2.5;goto next2;}
else if((english>=80)&&(english<=84.5)) {escorepoint=3.0;goto next2;}
else if((english>=85)&&(english<=89.5)) {escorepoint=3.5;goto next2;}
else if((english>=90)&&(english<=94.5)) {escorepoint=4.0;goto next2;}
else if((english>=95)&&(english<=99.5)) {escorepoint=4.5;goto next2;}
else if(english==100) {escorepoint=5;goto next2;}
else {escorepoint=0;goto next2;}
next2:
if(computer>=60&&computer<=64.5) {cscorepoint=1.0;return;}
else if(computer>=65&&computer<=69.5) {cscorepoint=1.5;return;}
else if(computer>=70&&computer<=74.5) {cscorepoint=2.0;return;}
else if(computer>=75&&computer<=79.5) {cscorepoint=2.5;return;}
else if(computer>=80&&computer<=84.5) {cscorepoint=3.0;return;}
else if(computer>=85&&computer<=89.5) {cscorepoint=3.5;return;}
else if(computer>=90&&computer<=94.5) {cscorepoint=4.0;return;}
else if(computer>=95&&computer<=99.5) {cscorepoint=4.5;return;}
else if(computer==100.0) {cscorepoint=5;return;}
else {cscorepoint=0;return;}
}
void Student::getspoint(Score &rd)
{
scorepoint=((mscorepoint*(rd.getmscore())+escorepoint*(rd.getescore())+cscorepoint*(rd.getcscore()))/((rd.getmscore())+(rd.getescore())+(rd.getcscore())));
}
float Student::getscorepoint()
{
return(scorepoint);
}
void sort(Student *L[],int m)
{
cout<<"排序开始,结果如下:";
float q,p;
int s,t;
Student *tmp;
for(s=0;s<=m-1;s++)
for(t=0;t<=m-2;t++)
{
q=L[t]->getscorepoint();
p=L[t+1]->getscorepoint();
if(q<p)
{tmp=L[t];L[t]=L[t+1];L[t+1]=tmp;}
}
for(t=0;t<m;t++)
L[t]->show();
}
void main()
{
Score s1;
s1.scoreinput();
int i,j,n,v=0;
Student *A[500];
n=500;
char k;
for(j=0;j<n;j++)
{
A[j]=new Student;
A[j]->input();
A[j]->getpoint();
A[j]->getspoint(s1);
A[j]->show();
v++;
cout<<"是否要继续输入:(Yes or No)";
cin>>k;
if(k=='y'||k=='Y') goto next;
else goto label;
next:
cout<<"继续输入!"<<endl;
}
label:
cout<<endl;
sort(A,v);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -