第8講 添え付き名前をもった箱(配列)
第5話 成績一覧表の完成一歩前


成績一覧表
c++
を実現するプログラム例
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main(){
  cout<<"       成績一覧表"<<endl;
  cout<<"出席番号 国語 社会 数学 理科 英語 合計 平均"<<endl;
  int i,j,w,a[40][5];
  srand(static_cast<unsigned int>(time(0)));  //現在時刻を符号なしの整数値に強制的に変更し、srandのシード値にする
  for(i=0;i<40;i++){
    if(i+1<10){
      cout<<"  0"<<i+1<<"   ";
    }
    else{
      cout<<"  "<<i+1<<"   ";
    }
    for(j=0;j<5;j++){
      a[i][j]=rand()%100;
    }
    for(j=0;j<5;j++){
      if(j<4){
        if(a[i][j]<10){
          cout<<"0"<<a[i][j]<<"  ";
        }
        else{
          cout<<a[i][j]<<"  ";
        }
      }
      else{
        if(a[i][j]<10){
          cout<<"0"<<a[i][j]<<"  ";
        }
        else{
          cout<<a[i][j]<<"  ";
        }
      }
    }
    w=0;
    for(j=0;j<5;j++){
      w+=a[i][j];
    }
    if(w<10){
      cout<<"00"<<w<<"  ";
    }
    else{
      if(w<100){
        cout<<"0"<<w<<"  ";
      }
      else{
        cout<<w<<"  ";
      }
    }
    if(w/5<10){
      cout<<"0"<<w/5<<" ";
    }
    else{
      cout<<w/5<<" ";
    }
    cout<<endl;
  }
  cout<<"合計   ";
  for(i=0;i<5;i++){
    w=0;
    for(j=0;j<40;j++){
      w+=a[j][i];
    }
    if(w<100){
      cout<<"0"<<w<<" ";
    }
    else{
      cout<<w<<" ";
    }
  }
  cout<<endl;
  cout<<"平均    ";
  for(i=0;i<5;i++){
    w=0;
    for(j=0;j<40;j++){
      w+=a[j][i];
    }
    if(w/5<100){
      cout<<"0"<<w/5<<"  ";
    }
    else{
      cout<<w/5<<"  ";
    }
  }
  cout<<endl;
}

皆さん、このプログラムは社長main()が1人で、
すべて仕事をしてしまっています。
そこで、社長は命じるだけで、
その他は社員がすべて行うように変更しましょう。
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main(){
  
cout<<"       成績一覧表"<<endl;
  cout<<"出席番号 国語 社会 数学 理科 英語 合計 平均"<<endl;

  int i,j,w,a[40][5];
  srand(static_cast<unsigned int>(time(0)));  //現在時刻を符号なしの整数値に強制的に変更し、srandのシード値にする
  for(i=0;i<40;i++){
    if(i+1<10){
      cout<<"  0"<<i+1<<"   ";
    }
    else{
      cout<<"  "<<i+1<<"   ";
    }
    for(j=0;j<5;j++){
      a[i][j]=rand()%100;
    }
    for(j=0;j<5;j++){
      if(j<4){
        if(a[i][j]<10){
          cout<<"0"<<a[i][j]<<"  ";
        }
        else{
          cout<<a[i][j]<<"  ";
        }
      }
      else{
        if(a[i][j]<10){
          cout<<"0"<<a[i][j]<<"  ";
        }
        else{
          cout<<a[i][j]<<"  ";
        }
      }
    }
    w=0;
    for(j=0;j<5;j++){
      w+=a[i][j];
    }
    if(w<10){
      cout<<"00"<<w<<"  ";
    }
    else{
      if(w<100){
        cout<<"0"<<w<<"  ";
      }
      else{
        cout<<w<<"  ";
      }
    }
    if(w/5<10){
      cout<<"0"<<w/5<<" ";
    }
    else{
      cout<<w/5<<" ";
    }
    cout<<endl;
  }

  cout<<"合計   ";
  for(i=0;i<5;i++){
    w=0;
    for(j=0;j<40;j++){
      w+=a[j][i];
    }
    if(w<100){
      cout<<"0"<<w<<" ";
    }
    else{
      cout<<w<<" ";
    }
  }

 
 cout<<endl;
  cout<<"平均    ";
  for(i=0;i<5;i++){
    w=0;
    for(j=0;j<40;j++){
      w+=a[j][i];
    }
    if(w/5<100){
      cout<<"0"<<w/5<<"  ";
    }
    else{
      cout<<w/5<<"  ";
    }
  }
  cout<<endl;

}

色をつけたところを独立させて社員にしてください。
配列は、main()の前で宣言して
グローバル配列にしましょう。




第4話へ 
第6話へ

a

初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
VC++入門
VBA入門
専門用語なしのVBA入門
VB入門
初心者のためのEclipseによるJava入門