第10講 関数の学習
第5話 第4話解答例と問題

label1を空欄にするためlabel1を右クリしてプロパティを選び、
Textを空欄にしてください。
そうすると実行したとき、
となります。
Form1のプロパティのFontは12を選んでください。

プログラムソース
#pragma once
#include<stdlib.h>
char a[40][5];
char b[40][5];
char c[40][5];
      ・
      ・
      ・
#pragma endregion
  private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
           String^ wr=L"";
           String^ v;
           gakki1();
           v=label1->Text;
           wr=wr+v;
           gakki2();
           v=label1->Text;
           wr=wr+v;
           gakki3();
           v=label1->Text;
           wr=wr+v;
           goukei();
           v=label1->Text;
           wr=wr+v;
           heikin();
           v=label1->Text;
           wr=wr+v;
           label1->Text=wr;
        }
        void gakki1(void){
          char i;
          char j;
          String^ w=L"";
          w=w+L"1学期の成績\n";
          w=w+L"出席番号 国語 社会 数学 理科 英語\n";
          for(i=0;i<40;i++){
            if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
            if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
            for(j=0;j<5;j++){
              a[i][j]=rand() %100;
              if(a[i][j]<10)w=w+L"0"+(a[i][j]).ToString()+L" ";
              if((a[i][j]>=10) & (a[i][j]<100))w=w+(a[i][j]).ToString()+L" ";
            }
            w=w+L"\n";
          }
          w=w+L"\n";
          label1->Text=w;
        }
        void gakki2(void){
          char i;
          char j;
          String^ w=L"";
          w=w+L"2学期の成績\n";
          w=w+L"出席番号 国語 社会 数学 理科 英語\n";
          for(i=0;i<40;i++){
            if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
            if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
            for(j=0;j<5;j++){
              b[i][j]=rand() %100;
              if(b[i][j]<10)w=w+L"0"+(b[i][j]).ToString()+L" ";
              if((b[i][j]>=10) & (b[i][j]<100))w=w+(b[i][j]).ToString()+L" ";
            }
            w=w+L"\n";
          }
          w=w+L"\n";
          label1->Text=w;
        } 
        void gakki3(void){
          char i;
          char j;
          String^ w=L"";
          w=w+L"3学期の成績\n";
          w=w+L"出席番号 国語 社会 数学 理科 英語\n";
          for(i=0;i<40;i++){
            if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
            if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
            for(j=0;j<5;j++){
              c[i][j]=rand() %100;
              if(c[i][j]<10)w=w+L"0"+(c[i][j]).ToString()+L" ";
              if((c[i][j]>=10) & (c[i][j]<100))w=w+(c[i][j]).ToString()+L" ";
            }
            w=w+L"\n";
          }
          w=w+L"\n";
          label1->Text=w;
        }
        void goukei(void){
          char i;
          char j;
          String^ w=L"";
          w=w+L"1年間の合計\n";
          w=w+L"出席番号 国語 社会 数学 理科 英語\n";
          for(i=0;i<40;i++){
            if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
            if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
            for(j=0;j<5;j++){
              if((a[i][j]+b[i][j]+c[i][j])<10)w=w+L"00"+((a[i][j]+b[i][j]+c[i][j])).ToString()+L" ";
              if(((a[i][j]+b[i][j]+c[i][j])>=10) & ((a[i][j]+b[i][j]+c[i][j])<100))w=w+L"0"+((a[i][j]+b[i][j]+c[i][j])).ToString()+L" ";
              if((a[i][j]+b[i][j]+c[i][j])>=100)w=w+((a[i][j]+b[i][j]+c[i][j])).ToString()+L" ";
            }
            w=w+L"\n";
          }
          w=w+L"\n";
          label1->Text=w;
        }
        void heikin(void){
          char i;
          char j;
          String^ w=L"";
          w=w+L"1年間の平均\n";
          w=w+L"出席番号 国語 社会 数学 理科 英語\n";
          for(i=0;i<40;i++){
            if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
            if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
            for(j=0;j<5;j++){
              if(((a[i][j]+b[i][j]+c[i][j])/3)<10)w=w+L"0"+(((a[i][j]+b[i][j]+c[i][j])/3)).ToString()+L" ";
              if((((a[i][j]+b[i][j]+c[i][j])/3)>=10) & (((a[i][j]+b[i][j]+c[i][j])/3)<100))w=w+(((a[i][j]+b[i][j]+c[i][j])/3)).ToString()+L" ";
            }
            w=w+L"\n";
          }
          w=w+L"\n";
          label1->Text=w;
        }

  };
}

(コピーペースト用

#include<stdlib.h>
char a[40][5];
char b[40][5];
char c[40][5];
      ・
      ・
      ・
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ wr=L"";
String^ v;
gakki1();
v=label1->Text;
wr=wr+v;
gakki2();
v=label1->Text;
wr=wr+v;
gakki3();
v=label1->Text;
wr=wr+v;
goukei();
v=label1->Text;
wr=wr+v;
heikin();
v=label1->Text;
wr=wr+v;
label1->Text=wr;
}
void gakki1(void){
char i;
char j;
String^ w=L"";
w=w+L"1学期の成績\n";
w=w+L"出席番号 国語 社会 数学 理科 英語\n";
for(i=0;i<40;i++){
if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
for(j=0;j<5;j++){
a[i][j]=rand() %100;
if(a[i][j]<10)w=w+L"0"+(a[i][j]).ToString()+L" ";
if((a[i][j]>=10) & (a[i][j]<100))w=w+(a[i][j]).ToString()+L" ";
}
w=w+L"\n";
}
w=w+L"\n";
label1->Text=w;
}
void gakki2(void){
char i;
char j;
String^ w=L"";
w=w+L"2学期の成績\n";
w=w+L"出席番号 国語 社会 数学 理科 英語\n";
for(i=0;i<40;i++){
if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
for(j=0;j<5;j++){
b[i][j]=rand() %100;
if(b[i][j]<10)w=w+L"0"+(b[i][j]).ToString()+L" ";
if((b[i][j]>=10) & (b[i][j]<100))w=w+(b[i][j]).ToString()+L" ";
}
w=w+L"\n";
}
w=w+L"\n";
label1->Text=w;
}
void gakki3(void){
char i;
char j;
String^ w=L"";
w=w+L"3学期の成績\n";
w=w+L"出席番号 国語 社会 数学 理科 英語\n";
for(i=0;i<40;i++){
if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
for(j=0;j<5;j++){
c[i][j]=rand() %100;
if(c[i][j]<10)w=w+L"0"+(c[i][j]).ToString()+L" ";
if((c[i][j]>=10) & (c[i][j]<100))w=w+(c[i][j]).ToString()+L" ";
}
w=w+L"\n";
}
w=w+L"\n";
label1->Text=w;
}
void goukei(void){
char i;
char j;
String^ w=L"";
w=w+L"1年間の合計\n";
w=w+L"出席番号 国語 社会 数学 理科 英語\n";
for(i=0;i<40;i++){
if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
for(j=0;j<5;j++){
if((a[i][j]+b[i][j]+c[i][j])<10)w=w+L"00"+((a[i][j]+b[i][j]+c[i][j])).ToString()+L" ";
if(((a[i][j]+b[i][j]+c[i][j])>=10) & ((a[i][j]+b[i][j]+c[i][j])<100))w=w+L"0"+((a[i][j]+b[i][j]+c[i][j])).ToString()+L" ";
if((a[i][j]+b[i][j]+c[i][j])>=100)w=w+((a[i][j]+b[i][j]+c[i][j])).ToString()+L" ";
}
w=w+L"\n";
}
w=w+L"\n";
label1->Text=w;
}
void heikin(void){
char i;
char j;
String^ w=L"";
w=w+L"1年間の平均\n";
w=w+L"出席番号 国語 社会 数学 理科 英語\n";
for(i=0;i<40;i++){
if(i+1<10)w=w+L" 0"+(i+1).ToString()+L" ";
if(i+1>=10)w=w+L" "+(i+1).ToString()+L" ";
for(j=0;j<5;j++){
if(((a[i][j]+b[i][j]+c[i][j])/3)<10)w=w+L"0"+(((a[i][j]+b[i][j]+c[i][j])/3)).ToString()+L" ";
if((((a[i][j]+b[i][j]+c[i][j])/3)>=10) & (((a[i][j]+b[i][j]+c[i][j])/3)<100))w=w+(((a[i][j]+b[i][j]+c[i][j])/3)).ToString()+L" ";
}
w=w+L"\n";
}
w=w+L"\n";
label1->Text=w;
}

};
}


ビルドの後で実行ボタンを押す前

ビルドの後で実行ボタンを押した後

さて、では皆さん問題です。
各学期と1年間の合計、1年間の平均それぞれのの5教科合計、教科合計を算出して、



のように表示させるソフトに変更してください。
半角スペースと半角の数字が完全に同じ大きさでないので、多少のずれが生じますが、
妥協しましょう。ある程度の見栄えになるには、かなりの試行錯誤が必要ですよ。



第4話へ 第6話へ



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