实在不知道,连方向度没有,哪位大神能帮忙下
/*实验步骤及要求:1.建立存储课程信息的结构体
struct SUBJECT //课程信息结构体
{
char name[64]; //课程名称
int level; //课程等级
};
2.声明一个学生信息结构体
class STUDENT
{
public:
STUDENT(int nMax); //参数nMax的值传给成员变量m_nMax
virtual ~STUDENT();
void AddNewSubject(SUBJECT &szSub); //添加新课程
SUBJECT* GetSubject(int nIndex); //获取指定编号的课程
int GetSubjectCount(); //获取当前课程数目
private:
int m_nSubjectCount; //当前课程数目
int m_nMax; //最大课程数目
SUBJECT* pSubject; //课程结构体指针
};
关于课程结构体指针SUBJECT* pSubject的解释:
该指针是用来开辟连续的内存空间用于存储学生的所有课程
开辟的内存单元数由成员变量m_nMax的值决定
这样:
第一门课程就存放于pSubject[0]
第二门课程就存放于pSubject[1]
第三门课程就存放于pSubject[2]以此类推
关于变量m_nSubjectCount的解释:存储当前学生课程的数目,其值应小于或者等于m_nMax的值
AddNewSubject(SUBJECT &szSub)用于添加新课程信息,新添加的课程信息添加到预先分配好的
课程结构体指针所指向的内存空间
GetSubject(int nIndex);用于获取指向索引号为nIndex的课程的指针
具体来说该函数的返回值就是&pSubject[nIndex],如果获取失败则返回空指针NULL
构造函数内需要完成的工作是:
(1)为m_nSubjectCount以及m_nMax赋初值
(2)为pSubject开辟指定大小的(由m_nMax决定)内存空间
析构函数的任务是销毁之前构造函数所动态分配的内存空间
3.完成整个类的设计
4.在主程序里面完成所有功能的演示
*/
#include<iostream>
using namespace std;
struct SUBJECT //课程信息结构体
{
char name[64]; //课程名称
int level; //课程等级
};
class STUDENT
{
public:
STUDENT(int nMax); //参数nMax的值传给成员变量m_nMax
virtual ~STUDENT();
void AddNewSubject(SUBJECT &szSub); //添加新课程
SUBJECT* GetSubject(int nIndex); //获取指定编号的课程
int GetSubjectCount(); //获取当前课程数目
private:
int m_nSubjectCount; //当前课程数目
int m_nMax; //最大课程数目
SUBJECT* pSubject; //课程结构体指针
};
STUDENT::STUDENT(int nMax)
{
nMax = 10;
int m_nSubjectCount = 6;
m_nMax = nMax;
//SUBJECT* pSubject = new pSubject[nMax];
}
STUDENT::~STUDENT()
{
delete []pSubject;
cout<<"内存释放完毕!"<<endl;
}
void STUDENT::AddNewSubject(SUBJECT &szSub)
{
cout<<"输入新课程的名称和等级!"<<endl;
SUBJECT* pSubject = &szSub;
m_nSubjectCount ++;
cin>>szSub.name;
//cin>>szSub.level;
}
*GetSubject(int nIndex)
{
SUBJECT* pSubject;
cout<<"请输入您所查找课程的编号!"<<nIndex<<endl;
cout<<"您所查找的课程为:"<<pSubject[nIndex].name<<endl;
cout<<"等级为:"<<pSubject[nIndex].level<<endl;
return 0;
}
int STUDENT::GetSubjectCount()
{
cout<<"当前课程数目为"<<m_nSubjectCount<<endl;
return 0;
}
int main(void)
{
SUBJECT sub[6]=
{
"college physics",7,
"mathematical analysis",9,
"college physics experiment",8,
"college English",9,
"mathematical logic",10,
"object oriented programming",10
};
int m_nMax;
STUDENT stu(m_nMax);
//STUDENT( m_nMax);
SUBJECT* pSubject;
stu.AddNewSubject(*pSubject);
int nIndex;
stu.GetSubject( nIndex);
stu.GetSubjectCount();
return 0;
}