티스토리 뷰

개발/산출물(C#)

사칙연산

개발자와코더사이가 PM일까? 2011. 4. 21. 01:05
반응형

문제 :
두 자연수 a,b 를 입력으로 받아 a+b(합),a-b(차),a*b(곱),a/b(몫),a%b(나머지) 를 구하는 프로그램을 작성하시오.

제한 조건 :
//두수는 1000 이하
//두번쨰는 수는 무조건 0이면 안된다.


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

namespace op
{
    
    public class Calc
    {
        public int intFirst;
        public int intSecond;
        private float floSum;
       
        public float floSumPlus;
        public float floSumMinus;
        public float floSumMultiplication;
        public float floSumDivision;

        public float FCalc(int intFirst, int intSecond, string cChar)
        {
            switch (cChar)
            {
              case "Plus":
                floSum = intFirst + intSecond;
                break;
              case "Minus":
                floSum = intFirst - intSecond;
                break;
              case "Multiplication":
                floSum = intFirst * intSecond;
                break; 
              case "Division":
                floSum = intFirst / intSecond;
                break;
            }
           
            return floSum;
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            Calc CCalc = new Calc();
            CCalc = FInPut(CCalc);
            CCalc = FCalculation(CCalc);
            FOutPrint(CCalc);       
        }

        //입력을 구하는 함수
        //두수는 1000 이하
        //두번쨰는 수는 무조건 0이면 안된다.
        private static Calc FInPut(Calc CCalc)
        {
            goFirst:
            bool bFirst = false;
           
            System.Console.WriteLine("첫번째 자연수를 입력하세요");
            bFirst = Int32.TryParse(System.Console.ReadLine(), out CCalc.intFirst);

            if (bFirst == true)
            {
                goSecond:
                System.Console.WriteLine("두번째 자연수를 입력하세요");
                bFirst = Int32.TryParse(System.Console.ReadLine(), out CCalc.intSecond);

                if (bFirst == true)
                {
                    if (CCalc.intFirst < 1000 && CCalc.intSecond < 1000)
                    {
                        if (CCalc.intSecond > 0)
                        {
                            goto goFourth;
                        }
                        else
                        {
                            System.Console.WriteLine("두번째수는 0 이하은 안됩니다.다시 입력하세요");
                            goto goSecond;
                        }
                    }
                    else
                    {
                        System.Console.WriteLine("각각 수는 1000 이상은 안됩니다.다시 입력하세요");
                        goto goFirst;
                    }
                }
                else
                {
                    goto goSecond;
                }
            }
            else
            {
                goto goFirst;
            }

            goFourth:
            return CCalc;
        }

        //사칙연산을 구하는 함수
        private static Calc FCalculation(Calc CCalc)
        {
            CCalc.floSumPlus = CCalc.FCalc(CCalc.intFirst, CCalc.intSecond,"Plus");
            CCalc.floSumMinus = CCalc.FCalc(CCalc.intFirst, CCalc.intSecond,"Minus");
            CCalc.floSumMultiplication = CCalc.FCalc(CCalc.intFirst, CCalc.intSecond,"Multiplication");
            CCalc.floSumDivision = CCalc.FCalc(CCalc.intFirst, CCalc.intSecond,"Division");
           
            return CCalc;
        }

        //출력하는 함수
        private static void FOutPrint(Calc CCalc)
        {
            System.Console.WriteLine("**********************");
            System.Console.WriteLine("사칙연산 결과는 아래와 같습니다.");
            System.Console.WriteLine("{0}+{1}={2}", CCalc.intFirst, CCalc.intSecond, CCalc.floSumPlus);
            System.Console.WriteLine("{0}-{1}={2}", CCalc.intFirst, CCalc.intSecond, CCalc.floSumMinus);
            System.Console.WriteLine("{0}*{1}={2}", CCalc.intFirst, CCalc.intSecond, CCalc.floSumMultiplication);  
            System.Console.WriteLine("{0}/{1}={2}", CCalc.intFirst, CCalc.intSecond, CCalc.floSumDivision);
            System.Console.ReadLine();
        }
    }
}

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함