注册 登录
编程论坛 C++教室

类中 嵌套调用

愿o圆o安 发布于 2017-03-15 21:18, 1492 次点击
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
#define N 5
 
class student
{ public:
  char num[16];
  char name[8];
  int  score[4];
  
void input( );
void input(char nu[],char na[],int a[] );
  void print( );

};

class Grade
{
public:
       // void Add();
       // void Erase();
      //  void Change();
       // void Search();
       // void Sort();            //总分排序
      //  void GetHigh();            //最高分
      //  void GetLow();            //最低分
      //  void GetAverage();        //平均分
      //  void List();
void input( );
void print( );
private:
        student s[100];    //学生
        int number;        //已经输入成绩的学生人数
};



void Grade::input( )
{
     int j,flag=1;
     number=1;
     while(flag)
     {
        cout<<"please enter student num:";
            cin>>s[number].num;
        cout<<"please enter student name:";
            cin>>s[number].name;
       for(j=0;j<4;j++)
       {
           cout<<"please enter student score:";
           cin>>s[number].score[j] ;
       }
        number++;
        cout<<"if input again,enter 1,else enter 0:";
        cin>>flag;
     }
}

void Grade::print( )
{
     int i,j;
     for(i=1;i<number;i++)
     {
        cout<<"-------------------------------------------------\n";
        cout<<"\n学号   姓名    成绩1   成绩2  成绩3   成绩4\n";
        cout<<"-------------------------------------------------\n";
        cout<<s[number].num<<"   "<<s[number].name<<"      ";
        for(j=0;j<4;j++)
        cout<<s[number].score[j] <<"     ";
        cout<<"\n-----------------------------------------------\n";
     }
}

 
void main()
{
       Grade rjgcbd2016;
       rjgcbd2016.input( );
       rjgcbd2016.print( );
}





在grade 类中创建student类 存储数据  但是不知道怎么调用  或者存储的有问题

求解
2 回复
#2
rjsp2017-03-16 09:05
我个人建议你别浪费时间做这些有害的题目,写这些有害的代码了。
如果真想学C++,尽早找本靠谱的书

void Grade::input( )
{
     int j,flag=1;
     number=0;
     ……
}

void Grade::print( )
{
     int i,j;
     for(i=0;i<number;i++)
     {
        ……
        cout<<s[i].num<<"   "<<s[i].name<<"      ";
        for(j=0;j<4;j++)
            cout<<s[i].score[j] <<"     ";
        ……
     }
}
#3
yangfrancis2017-03-17 09:37
建立另一个类的成员指针,需要激活时为其分配内存空间
1