C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: C#で成績表つくりについて質問があります。


(過去ログ 36 を表示中)

[トピック内 14 記事 (1 - 14 表示)]  << 0 >>

■18342 / inTopicNo.1)  C#で成績表つくりについて質問があります。
  
□投稿者/ c#マン (1回)-(2008/05/13(Tue) 15:02:58)

分類:[.NET 全般] 

はじめまして、C#マンと申します。
解けない問題があって、お伺いします。

1.次の成績表の合計点と平均点を求める。
2.平均点で昇順に並べ替えなさい。
3.数学点数で降順に並べ替えなさい。

です。

成績表は
番号 名前 国語 数学 理科 社会 英語 合計点 平均点
1   A  65   71  74   82   97
2   B  84   83  74   64   65
3   C  74   74  78   80   78
4   D  90   90  90   90   90
5   E  87   78  85   60   88
6   F  93   95  94   92   95
です。


こう書いたんですが

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication4
{
class Program
{
class Pro
{
int num; //番号
char name; //名前
int language; //国語
int math; //数学
int science; //理科
int society; //社会
int eng; //英語
int total; //合計点
int avg; //平均点


public Pro()
{
}
}

class St:Pro
{
public static void Main(string[] args)
{
//struct grade data[3];
//grade [] data=new grade[3];

Pro [] student = new Pro[6];
int temp;
//int[] student = new int[6];

//struct SEISEKI student[6]; //成績表
//struct SEISEKI temp; //臨時変数

//学生の成績入力する。

student[0].num = 1;
student[0].name = 'A';
student[0].language = 65;
student[0].math = 71;
student[0].science = 74;
student[0].society = 82;
student[0].eng = 97;
student[0].total = 0;
student[0].avg = 0;

student[1].num = 2;
student[1].name = 'B';
student[1].language = 84;
student[1].math = 83;
student[1].science = 74;
student[1].society = 64;
student[1].eng = 65;
student[1].total = 0;
student[1].avg = 0;

student[2].num = 3;
student[2].name = 'C';
student[2].language = 74;
student[2].math = 74;
student[2].science = 78;
student[2].society = 80;
student[2].eng = 78;
student[2].total = 0;
student[2].avg = 0;

student[3].num = 4;
student[3].name = 'D';
student[3].language = 90;
student[3].math = 90;
student[3].science = 90;
student[3].society = 90;
student[3].eng = 90;
student[3].total = 0;
student[3].avg = 0;

student[4].num = 5;
student[4].name = 'E';
student[4].language = 87;
student[4].math = 78;
student[4].science = 85;
student[4].society = 60;
student[4].eng = 88;
student[4].total = 0;
student[4].avg = 0;

student[5].num = 6;
student[5].name = 'F';
student[5].language = 93;
student[5].math = 95;
student[5].science = 94;
student[5].society = 92;
student[5].eng = 95;
student[5].total = 0;
student[5].avg = 0;



int sum = 0;
for (int i = 0; i < 6; i++)
{

sum = sum + student[i].language;
sum = sum + student[i].math;
sum = sum + student[i].science;
sum = sum + student[i].society;
sum = sum + student[i].eng;

student[i].total = sum;
student[i].avg = sum / 5;

sum = 0;
}

Console.WriteLine("問題1 合計点と平均点を求める");
Console.WriteLine("番号 名前 国語 数学 理科 社会 英語 合計点 平均点");

for (int i = 0; i < 6; i++)
{
Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8}", student[i].num, student[i].name, student[i].language, student[i].math, student[i].science, student[i].society, student[i].eng, student[i].total, student[i].avg);
}

//test2
for (int j = 0; j < 6; j++)
{
for (int k = 0; k < 6; k++)
{
if (student[j].avg < student[k].avg)
{
temp = student[j];
student[j] = student[k];
student[k] = temp;
}
}
}

Console.WriteLine();
Console.WriteLine("問題2 平均点で昇順");
Console.WriteLine("番号 名前 国語 数学 理科 社会 英語 合計点 平均点");
for (int i = 0; i < 6; i++)
{
Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8}", student[i].num, student[i].name, student[i].language, student[i].math, student[i].science, student[i].society, student[i].eng, student[i].total, student[i].avg);
}

//test3
for (int j = 0; j < 6; j++)
{
for (int k = 0; k < 6; k++)
{
if (student[j].eng > student[k].eng)
{
temp = student[j];
student[j] = student[k];
student[k] = temp;
}
}
}


Console.WriteLine("問題3 英語点で降側");
Console.WriteLine("番号 名前 国語 数学 理科 社会 英語 合計点 平均点");
for (int i = 0; i < 6; i++)
{
Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8}", student[i].num, student[i].name, student[i].language, student[i].math, student[i].science, student[i].society, student[i].eng, student[i].total, student[i].avg);
}

}
}
}
}
作動できないんです。
どうかよろしくお願いします。
引用返信 編集キー/
■18346 / inTopicNo.2)  Re[1]: C#で成績表つくりについて質問があります。
□投稿者/ いしだ (113回)-(2008/05/13(Tue) 15:31:34)
こんにちは。

ざっと見ですけど、
・Proクラスのフィールドがアクセス不可
・int tmpにProを代入しようとしている
・Proクラスが生成されていない
など気づきました。

※ ソースを含むメッセージは図表モードで投稿すると良いですよ。
引用返信 編集キー/
■18348 / inTopicNo.3)  Re[1]: C#で成績表つくりについて質問があります。
□投稿者/ επιστημη (978回)-(2008/05/13(Tue) 15:55:57)
επιστημη さんの Web サイト
2008/05/13(Tue) 15:58:11 編集(投稿者)

なんも質問してないやん。ダダこねてるだけやん。

> 作動できないんです。

年端のいかぬおチビちゃんじゃないんだから泣いていないで"説明"しましょう。

コンパイルエラー? どこで? どんな?
実行時エラー? 症状は?
期待と反する動作? 何を期待し、それに反してどうなった?

引用返信 編集キー/
■18349 / inTopicNo.4)  Re[2]: C#で成績表つくりについて質問があります。
□投稿者/ c#マン (2回)-(2008/05/13(Tue) 16:32:34)
すみません。
student[0]の.以降の部分が
保護水準の問題でエラーが発生します。
図表モードでもう一度書きます。
どうぞよろしくお願いします。

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication4
{
class Program
{
class Pro
{
int num; //番号
char name; //名前
int language; //国語
int math; //数学
int science; //理科
int society; //社会
int eng; //英語
int total; //合計点
int avg; //平均点


public Pro()
{
}
}

class St:Pro
{
public static void Main(string[] args)
{
//struct grade data[3];
//grade [] data=new grade[3];

Pro [] student = new Pro[6];
int temp;
//int[] student = new int[6];

//struct SEISEKI student[6]; //成績表
//struct SEISEKI temp; //臨時変数

//学生の成績入力する。

student[0].num = 1;
student[0].name = 'A';
student[0].language = 65;
student[0].math = 71;
student[0].science = 74;
student[0].society = 82;
student[0].eng = 97;
student[0].total = 0;
student[0].avg = 0;

student[1].num = 2;
student[1].name = 'B';
student[1].language = 84;
student[1].math = 83;
student[1].science = 74;
student[1].society = 64;
student[1].eng = 65;
student[1].total = 0;
student[1].avg = 0;

student[2].num = 3;
student[2].name = 'C';
student[2].language = 74;
student[2].math = 74;
student[2].science = 78;
student[2].society = 80;
student[2].eng = 78;
student[2].total = 0;
student[2].avg = 0;

student[3].num = 4;
student[3].name = 'D';
student[3].language = 90;
student[3].math = 90;
student[3].science = 90;
student[3].society = 90;
student[3].eng = 90;
student[3].total = 0;
student[3].avg = 0;

student[4].num = 5;
student[4].name = 'E';
student[4].language = 87;
student[4].math = 78;
student[4].science = 85;
student[4].society = 60;
student[4].eng = 88;
student[4].total = 0;
student[4].avg = 0;

student[5].num = 6;
student[5].name = 'F';
student[5].language = 93;
student[5].math = 95;
student[5].science = 94;
student[5].society = 92;
student[5].eng = 95;
student[5].total = 0;
student[5].avg = 0;



int sum = 0;
for (int i = 0; i < 6; i++)
{

sum = sum + student[i].language;
sum = sum + student[i].math;
sum = sum + student[i].science;
sum = sum + student[i].society;
sum = sum + student[i].eng;

student[i].total = sum;
student[i].avg = sum / 5;

sum = 0;
}

Console.WriteLine("問題1 合計点と平均点を求める");
Console.WriteLine("番号 名前 国語 数学 理科 社会 英語 合計点 平均点");

for (int i = 0; i < 6; i++)
{
Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8}", student[i].num, student[i].name, student[i].language, student[i].math, student[i].science, student[i].society, student[i].eng, student[i].total, student[i].avg);
}

//test2
for (int j = 0; j < 6; j++)
{
for (int k = 0; k < 6; k++)
{
if (student[j].avg < student[k].avg)
{
temp = student[j];
student[j] = student[k];
student[k] = temp;
}
}
}

Console.WriteLine();
Console.WriteLine("問題2 平均点で昇順");
Console.WriteLine("番号 名前 国語 数学 理科 社会 英語 合計点 平均点");
for (int i = 0; i < 6; i++)
{
Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8}", student[i].num, student[i].name, student[i].language, student[i].math, student[i].science, student[i].society, student[i].eng, student[i].total, student[i].avg);
}

//test3
for (int j = 0; j < 6; j++)
{
for (int k = 0; k < 6; k++)
{
if (student[j].eng > student[k].eng)
{
temp = student[j];
student[j] = student[k];
student[k] = temp;
}
}
}


Console.WriteLine("問題3 英語点で降側");
Console.WriteLine("番号 名前 国語 数学 理科 社会 英語 合計点 平均点");
for (int i = 0; i < 6; i++)
{
Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8}", student[i].num, student[i].name, student[i].language, student[i].math, student[i].science, student[i].society, student[i].eng, student[i].total, student[i].avg);
}

}
}
}
}

引用返信 編集キー/
■18350 / inTopicNo.5)  Re[3]: C#で成績表つくりについて質問があります。
□投稿者/ 鶏唐揚 (94回)-(2008/05/13(Tue) 16:41:20)
2008/05/13(Tue) 16:43:03 編集(投稿者)

インデント入れようよ…何も考えずコピペし直してるだけってのが丸見え。

それに書き直したのはおそらくεπιστημηさんに指摘されたからでしょうが、
それならεπιστημηさんの前にいしださんが
>ざっと見ですけど、
>・Proクラスのフィールドがアクセス不可
>・int tmpにProを代入しようとしている
>・Proクラスが生成されていない
>など気づきました。
と既に大きなヒントを出してますよね。これ見てないんでしょうか?
私はC#は詳しくありませんが、保護水準云々ってことは
「Proクラスのフィールドがアクセス不可」が怪しいと思いませんか?

上記に挙げられた問題点を修正してみても直らなかったら質問続行すればいいですが
なんにもせずただただ「お願いします」じゃそのうち誰も答えなくなってしまいますよ。
引用返信 編集キー/
■18351 / inTopicNo.6)  Re[3]: C#で成績表つくりについて質問があります。
□投稿者/ επιστημη (979回)-(2008/05/13(Tue) 16:43:58)
επιστημη さんの Web サイト
2008/05/13(Tue) 16:58:57 編集(投稿者)

> student[0]の.以降の部分が
> 保護水準の問題でエラーが発生します。

メンバがpublicになってないからですね。

> 図表モードでもう一度書きます。

図表モードになってません。

# で、やっぱりどこにも「質問」は無し。
# なにを「どうぞよろしくお願い」してるんですか?

引用返信 編集キー/
■18352 / inTopicNo.7)  Re[3]: C#で成績表つくりについて質問があります。
□投稿者/ bad14mg (1回)-(2008/05/13(Tue) 16:45:13)
2008/05/13(Tue) 16:46:30 編集(投稿者)
2008/05/13(Tue) 16:46:23 編集(投稿者)

はじめまして。bad14mgと申します。
いしださんのおっしゃってる通りだとおもいますが・・・。

>・Proクラスのフィールドがアクセス不可

> class Pro
> {
> int num; //番号
> char name; //名前
〜〜〜略
> }

アクセス修飾子を付加する。


> ・Proクラスが生成されていない

student[0] = new Pro();
indexが5まで同様

> ・int tmpにProを代入しようとしている
tmpの型はProクラス


引用返信 編集キー/
■18353 / inTopicNo.8)  Re[4]: C#で成績表つくりについて質問があります。
□投稿者/ 霜月 (1回)-(2008/05/13(Tue) 17:13:13)
初めて書き込みます。霜月です。よろしくお願いします。
No18350 (鶏唐揚 さん) に返信

> インデント入れようよ…何も考えずコピペし直してるだけってのが丸見え。

この掲示板の仕様が、インデントを入れても反映されないものだと記憶しています。
というか、大抵の掲示板ではインデントが反映されないような……
半角スペースで調整するしかないってのもつらいです。


質問者に対しては、他の投稿者の方の通りに修正すれば上手くいくので問題ないかと。

引用返信 編集キー/
■18354 / inTopicNo.9)  Re[5]: C#で成績表つくりについて質問があります。
□投稿者/ 組込系の人 (33回)-(2008/05/13(Tue) 17:27:34)
2008/05/13(Tue) 17:28:35 編集(投稿者)
図表モードでかいてます。

この下にTAB
	for(int i = 0; i < 100; i++){
		MessageBox.Show("びっくりするほどユートピア");
	}

これでTAB入るのかな?

> インデント入れようよ…何も考えずコピペし直してるだけってのが丸見え。

というのは、ソースから張ったんじゃなくて図表モードにして前の書き込みをコピペしたんでしょうね・・・

最近
 「わかりません。おねがいします。」
とエスパー相手に質問をする人がいますが、
みなさん普通の人間ですので、自分で何処までやって
どの部分で躓いたのかを説明しないと誰も答えられませんよ?

引用返信 編集キー/
■18355 / inTopicNo.10)  Re[3]: C#で成績表つくりについて質問があります。
□投稿者/ 倉田 有大 (224回)-(2008/05/13(Tue) 17:31:26)
2008/05/13(Tue) 17:35:31 編集(投稿者)
2008/05/13(Tue) 17:34:06 編集(投稿者)

No18349 (c#マン さん) に返信
> すみません。
> student[0]の.以降の部分が
> 保護水準の問題でエラーが発生します。
> 図表モードでもう一度書きます。
> どうぞよろしくお願いします。

ちょっと一気に書きすぎです。public宣言してないというのはもう指摘でていますね。
もうちょっと、短いソースから挑戦した方がいいです。
コンパイルが通るまで、ソースを削っていくことをお勧めします。

後、みなさまもうちょっとやさしく返信されてはいかがでしょう。
なぜか、隙のある質問には、必要以上にきつい返信が最近、目立つ気がします。みてる方もぎすぎすしてしまいます。
もうちょっと、まったりといきましょうよ〜
引用返信 編集キー/
■18357 / inTopicNo.11)  Re[4]: C#で成績表つくりについて質問があります。
□投稿者/ 鶏唐揚 (96回)-(2008/05/13(Tue) 17:44:47)
2008/05/13(Tue) 17:48:10 編集(投稿者)

No18355 (倉田 有大 さん) に返信
> 後、みなさまもうちょっとやさしく返信されてはいかがでしょう。
> なぜか、隙のある質問には、必要以上にきつい返信が最近、目立つ気がします。みてる方もぎすぎすしてしまいます。
> もうちょっと、まったりといきましょうよ〜
失礼しました。
どうにも最近、こういうのばかり目にしていて、
普通に指摘したら「もういいです」的な対応したり荒らし行為に走った奴もいたので
ピリピリしてました。
さらに、いまやインターネットや掲示板というのは生活の一部と言っていいくらい普及してるので
最低限ネチケットを覚えてくる・使う掲示板のルールを読むのが筋だと思ってたので、守れてない人にきつい言い方してました。
今後は気をつけます


霜月さんに返信
>この掲示板の仕様が、インデントを入れても反映されないものだと記憶しています。
>というか、大抵の掲示板ではインデントが反映されないような……
ここのように、プログラムコードを扱う可能性がある掲示板では
半角スペースやタブが重要になってくるので、サポートされてることが多いです
この掲示板でいえば「図表モード」にあたります。
引用返信 編集キー/
■18358 / inTopicNo.12)  Re[5]: C#で成績表つくりについて質問があります。
□投稿者/ 組込系の人 (34回)-(2008/05/13(Tue) 17:49:40)
No18357 (鶏唐揚 さん) に返信
> ■No18355 (倉田 有大 さん) に返信
>>後、みなさまもうちょっとやさしく返信されてはいかがでしょう。
>>なぜか、隙のある質問には、必要以上にきつい返信が最近、目立つ気がします。みてる方もぎすぎすしてしまいます。
>>もうちょっと、まったりといきましょうよ〜
> 失礼しました。
> どうにも最近、こういうのばかり目にしていて、
> 普通に指摘したら「もういいです」的な対応したり荒らし行為に走った奴もいたので
> ピリピリしてました。
> さらに、いまやインターネットや掲示板というのは生活の一部と言っていいくらい普及してるので
> 最低限ネチケットを覚えてくる・使う掲示板のルールを読むのが筋だと思ってたので、守れてない人にきつい言い方してました。
> 今後は気をつけます

自分もちょっと前に荒らした人に憤りを感じてたので、
便乗してきつい言い方になってるかもしれないです。
倉田さんの指摘を深くこころに刻んでおきます。
まったりって、、、、いいよね!
引用返信 編集キー/
■18363 / inTopicNo.13)  Re[5]: C#で成績表つくりについて質問があります。
□投稿者/ 霜月 (2回)-(2008/05/13(Tue) 19:05:31)
No18357 (鶏唐揚 さん) に返信

>>この掲示板の仕様が、インデントを入れても反映されないものだと記憶しています。
>>というか、大抵の掲示板ではインデントが反映されないような……
> ここのように、プログラムコードを扱う可能性がある掲示板では
> 半角スペースやタブが重要になってくるので、サポートされてることが多いです
> この掲示板でいえば「図表モード」にあたります。

そうか……そういう便利な機能があったのか。

それで、いしださんの
>※ ソースを含むメッセージは図表モードで投稿すると良いですよ。
となるわけですね。

今後の参考にさせていただきます。
偉そうに口出して申し訳ありませんでした。
引用返信 編集キー/
■18365 / inTopicNo.14)  Re[6]: C#で成績表つくりについて質問があります。
□投稿者/ よしお (2回)-(2008/05/13(Tue) 19:21:01)

c#マン さん、図表モードってわかりましたか?投稿するときの本文の上に
投稿モードというのがあるでしょ。通常モードにチェックが入っているので
すぐ右の図表モードにチェックをいれればよいのです。
ここの掲示板の方は敬語を使わない人がたまにいるので、そういう環境にいる人が
ここにくると「なんじゃこりゃ」と思うかもしれませんが、根はいい人ばかりですから
気にしないでね。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -