5-7 学生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
- #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成绩统计的更多相关文章
- 5-6 学生CPP成绩计算
给出下面的人员基类框架: class Person { protected: string name; int age; public: Person(); Person (string p_name ...
- sdut 3-5 学生成绩统计
3-5 学生成绩统计 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 通过本题目练习能够掌握对象数组的使用方法,主要是对象数组中数据的输入输出操作. 设计 ...
- 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 ...
- 成绩统计程序(Java)
我的程序: package day20181018;/** * 成绩统计系统 * @author Administrator */import java.util.Scanner;//提供计算机直接扫 ...
- 体育成绩统计——20180801模拟赛T3
体育成绩统计 / Score 题目描述 正所谓“无体育,不清华”.为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心.然而每到学期期末时, ...
- YTU 2798: 复仇者联盟之数组成绩统计
2798: 复仇者联盟之数组成绩统计 时间限制: 1 Sec 内存限制: 128 MB 提交: 136 解决: 96 题目描述 定义一个5行3列的二维数组,各行分别代表一名学生的高数.英语.C++ ...
- YTU 2769: 结构体--成绩统计
2769: 结构体--成绩统计 时间限制: 1 Sec 内存限制: 128 MB 提交: 1021 解决: 530 题目描述 建立一个简单的学生信息表,包括:姓名.性别.年龄及一门课程的成绩,统计 ...
- 【Java例题】7.5 文件题2-学生成绩统计
5.学生成绩统计.已有一个学生成绩文件,含有多位学生的各三门课的成绩:读取这个文件中的每位学生的三门课成绩,然后计算均分:最后对这些均分按照大于或小于75分的界限,分别写到另两个文件中. packag ...
- sql-hive笔试题整理 1 (学生表-成绩表-课程表-教师表)
题记:一直在写各种sql查询语句,最长的有一百多行,自信什么需求都可以接,可......,想了想,可能一直在固定的场景下写,平时也是以满足实际需求为目的,竟不知道应试的题都是怎么出的,又应该怎么做.遂 ...
随机推荐
- 反编译查看printf()的方法
源代码: package test2; public class ExplorationJDKSource { /** * @param args */ public static void main ...
- 算概率(dp,数论)
链接:https://ac.nowcoder.com/acm/contest/3003/C来源:牛客网 题目描述 牛牛刚刚考完了期末,尽管牛牛做答了所有 n 道题目,但他不知道有多少题是正确的. 不过 ...
- Java线程——线程之间的死锁
一,什么是死锁? 所谓的死锁是指多个线程因为竞争资源而造成的一种僵局(相互等待),若无外力的作用,这些进程都不能向前推进. 二,死锁产生的条件? (1)互斥条件:线程要求对所分配的资源(如打印机)进行 ...
- PAT Advanced 1066 Root of AVL Tree (25) [平衡⼆叉树(AVL树)]
题目 An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child ...
- CF round #622 (div2)
CF Round 622 div2 A.简单模拟 B.数学 题意: 某人A参加一个比赛,共n人参加,有两轮,给定这两轮的名次x,y,总排名记为两轮排名和x+y,此值越小名次越前,并且对于与A同分者而言 ...
- 转载:微信小程序源码提取反编译
转载来源:www.51xuediannao.com/xiaochengxu/019c08cc.html 一.前言 微信小程序源码提取反编译,听起来很屌,其实还是简单的,基本是傻瓜式操作.要想拿到微信小 ...
- 详细的git入门级别,从安装到实战
拥有自己码云开源网站,想要上传项目到码云怎么操作?公司新技术提升由Svn转为Git,慌不慌?想要从Github开源网站下载开源项目,难道还依赖直接下载项目然后解压导入项目工程?下面可以通过及其简易且好 ...
- Python笔记_第四篇_高阶编程_高阶函数_2.filter
1. filter函数: 原型:filter(fn,lsd) 参数1为函数 参数2为序列 功能:用于过滤序列,把传入的函数一次作用域序列每个元素,根据返回的是True还是False决定是否保留该元素. ...
- mysql,apache,php的关系
首先要明白动态网站与静态网站 所谓的动态网页,是指跟静态网页相对的一种网页编程技术.静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码.而动态网页则不然 ...
- Elastic ik插件配置热更新功能
ik github地址:https://github.com/medcl/elasticsearch-analysis-ik 官网说明: 热更新 IK 分词使用方法 目前该插件支持热更新 IK 分词, ...