首页 > 其他分享 >2023.5.9

2023.5.9

时间:2023-05-09 18:55:21浏览次数:39  
标签:班级 name int age 学生 2023.5 cpp

完成“学生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
  1 #include<string>
  2 #include<iomanip>
  3 #include <iostream>
  4 
  5 using namespace std;
  6 class Person 
  7 {
  8 public:
  9     string name;
 10     int age;
 11     Person() {}
 12     Person(string p_name, int p_age) 
 13     {
 14         name = p_name;
 15         age = p_age;
 16     };
 17     void display() { cout << name << ":" << age << endl; }
 18 };
 19 class Student :public Person
 20 {
 21 public:
 22     int ID;
 23     float cpp_score;
 24     float cpp_count;
 25     float cpp_grade;
 26     Student() {}
 27     Student(string Name, int id, float a, float b)
 28     {
 29         name = Name;
 30         ID = id;
 31         cpp_score = a;
 32         cpp_count = b;
 33     }
 34     void print() 
 35     {
 36         cpp_grade = cpp_grade = cpp_score * 0.9 + cpp_count * 2;
 37         cout << ID << " " << name << " " << setiosflags(ios::fixed) << setprecision(1) << cpp_grade << endl;
 38     }
 39 
 40 };
 41 class Teacher:public Person
 42 {
 43 public:
 44     int i = 0;
 45     float aver = 0;
 46     int ID;//教师工号
 47     Student stu[100];//学生数组
 48     int count;//学生数目,最多不超过100
 49     float cpp_average;//班级cpp平均分
 50     Teacher(string n, int a, int b)
 51     {
 52         name = n;
 53         Teacher::ID = a;
 54         age = b;
 55     }
 56     void Add(Student& stu1)
 57     {
 58         stu[i].name = stu1.name;
 59         stu[i].ID = stu1.ID;
 60         stu[i].age = stu1.age;
 61         stu[i].cpp_score = stu1.cpp_score;
 62         stu[i].cpp_count = stu1.cpp_count;
 63         i++;
 64     }
 65     void average()
 66     {
 67            
 68         float sum = 0;
 69         for (int j = 0; j < i; j++)
 70         {
 71             sum  = sum+stu[j].cpp_score * 0.9 +stu[j].cpp_count * 2;
 72         }
 73         aver = sum / i;
 74     }
 75     void print()
 76     {
 77         cout << this->ID << " " << this->name << " " << i << " " <<setiosflags(ios::fixed) << setprecision(1)<< aver << endl;
 78         for (int j = 0; j < i; j++)
 79         {
 80             stu[j].print();
 81         }
 82     }
 83 };
 84 int main()
 85 {
 86     string name1;
 87     int ID1;
 88     int age1;
 89     cin >> name1 >> ID1 >> age1;
 90     Teacher t(name1, ID1, age1);
 91     int ID;
 92     string name;
 93     int age;
 94     float cpp_score;
 95     float cpp_count;
 96     cin >> name;
 97     while (name != "0")
 98     {
 99         cin >> ID >> age >> cpp_score >> cpp_count;
100         Student a(name, ID, cpp_score, cpp_count);
101         t.Add(a);
102         cin >> name;
103     }
104     t.average();
105     t.print();
106     return 0;
107 
108 }

 

标签:班级,name,int,age,学生,2023.5,cpp
From: https://www.cnblogs.com/muzhaodi/p/17385965.html

相关文章

  • day68(2023.5.9)
    1.jQuery遍历先用js来遍历一下 运行结果: 运行结果: 运行结果: 运行结果: ......
  • usb error -71 (2023.5.8)
    //pcie转usb模组的错误打印 //echo -1 > /sys/module/usbcore/parameters/autosuspend(这个应该不行,该报错紧挨init进程后面)在有些情况下,由于低功耗情况下,USB硬件的bug或者提高USBresume的速度,我们需要禁止USB的autosuspend,下面是两种方法。1:在bootloader的bootargs......
  • 2023.5.8编程一小时打卡
    一、问题描述:初始化int类型数组date1[]={1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20},应用本章的直接插入排序模板进行排序,对此函数模板稍作修改,加入输出语句,在每一个待排序元素后显示整个数组,观察排序过程中数据的变化,加深对插入排序算法的理解。二、解题思路:首先,定......
  • 2023.5.8
    1#include<iostream>2usingnamespacestd;3#include<fstream>4#include<iomanip>5voidtest()6{7intnum;8cout<<"请输入一个十进制整数:"<<endl;9cin>>num;10//十进制输出11cou......
  • day67(2023.5.8)
    1.事件之绑定事件处理器 运行结果: 运行结果: 运行结果: 2.事件之鼠标事件 运行结果: 运行结果: 鼠标进入的时候,灰色块块出来,鼠标移开的时候,灰色块块隐藏。 运行结果: 运行结果: 运行结果: 3.事件之表单事件......
  • 2023.5.8——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习并开会。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;7.在王老师的组织......
  • 2023.5.8 单例设计模式
     单例设计模式单例模式(SingletonPattern)是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接......
  • 2023.5.8 设计模式简介
    1,设计模式概述1.1软件设计模式的产生背景"设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(ChristopherAlexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述......
  • 2023.5.8周学习总结
    一.本周计划1.继续复习图论知识2.vp一场省赛3.补cf和abc和牛客的题二.计划完成情况三.题解(158条消息)AtCoderBeginnerContest300(D-G)_scanner___yw的博客-CSDN博客四.总结1.这周打比赛的时候非常粗心,经常写错变量名,然后吃很多罚时,就很亏。......
  • 2023.5.7 职工管理系统
    1//boss.h2#pragmaonce3#include<iostream>4usingnamespacestd;5#include"worker.h"6classBoss:publicWorker7{8public:9//构造函数10Boss(intid,stringname,intdId);11//显示个人信息12voidshowInfo();......