一、问题描述。
计算学生的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;
}
标签:count,name,int,float,学生,cpp,score,CPP,成绩 From: https://www.cnblogs.com/luoqingci/p/17386526.html