第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教科合計、教科合計を算出して、
のように表示させるソフトに変更してください。
半角スペースと半角の数字が完全に同じ大きさでないので、多少のずれが生じますが、
妥協しましょう。ある程度の見栄えになるには、かなりの試行錯誤が必要ですよ。
初心者のためのJava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすい vb 入門 vba 入門 基礎から応用まで 第1部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ