네이버 지식인에서 우연히 보게 된 누군가의 질문…
c# 콘솔 형태의 프로그램이며, 일정 갯수의 숫자를 데이터로 입력 받아 최대값/최소값 등을 구하거나 종료할 수 있는 기능을 하는 프로그램이 요구사항 이었다
내가 답변한 원문은 여기 : C# 프로그래밍 질문 : 지식iN (naver.com)
네이버 지식인 링크
실제 프로그램이 실행되는 스크린샷은 다음 이미지와 같습니다.

프로그램이 실행되면 메뉴 설명을 출력합니다.
메뉴 선택에서 0~3 까지 숫자를 입력 받아 메뉴 선택의 용도로 입력을 받습니다
메뉴 선택에서 0 을 입력해서 5개의 숫자를 입력 받은 후
다시 메뉴 선택에서 1 을 입력 시 최소값을, 2 를 입력시 최대값을 출력합니다.
메뉴 선택에서 0 을 다시 입력해서 데이터를 새롭게 입력할 수 도 있겠죠
메뉴 선택에서 3 을 입력하면 프로그램은 종료됩니다.
진입점(Main) 에서 모두 처리하였으며, 소스 코드는 다음과 같습니다.
namespace ConsoleAppUserInput
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine(@"
=================================
0. 데이터 입력(5개)
1. 최소값
2. 최대값
3. 프로그램 종료
=================================
");
List<double> dataList = new List<double>();
bool isDataInput = false;
bool isExit = false;
double? input;
Func<double?> fnInput = () =>
{
double rtn;
var input = Console.ReadLine();
if (Double.TryParse(input, out rtn))
{
return rtn;
}
return null;
};
Func<bool> fnDataInput = () =>
{
Console.WriteLine($"{dataList.Count + 1}번째 값 입력:");
var data = fnInput();
if (data == null)
{
Console.WriteLine("숫자를 입력해 주세요.");
}
else
{
dataList.Add(data.Value);
if (dataList.Count == 5) return false;
}
return true;
};
do
{
if (isDataInput)
{
if (!fnDataInput())
{
isDataInput = false;
}
}
else
{
Console.WriteLine("메뉴 선택:");
input = fnInput();
switch (input)
{
case 0:
dataList.Clear();
isDataInput = true;
fnDataInput();
break;
case 1:
if (dataList.Count > 0)
{
Console.WriteLine($"최소값: {dataList.Min()}");
}
else
{
Console.WriteLine("0번 메뉴를 선택해서 데이터를 입력하세요.");
}
break;
case 2:
if (dataList.Count > 0)
{
Console.WriteLine($"최대값: {dataList.Max()}");
}
else
{
Console.WriteLine("0번 메뉴를 선택해서 데이터를 입력하세요.");
}
break;
case 3:
isExit = true;
break;
default:
Console.WriteLine("1~3까지 메뉴를 선택하세요.");
break;
}
}
}
while (!isExit);
}
}
}
개발 환경은 VS 2022 .Net 6 Console App 으로 구현하였으며, 전체 소스 코드는 아래 GitHub 에 등록되어 있습니다.
0 Comments