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

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

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

增加以下成员函数:

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

  1. #include<iostream>
  2. #include<string>
  3. #include<iomanip>
  4. using namespace std;
  5.  
  6. class Person {
  7. protected:
  8. string name;//姓名
  9. int age;//年龄
  10. public:
  11. Person(){};
  12. Person (string a, int b) : name(a), age (b){};
  13. void display () {cout<<name<<":"<<age<<endl;}
  14. };
  15. //学生类
  16. class Student : public Person{
  17. int ID;//学号
  18. float cpp_score;//cpp上机成绩
  19. float cpp_count;//cpp上机考勤
  20. float cpp_grade;//cpp总评成绩
  21. public:
  22. void operator = (Student &a){
  23. name = a.name;
  24. age = a.age;
  25. ID = a.ID;
  26. cpp_score = a.cpp_score;
  27. cpp_count = a.cpp_count;
  28. cpp_grade = a.cpp_grade;
  29. //cout<<name<<ID<<cpp_grade<<"hello ";
  30. }
  31. float getGrade(){return cpp_grade;}
  32. Student():Person(){};
  33. void display(){cout<<ID<<" "<<name<<" "<<setiosflags(ios::fixed)<<setprecision()<<cpp_grade<<endl;}
  34. Student(string a, int b , int c ,float d ,float e) :
  35. Person(a,b), ID(c) , cpp_score(d) , cpp_count(e) {cpp_grade = cpp_score * 0.9 + cpp_count * ;}
  36. };
  37. //教师类
  38. class Teacher : public Person{
  39. int ID;//教师工号
  40. Student stu[];
  41. int count;
  42. float cpp_average;
  43. public:
  44. Teacher(string a, int b, int c) : Person(a,b), ID(c){};
  45. void setCount(int a){count= a;}
  46. void Add (Student & stu1){
  47. stu[count-] = stu1;
  48. };
  49. void average(){
  50. float ans=;
  51. for(int i=;i<count;i++)
  52. {
  53. ans += stu[i].getGrade();
  54. }
  55. cpp_average = ans/count;
  56. };
  57. void print(){
  58. cout<<ID<<" "
  59. <<name<<" "
  60. <<count<<" "
  61. <<setiosflags(ios::fixed)<<setprecision()
  62. <<cpp_average<<endl;
  63. for(int i=;i<count;i++)
  64. {
  65. stu[i].display();
  66. }
  67. };
  68. };
  69. int main()
  70. {
  71.  
  72. string name;
  73. int age, num,count;
  74. float score;
  75. //教师
  76. cin>>name>>num>>age;
  77. Teacher ok(name , age, num);
  78. int sum=;
  79. //学生
  80. cin>>name;
  81. while(name[]!='')
  82. {
  83. sum++;
  84. cin>> num>> age>> score >> count;
  85. Student hello(name, age, num, score, count);
  86. ok.setCount(sum);
  87. ok.Add( hello );
  88. cin>>name;
  89. }
  90. ok.average();
  91. ok.print();
  92.  
  93. return ;
  94. }

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. Python说文解字_Python之多任务_02

    第三部分:Semaphore控制进入数量的锁 有时候可能需要运行多个工作线程同时访问一个资源,但要限制总数.例如,连接池支持同时连接,但是数目可能是固定的,或者一个网络应用可能支持固定数据的并发下载. ...

  2. 关于Java的String字符串常量的长度问题

    虽然这种问题应该很难遇到,但是遇到了也会感到莫名其妙.不知道大家有没有遇到那种在java代码里用字符串写sql语句的情况,但是如果sql语句字符串的长度太长的话就会报错. 代码如下: 代码A Stri ...

  3. UVALive 4329 树状数组第二题

    大白书上的题目,比较巧妙的是其分析,为了求某个i点做裁判的时候的情况数,只要知道左边有多少比它小的记为ansc,右边有多少比它小的记为ansd,则总种数,必定为 ansc*(右边总数-ansd)+an ...

  4. ZOJ 1276 DP

    给出一系列的1x2的矩阵,要你求出矩阵以什么样的次序相乘才使得相乘次数最少,.(不用排序,只要决定该矩阵是和前面相乘比较好,还是后面). 今天仔细想了一下,跟之前做的DP题目做了下对比,你比如说猴子堆 ...

  5. 2019年阿里java面试题

    一.JVM与性能优化 描述一下 JVM 加载 Class 文件的原理机制? 什么是类加载器? 类加载器有哪些? 什么是tomcat类加载机制? 类加载器双亲委派模型机制? Java 内存分配? Jav ...

  6. 用Emoji和照片挑战大众点评,YOBO玩转新点评方式能引领潮流吗?

    对于一家企业来说,要想获得长久生命力的必备元素是什么?是技术底蕴和海量资金?但诺基亚.摩托罗拉和黑莓等巨头的崩塌,已经证明再稳固的基础都有可能只是沙子做的.是让人工智能.云计算.大数据等前沿技术赋能于 ...

  7. 学生信息管理系统java测试报告

    package studentinformation; /**姓名 胡海靖 * 学号 20183609 * 班级 信1805-2 */ class ScoreInformation { private ...

  8. cuda addressMode解析

    cudaAddressModeClamp:超出范围就用边界值代替,示意: AA | ABCDE | EE cudaAddressModeBorder:超出范围就用零代替,示意: 00 | ABCDE ...

  9. Docker部署zookeeper集群和kafka集群,实现互联

    本文介绍在单机上通过docker部署zookeeper集群和kafka集群的可操作方案. 0.准备工作 创建zk目录,在该目录下创建生成zookeeper集群和kafka集群的yml文件,以及用于在该 ...

  10. 异常依然执行{try..catch语句块..}的后续代码

    测试异常依然执行{try..catch语句块..}的后续代码: private static Integer testThrows() throws Exception{ Integer result ...