⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 student.cpp

📁 学生成绩管理系统 vc++做的
💻 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 + -