C++ 使用静态变量和静态方法统计学生分数和学生个数
生活随笔
收集整理的這篇文章主要介紹了
C++ 使用静态变量和静态方法统计学生分数和学生个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#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++ 使用静态变量和静态方法统计学生分数和学生个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ 对象动态建⽴和释放 new 和
- 下一篇: C++ 学生类