[문제] 다섯과목의 점수를 순서대로 입력받아 성적그래프를 세로로 출력하시오.
[풀이]
public static void SungJukPyo()
{
string [] Gawmok = {"국어","영어","수학","과학","국사"};
Console.WriteLine("================================");
Console.WriteLine("점수를 입력하세요.");
int[] Jumsu = new int[Gawmok.Length];
int i=0;
do{
try
{
Console.Write("{0}.{1} : ", (i+1), Gawmok[i]);
Jumsu[i] = checked(Convert.ToInt32(Console.ReadLine()));
if(Jumsu[i]>100 || Jumsu[i]<0)
{
throw new Exception("1~100까지의 정수값만 입력하십시오.");
}
else
{
i++;
}
}
catch(Exception e)
{
Console.WriteLine(e.Message);
continue;
}
}while(i<Gawmok.Length);
Console.WriteLine("================================");
string[,] ArrGraph = new string[Gawmok.Length,10];
int StarCnt;
int JumsuCnt=0;
//*을 아래쪽에서 위쪽으로 넣는다.
for(int j=0;j<5; j++)
{
StarCnt = Jumsu[j]/10; //별갯수
for(int k=9; k>=0; k--)
{
if(k<StarCnt)
ArrGraph[j,k] = "*";
}
JumsuCnt++;
}
Console.WriteLine("-----------------------------------------");
Console.WriteLine(" 성적그래프 ");
Console.WriteLine("-----------------------------------------");
for(int k=ArrGraph.GetLength(1)-1; k>=0; k--)
{
for(int j=0; j<ArrGraph.GetLength(0); j++)
Console.Write("{0,2}\t", ArrGraph[j,k]);
Console.WriteLine();
}
Console.WriteLine("-----------------------------------------");
for(int j=0; j<Gawmok.Length; j++)
Console.Write("{0}\t", Gawmok[j]);
Console.WriteLine();
float sum = 0;
for(int j=0; j<Gawmok.Length; j++)
{
Console.Write("{0}점\t", Jumsu[j]);
sum += Jumsu[j];
}
Console.WriteLine();
float avg = (float) sum / (float) Gawmok.Length;
Console.WriteLine("-----------------------------------------");
Console.WriteLine("총점 : {0}점", sum);
Console.WriteLine("평균 : {0:f1}점", avg);
Console.WriteLine("-----------------------------------------");
}