[C# 기본 문법 활용하기] 프로그래밍 언어 활용 실습 - 포트폴리오
평가일시 | 2018년 | 훈련생 |
| ||
과정명 | LG CNS 스마트 팩토리 과정 | 평가유형 | 포트폴리오 | ||
교과목 | C#과 닷넷플랫폼 | 훈련교사 | 장 문 석 (인) | ||
능력단위명 | 프로그래밍 언어 활용(2001020215_15v3 ) | ||||
성취기준 | 5점(매우우수), 4점(우수), 3점(보통), 2점(미흡), 1점(매우미흡) | ||||
능력단위요소 | 문항 | 교수자 평가 | |||
성취 수준 | 점수 환산 | ||||
기본 문법 활용하기 (2001020215_15v3.1)
| 성적 관리 프로그램을 작성하고 프로그램의 구조 및 실행 화면을 첨부하여 포트폴리오를 작성하시오. - 메뉴 선택에 의해 성적 추가, 성적 검색, 성적 삭제, 전체 성적 보기를 수행할 수 있어야 한다. - 메뉴 선택 기능 구현: 1점 - 주어진 기능 중 하나라도 구현: 2점 - 1개 학급의 학생 성적 관리 : 3점 - 1학년 여러 개의 학급의 학생 성적 관리: 4점 - 여러 개 학년의 여러 개의 학급의 학생 성적 관리: 5점 |
|
| ||
|
참고 파일
1점 예제 소스 코드
Program.cs
namespace 성적_관리_프로그램 { class Program { static void Main(string[] args) { App app = App.Singleton;
app.Start(); } } } |
App.cs
using System;
namespace 성적_관리_프로그램 { internal class App { static App() { Singleton = new App(); } internal static App Singleton { get; private set; }
internal void Start() { ConsoleKey key = ConsoleKey.Escape; while((key = SelectMenu())!=ConsoleKey.Escape) { switch(key) { case ConsoleKey.F1: Insert(); break; case ConsoleKey.F2: Delete(); break; case ConsoleKey.F3: Search(); break; case ConsoleKey.F4: ViewAll(); break; default: Console.WriteLine("잘못 선택하였습니다."); break; } Console.WriteLine("아무 키나 누르세요."); Console.ReadKey(true); } }
private void ViewAll() { Console.WriteLine("전체 성적 보기"); }
private void Search() { Console.WriteLine("성적 검색"); }
private void Delete() { Console.WriteLine("성적 삭제"); }
private void Insert() { Console.WriteLine("성적 추가"); }
private ConsoleKey SelectMenu() { Console.Clear(); Console.WriteLine("=== 성적 관리 프로그램 메뉴 ==="); Console.WriteLine("F1: 성적 추가"); Console.WriteLine("F2: 성적 삭제"); Console.WriteLine("F3: 성적 검색"); Console.WriteLine("F4: 전체 성적 보기"); return Console.ReadKey(true).Key; } } }
|
2점 예제 소스 코드(성적 추가, 전체 성적 보기 기능 구현)
Program.cs
namespace 성적_관리_프로그램 { class Program { static void Main(string[] args) { App app = App.Singleton;
app.Start(); } } } |
App.cs
using System;
namespace 성적_관리_프로그램 { internal class App { int[][][] scores; static App() { Singleton = new App(); } internal static App Singleton { get; private set; } App() { Initialize(); }
private void Initialize() { Console.WriteLine("관리할 학년 개수를 입력하세요."); int gnum = EhFun.GetNum(); scores = new int[gnum][][]; for(int gi=0;gi<scores.Length;gi++) { InitGrade(gi+1,out scores[gi]); } }
private void InitGrade(int gn,out int[][] gscores) { Console.WriteLine("{0} 학년의 학급 개수를 입력하세요.",gn); int cnum = EhFun.GetNum(); gscores = new int[cnum][]; for (int ci = 0; ci < gscores.Length; ci++) { InitClass(gn, ci + 1, out gscores[ci]); } }
private void InitClass(int gn, int cn,out int[] cscores) { Console.WriteLine("{0} 학년 {1}반의 학생 수를 입력하세요.",gn,cn); int snum = EhFun.GetNum(); cscores = new int[snum]; for (int si = 0; si < cscores.Length; si++) { cscores[si] = -1; } }
internal void Start() { ConsoleKey key = ConsoleKey.Escape; while((key = SelectMenu())!=ConsoleKey.Escape) { switch(key) { case ConsoleKey.F1: Insert(); break; case ConsoleKey.F2: Delete(); break; case ConsoleKey.F3: Search(); break; case ConsoleKey.F4: ViewAll(); break; default: Console.WriteLine("잘못 선택하였습니다."); break; } Console.WriteLine("아무 키나 누르세요."); Console.ReadKey(true); } }
private void ViewAll() { for (int gi = 0; gi < scores.Length; gi++) { ViewGrade(gi + 1, scores[gi]); } }
private void ViewGrade(int gn, int[][] gscores) { Console.WriteLine("=== {0}학년 정보 ===", gn); for (int ci = 0; ci < gscores.Length; ci++) { ViewClass(gn, ci + 1, gscores[ci]); } }
private void ViewClass(int gn, int cn, int[] cscores) { Console.WriteLine("... {0}학년 {1}반 정보 ...", gn,cn); for (int si = 0; si < cscores.Length; si++) { if (cscores[si] == -1) { Console.WriteLine("{0}번 입력하지 않음", si + 1); } else { Console.WriteLine("{0}번 {1}", si + 1, cscores[si]); } } }
private void Search() { Console.WriteLine("성적 검색"); }
private void Delete() { Console.WriteLine("성적 삭제"); }
private void Insert() { Console.WriteLine("성적 추가 기능입니다."); Console.WriteLine("학년을 입력하세요.1~{0}",scores.Length); int gn = EhFun.GetNum(); if((gn<1)||(gn>scores.Length)) { Console.WriteLine("범위를 벗어났습니다."); return; }
Console.WriteLine("반을 입력하세요.1~{0}", scores[gn-1].Length); int cn = EhFun.GetNum(); if ((cn < 1) || (cn > scores[gn-1].Length)) { Console.WriteLine("범위를 벗어났습니다."); return; }
Console.WriteLine("번호를 입력하세요.1~{0}", scores[gn-1][cn-1].Length); int sn = EhFun.GetNum(); if ((sn < 1) || (sn > scores[gn-1][cn-1].Length)) { Console.WriteLine("범위를 벗어났습니다."); return; }
Console.WriteLine("성적을 입력하세요."); int score = EhFun.GetNum(); if ((score < 0) || (score > 100)) { scores[gn-1][cn-1][sn-1] = -1; Console.WriteLine("유효하지 않은 성적입니다."); return; } scores[gn - 1][cn - 1][sn - 1] = score; Console.WriteLine("입력 성공!!!"); }
private ConsoleKey SelectMenu() { Console.Clear(); Console.WriteLine("=== 성적 관리 프로그램 메뉴 ==="); Console.WriteLine("F1: 성적 추가"); Console.WriteLine("F2: 성적 삭제"); Console.WriteLine("F3: 성적 검색"); Console.WriteLine("F4: 전체 성적 보기"); return Console.ReadKey(true).Key; } } }
|
EhFun.cs
using System;
namespace 성적_관리_프로그램 { public class EhFun { public static int GetNum() { int num = 0; if(int.TryParse(Console.ReadLine(),out num)) { return num; } return 0; } } } |
프로젝트 폴더 및 포트폴리오 압축한 파일
'언어 자료구조 알고리즘 > 프로그래밍 실습' 카테고리의 다른 글
[NCS 실습, Windows Form with C#] 화면 구현 - 사용자 정의 컨트롤 및 이벤트 (0) | 2018.10.24 |
---|---|
[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.08.31 |
[C# 실습 설명] 제어문 - 공약수 구하기 (0) | 2018.08.31 |
[C# 실습 설명] 제어문 - 범위 내의 정수 합계 구하기 (0) | 2018.08.31 |
[C# 실습 설명] 제어문 - 점수(0~100)를 입력받아 학점을 출력 (0) | 2018.08.31 |
[C# 실습 설명] 제어문 - 입력받은 정수가 짝수인지 홀수인지 판별하기 (0) | 2018.08.30 |