第26講 クラスの学習その1☆☆
第5話 クラスにメソッドを追加する
第4話問題解答例

#include<iostream>
#include<string>
#include<stdlib.h>
using namespace System;
using namespace std;
struct K{
  //フィールド
  char a[3][40];
  char as[3][40];
  char kok[40],sya[40],suu[40],rik[40],eig[40];
  int d[3][5];

  //メソッド
  void f1(char* na,char* nb,char* nc); //名前の取得
  void f2(char* sa,char* sb,char* sc); //性別の取得
  void f3(int nm,int d1,int d2,int d3,int d4,int d5); //得点の取得

};

void K::f1(char* na,char* nb,char* nc ){
  strcpy(a[0],na); //出席番号0の名前取得
  strcpy(a[1],nb); //出席番号1の名前取得
  strcpy(a[2],nc); //出席番号2の名前取得
}

void K::f2(char* sa,char* sb,char* sc ){
  strcpy(as[0],sa); //出席番号0の性別取得
  strcpy(as[1],sb); //出席番号1の性別取得
  strcpy(as[2],sc); //出席番号2の性別取得
}

void K::f3(int nm,int d1,int d2,int d3,int d4,int d5){
  d[nm][0]=d1; //出席番号nmの国語点数取得
  d[nm][1]=d2; //出席番号nmの社会点数取得
  d[nm][2]=d3; //出席番号nmの数学点数取得
  d[nm][3]=d4; //出席番号nmの理科点数取得
  d[nm][4]=d5; //出席番号nmの英語点数取得
}

void main(){
  int i,j;
  K A;
  A.f1("太郎","次郎","花子");
  A.f2("男","男","女");
  strcpy(A.kok,"国語");
  strcpy(A.sya,"社会");
  strcpy(A.suu,"数学");
  strcpy(A.rik,"理科");
  strcpy(A.eig,"英語");
  A.f3(0,85,65,78,59,82);
  A.f3(1,27,52,28,45,60);
  A.f3(2,95,97,88,99,93);
  cout<<"クラスA:" <<endl;
  cout<<"名前"<<" "<<"性"<<" "<<A.kok<<" "<<A.sya<<" "<<A.suu<<" "<<A.rik<<" "<<A.eig<<" "<<endl;
  for(i=0;i<3;i++){
    cout<<A.a[i]<<" "<<A.as[i];
    for(j=0;j<5;j++)if(A.d[i][j]<10)cout<<" "<<A.d[i][j]<<" ";else cout<<" "<<A.d[i][j]<<" ";
    cout<<endl;
  }

  K B;
  B.f1("梅子","凛子","一郎");
  B.f2("女","女","男");
  B.f3(0,15,25,28,29,2);
  B.f3(1,32,44,57,46,71);
  B.f3(2,74,5,56,41,23);
  cout<<"クラスB:" <<endl;
  for(i=0;i<3;i++){
    cout<<B.a[i]<<" "<<B.as[i];
    for(j=0;j<5;j++)if(B.d[i][j]<10)cout<<" "<<B.d[i][j]<<" ";else cout<<" "<<B.d[i][j]<<" ";
    cout<<endl;
  }

  K C;
  C.f1("英二","尚子","良太");
  C.f2("男","女","男");
  C.f3(0,84,58,65,78,62);
  C.f3(1,32,24,38,55,70);
  C.f3(2,99,99,98,98,94);
  cout<<"クラスC:" <<endl;
  for(i=0;i<3;i++){
    cout<<C.a[i]<<" "<<C.as[i];
    for(j=0;j<5;j++)if(C.d[i][j]<10)cout<<" "<<C.d[i][j]<<" ";else cout<<" "<<C.d[i][j]<<" ";
    cout<<endl;
  }

  K D;
  D.f1("淳子","純太","直美");
  D.f2("女","男","女");
  D.f3(0,15,22,13,42,53);
  D.f3(1,33,44,55,66,77);
  D.f3(2,5,7,8,9,3);
  cout<<"クラスD:" <<endl;
  for(i=0;i<3;i++){
    cout<<D.a[i]<<" "<<D.as[i];
    for(j=0;j<5;j++)if(D.d[i][j]<10)cout<<" "<<D.d[i][j]<<" ";else cout<<" "<<D.d[i][j]<<" ";
    cout<<endl;
  }
}

実行画面


詳しい解説は次話で行いますが、
  A.f1("太郎","次郎","花子");
  A.f2("男","男","女");

  A.f3(0,85,65,78,59,82);
  A.f3(1,27,52,28,45,60);
  A.f3(2,95,97,88,99,93);
の使い方に注目して下さい。
そして、関数の内容にも注意して下さい。
void K::f1(char* na,char* nb,char* nc ){
  strcpy(a[0],na); //出席番号0の名前取得
  strcpy(a[1],nb); //出席番号1の名前取得
  strcpy(a[2],nc); //出席番号2の名前取得
}

void K::f2(char* sa,char* sb,char* sc ){
  strcpy(as[0],sa); //出席番号0の性別取得
  strcpy(as[1],sb); //出席番号1の性別取得
  strcpy(as[2],sc); //出席番号2の性別取得
}

void K::f3(int nm,int d1,int d2,int d3,int d4,int d5){
  d[nm][0]=d1; //出席番号nmの国語点数取得
  d[nm][1]=d2; //出席番号nmの社会点数取得
  d[nm][2]=d3; //出席番号nmの数学点数取得
  d[nm][3]=d4; //出席番号nmの理科点数取得
  d[nm][4]=d5; //出席番号nmの英語点数取得
}




第4話へ 第6話へ

戻る

VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座