1.요구 사항
-ArrayList 사용
-상품 리스트 가격 리스트 가지고 있기
-상품 중복 체크
-총 가격 표시
-정렬
2.결과 화면 및 샘플
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();
'정리 카테고리 > 실습_과제' 카테고리의 다른 글
실습_특수문자로 맵 구현하기 (0) | 2018.03.14 |
---|---|
실습_배열,맵이동 맵출력 프로그램 (0) | 2018.03.13 |
실습_배열로 과목별 성적 받고 성적 및 합계,평균 출력 (0) | 2018.03.13 |
실습_수량 제한 있는 가방에 아이템 줍기_배열사용 (0) | 2018.03.12 |
실습_성적 및 총합 평균 출력 (0) | 2018.03.12 |