정보
-
업무명 : C++ 프로그래밍 과제물
-
작성자 : 이상호
-
작성일 : 2019-12-13
-
설 명 :
-
수정이력 :
내용
[개요]
-
안녕하세요? 웹 개발 및 연구 개발을 담당하고 있는 해솔입니다.
-
오늘 포스팅은 C++ 프로그래밍 과제물을 소개드리고자 합니다.
[특징]
-
C++ 프로그래밍 과제물에 대한 이해를 돕기위해 작성
[기능]
-
과제물 지시사항
-
과제물 작성요령
[활용자료]
-
인터넷 검색
[과제물 작성 요령]
-
과제물 작성 계획 세우기
-
과제물 작성을 위하여 계획 및 준비, 글쓰기, 제출과 같이 3 단계로 구성
-
1 단계는 우선 계획 및 준비로서 공고 확인, 제출 기간 확인, 과제물 문제를 파악
-
2단계의 경우 글쓰기로서 자료 검색 수집 및 개요 작성 그리고 본문 쓰기 및 수정
-
끝으로 제출 마감일뿐만 아니라 파일 용량 검사 및 온라인시스템 제출
-
-
과제물 문제 파악 요령
-
과제물 문제에서 교수님의 지시사항을 정확히 간파하여 작성
-
특히 제출 파일의 양식/용량 및 스타일 형식 그리고 작성 분량에 유의
-
-
나만의 글쓰기 전략
-
앞서 작성 계획에서와 같이 단계별로 수행이 필연
-
추가로 각 과제물마다 한글 또는 워드 양식에서 각자만의 스타일을 바탕으로 글의 내용 작성
-
또한 각종 인터넷 검색 및 도서를 참조하여 내용을 제시할 뿐만 아니라 그에 따른 판단의 근거에 대한 명확한 인용 및 출처가 정확하게 표시
-
-
학술 검색을 위한 유용한 방법
-
인터넷은 1950대에 컴퓨터의 개발과 더불어 너무 많은 정보의 바다에서 살고 있기 때문에 자신에게 필요한 정보 발굴 능력 요구
-
인터넷 검색이 익숙하지 않을 경우 네이버 검색을 추천하고 익숙하면 구글 검색이 유용
-
그러나 일반적으로 네이버 또는 구글로 검색할 경우 다수의 블로그에서 중복되는 정보를 확인할 수 있고 이러한 정보들은 대부분 복사 붙여넣기로 인해 남용되고 있는 실정
-
따라서 이 보다는 전 세계 검색엔진 2위를 차지한 Yahoo! JAPAN (https://www.yahoo.co.jp)에서 검색하여 구글 번역할 경우 원하는 정보를 쉽게 얻음
-
연구 보고서 또는 SCI/SCIE 논문을 보기 위해서 대학교에서 저널을 구독하는 것이 일반적이나 모든 저널을 구독하기에는 상당한 경제적 부담이 되기 때문에 SCI-HUB (https://sci-hub.tw/)를 통해 보는 것을 추천
-
[사용법]
-
과제물 서식을 바탕으로 작성
[사용 OS]
-
Windows 10
[사용 언어]
-
C++
-
한글 v2018
과제물 문제
소스 코드
[명세]
// SurveyCheck.h
#ifndef _SurveyCheck_H_
#define _SurveyCheck_H_
class SurveyCheck {
// 설문 내용
char* ask;
// 보기 개수
int qty;
// 보기 내용들
char** example;
// 각 보기에 대한 답변의 개수
int* answer;
public:
// 선택 항목 및 설문 문항을 0으로 초기화
void fnClose() {
for (int iCount = 0; iCount < qty; iCount++) {
delete[] example[iCount];
}
delete[] example;
delete[] answer;
}
void fnSetAsk(char* str) {
int len = strlen(str) + 1;
ask = new char[len];
strcpy(ask, str);
}
// 선택 항목의 개수를 지정
void fnSetQty(int iNumber) {
qty = iNumber;
answer = new int[qty];
example = new char*[qty];
}
// 선택 항목을 등록
void fnSetExample(char* str, int iNumber) {
// 설정된 개수 내에서 허용
if (iNumber < qty) {
example[iNumber] = new char[strlen(str) + 1];
strcpy(example[iNumber], str);
}
}
// 설문 문항 (질문과 선택 항목)을 출력
char* fnGetAsk() {
return ask;
}
char* fnGetExample(int iNumber) {
// 설정된 개수 내에서 허용
if (iNumber < qty) {
return example[iNumber];
}
// 설정된 개수 범위를 넘을 경우
return NULL;
}
// 설문 문항을 출력 후 응답 (선택항목의 번호)을 입력
void fnSetAnswer(int iNumber) {
if (iNumber < qty) {
answer[iNumber]++;
}
}
// 설문 응답 결과를 출력
int fnGetAnswer(int iNumber) {
// 설정된 개수 내에서 허용
if (iNumber < qty) {
return answer[iNumber];
}
return 0;
}
// 설문 조사를 재시작하기 위해서 응답 수를 0으로 초기화
void fnResetAnswer() {
for (int iCount = 0; iCount < qty; iCount++) {
answer[iCount] = 0;
}
}
};
#endif
// SurveyCheck.cpp
// cin, cout
#include <iostream>
// strlen, strcpy
#include <cstring>
// atoi, isdigit
#include <cstdlib>
#include "SurveyCheck.h"
using namespace std;
int main() {
// 보기 개수, 보기 선택, 반복
int qty, sel, iCount;
// 다시 설문조사를 할 것인가 여부
char again;
// 문자열 입력용
char str[200] = "\0";
// 객체 생성
SurveyCheck clSurveyCheck;
cout << "등록할 설문 문항을 입력하시오 : ";
// 공백 문자를 포함하여 199 글자까지
cin.getline(str, sizeof(str) - 1);
clSurveyCheck.fnSetAsk(str);
cout << endl;
if (strlen(str) > 0) {
cout << "선택할 답항의 수를 입력하시오 : ";
do {
// 보기의 개수를 문자열로 받아들임
cin >> str;
// 문자열을 숫자로 변환
qty = atoi(str);
// 보기는 1개 이상
} while (qty < 1);
// 선택 항목 수 입력
clSurveyCheck.fnSetQty(qty);
cout << endl;
// 입력 버퍼 비움
cin.ignore(sizeof(str), '\n');
// 등록할 수 있는 선택 항목의 수는 2에서 지정한 것 이내
for (int iCount = 0; iCount < qty; iCount++) {
cout << "답항" << iCount + 1 << " : ";
cin.getline(str, sizeof(str) - 1);
// 선택 항목 등록
clSurveyCheck.fnSetExample(str, iCount);
}
do {
clSurveyCheck.fnResetAnswer();
cout << endl << "설문 조사를 시작합니다." << endl;
cout << endl;
system("pause");
for (int iCount = 0; ; iCount++) {
system("cls");
cout << clSurveyCheck.fnGetAsk() << endl << endl;
for (int jCount = 0; jCount < qty; jCount++) {
cout << "[" << jCount + 1 << "] " << clSurveyCheck.fnGetExample(jCount) << endl;
}
do {
cout << endl << "번호를 입력하시오(0은 설문 종료) : ";
cin >> str;
} while (!isdigit(str[0]));
sel = atoi(str);
// 설문 종료
if (sel == 0) {
break;
}
if (sel > qty || sel < 1) {
cout << "올바른 범위의 번호를 선택하세요." << endl;
system("pause");
iCount--;
continue;
}
// 선택 1이 배열의 0
clSurveyCheck.fnSetAnswer(--sel);
}
system("cls");
cout << "질문 : " << clSurveyCheck.fnGetAsk() << endl << endl;
cout << "조사 결과" << endl << endl;
for (int iCount = 0; iCount < qty; iCount++) {
cout << "[" << iCount + 1 << "] " << clSurveyCheck.fnGetExample(iCount) << " --> " << clSurveyCheck.fnGetAnswer(iCount) << endl;
}
cout << endl << "설문조사를 다시 할까요? (프로그램 종료 : 'n' 입력) ";
do {
cin >> again;
} while (again == '\0');
} while (again != 'n' && again != 'N');
} else {
cout << "설문 조사가 취소되었습니다." << endl;
system("pause");
return 0;
}
clSurveyCheck.fnClose();
return 0;
}
[GitHub Gist]
-
SurveyCheck.h
-
SurveyCheck.cpp
관련 자료
[제출본]
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
'자기계발 > 방송통신대 컴퓨터과학과' 카테고리의 다른 글
[방송통신대 컴퓨터과학과] 2019년 2학기 전공 UNIX 시스템 과제물 (0) | 2019.12.17 |
---|---|
[방송통신대 컴퓨터과학과] 2019년 2학기 전공 데이터베이스 설계 및 구현 과제물 (0) | 2019.12.17 |
[방송통신대 컴퓨터과학과] 2019년 2학기 출석수업대체시험/기말시험 정답표 제공 (0) | 2019.10.22 |
[방송통신대 컴퓨터과학과] 2019년 2학기 전공 UNIX 시스템 소개 (0) | 2019.10.22 |
[방송통신대 컴퓨터과학과] 2019년 2학기 전공 JSP 프로그래밍 소개 (0) | 2019.10.22 |
최근댓글