티스토리 뷰

 

* 프로그램 개요 및 기능

 

/* 다항식의 덧셈과 뺄셈을 수행할 수 있다. */

 

1. 사용자가 입력한 두 개의 다항식을 덧셈연산 할 수 있다.

2. 사용자가 입력한 두 개의 다항식을 뺄셈연산 할 수 있다.

3. Roll Back 기능으로 기존에 입력했던 데이터를 반납하고 프로그램을 다시 시작할 수 있다.

 

/* 연결리스트로 구현된 다항식 프로그램으로 동적할당과 메모리 반납이 이루어집니다. */


 

* 프로그램 실행화면 및 간략 설명

 

 

<1>


/* 연산을 원하는 두 개의 다항식을 입력한다. 차수를 표시해줄 때는 '^'기호를 사용하며 빈칸을 포함하여 입력이 가능하다. */

 

/* 사용자가 입력한 다항식은 문자열로 저장되며 문자열에서 정보들을 추출하여

동적할당으로 계수(coefficient)와 지수(exponent)로 구성된 구조체를 만들어 정보를 저장한다.  */

 

 

<2>

 

/* 1번을 누르면 덧셈연산을 한 결과를 출력한다. (1) + (2) 순으로 덧셈이 이루어진다. */

 

/* 실제 연산은 동적으로 할당된 각 노드들을 방문하여 지수와 계수 정보로만 연산을 한다.

연산 결과 또한 지수와 계수 정보를 적절히 추출하여 문자열로 출력한다.  */

 

 

<3>

 

/* 2번을 누르면 덧셈연산을 한 결과를 출력한다. (1) - (2) 순으로 뺄셈이 이루어진다. */

 

 

<4>

 

/* 3번을 누르면 기존에 할당 받았던 메모리를 반납하고 다항식을 입력하는 부분으로 돌아가 다시 시작한다. */

 

/* 동적으로 할당된 노드들을 차례대로 방문하며 메모리를 반납한다. */

 

 

* 코멘트 (구현할 때 어려웠던 점 및 과정 포함)

 

 사용자가 입력한 문자열에서 계수(coefficient) 정보와 지수(exponent) 정보를 추출하여 동적할당된 구조체에 저장하는 작업이 제일 어려웠다. 여러가지 변수와 경우의 수가 많았기 때문인데, 이를 해결하기 위해 제일 먼저 만들어줬던 것이 빈칸 삭제 알고리즘이다.

 그 다음으로는 문자열을 입력할 때 발생할 수 있는 대다수의 경우의 수를 직접 써보며 (처음에 음수가 나올 경우, 계수가 2자리수 이상인 경우 등) 정리하였고 정리된 결과를 바탕으로 알고리즘을 작성했다.

 

 이 정도 줄수의 프로그램을 C로 구현한 것은 거의 처음이었고, 상당히 많은 경우의 수를 거쳐 문자열을 처리하는 과정에서 사고력 훈련을 할 수 있었다. 프로그램이든 실생활의 문제든, 복잡해 보일 수록 하나 하나 작개 쪼개어 분석하고 나누어 보면 해결할 수 있다는 자신감 또한 얻었다.

 

 

/* 제 소스코드의 단점을 보완하신 분은 댓글이나 dlgusdn616@naver.com로 메일 부탁드립니다. */

 

/* 소스코드는 아래 Git link로 첨부합니다. 궁금하신 게 있다면 댓글에 달아주시면 감사하겠습니다. */

 

https://github.com/dlgusdn616/C-program-1


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday