반응형

using System;
using System.Collections.Generic;
using System.Linq;

public class Weight
{
public int BanNum { get; set; } // 반
public int StuNum { get; set; } // 번호
public int Wei { get; set; } // 몸무게
public int BanHapWei { get; set; } // 반 합계
public int BanAvgWei { get; set; } // 반 평균
public int HapWei { get; set; } // 전제 합계
public int AvgWei { get; set; } // 전체 평균
public int Count { get; set; }
public int BanCount { get; set; } // 반수
public Weight() // 생성자
{
// Empty
}
}

public class 체중관리
{
public static void Main(string[] args)
{
Console.Title = "체중 관리 프로그램";
//[1] Input
List<Weight> lst = new List<Weight>(); // 입력데이터
Weight we;
string temp1; // 입력받은 반 저장
string temp2; // 입력받은 번호 저장
string temp3; // 입력받은 몸무게 저장
string btn = "n";
Console.WriteLine("=====반, 번호, 몸무게를 입력하세요 =====");
do
{
we = new Weight();
Console.Write("반 : _\b");
temp1 = Console.ReadLine();
if (Convert.ToInt32(temp1) >= 1 && Convert.ToInt32(temp1) <=9)
{
we.BanNum = Convert.ToInt32(temp1);
}
else
{
Console.WriteLine("반은 1반에서 9반 사이로 입력하세요.");
return;
}
Console.Write("번호 : _\b");
temp2 = Console.ReadLine();
if (Convert.ToInt32(temp2) >= 1 && Convert.ToInt32(temp2) <= 10)
{
we.StuNum = Convert.ToInt32(temp2);
}
else
{
Console.WriteLine("학생번호는 1부터 10 사이로 입력하세요.");
return;
}
Console.Write("몸무게 : ___\b\b\b");
temp3 = Console.ReadLine();
if (Convert.ToInt32(temp3) >= 40 && Convert.ToInt32(temp3) <=200)
{
we.Wei = Convert.ToInt32(temp3);
}
else
{
Console.WriteLine("몸무게는 40부터 200 사이로 입력하세요.");
}

lst.Add(we);
Console.Write("입력(y), 출력(n) : ");
btn = Console.ReadLine().ToLower(); // 소문자로
} while (btn == "y" && lst.Count <= 9);
Console.Clear();

//[3] Output
IEnumerable<IGrouping<int, Weight>> Query = from p in lst group p by p.BanNum;
we.BanCount = Query.Count();
foreach (IGrouping<int, Weight> g in Query)
{
Console.WriteLine("\r\n" + g.Key + "반\t번호\t몸무게" );

foreach (Weight k in g)
{
Console.WriteLine("{0}\t {1}\t {2}", k.BanNum, k.StuNum, k.Wei);
}
IEnumerable<int> q = from p in lst
where p.BanNum == g.Key
select p.Wei;
we.BanHapWei = q.Sum();
we.Count = q.Count();
we.BanAvgWei = Convert.ToInt32(q.Average());


we.HapWei += we.BanAvgWei;
we.AvgWei = we.HapWei / we.BanCount;
Console.WriteLine(g.Key + "반 평균 :" + we.BanAvgWei);
}

Console.WriteLine("전체평균 : " + we.AvgWei);
}
}

반응형

'Program > C#' 카테고리의 다른 글

웹페이지 자동로그인 구현  (0) 2011.03.24
급여 계산  (0) 2011.03.24
윈도우를 종료  (0) 2011.03.24
세가지 Timer 와 그 차이점  (0) 2011.03.24
WIN32 API를 이용  (0) 2011.03.24

+ Recent posts