자료구조 8

소스코드 유사도 검사, 카피 잡기 Code plagiarism detector - MOSS (Windows GUI)

자료구조 TA 하는데 코드 카피하는 사람들이 의외로 많다. 안 들킬줄 알았나보다. 조금의 수정도 없이 뻔뻔하게 족보를 그대로 제출하는 사람들이 있는 반면, 교묘하게 함수명/변수명을 바꾸는건 너무나 뻔한 수법이고, if (smth == NULL) A else B 가 원문이면 if (smth != NULL) B else A 이런식으로 순서를 조금 바꿔서 안 들키려고 하는 사람도 있었다. 뭐라도 조금 바꾼건 노력이 가상하다고 해야하나? 아무튼 인터넷 공개 소스코드는 어디까지나 참고만 해야한다. 딱 보기에 베낀게 뻔해서 바로 0점 매기려고 했는데 확실하게 짚고 가고싶었다. 그래서 소스코드 유사도는 어떻게 측정하는지 찾다가 MOSS를 발견. 사용법은 how to use moss치면 많이 나오는데 보니까 다 lin..

FYI 2021.04.29

[C++] 11주차 과제7

이원탐색트리를 구현한다. 임의의 정수 리스트를 입력받아 이원탐색트리에 저장한다. 이원탐색트리는 연결리스트를 사용하여 구현한다. 이원탐색트리를 중위순회하여 정렬된 순서로 출력한다. 입력물: 정수리스트 출력물: 입력한 정수리스트의 정렬된 결과 (출력 결과물). * 프로그램 내용 외에 다른 내용이 출력된다면 감점이 될 수 있으니 유의바람. Code #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #define N 1000 using namespace std; template class Tree; // 전방선언 template class TreeNode { friend class Tree; private: T data; TreeNode* ..

[C++] 9주차 과제6

과제 4 다항식 입력, 출력, 계산하는 프로그램을 연결리스트로 구현한다. (리스트 반복자 반드시 사용) 다항식은 객체(class)로 생성해야 하며, 다항식 연산을 위하여 연산자 오버로딩 기능을 이용한다. 다항식 a, b, c를 입력받아 문제에 주어진 연산을 수행한다.(다양한 입력 예를 테스트하는 것을 추천함) 다항식 입력은 (계수, 지수) 표현 형태를 이용한다. 다항식의 출력 형식은 첨부파일과 같은 형식을 따른다. 첨부파일의 프로그램 코드를 실행한다. 헤드노드를 갖는 원형연결리스트로 구현한다.(리스트 반복자 반드시 사용) 문자열 입력으로 .이 입력될 때까지 재입력을 받도록 한다. 헤더와 메인 파일은 분리하지 않고 한 개의 cpp파일을 제출한다. 입력값을 반복적으로 받을 수 있게 하고, .(마침표)를 입력..

[C++] 7주차 과제5

간단한 수식을 입력 받아서 계산을 해주는 계산기 프로그램을 작성한다. 반드시 Template 클래스와 스택을 사용하여 구현한다. 자세한 내용은 첨부한 pdf 파일을 참조하여 작성한다. #문자열 입력으로 .이 입력될 때까지 재입력을 받도록 한다. #헤더와 메인 파일은 분리하지 않고 한 개의 cpp파일을 제출한다. #입력값을 반복적으로 받을 수 있게 하고, .(마침표)를 입력하면 프로그램을 종료하도록 한다. 입력: 중위표기식 수식인 문자열 출력: 수식 계산 결과값, 입력 수식의 후위표기식 Code #include #include #include using namespace std; template class Stack { public: Stack(int stackCapacity = 10); bool IsEm..

[C++] 5주차 과제4

다항식을 입력, 출력, 계산하는 프로그램을 구현한다. 다항식은 객체(class)로 생성해야 하며, 다항식 연산을 위하여 연산자 오버로딩 기능을 이용한다. 다항식 a, b, c를 입력받아 문제에 주어진 연산을 수행한다.(다양한 입력 예를 테스트하는 것을 추천함) 다항식 입력은 (계수, 지수) 표현 형태를 이용한다. 다항식의 출력 형식은 첨부파일과 같은 형식을 따른다. 첨부파일의 프로그램 코드를 실행한다. 입력물: 다항식 a, b, c, 정수 x 출력물: 첨부파일의 프로그램 코드를 실행한 결과물(출력 결과물). * 연산자 오버로딩을 구현해야함. * 프로그램 내용 외에 다른 내용이 출력된다면 감점이 될 수 있으니 유의바람. 입력은 0~9까지로 음수 예외처리는 하지 않으셔도 됩니다. Code #include #..

[C++] 3주차 과제3

첨부파일(HW3.pdf)에 제시된 문제를 C++ 프로그램으로 작성하라. 입력 파일의 제목은 "input.txt"로 통일 (문장부호, 중복 단어를 포함한 예문 사용) 결과물(출력할 내용) : 입력파일 내용, 단어 정렬 결과, 중복 제거 결과, 단어 검색 결과 예 단어 정렬 결과, 중복 제거 결과 등은 (단어 위치, 단어)와 같이 쌍으로 표현하며, 출력 형식(표, 리스트 등)은 자유로이 선택 검색 예는 입력에 포함되어 있는 단어, 없는 단어 각 3개씩 검색하여 결과 보이게 한다. 프로그램의 종료 없이 한 번의 실행으로 반복적으로 검색할 수 있도록 한다. (.(마침표) 입력시 프로그램 종료) 문장부호는 최소 '"!?,. 6개를 제외시킨다. 문장에 존재하는 단어를 입력할 시에는 단어의 위치(1부터 시작), 없는..

[C++] 2주차 과제2

1주차에 작성한 학과명, 학번, 이름, 생년월일, 나이, 현재날짜를 출력하는 C++ 프로그램을 수정하여 다음 기능을 포함하도록 작성하라. Exception handling을 구현하기 위한 try-catch의 구조를 이용하여 사용자의 입력 데이터에 오류가 있을 때 처리하는 프로그램을 작성하라. (사용자의 입력 오류로 프로그램이 오작동하는 경우가 발생하지 않도록 최대한 대처할 수 있도록 할 것) 예: 생일 입력시 "2000/03/33"과 같이 잘못된 날짜를 입력한 경우 다시 입력할 것을 요구함 Code // use class Date // 이름, 학부(과)명에 숫자가 들어가지 않고, 학번에는 숫자만 들어간다고 가정했습니다. #include #include #include #include #include #p..

[C++] 1주차 과제1

학과명, 학번, 이름, 생년월일을 입력받아서 학과명, 학번, 이름, 생년월일, 나이, 현재날짜를 출력하는 C++ 프로그램을 작성하라. Date 클래스를 정의해서 이용하라. 입출력 예: 환영합니다! 학과명, 학번, 이름, 생년월일(yyyy/mm/dd)을 입력하세요> 소프트웨어학과, 1111222333, 홍길동, 2000/03/01 >> 소프트웨어학과 1111222333 홍길동님 2000년3월1일생 2020년3월16일 현재 20세입니다. ** 프로그램을 수행할 때의 현재 날짜를 출력해야하며, 본인의 학번과 이름은 정확히 기록해야함(출석 및 과제 제출 확인용). 생일은 임의로 작성 가능. Code // use class Date #include #include #include #include #include ..

반응형