[C# 실습 설명] 제어문 - 메뉴 출력 및 선택 반복하기
의사코드(pseudo code)로 알고리즘 전개하기 - 주석으로 표현
//6. 사용자로부터 메뉴를 입력받아 기능을 수행하는 것을 반복하시오.
//I를 입력하면 추가, D를 입력하면 삭제, S를 입력하면 검색,
//L을 입력하면 전체 출력
//E를 입력하면 반복 수행을 마감
private static void ExF()
{
//flag:=true
//반복(flag가 참일 동안)
{
//메뉴 출력
//key:=메뉴 입력
//선택(key에 따라)
{
//I일 때 "추가" 출력
//D일 때 "삭제" 출력
//S일 때 "검색" 출력
//L일 때 "전체 출력" 출력
//E일 때 flag:= false
//기타일 때 "잘못 선택" 출력
}
}
}
소스 코드
//6. 사용자로부터 메뉴를 입력받아 기능을 수행하는 것을 반복하시오.
//I를 입력하면 추가, D를 입력하면 삭제, S를 입력하면 검색,
//L을 입력하면 전체 출력
//E를 입력하면 반복 수행을 마감
private static void ExF()
{
bool flag = true;//flag:=true
while(true)//반복(flag가 참일 동안)
{
//메뉴 출력
Console.WriteLine("I:추가 D:삭제 S:검색 L:전체 출력 E:종료");
string key = Console.ReadLine();//key:=메뉴 입력
switch(key)//선택(key에 따라)
{
case "I": Console.WriteLine("추가"); break;//I일 때 "추가" 출력
case "D": Console.WriteLine("삭제"); break;//D일 때 "삭제" 출력
case "S": Console.WriteLine("검색"); break;//S일 때 "검색" 출력
case "L": Console.WriteLine("전체 출력"); break;//L일 때 "전체 출력" 출력
case "E": flag = false; break;//E일 때 flag:= false
default: Console.WriteLine("잘못 선택"); break;//기타일 때 "잘못 선택" 출력
}
}
}
현재까지 작성한 전체 소스 코드
using System;
namespace 제어문_실습
{
class Program
{
static void Main(string[] args)
{
//1. 두 개의 정수를 입력받아 큰 수를 출력하시오.
//ExA();
//2. 한 개의 정수를 입력받아 짝수인지 홀수인지 출력하시오.
//ExB();
//3. 점수(0~100)를 입력받아 학점을 출력하시오.
//0~59:F, 60~69:D, 70~79:C, 80~89:B, 90~100:A, 기타:Not Support
//ExC();
//4. 두 개의 정수를 입력받아 두 수의 범위에 있는 정수의 합을 출력하시오.
//ExD();
//5. 두 개의 정수를 입력받아 공약수를 출력하시오.
//ExE();
//6. 사용자로부터 메뉴를 입력받아 기능을 수행하는 것을 반복하시오.
//I를 입력하면 추가, D를 입력하면 삭제, S를 입력하면 검색,
//L을 입력하면 전체 출력
//E를 입력하면 반복 수행을 마감
ExF();
}
//6. 사용자로부터 메뉴를 입력받아 기능을 수행하는 것을 반복하시오.
//I를 입력하면 추가, D를 입력하면 삭제, S를 입력하면 검색,
//L을 입력하면 전체 출력
//E를 입력하면 반복 수행을 마감
private static void ExF()
{
bool flag = true;//flag:=true
while(true)//반복(flag가 참일 동안)
{
//메뉴 출력
Console.WriteLine("I:추가 D:삭제 S:검색 L:전체 출력 E:종료");
string key = Console.ReadLine();//key:=메뉴 입력
switch(key)//선택(key에 따라)
{
case "I": Console.WriteLine("추가"); break;//I일 때 "추가" 출력
case "D": Console.WriteLine("삭제"); break;//D일 때 "삭제" 출력
case "S": Console.WriteLine("검색"); break;//S일 때 "검색" 출력
case "L": Console.WriteLine("전체 출력"); break;//L일 때 "전체 출력" 출력
case "E": flag = false; break;//E일 때 flag:= false
default: Console.WriteLine("잘못 선택"); break;//기타일 때 "잘못 선택" 출력
}
}
}
//5. 두 개의 정수를 입력받아 공약수를 출력하시오.
private static void ExE()
{
//fnum:= 정수 입력
Console.WriteLine("첫 번째 정수를 입력하세요.");
int fnum = GetNum();
//snum:= 정수 입력
Console.WriteLine("두 번째 정수를 입력하세요.");
int snum = GetNum();
if (fnum > snum)//조건(fnum>snum) - (fnum과 snum을 바꿔야 함)
{
int temp = snum; //temp := snum
snum = fnum;//snum := fnum
fnum = temp;//fnum := temp
}
for(int n=1; n<=fnum;n++)//반복(n:= 1->fnum)
{
if(((fnum%n)==0)&& ((snum % n) == 0))//조건(n이 fnum과 snum의 약수이면)
//*fnum을 n으로 나누어서 나머지가 0이면 약수임.
{
Console.WriteLine(n);//n출력
}
}
}
//4. 두 개의 정수를 입력받아 두 수의 범위에 있는 정수의 합을 출력하시오.
private static void ExD()
{
//fnum:= 정수 입력
Console.WriteLine("첫 번째 정수를 입력하세요.");
int fnum = GetNum();
//snum:= 정수 입력
Console.WriteLine("두 번째 정수를 입력하세요.");
int snum = GetNum();
if(fnum > snum)//조건(fnum>snum) - (fnum과 snum을 바꿔야 함)
{
int temp = snum; //temp := snum
snum = fnum;//snum := fnum
fnum = temp;//fnum := temp
}
int sum = 0;//sum:=0
//반복(snum -> fnum)
for(;snum<fnum;snum++)
{
sum += snum;//sum:= snum + snum
}
Console.WriteLine("{0}~{1} 구간의 정수 합계:{2}", fnum, snum, sum);//sum 출력
}
//3. 점수(0~100)를 입력받아 학점을 출력하시오.
private static void ExC()
{
//score:= 성적 입력
Console.WriteLine("성적을 입력하세요.");
int score = GetNum();
int level = 0;
if((score<0)||(score>100))//조건(score가 0보다 작거나 100보다 크면)
{
level = -1;//level:=-1
}
else//아니라면
{
level = score / 10;//level:=score/10
if(level<=5)//조건(level이 5보다 작거나 같으면)
{
level = 0;//level=0
}
}
switch(level)//선택(level값에 따라)
{
case 10:
case 9: Console.WriteLine("A"); break;//10혹은 9일 때: A출력
case 8: Console.WriteLine("B"); break;//8일 때: B출력
case 7: Console.WriteLine("C"); break;//7일 때: C출력
case 6: Console.WriteLine("D"); break;//6일 때: D출력
case 0: Console.WriteLine("F"); break;//0일 때: F출력
default: Console.WriteLine("Not Support"); break;//기타: Not Support 출력
}
}
//2. 한 개의 정수를 입력받아 짝수인지 홀수인지 출력하시오.
private static void ExB()
{
//num := 정수를 입력
Console.WriteLine("정수를 입력하세요.");
int num = GetNum();
if(num%2 == 0)//조건(num을 2로 나누었을 때 나머지가 0이면)
{
Console.WriteLine("짝수입니다.");//"짝수" 출력
}
//아니면
{
Console.WriteLine("홀수입니다.");//"홀수" 출력
}
}
//1. 두 개의 정수를 입력받아 큰 수를 출력하시오.
private static void ExA()
{
//num1 := 첫 번째 정수를 입력
Console.WriteLine("첫 번째 수를 입력하세요.");
int num1 = GetNum();
//num2 := 두 번째 정수를 입력
Console.WriteLine("두 번째 수를 입력하세요.");
int num2 = GetNum();
int big = 0;
if(num1<num2)//조건(num1<num2)
{
big = num2;//big := num2
}
else //아니면
{
big = num1;//big := num1
}
Console.WriteLine("{0}과 {1}중에 큰 수는 {2}", num1, num2, big);//big 출력
}
private static int GetNum()
{
int i = 0;
string value = Console.ReadLine();
i = int.Parse(value);
return i;
}
}
}
'언어 자료구조 알고리즘 > 프로그래밍 실습' 카테고리의 다른 글
[NCS 실습, C#] 프로그래밍 언어 활용, 라이브러리 활용하기 - 회원 관리 프로그램 소스 코드 (0) | 2018.10.11 |
---|---|
[NCS 실습] 프로그래밍 언어 활용 - 라이브러리 활용하기 (0) | 2018.10.04 |
[NCS 실습] 프로그래밍 언어 활용 - C# 언어 특징 활용하기 (0) | 2018.09.20 |
[C# 실습] 인덱서 정의 예제 소스 코드 (0) | 2018.09.12 |
[C# 기본 문법 활용하기] 프로그래밍 언어 활용 실습 - 포트폴리오 (0) | 2018.09.05 |
[C# 실습 설명] 제어문 - 공약수 구하기 (0) | 2018.08.31 |
[C# 실습 설명] 제어문 - 범위 내의 정수 합계 구하기 (0) | 2018.08.31 |
[C# 실습 설명] 제어문 - 점수(0~100)를 입력받아 학점을 출력 (0) | 2018.08.31 |
[C# 실습 설명] 제어문 - 입력받은 정수가 짝수인지 홀수인지 판별하기 (0) | 2018.08.30 |
[C# 실습 설명] 제어문 - 두 개의 정수를 입력받아 큰 수 출력 (0) | 2018.08.30 |