完成“学生cpp成绩计算”之后,修改Person和Student类,各自增加两个无参构造函数。

仍以Person类为基础,建立一个派生类Teacher,增加以下成员数据:

   int ID;//教师工号
Student stu[100];//学生数组
int count;//学生数目,最多不超过100
float cpp_average;//班级cpp平均分

增加以下成员函数:

  Teacher类的参数化构造函数
void Add (Student & stu1)//在学生数组中增加一个学生记录
void average();//计算当前班级cpp平均成绩cpp_average
void print()//输出当前班级学生的信息
//其中学生记录中cpp_score和cpp_grade输出保留一位小数
//当前班级cpp_average输出保留一位小数;
//输出格式如下:
//第一行:教师工号 教师姓名 班级学生数 cpp_average
//第二行至第count+1行每一行输出一个学生的信息,每一行格式
// 学生学号 学生姓名 cpp_grade
//cpp_grade保留一位小数

生成上述类并编写主函数,根据输入的教师基本信息,建立一个教师对象,根据输入的每一条学生基本信息,建立一个学生对象,计算学生cpp总评成绩并且加入学生数组中,由教师对象计算班级cpp平均成绩,并输出班级学生的全部信息。

输入格式: 测试输入包含一个测试用例,该测试用例的第一行输入教师的基本信息(教师姓名 教师工号 年龄),第二行开始输入班级内学生信息,每个学生基本信息占一行(学生姓名 学号 年龄 cpp成绩 cpp考勤),最多不超过100行,当读入0时输入结束。

输入样例:

Mike 901 30

Bob 10001 18 75.9 4

Anna 10003 19 87.0 5

0

输出样例:

901 Michale 2 82.3

10001 Bob 76.3

10003 Anna 88.3

#include<iostream>
#include<string>
#include<iomanip>
using namespace std; class Person {
protected:
string name;//姓名
int age;//年龄
public:
Person(){};
Person (string a, int b) : name(a), age (b){};
void display () {cout<<name<<":"<<age<<endl;}
};
//学生类
class Student : public Person{
int ID;//学号
float cpp_score;//cpp上机成绩
float cpp_count;//cpp上机考勤
float cpp_grade;//cpp总评成绩
public:
void operator = (Student &a){
name = a.name;
age = a.age;
ID = a.ID;
cpp_score = a.cpp_score;
cpp_count = a.cpp_count;
cpp_grade = a.cpp_grade;
//cout<<name<<ID<<cpp_grade<<"hello ";
}
float getGrade(){return cpp_grade;}
Student():Person(){};
void display(){cout<<ID<<" "<<name<<" "<<setiosflags(ios::fixed)<<setprecision()<<cpp_grade<<endl;}
Student(string a, int b , int c ,float d ,float e) :
Person(a,b), ID(c) , cpp_score(d) , cpp_count(e) {cpp_grade = cpp_score * 0.9 + cpp_count * ;}
};
//教师类
class Teacher : public Person{
int ID;//教师工号
Student stu[];
int count;
float cpp_average;
public:
Teacher(string a, int b, int c) : Person(a,b), ID(c){};
void setCount(int a){count= a;}
void Add (Student & stu1){
stu[count-] = stu1;
};
void average(){
float ans=;
for(int i=;i<count;i++)
{
ans += stu[i].getGrade();
}
cpp_average = ans/count;
};
void print(){
cout<<ID<<" "
<<name<<" "
<<count<<" "
<<setiosflags(ios::fixed)<<setprecision()
<<cpp_average<<endl;
for(int i=;i<count;i++)
{
stu[i].display();
}
};
};
int main()
{ string name;
int age, num,count;
float score;
//教师
cin>>name>>num>>age;
Teacher ok(name , age, num);
int sum=;
//学生
cin>>name;
while(name[]!='')
{
sum++;
cin>> num>> age>> score >> count;
Student hello(name, age, num, score, count);
ok.setCount(sum);
ok.Add( hello );
cin>>name;
}
ok.average();
ok.print(); return ;
}

5-7 学生cpp成绩统计的更多相关文章

  1. 5-6 学生CPP成绩计算

    给出下面的人员基类框架: class Person { protected: string name; int age; public: Person(); Person (string p_name ...

  2. sdut 3-5 学生成绩统计

    3-5 学生成绩统计 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 通过本题目练习能够掌握对象数组的使用方法,主要是对象数组中数据的输入输出操作. 设计 ...

  3. PTA的Python练习题(十二)-第4章-7 统计学生平均成绩与及格人数

    第4章-7 统计学生平均成绩与及格人数 a=eval(input()) b=list(map(int,input().split())) sum=sum(b) c=[i for i in b if i ...

  4. 成绩统计程序(Java)

    我的程序: package day20181018;/** * 成绩统计系统 * @author Administrator */import java.util.Scanner;//提供计算机直接扫 ...

  5. 体育成绩统计——20180801模拟赛T3

    体育成绩统计 / Score 题目描述 正所谓“无体育,不清华”.为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心.然而每到学期期末时, ...

  6. YTU 2798: 复仇者联盟之数组成绩统计

    2798: 复仇者联盟之数组成绩统计 时间限制: 1 Sec  内存限制: 128 MB 提交: 136  解决: 96 题目描述 定义一个5行3列的二维数组,各行分别代表一名学生的高数.英语.C++ ...

  7. YTU 2769: 结构体--成绩统计

    2769: 结构体--成绩统计 时间限制: 1 Sec  内存限制: 128 MB 提交: 1021  解决: 530 题目描述 建立一个简单的学生信息表,包括:姓名.性别.年龄及一门课程的成绩,统计 ...

  8. 【Java例题】7.5 文件题2-学生成绩统计

    5.学生成绩统计.已有一个学生成绩文件,含有多位学生的各三门课的成绩:读取这个文件中的每位学生的三门课成绩,然后计算均分:最后对这些均分按照大于或小于75分的界限,分别写到另两个文件中. packag ...

  9. sql-hive笔试题整理 1 (学生表-成绩表-课程表-教师表)

    题记:一直在写各种sql查询语句,最长的有一百多行,自信什么需求都可以接,可......,想了想,可能一直在固定的场景下写,平时也是以满足实际需求为目的,竟不知道应试的题都是怎么出的,又应该怎么做.遂 ...

随机推荐

  1. ROS的Target Platforms

    问题 今天编译VIORB遇到了以下错误: 查到的资料 ubuntu18安装的二进制ros包需要特定版本的库函数 ros官方文档 文档pdf 参考回答 参考回答pdf

  2. Hdu_3068 Manacger算法的心得

    关于manacher算法,似乎在学完KMP之后,比较容易上手,虽然有些原理方面,我没有理解的太深. Manacher就是解决回文串的问题,求一个字符串中的最长回文子串. Manacher算法首先对字符 ...

  3. Python语言基础与应用 (P16)上机练习:基本数据类型

    本文是笔者在学习MOOC课程<Python语言基础与应用> (北京大学-陈斌)中根据上机课时的要求写下在代码 课程总链接: 中国大学MOOC B站 本节课链接 数值基本运算: 33和7+, ...

  4. Qt在vs2010下的配置

    https://blog.csdn.net/chenbang110/article/details/7607250 首先不要使用中文目录, 1 下载Qt的安装包和VS2010的Qt插件 2. 安装Qt ...

  5. Tensorflow函数——tf.set_random_seed(seed)

    设置图级随机seed. 依赖于随机seed的操作实际上从两个seed中获取:图级和操作级seed. 这将设置图级别的seed. 其与操作级seed的相互作用如下: 1.如果没有设置图形级别和操作see ...

  6. lvm镜像卷

    镜像能够分配物理分区的多个副本,从而提高数据的可用性.当某个磁盘发生故障并且其物理分区变为不可用时,你仍然可以访问可用磁盘上的镜像数据.LVM在逻辑卷内执行镜像. 系统版本 # cat /etc/ce ...

  7. 一文彻底搞懂Cookie、Session、Token到底是什么

    > 笔者文笔功力尚浅,如有不妥,请慷慨指出,必定感激不尽 Cookie 洛:大爷,楼上322住的是马冬梅家吧? 大爷:马都什么? 夏洛:马冬梅. 大爷:什么都没啊? 夏洛:马冬梅啊. 大爷:马什 ...

  8. cookie保存

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  9. 创造新时代!谷歌、微软、Facebook等巨头推出全新数据计划的背后

    对于所有互联网企业来说,用户及其数据都是最核心.最根本的宝贵财富.因此,每家互联网企业都不会轻易将自家的数据与别人分享.试想一下,阿里会将淘宝和天猫的数据共享给京东吗?腾讯会把QQ和微信的数据分享给微 ...

  10. ES6之模块化

    本文介绍ES6实现模块化的方法:使用import和export. 导入的时候需不需要加大括号的判断:1.当用export default people导出时,就用 import people 导入(不 ...