블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Category

Recent Post

Recent Comment

Archive

2009. 8. 21. 19:08 .Net Project/.Net C#
반응형

 Program.Cs

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

public class KG
{
    public int Ban { get; set; }            // 반
    public int Num { get; set; }            // 번호
    public int Kg { get; set; }             // 몸무게
    public int SumBanKg { get; set; }       // 반 합계 몸무게
    public int BanAvg { get; set; }         // 반 평균 몸무게
    public int TotalKg { get; set; }        // 전체 합계 몸무게
    public int TotalAvg { get; set; }       // 전체 평균 몸무게

    public KG()
    {
        // Empty
    }
    public KG(int ban, int num, int kg)
    {
        this.Ban = ban;
        this.Num = num;
        this.Kg = kg;
    }
}

public class 채중관리프로그램
{
    public static void Main(string[] args)
    {
        int banTemp = 0;        // 반 임시 저장
        int numTemp = 0;        // 번호 임시 저장
        int kgTemp = 0;         // 몸무게 임시 저장

        string btn = "n";       // 추가 자료 입력 여부 저장

        List<KG> lst = new List<KG>();
        KG pi;

        Console.WriteLine("자료를 입력하세요.");
        do
        {
            pi = new KG();
            Console.Write("반 : _\b");
            banTemp = Convert.ToInt32(Console.ReadLine());      // 반정보 입력
            if (banTemp > 9)                                    // 반정보 9까지 인지 확인
            {
                Console.WriteLine("반은 1~9 사이의 값이여야 합니다.");      // Error
                return;
            }
            else
            {
                pi.Ban = banTemp;
            }

            Console.Write("번호 : __\b\b");
            numTemp = Convert.ToInt32(Console.ReadLine());      // 번호 입력
            if (numTemp > 10 || numTemp < 1)                    // 1~10 인지 확인
            {
                Console.WriteLine("번호는 1~10 사이의 값이여야 합니다.");    // Error
                return;
            }
            else
            {
                pi.Num = numTemp;
            }

            Console.Write("몸무게 : __\b\b");
            kgTemp = Convert.ToInt32(Console.ReadLine());       // 몸무게 입력
            if (kgTemp < 40 || kgTemp > 200)                    // 40 ~ 200 인지 확인
            {
                Console.WriteLine("몸무게는 40~200 사이의 값이여야 합니다."); // Error
                return;
            }
            else
            {
                pi.Kg = kgTemp;
            }
            lst.Add(pi);            // 리스트에 현제 입력된값 추가

            Console.Write("입력(y), 종료(n) : ");
            btn = Console.ReadLine().ToLower();     // 자료 추가 입력 여부 입력
        } while (btn == "y" && lst.Count < 10);    // 자료 추가 입력 여부 확인 & 최대 학생수 10명 확인

        Console.Clear();        // 화면 전부 지우기

        IEnumerable<IGrouping<int, KG>> q = from p in lst group p by p.Ban;     // 반별로 그룹핑
        int countBan = q.Count();                                               // 반수 확인
        foreach (IGrouping<int, KG> g in q)                                     // 반별 출력
        {
            Console.WriteLine("\r\n" + g.Key + "반\t번호\t몸무게");
            foreach (KG k in g)
            {
                Console.WriteLine("{0}\t {1}\t {2}", k.Ban, k.Num, k.Kg);       // 개인 출력
            }

            IEnumerable<int> query = from p in lst where p.Ban == g.Key select p.Kg;    // 몸무게만 선택
            pi.SumBanKg = query.Sum();                                                  // 몸무게 합산
            pi.BanAvg = (int)((double)query.Sum() / (double)query.Count() + 0.5);       // 반평균 계산 (반올림)
            pi.TotalKg += pi.BanAvg;                                                    // 전체 합산

            Console.WriteLine(g.Key + "반 평균 :" + pi.BanAvg);        // 반평균 출력
        }
        pi.TotalAvg = (int)(((double)pi.TotalKg / (double)countBan) + 0.5);     // 전체 평균 (반올림)
        Console.WriteLine("전체평균 : " + pi.TotalAvg);
    }
}


반응형

'.Net Project > .Net C#' 카테고리의 다른 글

파일처리(Console)  (0) 2009.08.24
인터넷쇼핑몰구축(Console)  (0) 2009.08.21
102장 윈폼(Windows Form)  (0) 2009.08.20
101장 프로젝션  (0) 2009.08.20
100장 쿼리표현식(LINQ)  (0) 2009.08.19
posted by Magic_kit