求助:大家看我看看程序,为什么我的程序运行的时候什么都没有呢
#include <iostream.h>class SchoolClass //声明了一个类//
{
int *ClassData;//声明了一个ClassData的指针变量//
int ClassDataIndex;//一个整数索引,是数据存储区的索引,初始化为0 //
public:
SchoolClass(int NumberStudents);//构造了一个函数,NumberStudents为函数的参数//
~SchoolClass(void);//销毁器,销毁以前分配的内存//
void AddScore(int Score);
int GetScore(int Index);
float AverageScore(void);
};
SchoolClass::SchoolClass(int NumberStudents)//调用所构造的函数//
{
ClassData=new int[NumberStudents];//new运算符用来给新数据分配存储空间,
//即给NumberStudents分配空间
ClassDataIndex=0;
}
SchoolClass::~SchoolClass(void)
{
delete ClassData;//删除ClassData以前的内存
}
void SchoolClass::AddScore(int Score)
{
ClassData[ClassDataIndex++]=Score;//ClassData为指针(我觉得像是一个数组)
//ClassDataIndex为索引(我觉得它比较象指针)
//每执行一次AddScore索引就增加一次,
//并将数组中的值传递给Score,我感觉Score里只有一个值
//想错了,犯糊涂了,应该是每得到一个Score,就放到ClassData
//数组里,并建立一个索引。
//这里还有一个问题,那就是赋值语句怎么写,谁给谁赋值,
//ClassDataIndex=0,这个就是把0 赋值给ClassDataIndex,
//可上面这样理解那就是反过来了阿?
}
int SchoolClass::GetScore(int Index)
{
if (Index <= ClassDataIndex)
{
return ClassData[Index];
}
else
{
return -1;
}
}
float SchoolClass::AverageScore(void)
{
float Sum=0;
if (ClassDataIndex==0)
{
return -1;
}
for (int loop_index=0; loop_index<ClassDataIndex;loop_index)
{
Sum+=(float) ClassData[loop_index];
}
return Sum/(float) ClassDataIndex;
}
void main()
{ SchoolClass HistoryClass(9);//声明SchoolClass的 两个对象,HistoryClass(9),
// EnglishClass(10)
SchoolClass EnglishClass(10);
HistoryClass.AddScore(80);
HistoryClass.AddScore(81);
HistoryClass.AddScore(82);
HistoryClass.AddScore(83);
HistoryClass.AddScore(84);
HistoryClass.AddScore(85);
HistoryClass.AddScore(86);
HistoryClass.AddScore(87);
HistoryClass.AddScore(88);
EnglishClass.AddScore(91);
EnglishClass.AddScore(92);
EnglishClass.AddScore(93);
EnglishClass.AddScore(94);
EnglishClass.AddScore(95);
EnglishClass.AddScore(96);
EnglishClass.AddScore(97);
EnglishClass.AddScore(98);
EnglishClass.AddScore(99);
EnglishClass.AddScore(100);
cout <<"Average Score for History Class:"<<
HistoryClass.AverageScore()<<"\n";
cout <<"Average Score for English Class:"<<
EnglishClass.AverageScore()<<"\n";
}
这是我按书上说得写的,注释部分为我的理解,
程序运行应该输出两句话和数字,我的却什么也没有,请教大家。
是不是EnglishClass.AverageScore()调用的问题啊