学生CPP成绩计算

发布时间 2023-05-09 22:33:16作者: liuxuechao

 

一、问题描述。

       计算学生的CPP成绩

二、设计思路。

定义下面的人员基类框架:

class Person
{

protected:

     string name;
     int age;
 

public:

     Person();      
     Person (string p_name, int p_age);
     void display () {cout<<name<<“:”<<age<<endl;}
 

};

建立一个派生类student,增加以下成员数据:

int ID;//学号
float cpp_score;//cpp上机成绩
float cpp_count;//cpp上机考勤
float cpp_grade;//cpp总评成绩
     //总评成绩计算规则:cpp_grade = cpp_score * 0.9 + cpp_count * 2;
 

增加以下成员函数:

student类的无参构造函数

student类的参数化构造函数//注意cpp_grade为上机成绩和考勤的计算结果

void print()//输出当前student的信息

三、程序流程图

 

四、代码实现

#include<string>
#include<iomanip>
#include <iostream>
using namespace std;
class Person {
protected:

string name;
int age;
public:

Person(){
};
Person (string p_name, int p_age){
name=p_name;
age=p_age;
};
void display () {cout<<name<<":"<<age<<endl;}
};
class Student:public Person{
int ID;//学号
float cpp_score;
float cpp_count;
float cpp_grade;

public :
Student(){}
Student(string Name,int id,float a,float b){
name=Name;
ID=id;
cpp_score=a;
cpp_count=b; }
void print(){
cpp_grade=cpp_grade = cpp_score * 0.9 + cpp_count * 2;
cout<<ID<<" "<<name<<" "<<setiosflags(ios::fixed)<<setprecision(1)<<cpp_grade<<endl;

}

};
int main()
{ int ID;
string name;int age;
float cpp_score;
float cpp_count;
cin >> name ;
while(name!="0"){
cin >> ID >>age>> cpp_score >>cpp_count;
Student a(name,ID,cpp_score,cpp_count);
a.print();
cin >> name ;
}
return 0;
}