#include <iostream>
#include <cstdlib>using namespace std;int strlen(const char s[]){int len = 0;while (s[len]){len++;}return len;  // 返回数组str中首个值为null的元素的下标值
}char* strcpy(char *p, const char *s){char *t = p;while (*p++ = *s++){}return t;
}class Student {private:int m_id; // 学生编号 double m_score; // 学生分数char *m_name; // 统计学生个数的静态成员变量static int m_count;// 统计学生总分数的静态成员变量static double sum_score;public:Student(int id, const char *name ,double score) {// 创建一个学生m_id = id;m_score = score;m_count++; // 对创建的学生对象的人数进行累加 sum_score += score;  // 对创建的学生对象的分数进行累加 //给姓名赋值int len = strlen(name);m_name = (char*)malloc(len + 1);strcpy(m_name, name);}static int getCount() {  // 提供一个访问学生人数的静态方法 return m_count;}static double getAvg() {   // 提供一个访问平均分的静态方法 return sum_score / m_count;}int getId(){return m_id;}char* getName(){return m_name;}double getScore(){return m_score;}~Student() {m_count--;   // 每析构一个对象,数量减去一 sum_score -= m_score; // 析构一个对象,减去对象对应的学生分数 if (m_name != NULL) {free(m_name);   // 消除占用空间 m_name = NULL;}}
};int Student::m_count = 0;  // 对静态变量进行初始化 double Student::sum_score = 0.0; // 对静态变量进行初始化 int main(){Student *s1 = new Student(1, "vvcat1", 88);Student *s2 = new Student(2, "vvcat2", 95);Student *s3 = new Student(3, "vvcat3", 99);Student *s4 = new Student(4, "vvcat4", 77);Student *s5 = new Student(5, "vvcat5", 96);cout << "----------学生成绩列表-------------" << endl;cout << "编号           姓名            成绩" << endl;cout << s1 -> getScore();cout << "            ";cout << s1 -> getName();cout << "            ";cout << s1 -> getScore();cout << endl;cout << s2 -> getScore();cout << "            ";cout << s2 -> getName();cout << "            ";cout << s2 -> getScore();cout << endl;cout << s3 -> getScore();cout << "            ";cout << s3 -> getName();cout << "            ";cout << s3 -> getScore();cout << endl;cout << s4 -> getScore();cout << "            ";cout << s4 -> getName();cout << "            ";cout << s4 -> getScore();cout << endl;cout << s5 -> getScore();cout << "            ";cout << s5 -> getName();cout << "            ";cout << s5 -> getScore();cout << endl;cout << "-----------------------------------" << endl;cout << "学生总人数:" << Student::getCount() << endl;cout << "学生的平均分:" << Student::getAvg() << endl;// 调用析构函数 delete s5;  delete s4;delete s3;delete s2;delete s1;return 0;
}

C++ 使用静态变量和静态方法统计学生分数和学生个数相关推荐

  1. 韩顺平php视频笔记69 静态变量与静态方法

    静态变量(类变量)与静态方法(类方法) 思路: 1. 使用全局变量 * 什么是全局变量, 在程序中,都可以使用的变量称为全局变量. 当我们了解全局变量后,我们来看看如何解决问题? <?php / ...

  2. JAVA 静态变量,静态方法,main方法详解(韩顺平)

    目录 一.类变量 1.类变量的引入 2.类变量的定义 3.类变量的特点 4.如何定义类变量 5.如何访问类变量 6.类变量使用细节 二.类方法 1.基本介绍 2.定义类方法 3.类方法的访问 4.类方 ...

  3. JAVA 静态变量与静态方法

    java中静态变量和静态方法分别有什么特点? 悬赏分:0 - 解决时间:2006-4-10 10:28 提问者: vv_clear - 二级 最佳答案 为什么问了两次?再贴上另一篇 Thinking: ...

  4. java中静态变量和静态方法分别有什么特点?

    java中静态变量和静态方法分别有什么特点? 悬赏分:0 - 解决时间:2006-4-10 10:28 提问者: vv_clear - 二级 最佳答案 为什么问了两次?再贴上另一篇 Thinking: ...

  5. java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释

    ***对象作为参数传递*** class passparam { int x;   public static void main(String[] args)   { passparam obj = ...

  6. Java静态变量与静态方法与成员变量成员方法的区别

    java变量分为实例变量和静态变量方法分为实例方法和静态方法 如 class Example{ int data;//定义实例变量,也叫成员变量 public void method(){     / ...

  7. 1.16 static关键字(静态变量和静态方法)

    在类中,使用 static 修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有. 静态成员不依赖于类的特定实例,被 ...

  8. JAVA的静态变量、静态方法、静态类

    静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                ...

  9. java 静态类 静态方法_JAVA的静态变量、静态方法、静态类

    静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                ...

最新文章

  1. 深度学习框架哪家强?MXNet称霸CNN、RNN和情感分析,TensorFlow仅擅长推断特征提取
  2. 【64QAM同步】基于FPGA/MATLAB的64QAM同步系统的实现
  3. HTML与CSS(图解6):超链接
  4. 周鸿祎VS马化腾 360VS腾讯工资待遇盘点
  5. 微信小程序之wx.request:fail错误,真机预览请求无效问题解决,安卓,ios网络预览异常(转)...
  6. 【Siddhi 5】Siddhi 5 源码编译
  7. webstore报 ESLint: Expected space or tab after '//' in comment.(spaced-comment)
  8. 关于学计算机有什么用检讨书,旷计算机课检讨书
  9. iptables的nat规则骚操作
  10. rest-framework解析器,url控制,分页,响应器,渲染器,版本控制
  11. design expert响应面分析_第01组(17)需求分析报告 - yuqiao1120
  12. C# Winform获取路径
  13. jQuery密码强度校验
  14. C++ Liberary websit
  15. linux连不上网问题总结
  16. web常用模块测试用例
  17. cad.net 利用win32api实现不重复打开dwg路径的文件夹(资源管理器)
  18. Elsevier系旗下期刊论文投稿流程
  19. 计算机毕业设计Java金融业撮合交易系统(源码+系统+mysql数据库+lw文档)
  20. 丢手帕问题 java_java入门小程序—17人游戏(丢手绢问题) | 学步园

热门文章

  1. 016 在大数据中,SSH无密钥登录
  2. win7开启休眠功能
  3. 解决windows远程(Telnet)最大连接数的问题
  4. BitLocker Partition Recovery
  5. LCS2005客户端配置详解:LCS2005系列之二
  6. 成功修改fastreport3.15,使其支持中日韩四(CJK)中编码PDF的导出
  7. mysql数据库搜索字符_在MySQL数据库中快速搜索字符串?
  8. action和servlet的关系
  9. 自定义ListView【通用】适配器并实现监听控件
  10. boost在DevC++中的安装过程