一、实验目的

(1)掌握类的创建,成员数据和成员函数的构建。

(2)掌握构造函数的重载。

(3)掌握静态成员函数和静态成员函数的使用。

二、实验内容和要求:

(1)按照附件“成绩表.txt”中的内容建立student类,在此类中所有数据定义为私有数据变量。并建立一个student对象数组,用附件中的数据进行初始化。

(2)计算每个学生三门课程的总分和平均成绩,并显示。(通过公有成员函数计算,获取总分和平均成绩);

(3)计算英语、高数、计算机三门课程的平均成绩,并显示。(利用静态成员函数和静态成员变量)

(4)根据平均成绩高低,对所有学生进行排序,并按照从高到低的顺序显示。

附件:

三、源程序代码

#include <iostream>
#include<string.h>
using namespace std;
//定义类
class student
{
public:student(string n, string xb, string nam, string s, float E, float M, float C, float t, float ave);float Tsum();float Taverage();static void Tsum1();/*定义静态成员函数*/void print(){cout << num << "\t" << departure << "\t" << name << "\t" << sex << "\t" << English << "\t"<< Math << "\t" << Computer << "\t" << Taverage() << "\t" << Tsum()  << endl;}float sum;float average;
/*定义私有数据变量*/
private:string num;string departure;string name;string sex;float English;float Math;float Computer;static float sumE;static float sumM;static float sumC;
};
float student::sumE = 0, student::sumM = 0, student::sumC = 0;
/*student对象赋值*/
student::student( string n,string xb,string nam,string s, float E, float M, float C, float t=0.0, float ave=0.0)
{num = n;departure = xb;name = nam;sex = s;English = E;Math = M;Computer = C;   sumE += English;sumM += Math;sumC += Computer;
}
/*求总分*/
float student::Tsum()
{return(English +Math + Computer);
}
/*求平均分*/
float student::Taverage()
{average=(English + Math + Computer) / 3.0;return(average);
}
/*求各科平均成绩*/void student::Tsum1()
{cout << "英语平均成绩:" << sumE / 5.0 << endl;cout << "高数平均成绩:" << sumM / 5.0 << endl;cout << "计算机平均成绩:" << sumC / 5.0 << endl;
}/*主函数*/
int main()
{student stu[5] = {student("02128","机械","杨过","男",64,56,74),student("02120","计算机","赵海明","男",51,63,84),student("02119","计算机","张李敏","男",76,87,56),student("02127","机械","韦小宝","男",75,75,72),student("02114","外语","姜波","男",79,76,68)};/*student对象数组初始化*/cout << "学生成绩表:" <<endl;cout << "学号\t系别\t姓名\t性别\t英语\t数学\t计算机\t平均分\t总分" << endl;for (int i = 0; i < 5; i++){stu[i].print();   }student::Tsum1();cout << "根据平均成绩高低,对所有学生进行排序后的成绩表为:" << endl;int j, k;for (j = 0; j < 5; j++){for (k = 4; k > j; k--){if (stu[k].average > stu[k - 1].average){student temp = stu[k];stu[k] = stu[k - 1];stu[k - 1] = temp;}}}/*冒泡算法从高到低排序*/cout << "学号\t系别\t姓名\t性别\t英语\t数学\t计算机\t平均分\t总分" << endl;for (int i = 0; i < 5; i++){stu[i].print();stu[i].Taverage();stu[i].Tsum();}
}

四、实验结果

http://t.csdn.cn/QVIxohttp://t.csdn.cn/QVIxo

建立student类,在此类中所有数据定义为私有数据变量。并建立一个student对象数组,用附件中的数据进行初始化。计算每个学生三门课程的总分和平均成绩(C++实验)相关推荐

  1. PTA实验题:7-2 计算全班学生C++课程的总成绩和平均成绩 (10 分)

    定义一个类Student,记录学生C++课程的成绩.要求使用静态数据成员或静态成员函数计算全班学生C++课程的总成绩和平均成绩. 输入格式: 输入5个不超过100的正整数,作为C++成绩. 输出格式: ...

  2. 计算全班学生C++课程的总成绩和平均成绩

    定义一个类Student,记录学生C++课程的成绩.要求使用静态数据成员或静态成员函数计算全班学生C++课程的总成绩和平均成绩. 输入格式: 输入5个不超过100的正整数,作为C++成绩. 输出格式: ...

  3. 【PTA】计算全班学生C++课程的总成绩和平均成绩 (10 分)

    注意: 因为自定义了构造函数,是要有参数的,所以最后为了输出sum要定义参数为0的对象. #include<iostream> using namespace std;class Stud ...

  4. 三门课成绩总分用c语言,编写一个C语言程序:输入三个学生三门课的成绩,计算每个学生的总分和平均成绩...

    C语言实现如下: #include void main(){float a[3][3],sum[3];int i;for(i=0;i 由热心网友提供的答案1: #include"stdio. ...

  5. SQL编写:表A{id, name},表B{id, course, score}。求每名学生的 id 和 name 和平均成绩

    问题描述: 表A{id, name},表B{id, course, score}.求每名学生的 id 和 name 和平均成绩 CREATE TABLE `student` (`id` BIGINT( ...

  6. C++统计每门课程全班的总成绩和平均成绩以及每个学生课程的总成绩和平均成绩。

    输入学生人数(最多为50个人),然后按编号从小到大的顺序依次输入学生成绩(语文.数学和英语3门课程的成绩),最后统计每门课程全班的总成绩和平均成绩以及每个学生课程的总成绩和平均成绩 #include& ...

  7. c语言找出成绩的最大,C语言 求每个学生、每门课的平均成绩并找出最大值

    C语言 求每个学生.每门课的平均成绩并找出最大值 for(i=0;i { y=0; for(j=0;j { y=y+a[j][i]; } c[i]=y/3; printf("第%d门课的平均 ...

  8. c语言求学生平均分 总分结构体,c语言 已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,列表输出学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(...

    满意答案 dante9573 2013.03.07 采纳率:42%    等级:12 已帮助:6621人 #include #define FORMAT "学号:%d\t姓名:%s\t语文: ...

  9. c++定义一个动态对象数组_如何在Python中自定义一个可被调用的对象实例?

    前言 在关于Python描述符函数的详解三篇中,我们有提到如何基于类创建一个"描述符函数",之所以能够基于类创建这样一个概念,是因为用到了类中的__call__属性,从前述文章中可 ...

最新文章

  1. 本地代码替换到某个提交点_github教程 -- Windows平台下如何将项目华丽的提交到Github上...
  2. 三个单词说的英语口语
  3. 探秘Tomcat(一)——Myeclipse中导入Tomcat源码
  4. 如何更改OST、OAB文件的默认路径?
  5. android里canvas视频帧,移动端用canvas截取视频封面,如何不截取第一帧,而是截取其它的帧?...
  6. 虚拟机VMware搭建代码环境
  7. ncurses输出函数:字符+字符串的输出
  8. 中国救生浮标市场趋势报告、技术动态创新及市场预测
  9. vs2015如何建立c语言程序,C语言快速入门——使用Visual Studio 2015创建控制台应用程序...
  10. Linux的远程传输文件scp及出现Permission denied (publickey).lost connection问题解决方法
  11. 品质催生消费升级 ACCESS集团和VTN国际品牌会员俱乐部的跨境电商之路
  12. 拨打电话 java_简单拨打电话程序
  13. 联想拯救者y7000电脑开机一直是锁屏界面,点一下就黑屏,无法进入输密码界面
  14. 【朝花夕拾】Android自定义View之(一)手把手教你看懂View绘制流程——向源码要答案
  15. 有关颜色敏感度测试的软件是啥,测试你对颜色的敏感度,最后一题能答对算你厉害!...
  16. 开源为改进服务器、网络、存储及加速技术提供了行之有效的新途径
  17. 2020 最受 IT 公司欢迎的 30 款开源软件
  18. 网页防篡改技术的前世与今生
  19. 数学女博士奥运会摘金!用数学知识自己训练
  20. 使用C++面向对象思想计算两条直线交点

热门文章

  1. MM 供应商账户组后台配置步骤
  2. ubuntu16.04安装ROS Kinetic(保姆式安装)
  3. 【邂逅Django】——(三)视图
  4. 指针变量的星号是靠近变量名还是靠近类型
  5. 关于 The document “(null)” requires Xcode 8.0 or later. 解决方法
  6. JVM中的对象探秘(三)- 对象的实例数据与对齐填充
  7. Matlab中如何使函数作为参数传递
  8. 国家高新技术企业多少分通过?申请条件是什么?
  9. AD定义板子外形方法(2)
  10. 中国第一代程序员列传