본문 바로가기

정리 카테고리/실습_과제

실습_최종 포스기계(상품명,상품개수,금액 정리및 금액 자리수(,)표시


1.요구 사항

-ArrayList 사용

-상품 리스트  가격 리스트 가지고 있기

-상품 중복 체크

-총 가격 표시

-정렬




2.결과 화면 및 샘플



포스 최종.exe









3.소스 코드


 
             ArrayList productList = new ArrayList();//기본 상품정보
            productList.Add("수박");
            productList.Add(6000);
            productList.Add("복숭아");
            productList.Add(2600);
            productList.Add("바나나");
            productList.Add(4300);
            productList.Add("배");
            productList.Add(550000);
            productList.Add("감자");
            productList.Add(5000);
            productList.Add("고구마");
            productList.Add(5000);
            productList.Add("파프리카");
            productList.Add(4000);

            ArrayList buyList = new ArrayList();//살서 리스트 정보

            string checkProduct = "";//글자수 확인을 위한 변수
            string manager = "";//글자수 확인을 위한 변수
            string checkLength = "";//글자수 확인을 위한 변수
            int productLength = 0;//글자수 확인을 위한 변수
            string checkLength2 = "";//글자수 확인을 위한 변수
            int productLength2 = 0;//글자수 확인을 위한 변수
            string checkLength3 = "";//글자수 확인을 위한 변수
            int productLength3 = 0;//글자수 확인을 위한 변수
            Console.WriteLine("당담자 이름을 입력해 주세요.(오타시 수정불가)");
            Console.Write("::");
            manager = Console.ReadLine();


            while (true)
            {
                Console.WriteLine();
                Console.WriteLine("메뉴: 1.입력 2.환불 3.계산 4.상품리스트 5.종료");
                Console.Write("::");
                checkProduct = Console.ReadLine();

                Console.Clear();

                if (checkProduct == "1")
                {
                    Console.WriteLine("입력 상품을 넣어주세요.");
                    Console.Write("::");
                    checkProduct = Console.ReadLine();
                    int check = 0;
                    int total = 0;
                    if (productList.IndexOf(checkProduct) > -1 && productList.IndexOf(checkProduct) < productList.Count)
                    {
                        if (buyList.IndexOf(checkProduct) > -1 && buyList.IndexOf(checkProduct) < buyList.Count)//기존에 있는 상품일경우
                        {
                            if (int.TryParse(buyList[buyList.IndexOf(checkProduct) + 1].ToString(), out check))
                            {
                                if (int.TryParse(productList[productList.IndexOf(checkProduct) + 1].ToString(), out total))
                                {
                                    buyList[buyList.IndexOf(checkProduct) + 1] = (check + total);
                                }
                            }
                        }
                        else//새로운 상품일경우
                        {
                            buyList.Add(productList[productList.IndexOf(checkProduct)]);
                            buyList.Add(productList[productList.IndexOf(checkProduct) + 1]);
                        }
                        Console.WriteLine("정상적으로 진행 되었습니다.");
                    }
                    else
                    {
                        Console.WriteLine("정상적인 진행이 되지 않았습니다. 메뉴화면으로 돌아갑니다.");
                    }
                }
                else if (checkProduct == "2")
                {
                    Console.WriteLine("환불 상품을 넣어주세요.");
                    Console.Write("::");
                    checkProduct = Console.ReadLine();
                    int check = 0;
                    int total = 0;
                    //상품 빼는 기능
                    if (buyList.IndexOf(checkProduct) > -1 && buyList.IndexOf(checkProduct) < buyList.Count)
                    {
                        if (int.TryParse(buyList[buyList.IndexOf(checkProduct) + 1].ToString(), out check))
                        {
                            if (int.TryParse(productList[productList.IndexOf(checkProduct) + 1].ToString(), out total))
                            {
                                buyList[buyList.IndexOf(checkProduct) + 1] = (check - total);
                                if (check - total == 0)//상품이 0개 남았을 경우
                                {
                                    buyList.RemoveAt(buyList.IndexOf(checkProduct) + 1);
                                    buyList.Remove(checkProduct);
                                }
                            }
                        }
                        Console.WriteLine("정상적으로 진행 되었습니다.");
                    }

                    else
                    {
                        Console.WriteLine("정상적인 진행이 되지 않았습니다. 메뉴화면으로 돌아갑니다.");
                    }
                }

                else if (checkProduct == "3")
                {
                    int total = 0;
                    int check = 0;
                    int origin = 0;
                    for (int i = 0; i < (buyList.Count / 2); i++)
                    {
                        //글자수 체크 띄어쓰기를 위한......
                        int.TryParse(productList[productList.IndexOf(buyList[i * 2]) + 1].ToString(), out origin);
                        int.TryParse(buyList[i * 2 + 1].ToString(), out check);
                        checkLength = buyList[i * 2].ToString();
                        if (checkLength.Length > productLength) productLength = checkLength.Length;
                        checkLength2 = buyList[i * 2 + 1].ToString();
                        if (checkLength2.Length > productLength2) productLength2 = checkLength2.Length;

                        if ((check / origin).ToString().Length > productLength3) productLength3 = (check / origin).ToString().Length;
                    }
                    Console.WriteLine("====================================");
                    Console.WriteLine("     담당자 ::" + manager);
                    for (int i = 0; i < (buyList.Count / 2); i++)
                    {
                        //상품수를 상품별 총가격 나누기 상품 개당가격
                        int.TryParse(productList[productList.IndexOf(buyList[i * 2]) + 1].ToString(), out origin);
                        int.TryParse(buyList[i * 2 + 1].ToString(), out check);
                        Console.Write(buyList[i * 2]);
                        for (int j = 0; j < (productLength - (buyList[i * 2].ToString()).Length) + 1; j++) Console.Write("  ");
                        for (int j = 0; j < (productLength3 - (check / origin).ToString().Length) + 1; j++) Console.Write(" ");
                        Console.Write((check / origin) + "개" + " 가격:: ");
                        if (productLength2 == (buyList[i * 2 + 1].ToString()).Length) for (int j = 0; j < (productLength2 - (buyList[i * 2 + 1].ToString()).Length) + 1; j++) Console.Write(" ");
                        else
                        {
                            if (productLength2 % 3 != 0) for (int j = 0; j < ((productLength2 + (productLength2 / 3)) - (buyList[i * 2 + 1].ToString()).Length); j++) Console.Write(" ");
                            else for (int j = 0; j < ((productLength2 + (productLength2 / 3) - 1) - (buyList[i * 2 + 1].ToString()).Length); j++) Console.Write(" ");

                        }
                        Console.WriteLine("{0:N0}", buyList[i * 2 + 1]);
                        total += check;


                    }

                    Console.WriteLine("====================================");
                    Console.Write("      합계  ::");
                    Console.Write("{0:N0}", total);
                    Console.WriteLine("  원");
                    Console.WriteLine("====================================");
                }
                else if (checkProduct == "4")
                {
                    for (int i = 0; i < (productList.Count / 2); i++)
                    {
                        //글자수 체크 띄어쓰기를 위한......
                        checkLength = productList[i * 2].ToString();
                        if (checkLength.Length > productLength) productLength = checkLength.Length;
                        checkLength2 = productList[i * 2 + 1].ToString();
                        if (checkLength2.Length > productLength2) productLength2 = checkLength2.Length;
                    }

                    for (int i = 0; i < (productList.Count / 2); i++)
                    {
                        Console.Write("   " + productList[i * 2]);
                        for (int j = 0; j < (productLength - (productList[i * 2].ToString()).Length) + 1; j++) Console.Write("  ");
                        Console.Write("가격::");
                        if (productLength2 == (productList[i * 2 + 1].ToString()).Length) for (int j = 0; j < (productLength2 - (productList[i * 2 + 1].ToString()).Length) + 1; j++) Console.Write("  ");
                        else
                        {
                            if (productLength2 % 3 != 0) for (int j = 0; j < ((productLength2 + (productLength2 / 3)) - (productList[i * 2 + 1].ToString()).Length) + 1; j++) Console.Write(" ");
                            else for (int j = 0; j < ((productLength2 + (productLength2 / 3) - 1) - (productList[i * 2 + 1].ToString()).Length) + 1; j++) Console.Write(" ");

                        }

                        Console.WriteLine("{0:N0}", productList[i * 2 + 1]);
                    }
                }
                else if (checkProduct == "5")
                {
                    Console.WriteLine("종료 합니다.");
                    break;
                }
            }



            Console.ReadKey();