Blog Content

    티스토리 뷰

    01.C#-Console 성적입력 출력

    반응형
    Visual Studio 2008 C# Console에서 작성된 성적입력 예제입니다. [출처 - 멍멍]

    Program.cs
    using System;
    using System.Collections.Generic;

    public class MyClass
    {
        public static void Main(string[] args)
        {
            List<Cals> lst = new List<Cals>();
            Cals p1;
            string tempNum;
            string tempEnglish;
            string tempJapan;
            string btn = "n";

            bool flag = false;

            do
            {
                p1 = new Cals();
                Console.WriteLine("자료를 입력하세요.");
                Console.Write("학생번호 : _\b");
                tempNum = Console.ReadLine();

                // 학생번호가 2자리수가 넘어갈경우
                if (Convert.ToInt32(tempNum) > 9)
                {
                    Console.WriteLine("학생번호는 정수 1자리로 입력하세요");
                }
                else
                {
                    p1.Num = Convert.ToInt32(tempNum);
                }

                Console.Write("영어점수 : ___\b\b\b");
                tempEnglish = Console.ReadLine();

                // 영어점수가 0점 이하 또는 100점 이상일 경우
                if (Convert.ToInt32(tempEnglish) < 0 ||
                        Convert.ToInt32(tempEnglish) > 100)

                {
                    Console.WriteLine("영어점수 0 ~ 100 범위의 정수값 입력하세요.");
                }
                else
                {
                    p1.English = Convert.ToInt32(tempEnglish);
                }

                Console.Write("일어점수 : ___\b\b\b");
                tempJapan = Console.ReadLine();

                // 일어점수가 0점 이하 또는 100점 이상일 경우
                if (Convert.ToInt32(tempJapan) < 0 ||
                          Convert.ToInt32(tempJapan) > 100)

                {
                    Console.WriteLine("일어점수 0 ~ 100 범위의 정수값 입력하세요.");
                }
                else
                {
                    p1.Japan = Convert.ToInt32(tempJapan);
                }

                if (flag == false// 자료입력 시작 확인 (첫번째 data 는 바로 입력)
                {
                    lst.Add(p1);
                    flag = true;
                }
                else   //이전 자료의 학생번호와 비교 같을경우 return
                {
                    for (int i = 0; i < lst.Count; i++)
                    {
                        if (lst[i].Num == p1.Num)
                        {
                            Console.WriteLine("동일 학생번호가 있습니다.");
                            return;
                        }
                    }
                    lst.Add(p1);
                }
                Console.Write("입력(y), 종료(n) : ");
                btn = Console.ReadLine().ToLower();
            } while (btn == "y" && lst.Count <= 4);  // 학생수 최대 5명

            for (int i = 0; i < lst.Count; i++)
            {
                // 합계 점수 계산
                lst[i].Total = lst[i].English + lst[i].Japan;

                // 반올림 계산
                lst[i].Avr = (int)(lst[i].Total / 2.0 + 0.5);

                // 학점 계산
                if (lst[i].Avr <= 70) { //70점 이하
                    lst[i].Hakjum = "D";
                }
                else if (lst[i].Avr <= 80) { //80점 이하
                    lst[i].Hakjum = "C";
                }
                else if (lst[i].Avr <= 90) { //90점 이하
                    lst[i].Hakjum = "B";
                }
                else {
                    lst[i].Hakjum = "A"//그외 (100점 이하)
                }
            }

            //입력화면 초기화
            Console.Clear();
            Console.WriteLine("학생번호        영어   일어     총점   평균    학점");
            for (int i = 0; i < lst.Count; i++)
            {
                Console.WriteLine("{0}\t\t{1}\t{2}\t{3}\t{4}\t{5}",
                             lst[i].Num, lst[i].English,
    lst[i].Japan, lst[i].Total,
                                  lst[i].Avr, lst[i].Hakjum);

            }
        }
    }

    Cals.cs
    using System;
    public class Cals
    {
        // 속성
        public int Num { get; set; }
        public int English { get; set; }
        public int Japan { get; set; }
        public int Total { get; set; }
        public int Avr { get; set; }
        public string Hakjum { get; set; }

        public Cals() {
            // Empty
        }
        public Cals(string num, string english, string japan)
        {
            this.Num = Convert.ToInt32(num);
            this.English = Convert.ToInt32(english);
            this.Japan = Convert.ToInt32(japan);
        }
    }

    결과화면





    학생번호 중복일때 오류문



    반응형

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

    81.C# - 람다식  (0) 2009.08.19
    80.C# - 확장메서드  (0) 2009.08.19
    13.C# - 알고리즘 : 그룹  (0) 2009.08.18
    78.C# - 초기화자  (0) 2009.08.18
    77.C# - Attribute 사용자 정의 특성  (0) 2009.08.18

    Comments