漫漫编程路——C++篇(五)——关于使用静态成员
2008-05-25 07:46
519 查看
我个人理解静态成员是给我们这些懒人提供很大方便的一个工具,而且用好静态变量会对你的程序有很大的帮助,而且个人觉得静态数据是一件非常好的控制工具,能帮你很好的控制你的程序,让你能更好的驾驭你的程序,而不会让你的程序在系统的原野上狂奔,而你却无可奈何。
例题:
编 写程序,统计本学期参加考试的学生的总数和平均分数。设计一个学生类Student,包含number(学号)、name(姓名)、score(分数)3 个数据成员、2个静态数据成员sum(总分)和num(人数)、1个取值函数set()、1个显示函数disp()和1个静态成员函数avg()。Avg ()用于访问静态数据成员sum和num,并计算平均分数。
解析:
这个题目也并不能很好的让我们学会运用静态变量,但是还是老的原因,我的懒惰让我并不像放弃使用手头上现有的资料,将就着看吧。
程序:
#include<iostream>
#include<string>
#include<vector>
#include<fstream>
using namespace std;
ofstream out("out.txt");
class student{
int number;
string name;
int score;
static int sum;
static int num;
public:
student(string n,int s){
static int a=0;
number=++a;
name=n;score=s;
sum+=score;num++;
}
void display();
static void avg();
~student(){};
};
int student::sum=0;
int student::num=0;
void student::display(){
out<<"学号:"<<number<<'/t'<<"学生姓名:"<<name<<'/t'<<"成绩:"<<score<<'/n';
}
void student::avg(){
double a;
a=sum/num;
out<<"本学期参加考试学生人数为:"<<num<<'/t'<<"考试总分为:"<<sum<<'/t'<<"平均分为:"<<a<<'/n';
}
void main(){
vector<student> s;
ifstream in("in.txt");
string a;int b;
for(;in>>a>>b;){
student m(a,b);
m.display();
s.push_back(m);
}
s[s.size()-1].avg();
}
这个程序就没什么亮点了,只是使用了向量,但是就是使用了向量使得我的程序编的过程一下子变得简单了,只要注意一点,静态变量的获取操作要用静态成员函数,这样能让你的程序变得容易理解和操作。
例题:
编 写程序,统计本学期参加考试的学生的总数和平均分数。设计一个学生类Student,包含number(学号)、name(姓名)、score(分数)3 个数据成员、2个静态数据成员sum(总分)和num(人数)、1个取值函数set()、1个显示函数disp()和1个静态成员函数avg()。Avg ()用于访问静态数据成员sum和num,并计算平均分数。
解析:
这个题目也并不能很好的让我们学会运用静态变量,但是还是老的原因,我的懒惰让我并不像放弃使用手头上现有的资料,将就着看吧。
程序:
#include<iostream>
#include<string>
#include<vector>
#include<fstream>
using namespace std;
ofstream out("out.txt");
class student{
int number;
string name;
int score;
static int sum;
static int num;
public:
student(string n,int s){
static int a=0;
number=++a;
name=n;score=s;
sum+=score;num++;
}
void display();
static void avg();
~student(){};
};
int student::sum=0;
int student::num=0;
void student::display(){
out<<"学号:"<<number<<'/t'<<"学生姓名:"<<name<<'/t'<<"成绩:"<<score<<'/n';
}
void student::avg(){
double a;
a=sum/num;
out<<"本学期参加考试学生人数为:"<<num<<'/t'<<"考试总分为:"<<sum<<'/t'<<"平均分为:"<<a<<'/n';
}
void main(){
vector<student> s;
ifstream in("in.txt");
string a;int b;
for(;in>>a>>b;){
student m(a,b);
m.display();
s.push_back(m);
}
s[s.size()-1].avg();
}
这个程序就没什么亮点了,只是使用了向量,但是就是使用了向量使得我的程序编的过程一下子变得简单了,只要注意一点,静态变量的获取操作要用静态成员函数,这样能让你的程序变得容易理解和操作。
相关文章推荐
- 关于C++中静态成员的使用
- 关于C++静态成员函数访问非静态成员变量的问题
- C++静态成员变量和静态成员函数使用总结
- 【C++基础学习】关于C++静态成员函数和变量
- 漫漫编程路——C++篇(八)——关于虚函数和多态性 (二)
- 关于C++编译静态模板成员数据出错 Too few template-parameter-lists
- 【C++基础学习】关于C++静态数据成员
- C++静态成员变量和静态成员函数使用总结
- 关于C++中静态成员函数的理解
- C++使用静态成员函数
- C++ 关于静态成员函数和常成员函数
- 第05章 CORE C++_对象的创建和使用_继承_多态_析构_xxx_cast_友元_只读成员_静态成员_多重继承_虚继承_内部类
- 【C++基础学习】关于C++静态成员函数和变量
- C++关于tr1中绑定成员函数的bind使用
- 关于C/C++中静态本地变量的使用与数据类型修饰符const
- 【C++基础学习】关于C++静态数据成员
- 关于C++中的静态成员
- C++ 静态成员函数使用不需要声明
- C++中关于类中常数静态成员初始化的问题
- 漫漫编程路——C++篇(八)——关于模板