CSED232 – Programming Assignment #1 Solved

$ 29.99
Category:

Description

[안내사항]
1. 모든 문제는 파일 입출력을 기본으로 합니다. Input 파일은 input.txt, output 파일은 output.txt 을 사용하니, 이 점 유의해서 프로그램을 작성해 주시기 바랍니다.
2. 채점용 testcase를 통과한 개수에 비례하여 프로그램 기능 점수가 부여됩니다. – (통과 case / 총 case) * 채점 기준에 명시된 프로그램 기능 점수 – testcase는 공개되지 않습니다.
[감점]
1. 제출 기한이 지나면 얻은 총점의 20% 감점
2. 하루(24시간) 늦을 때마다 추가 20%씩 감점
– 1일 이내: 20% 감점, 2일 이내: 40% 감점, 3일 이내: 60% 감점 4일 이내:80% 감점
– 4일 이상 지연: 0점
3. 컴파일이 정상적으로 되지 않을 경우 프로그램 기능 점수 0점 [제출방식]
예) prob1_20219999.zip, prob2_20219999.zip, prob3_20219999.zip
[채점 기준]
1. 프로그램 기능 – 50%
⚫ 프로그램이 요구 사항을 모두 만족하면서 올바로 실행되는가?
2. 프로그램 설계 및 구현 – 35%
⚫ 요구 사항을 만족하기 위한 변수 및 알고리즘 설계가 잘 되었는가?
⚫ 설계된 내용이 요구된 언어를 이용하여 적절히 구현되었는가?
⚫ 각 문제에서 제시한 세부 조건의 유의사항을 모두 만족하였는가?
⚫ 출력파일 output.txt가 주어진 형식에 맞는가?
3. 프로그램 가독성 – 5%
⚫ 프로그램이 읽기 쉽고 이해하기 쉽게 작성되었는가?
⚫ 변수 명이 무엇을 의미하는지 파악하기 쉬운가?
⚫ 프로그램의 소스 코드를 이해하기 쉽도록 주석을 잘 붙였는가?
4. 보고서 구성 및 내용, 양식 – 10%
⚫ 보고서는 적절한 내용으로 이해하기 쉽고 보기 좋게 잘 작성되었는가?
⚫ 보고서의 양식을 잘 따랐는가?
⚫ 각 문제에서 제시한 질문이 있다면, 그에 대한 답변이 충분한가?
[주의사항]
1. 다른 사람의 프로그램이나 인터넷에 있는 프로그램을 단순히 복사(copy)하거나 수정해서 제출하면 부정행위로 간주됩니다. 부정행위 발견 시 ‘F’ 학점을 받을 수 있으며, 학과에서 정한 기준에 따라 추가적인 불이익이 있을 수 있습니다.
2. Visual Studio 2022에서 원활한 입출력을 위해 소스코드 맨 위에
“#define _CRT_SECURE_NO_WARNINGS”을 선언해 주시기 바랍니다.

이를 선언하면 Visual Studio에서 scanf, fopen 등을 사용할 수 있습니다.

20점)
포항공대 컴퓨터공학과 학생 연수는 객체 지향 프로그래밍 수업을 본격적으로 수강하기 전, C 언 어 복습을 위해 계산기 프로그램을 만들어 보려고 한다.
1. 이때 연산자와 두 개의 숫자를 받아 그 결과를 저장하는 프로그램을 절자 지향 프로그래 밍으로 구현하시오.
2. 만약 계산기 프로그램을 객체 지향 프로그래밍으로 구현하면 어떤 장점이 있을지, 혹은 어떤 기능을 쉽게 추가할 수 있을지에 대해 생각해 본 후, 보고서 “3. 토론 및 개선”에 자신의 의견을 간략히 작성하시오.
[입력] 연산자는 char 자료형이며, 두 개의 숫자는 float 자료형이다. 계산기가 받아들일 수 있는 연산자
의 집합은 {‘+’, ‘-‘, ‘*‘, ‘/‘} 이며 각각 순서대로 {덧셈, 뺄셈, 곱셉, 나눗셈}을 의미한다. 연산자와 각 숫자 사이에는 공백 한 칸이 있다.
[출력]
입력으로 받은 두 개의 숫자를 입력으로 받은 연산자로 연산한 결과를 출력해야 한다.
[세부 조건]
1. 파일 입출력은 C 언어의 표준 입출력 (stdio.h) 또는 C++의 파일 입출력 (fstream) 둘 다 사용 가능.
2. 계산 결과는 항상 소수점 아래 3자리로 표현하며, 계산 결과가 소수점 아래 3자리보다 길 경우 소수점 셋째 자리까지 반올림하여 출력.
– [입출력 예시]에서, 3.986 ∗ 2.515 = 10.02479 ≅ 10.025 (소수점 셋째 자리로 반올림)
3. 입력의 두 번째 숫자에 0이 들어오는 상황은 고려하지 않는다.
[입출력 예시]
input.txt output.txt
+ 1.35 2.47
* 3.986 2.515
/ 24.999 3.900
– -101.35 2.47 3.820
10.025
6.410
-103.820
35점)
포항공대 컴퓨터공학과 학생 철수는 연예인 아이유를 좋아한다. 철수는 크롤링을 통해 인터넷 사이트에서 아이유 사진을 다운로드 받았으나, 사진이 너무 많아 이를 연도 및 장소 코드를 기준으로 정렬하여 저장하고자 한다.
1. 이때 연도 및 장소 코드를 기준으로 오름차순 정렬하는 프로그램을 selection sort 를 이용해 C++로 직접 구현하시오.
2. Selection sort 의 장점은 구현이 쉽다는 점이다. 이때, selection sort 의 단점 두 가지를 보고서의 “3. 토론 및 개선”에 간략히 작성하시오.
[입력] 연도와 장소 코드는 input.txt 파일에 저장되어 있다. 연도는 4 자리 정수이며, 장소 코드는 임의의 6 자리 string 이다. 연도와 장소 코드 사이엔 공백 한 칸이 있다.
[출력] 정렬된 연도와 장소는 공백 한 칸을 포함해 output.txt 파일에 출력한다.
[세부 조건]
1. 먼저, 연도를 기준으로 오름차순 정렬이 되어야 한다. 연도가 같은 경우 장소 코드를 기준으로 오름차순 정렬이 되어야 한다.
2. C++ STL 에서 제공하는 vector 와 같은 container 및 sort 함수는 사용할 수 없다.
[입출력 예시]
input.txt output.txt
2008 hyojam
2013 inkiky
2015 mudofv
2013 showuj
2008 musicb
2013 showtm 2008 hyojam
2008 musicb
2013 inkiky
2013 showtm
2013 showuj
2015 mudofv

45점)
지금 우리 포항공대에 좀비가 출현했다! 포항공대 컴퓨터공학과 학생들은 학교 지하통로로 학교 를 탈출하려고 한다. 학생들은 지하 통로 지도를 가지고 있으며, 기억력이 좋은 학생 청산이 지도 에 좀비가 있는 곳, 출구 열쇠 위치, 출구 위치를 표시해 두었다.
1. 이때, 학생들이 열쇠를 찾아 출구에 도착하기까지 걸리는 최단거리를 구하시오.
[입력] 지도는 input.txt 파일에 저장되어 있다. 좀비가 있어 통과할 수 없는 장소는 ‘1’, 학생들이 통과할 수 있는 장소는 ‘0’으로 지도에 표시되어 있다. 열쇠 위치는 ‘k’, 출구 위치는 ‘e’로 표시되어 있다.
[출력] 열쇠를 찾아 출구에 도착하기까지 소요된 최단거리를 output.txt 파일에 출력한다.
[세부 조건]
1. 지도의 크기는 10 x 10 이며, index는 row, column 순서를 갖는다.
– 아래 [입출력 예시]에서 map[0][4] == ‘k’ 이며 map[9][9] == ‘e’ 이다.
2. 학생들은 맨 처음 지도 상에서 (0,0)에 위치한다.
– 맨 처음 위치 map[0][0]에선 움직이지 않은 것으로 간주한다.
– 아래 [입출력 예시]에서 열쇠(‘k’)까지의 최단거리는 18 이다.
3. 이동은 좌, 우, 상, 하 방향으로만 가능하며, 대각선 방향 이동은 불가능하다.
4. 출구까지의 최종 거리는 시작 지점으로부터 열쇠 위치 까지의 거리와, 열쇠 위치로부터 출구까지의 거리의 합산이다.
– 아래 [입출력 예시]에서 열쇠(‘k’)로부터 출구(‘e’)까지 거리는 28이다.
– 아래 [입출력 예시]에서 주어진 조건을 만족하는 최단거리는 46이 된다.
5. 열쇠 및 출구까지는 항상 도달 가능하다.
6. 프로그램 구현에 있어 이전 수업에서 배운 자료구조인 스택, 큐 등은 사용할 수 있다. 하지만, C++ STL 등 라이브러리는 사용할 수 없으며, 직접 구현하여야 한다.
7. 전역변수는 사용할 수 없다.

[입출력 예시]
input.txt output.txt
0 0 1 1 k 0 0 0 0 1
1 0 1 1 1 1 0 1 0 1
1 0 1 1 1 0 1 1 0 1
1 0 0 0 0 0 0 0 0 1
1 0 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0
1 0 1 1 0 1 1 1 1 0
1 0 1 0 0 1 1 0 0 0
0 0 1 1 0 1 1 1 1 1
1 1 1 1 0 0 0 0 0 e 46

Reviews

There are no reviews yet.

Be the first to review “CSED232 – Programming Assignment #1 Solved”

Your email address will not be published. Required fields are marked *