이러한 목적을 달성하기 위한 본 발명은, 교환할 금액을 입력받으면 교환할 금액에 대해서 각 액면권에 대해서 최대로 교환이 가능한 지폐 매수를 최고액권부터 순차적으로 계산하는 지폐 교환 알고리즘을 수행한다. 지폐 교환 알고리즘에 의해 계산되고 남은 금액에 대하여 각 액면동전에 대해서 최대로 교환이 가능한 동전 개수를 최고액 동전부터 순차적으로 계산하는 동전 교환 알고리즘을 수행한다. 계산된 각 액면권의 지폐 매수 및 각 액면동전의 동전 개수에 따라 지폐 및 동전을 방출한다. 여기서 상기 교환할 금액은 사용자로부터 입력수단을 통해 입력받거나 금융서버로부터 전송받을 수 있다. 또는, 사용자로부터 지폐를 입금받아서 입금받은 지폐의 액면 및 지폐 매수로부터 교환할 금액을 계산할 수도 있다.
계산된 각 액면권의 지폐 매수 및 각 액면동전의 동전 개수에 따라 지폐 및 동전을 방출할 시에는 계산된 각 액면권의 지폐 매수 및 각 액면동전의 동전 개수에 관한 정보를 온라인 호스트에 전송하면서 승인을 요청하고, 호스트로부터 승인이 되면 계산된 매수 및 개수대로 지폐 및 동전을 방출하는 것이 바람직하다. 이때 계산된 각 액면권의 지폐 매수 및 각 액면동전의 동전 개수가 잔고보다 많은 경우에는 잔고가 부족하다는 메시지를 출력한다.
한편, 지폐만을 최고액권부터 순차적으로 계산하여 교환하거나 동전만을 최고액 동전부터 순차적으로 계산하여 교환하는 것도 가능하다.
각 액면권에 대해서 최대로 교환이 가능한 지폐매수는 현재 잔여 교환 금액 범위내에서 현재의 액면권으로 지불할 수 있는 최대의 액수에 해당하는 매수를 계 산하고, 상기 계산된 매수가 해당 액면권의 잔고 매수보다 적은 경우에는 상기 계산된 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정한다.또한 상기 계산된 매수가 해당 액면권의 잔고 매수보다 많은 경우에는 해당 액면권의 잔고 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정하여 상기 지폐교환 알고리즘을 수행한다.
각 액면동전에 대해서 최대로 교환이 가능한 동전 개수는 현재의 잔여 교환 금액 범위내에서 현재의 액면동전으로 지불할 수 있는 최대의 액수에 해당하는 동전 개수를 계산한다. 또한 계산된 매수가 해당 액면동전의 잔고 개수보다 적은 경우에는 상기 계산된 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정하고 상기 계산된 개수가 해당 액면동전의 잔고 개수보다 많은 경우에는 해당 액면동전의 잔고 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정하여 상기 동전교환 알고리즘을 수행한다.
상기 지폐 교환 알고리즘을 수행하는 과정은 구체적으로 다음과 같이 구현 가능하다. 현재 액면권을 최고 액면권으로, 잔여교환 금액을 사용자가 요청한 금액으로, 현재 방출 예정 매수를 0으로 설정한다. 잔여 교환 금액이 현재 액면권의 액면가보다 액수가 많으면, 현재 액면권의 출금 매수를 계산하고 그렇지 않으면 현재 액면권이 최저 액면권인지 여부에 따라, 현재 액면권이 최저 액면권이 아니라면 현재 액면권을 다음 액면권으로 변경하여 상기 현재 액면권을 최고 액면권으로, 잔여교환 금액을 사용자가 요청한 금액으로, 현재 방출 예정 매수를 0으로 설정한 이후부터의 과정을 반복하고 그렇지 않으면 지폐교환 알고리즘을 마친다.
현재 액면권 출금 매수와 현재 방출 예정 매수를 합한 값이 최대 방출 매수보다 많으면 현재 액면권 출금 매수는 최대 방출매수에서 현재 방출 예정 매수를 뺀 값으로 정하고 그렇지 않다면 현재 액면권의 잔고가 현재 액면권의 출금 매수보다 많은지 여부를 판단한다. 현재 액면권의 잔고가 현재 액면권의 출금 매수보다 적으면, 현재 액면권의 출금 매수는 현재 액면권의 잔고만틈으로 정하고 현재 액면권의 잔고가 현재 액면권의 출금 매수보다 많으면 잔여 교환 금액을 잔여 교환 금액에서 현재 액면권 출금 금액을 뺀 값으로 정한 뒤에, 현재 액면건에 대해서 현재 액면권 출금 매수를 저장한다.
잔여 교환 금액이 최저 액면권의 액면가보다 많다면 현재 액면권이 최저 액면권인지 여부에 따라, 현재 액면권이 최저 액면권이 아니라면 현재 액면권을 다음 액면권으로 변경하여 상기 현재 액면권을 최고 액면권으로, 잔여교환 금액을 사용자가 요청한 금액으로, 현재 방출 예정 매수를 0으로 설정한 이후부터의 과정을 반복하고 그렇지 않으면 지폐교환 알고리즘을 마친다.
현재 액면권이 최저 액면권이 아니라면 현재 액면권을 다음 액면권으로 변경 하고 상기 현재 액면권을 최고 액면권으로, 잔여교환 금액을 사용자가 요청한 금액으로, 현재 방출 예정 매수를 0으로 설정한 이후부터의 과정을 반복하며, 그렇지 않으면 지폐교환 알고리즘을 마친다.
상기 동전 교환 알고리즘을 수행하는 과정은 구체적으로 다음과 같이 구현 가능하다. 현재 동전을 최고액 동전으로 설정하고 잔여 교환 금액이 현재 동전의 액면가보다 많으면 현재 동전 출금 개수를 계산한다. 현재 동전의 잔고가 현재 동 전의 출금 개수보다 많으면, 잔여 교환 금액은 잔여 교환 금액에서 현재 동전 출금 금액을 뺀 값으로 정하고, 현재 동전의 잔고가 현재 동전의 출금 개수보다 많지 않다면, 현재 동전의 출금 개수는 현재 동전의 잔고 만큼으로 정한다.
잔여 교환 금액을 잔여 교환 금액에서 현재 동전 출금 금액을 뺀 값으로 정한 뒤, 현재 동전에 대해서 현재 동전 출금 개수를 저장한다. 잔여 교환 금액이 최저액 동저보다 많다면, 동전 교환 알고리즘을 종료하고 그렇지 않다면 현재 동전이 최저액 동전인지 여부를 판단한다.
현재 동전이 최저액 동전이라면 출금할 잔고가 부족하다는 메시지를 화면에 표시하면서 동전교환 알고리즘을 종료하고, 그렇지 않다면 현재 동전을 다음 동전으로 변경하여 상기 현재 동전을 최고액 동전으로 설정한 이후부터의 과정을 반복한다.
또한 본 발명의 화폐 교환 장치는, 자동교환 알고리즘을 수행하기 위한 자동교환 알고리즘 버튼을 구비하고 있는 있는 키 조작부와, 계수된 금액을 표시하는 디스플레이부와, 각종 거래 정보 및 자동교환 알고리즘에 의해 계산된 각 액면권 출금 매수를 저장하고, 각종 알고리즘을 수행하기 위한 프로그램을 저장하는 저장부와, 지폐를 출금하기위한 지폐 출금기를 포함하는 화폐 출금부와, 교환할 금액에 대해서 각 액면권에 대해서 최대로 교환이 가능한 지폐 매수를 최고액권부터 순차적으로 계산하는 지폐 교환 알고리즘을 수행하고, 지폐교환 알고리즘에 의해 계산된 권종별 금액을 화면에 디스플레이하도록 제어하며, 상기 계산된 권종별 금액대로 지폐를 방출하도록 화폐 출금부를 제어하는 제어부를 구비한다.
여기서 상기 화폐 출금부는 지폐를 출금하고 남은 금액에 해당하는 금액을 동전으로 출금하기 위한 동전 출금기를 더 포함하며, 상기 제어부는 지폐 교환 알고리즘에 의해 계산되고 남은 금액에 대하여 각 액면동전에 대해서 최대로 교환이 가능한 동전 개수를 최고액 동전부터 순차적으로 계산하는 동전 교환 알고리즘을 더 수행하며, 계산된 권종별 금액대로 지폐 및 동전을 방출하도록 화폐 출금부를 제어한다.
이때, 각 액면동전에 대해서 최대로 교환이 가능한 동전 개수는 현재의 잔여 교환 금액 범위내에서 현재의 액면동전으로 지불할 수 있는 최대의 액수에 해당하는 동전 개수를 계산하여, 계산된 매수가 해당 액면동전의 잔고 개수보다 적은 경우에는 상기 계산된 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정하고, 그렇지 않은 경우에는 해당 액면동전의 잔고 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정함으로써 산출된다.
또한, 상기 제어부는 교환할 금액을 상기 키 조작부를 통해 사용자로부터 입력받는것이 바람직하며, 상기 화폐 교환 장치는 금융서버와의 통신을 위한 통신 인터페이스를 더 구비하고 상기 제어부는 교환할 금액을 상기 통신 인터페이스를 통해 금융서버로부터 전송받는다. 이때 제어부는 계산된 각 액면권의 지폐 매수에 관한 정보를 통신 인터페이스를 통해 금융서버에 전송하고, 금융서버로 승인이 되면 계산된 매수대로 지폐를 방출한다.
상기 화폐 교환 장치는 지폐를 입금받아 계수하는 지폐 입금부를 더 구비하며, 상기 제어부는 입금받은 지폐의 액면 및 지폐 매수로부터 교환할 금액을 계산 한다. 이때 제어부는 계산된 각 액면권의 지폐 매수가 각 액면권의 잔고보다 많은 경우에는 잔고가 부족하다는 메시지를 상기 디스플레이부를 통해 출력하는 것이 바람직하다.
각 액면권에 대해서 최대로 교환이 가능한 지폐 매수는 현재의 잔여 교환 금액 범위내에서 현재의 액면권으로 지불할 수 있는 최대의 액수에 해당하는 매수를 계산하여, 계산된 매수가 해당 액면권의 잔고 매수보다 적은 경우에는 상기 계산된 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정하고, 그렇지 않은 경우에는 해당 액면권의 잔고 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정함으로써 산출한다.
또한 본 발명의 동전 교환 장치는, 자동교환 알고리즘을 수행하기 위한 자동교환 알고리즘 버튼을 구비하고 있는 있는 키 조작부와, 계수된 금액을 표시하는 디스플레이부와, 각종 거래 정보 및 자동교환 알고리즘에 의해 계산된 각 액면동전 출금 개수를 저장하고, 각종 알고리즘을 수행하기 위한 프로그램을 저장하는 저장부와, 동전을 출금하기위한 동전 출금기를 포함하는 화폐 출금부와, 교환할 금액에 대해서 각 액면동전에 대해서 최대로 교환이 가능한 동전 개수를 최고액 동전부터 순차적으로 계산하는 동전 교환 알고리즘을 수행하고, 동전교환 알고리즘에 의해 계산된 각 동전별 금액을 화면에 디스플레이하도록 제어하며, 상기 계산된 동전별 금액대로 동전을 방출하도록 화폐 출금부를 제어하는 제어부를 구비한다.
이때 각 액면동전에 대해서 최대로 교환이 가능한 동전 개수는 현재의 잔여 교환 금액 범위내에서 현재의 액면동전으로 지불할 수 있는 최대의 액수에 해당하 는 동전 개수를 계산하여, 계산된 매수가 해당 액면동전의 잔고 개수보다 적은 경우에는 상기 계산된 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정하고, 그렇지 않은 경우에는 해당 액면동전의 잔고 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정함으로써 산출된다.
상기 제어부는 교환할 금액을 키 조작부를 통해 사용자로부터 입력받고, 상기 동전 교환 장치는 금융서버와의 통신을 위한 통신 인터페이스를 더 구비한다. 또한 상기 제어부는 교환할 금액을 상기 통신 인터페이스를 통해 금융서버로부터 전송받는다. 이때 제어부는 계산된 각 액면동전의 개수에 관한 정보를 통신 인터페이스를 통해 금융서버에 전송하고, 금융서버로 승인이 되면 계산된 개수대로 동전을 방출한다.
또한 상기 동전 교환장치는 지폐를 입금받아 계수하는 지폐 입금부를 더 구비하며, 상기 제어부는 입금받은 지폐의 액면 및 지폐 매수로부터 교환할 금액을 계산한다. 이때 제어부는 계산된 각 액면동전의 동전 개수가 각 동전의 잔고보다 많은 경우에는 잔고가 부족하다는 메시지를 상기 디스플레이부를 통해 출력한다.
이하, 본 발명의 바람직한 실시예에 관하여 첨부된 도면을 참조하여 상세하게 설명하면 다음과 같다.
도 1은 본 발명의 화폐 교환기의 내부 구성도이다.
본 발명의 화폐교환기(100)는 제어부(103)와 지폐출금기(109a)와 동전 출금기(109b)를 포함하는 화폐 출금부(109)와 디스플레이부(106)와 키 조작부(115)와 저장부(118)로 구성된다.
키 조작부(115)는 각종 장치의 작동 시험 및 화폐의 입고, 출고, 잔고 확인, 고장 상태 확인, 강제 출금의 조작을 수행할 수 있으며, 본 발명에 따라 자동교환 알고리즘을 수행하기 위한 자동교환 알고리즘 키를 구비하고 있다.
디스플레이부(106)는 화폐의 부족상태, 사용자의 조작 순서 안내, 고장 상태, 자동교환 알고리즘에 의해 계산된 금액을 표시한다.
저장부(118)는 각종 거래 정보를 저장하고 있으며, 본 발명에 따라 자동교환 알고리즘에 의해 계산된 현재 액면권 출금 매수와 현재 동전 출금 개수를 저장하고 있다.
화폐출금부(109)는 화폐를 출금하기 위한 것으로 지폐를 출금하기위한 지폐 출금기(109a)와, 지폐를 출금하고 남은 금액에 해당하는 금액을 동전으로 출금하기 위한 동전 출금기(109b)를 포함한다.
제어부(103)는 상기 구성 요소들을 제어하며 본 발명에 따라 사용자가 입력한 금액에 대하여 교환이 가능한 고액권으로부터 순차적으로 계산하는 지폐교환 알고리즘과, 지폐 교환 알고리즘에 의해 계산되고 남은 금액에 해당하는 금액에 대하여 각 액면 동전에 대해서 최대로 교환이 가능한 동전 개수를 최고액 동전부터 순차적으로 계산하는 동전 교환 알고리즘 더 수행하고, 계산된 권종별 금액대로 재폐 및 동전을 방출한도록 제어한다. 또는, 지폐만을 교환하거나 동전만을 교환하도록 구성하는 것도 가능하다.
또한, 이때 본 발명의 화폐 교환 장치는 금융서버와의 통신을 위한 통신 인 터페이스를 더 구비할 수 있다. 제어부(103)는 교환할 금액을 상기 키 조작부(115)를 통해 사용자로부터 입력받거나 상기 인터페이스를 통해 금융서버로부터 전송받는다.
교환할 각 액면권의 지폐 매수에 관한 정보를 통신 인터페이스를 통해 금융서버에 전송하고, 금융서버로 승인이 되면 계산된 매수대로 지폐를 방출하도록 제어할 수도 있다. 마찬가지로, 계산된 각 액면동전의 개수에 관한 정보도 통신 인터페이스를 통해 금융서버에 전송하고, 금융서버로부터 승인이 되면 계산된 개수대로 동전을 방출하도록 할 수 있다.
또한 본 발명의 화폐 교환 장치는 지폐를 입금받아 계수하는 지폐 입금부를 더 구비할 수 있다. 제어부(103)는 입금받은 지폐의 액면 및 지폐 매수로부터 교환할 금액을 계산한다.
한편, 각 액면권에 대해서 교환할 금액이 각 액면권의 잔고보다 많은 경우에는 잔고가 부족하다는 메시지를 상기 디스플레이부(106)를 통해 출력한다. 제어부(103)는 입금받은 지폐의 액면 및 지폐 매수로부터 교환할 금액을 계산하여, 계산된 각 액면 동전의 개수가 각 동전의 잔고보다 많은 경우에는 잔고가 부족하다는 메시지를 상기 디스플레이부(106)를 통해 출력한다.
여기서 각 액면권에 대해서 최대로 교환이 가능한 지폐 매수는 현재의 잔여 교환 금액 범위내에서 현재의 액면권으로부터 지불할 수 있는 최대의 액수에 해당하는 매수를 계산하여, 계산된 매수가 해당 액면권의 잔고 매수보다 적은 경우에는 상기 계산된 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정 하고, 그렇지 않은 경우에는 해당 액면권의 잔고 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정함으로써 산출한다.
또한, 각 액면 동전에 대해서 최대로 교환이 가능한 동전 개수는 현재의 잔여 교환 금액 범위 내에서 현재의 액면동전으로 지불할 수 있는 최대의 액수에 해당하는 동전 개수를 계산하여, 계산된 매수가 해당 액면동전의 잔고 개수보다 적은 경우에는 상기 계산된 개수를 해당 액면 동전에 대해서 최대로 교환이 가능한 동전 개수로 설정하고, 그렇지 않은 경우에는 해당 액면 동전의 잔고 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정함으로써 산출된다.
도 2는 본 발명의 화폐교환기에서 자동교환의 진행 과정을 나타낸 순서도이다.
먼저 화폐 교환기에 전원을 인가하면, 지폐 동전 입출금에 관한 모듈을 초기화 하고 사용자 인터페이스에 조작 가능한 화면을 활성화 한다(단계 203). 사용자가 거래 선택화면에서 교환하고자 하는 금액을 선택한다(단계 206). 이때 교환하고자 하는 금액을 금융 서버로부터 전송 받는 것도 가능하다. 또한 사용자로부터 지폐를 입금 받아서 선택된 금액의 지폐의 액면 및 지폐 매수로부터 교환할 금액을 계산할 수도 있다.
이때 각 액면권에 대해서 최대로 교환이 가능한 지폐 매수는, 현재의 잔여 교환 금액 범위내에서 현재의 액면권으로 지불할 수 있는 최대의 액수에 해당하는 매수를 계산하고, 상기 계산된 매수가 해당 액면권이 잔고 매수보다 적은 경우에는 상기 계산된 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정 하여 수행함으로써 산출된다. 또한, 상기 계산된 매수가 해당 액면권의 잔고 매수보다 많은 경우에는 해당 액면권의 잔고 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정하여 수행함으로써 산출된다.
사용자가 자동 교환 버튼을 누르면 해당 금액에 대하여 고액권부터 순차적으로 계산하는 자동 교환 알고리즘을 수행하고, 자동 교환 알고리즘에 의해 계산된 권종별 금액을 화면에 디스플레이 하게 된다(단계 209). 여기서 상기 자동 교환 알고리즘은 교환하고자 하는 금액에 대하여 교환이 가능한 고액권으로부터 순차적으로 계산하는 지폐 교환 알고리즘과 지폐 교환 알고리즘에 의해 계산되고 남은 금액에 해당하는 금액에 대하여 교환이 가능한 고액 동전부터 순차적으로 계산하는 동전 교환 알고리즘을 포함한다.
이때 각 액면동전에 대해서 최대로 교환이 가능한 동전개수는, 현재 잔여 교환 금액 범위내에서 현재 액면동전으로 지불할 수 있는 최대의 액수에 해당하는 동전 개수를 계산하고, 상기 계산된 매수가 해당 액면동전의 잔고 개수보다 적은 경우에는 상기 계산된 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정하여 수행함으로써 산출된다. 또한 상기 계산된 개수가 해당 액면동전의 잔고 개수보다 많은 경우에는 해당 액면동전의 잔고 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정하여 수행함으로써 산출된다.
이때 온라인 운영이라면 계산된 각 액면권의 지폐 매수 및 각 액면 동전 개수에 관한 정보를 온라인 호스트에 전송하면서 승인 요청을 하고(단계 212), 호스트로부터 승인이 되면 계산된 매수 및 개수대로 지폐와 동전을 방출한다(단계 215). 이때 만약 계산된 각 액면권이 지폐 매수 및 각 액면동전의 동전 개수가 잔고보다 많은 경우에는 잔고가 부족하다는 메시지를 출력하는 것이 바람직하다.
다음으로, 교환하고자 하는 금액에 대하여 교환이 가능한 고액권으로부터 순차적으로 계산하는 지폐 교환 알고리즘과 지폐 교환 알고리즘에 의해 계산되고 남은 금액에 해당하는 금액에 대하여 교환이 가능한 고액 동전부터 순차적으로 계산하는 동전 교환 알고리즘을 포함하는 자동 교환 알고리즘에 대하여 설명한다.
도 3은 지폐 교환 알고리즘을 수행하는 과정을 나타낸 순서도이다.
교환할 금액을 입력받으면, 입금받은 지폐의 액면 및 지폐 매수로부터 교환할 금액을 계산한다. 이렇게 계산된 교환할 금액에 대해서 각 액면권에 대해 최대로 교환이 가능한 지폐 매수를 최고액권부터 순차적으로 계산하는 지폐 교환 알고리즘을 수행하여, 계산된 액면권이 지폐 매수에 따라 지폐를 방출함으로써 이루어진다. 이때 상기 교환할 금액은 사용자로부터 입력수단을 통해 입력을 받거나 금융서버로부터 전송받는 것이 가능하다.
또한, 지폐를 방출하기 전에는 계산된 각 액면권이 지폐 매수에 관한 정보를 온라인 호스트에 전송하면서 승인을 요청하고, 호스트로부터 승인이 요청되면 계산된 매수대로 지폐를 방출한다. 이때, 계산된 각 액면권의 지폐 매수가 각 액면권의 잔고보다 많은 경우에는 잔고가 부족하다는 메시지를 화면에 출력하여주는 것이 바람직하다. 각 액면권에 대해서 최대로 교환이 가능한 지폐 매수는, 현재 잔여 교환 금액 범위내에서 현재의 액면권으로 지불할 수 있는 최대의 액수에 해당하는 매수 를 계산하고, 상기 계산된 매수가 해당 액면권의 잔고 매수보다 적은 경우에는 상기 계산된 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정하고, 상기 계산된 매수가 해당 액면권의 잔고 매수보다 많은 경우에는 해당 액면권의 잔고 매수를 해당 액면권에 대해서 최대로 교환이 가능한 지폐 매수로 설정하여 수행함으로써 산출된다.
예를 들어, 현재의 잔여 교환 금액이 3000원이라고 하였을 경우에 현재의 액면권이 1000원이라고 한다면 현재의 액면권(1000)으로 지불할 수 있는 최대의 액수에 해당하는 재폐 매수는 3매가 된다. 이때, 해당 액면권(1000)의 잔고의 매수가 4매라고 한다면, 계산된 매수(3)가 해당 액면권(1000)의 잔고 개수보다 적으므로, 계산된 매수(3)를 해당 액면권(1000)에 대해서 최대로 교환이 가능한 지폐 매수(3)로 설정하여 산출한다. 또한, 잔고의 지폐 매수가 2매라고 가정하였을 경우에 상기 계산된 매수(3)가 해당 액면권(1000)의 잔고 매수보다 많으므로, 해당 액면권(1000)의 잔고 매수(2)를 해당 액면권(1000)에 대해서 최대로 교환이 가능한 지폐 매수(2)로 설정하여 산출한다.
지폐 알고리즘을 수행하는 구체적인 과정은 다음과 같다.
먼저 '현재 액면권'을 최고 액권으로, '교환할 금액'을 사용자가 요청한 금액 또는 서버로부터 전송받은 금액 등의 입력된 교환할 전체금액으로, '현재 방출 예정매수'를 0으로 설정한다(단계 303).
먼저, 교환할 금액이 현재 액면권보다 액수가 많다면(단계 306의 '예'), 현재 액면권 출금매수를 계산하고(단계 309) 그렇지 않으면(단계 306의 '아니오') 현 재 액면권으로는 교환이 안되므로 현재 액면권이 최저 액면권인지 여부를 판단하여(단계 333) 현재 액면권이 최저 액면권이 아니라면(단계 333의 '아니오') 현재 액면권을 다음 액면권으로 변경하여(단계 336) 처음부터의 과정을 다시 수행한다.
즉 교환할 금액을 58300원이라고 하였을 때에 현재 액면권의 최고 액권은 만원이 되고, 교환할 금액 58300원이 현재 액면권 만원보다 액수가 많으므로 현재 액면권 출금 매수는 5장이 된다. 반면, 예를 들어 현재 교환할 금액이 8300원이라고 하고, 현재 액면권의 최고 액권은 만원이라고 하면, 교환할 금액 8300원이 현재 액면권 만원보다 적으므로 현재 액면권이 최저 액면권이 아니라면 현재 액면권을 다음 액면권으로 변경하여 과정을 수행하게 된다. 즉 현재 액면권 만원권이 최저 액면권 천원권과 동일하지 아니므로 현재 액면권 만원권의 다음 액면권인 오천원권으로 변경하여 현재 액면권인 오천원권에 대하여 현재 액면권 출금매수를 계산하게 된다. 따라서 8300원에서 오천원권이 나올 현재 액면권 출금 매수는 1장이 된다.
한편, 지폐교환기에서는 한번에 방출할 수 있는 최대 방출매수가 정해져 있는 경우가 있다. 예를 들면, 액면권에 상관없이 한번에 지폐를 200장까지만 방출할 수 있는 것이다. 이러한 경우를 감안하여 현재 액면권 출금매수와 현재 방출 예정매수를 더한 값이 최대 방출 매수보다 많은지를 확인한다(단계 312).
현재 액면권 출금매수와 현재 방출 예정매수를 더한 값이 최대 방출 매수보다 많다면(단계 312의 '예') 현재 액면권 출금 매수를 최대 방출 매수에서 현재 방출 예정 매수를 뺀 값으로 정하고(단계 315), 현재 액면권의 잔고가 현재 액면권의 출금 매수보다 크거나 같은지 여부를 판단한다(단계 318).
현재 액면권 출금매수와 현재 방출 예정매수를 더한 값이 최대 방출 매수보다 많지 않고(단계 312의 '아니오') 현재 액면권의 잔고가 현재 액면권의 출금 매수보다 크지 않다면(단계 318의 '아니오'), 현재 액면권 출금 매수를 현재 액면권의 잔고로 정하고(단계 321) 그렇지 않다면(단계 318의 '예') 교환할 금액을 교환할 금액에서 현재 액면권 출금 금액을 뺀 값으로 정한 뒤에(단계 324) 현재 액면권에 대해서 현재 액면권 출금 매수를 저장한다(단계 327).
예를 들어, 교환할 금액을 58300원이라고 하였을 때 현재 액면권을 최고액권인 만원이라고 한다면 현재 액면권 출금 매수는 5장이 된다. 그런데, 최대 방출매수가 100장이라고 하면, 현재 액면권 출금매수(5)와 현재 방출 예정 매수(0)의 합이 최대 방출매수보다 적으므로 현재 액면권의 출금 매수는 5장이 된다.
이때 현재 액면권의 잔고, 즉 만원권이 현재 액맨권이라고 가정하였을 때 보유하고 있는 만원의 잔고가 현재 액면권의 출금 매수 보다 크거나 같은지 여부를 판단하게 된다. 즉 만원권이 5장이므로 만원권으로 5장 이상의 잔고를 보유하고 있는지 여부를 판단하여, 5장 이상의 잔고를 보유하고 있다면 교환할 금액을 교환할 금액에서 현재 액면권 출금 금액을 뺀 값 즉 58300에서 50000원을 뺀 8300원으로 정하고, 현재 액면권 만원권에 대해서 현재 액면권 출금 매수인 5장을 저장한다.
예를 들어, 만약 만원권의 잔고가 4장이라고 한다면 만원권의 출금매수를 현재 액면권의 잔고와 맞추어 4장, 즉, 40000원을 출금 금액으로 정하고, 교환할 금액은 58300에서 40000원을 뺀 18300으로 정하게 되고 현재 액면권인 만원권에 대해서 현재 액면권 출금 매수인 4장을 저장한다.
이렇게 정해진 교환할 금액이 최저 액면권보다 크다면(단계 330의 '예) 현재 액면권이 최저 액면권인지 여부를 판단한다(단계 333). 현재 액면권이 최저 액면권이라면(단계 333의 '예') 지폐로서는 더 이상 교환할 액면권이 없음을 의미하므로 지폐교환 알고리즘을 마치고 그렇지 않다면(단계 333의 '아니오'), 현재 액면권을 다음 액면권으로 변경하여(단계 336) 상기 과정들을 반복한다.
예를 들어, 위의 예에서 교환할 금액 18300원이 남은 상태에서 최저 액면권 천원권보다 크므로, 현재 액면권이 최저 액면권인지 여부를 판단하게 된다. 현재 액면권은 만원이므로 최저 액면권이 아니라고 판단하여 현재 액면권을 만원권 다음인 오천원권으로 바꾸어 상기의 과정들을 반복하게 된다. 또한, 교환할 금액이 최저 액면권 액면가보다 많지 않다면(단계 330의 '아니오'), 지폐로서는 더 이상 교환할 것이 없으므로 바로 지폐교환 알고리즘을 마친다.
도 4는 동전교환 알고리즘을 수행하는 과정을 나타낸 순서도이다.
교환할 금액을 입력받으면, 입금받은 지폐의 액면 및 지폐 매수로부터 교환할 금액을 계산하고, 계산된 교환할 금액에 대해서 최대로 교환이 가능한 동전 개수를 최고액 동전부터 순차적으로 계산한다. 계산된 각 액면동전의 동전 개수에 따라 동전을 방출한다. 여기서 상기 교환할 금액은 사용자로부터 입력 수단을 통해 입력받거나, 금융서버로부터 전송받는 것이 가능하다.
또한, 상기 동전을 방출하기 전에는 계산된 각 액면동전의 동전 개수에 관한 정보를 온라인 호스트에 전송하면서 승인을 요청하고, 호스트로부터 승인이 되면 계산된 개수대로 동전을 방출하는 것이 바람직하다. 이때 계산된 각 액면동전의 동 전 개수가 각 액면동전의 동전 잔고보다 많은 경우에는 잔고가 부족하다는 메시지를 화면에 출력한다.
각 액면동전에 대해서 최대로 교환이 가능한 동전 개수는, 현재의 잔여 교환 금액 범위내에서 현재의 액면동전으로 지불할 수 있는 최대의 액수에 해당하는 동전 개수를 계산하고, 상기 계산된 매수가 해당 액면동전의 잔고 개수보다 적은 경우에는 상기 계산된 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전개수로 설정하고, 상기 계산된 개수가 해당 액면동전의 잔고 개수보다 많은 경우에는 해당 액면동전의 잔고 개수를 해당 액면동전에 대해서 최대로 교환이 가능한 동전 개수로 설정하여 수행함으로써 산출된다.
예를 들어, 현재의 잔여 교환 금액이 1500원이라고 하였을 경우에 현재의 액면동전을 500원이라고 한다면 현재의 액면동전(500)으로 지불할 수 있는 최대의 액수에 해당하는 동전 개수는 3개가 된다. 해당 액면동전(500)의 잔고의 개수가 4개라고 한다면, 계산된 매수(3)이 해당 액면동전(500)의 잔고 개수보다 적으므로, 계산된 개수(3)를 해당 액면동전(500)에 대해서 최대로 교환이 가능한 동전개수(3)로 설정한다. 또한, 해당 동전(500)의 잔고의 개수가 2개라고 가정하였을 경우에 상기 계산된 개수(3)가 해당 액면동전(500)의 잔고 개수보다 많으므로, 잔고개수(2)를 해당 액면동전(500)에 대해서 최대로 교환이 가능한 동전개수(2)로 설정하여 산출한다.
동전교환 알고리즘을 수행하는 과정은 다음과 같다.
먼저 현재 동전을 최고액 동전으로 설정하고(단계 403), 교환할 금액이 현재 동전 액면가보다 많으면(단계 406의 '예') 현재 동전 출금 개수를 계산한다(단계 409). 이때, 현재 동전의 잔고가 계산된 현재 동전의 출금 개수보다 많지 않다면(단계 412의 '아니오'), 현재 동전의 출금 개수는 현재 동전의 잔고 만큼으로 정한다(단계 415).
반면, 현재 동전의 잔고가 현재 동전의 출금 개수보다 많으면(단계 412의 '예'), 단계 415를 거치지 않고 바로 단계 418로 간다.
단계 418에서는 교환할 금액에서 현재 동전 출금 금액을 뺀 값을 교환할 금액으로 정한다(단계 418). 그리고, 현재 동전에 대해서 단계 415 또는 단계 409에서 계산된 현재 동전 출금 개수를 저장한다(단계 421).
단계 418에서 새로 정해진 교환할 금액이 최저액 동전보다 많다면(단계 424의 '예') 현재 동전이 최저액 동전인지 여부를 판단하고(단계 433), 현재 동전이 최저액 동전이라면(단계 433의 '예') 출금할 잔고가 부족하다는 메시지를 화면에 표시(단계 436)하면서 교환할 금액을 반환하며(단계 439), 그렇지 않다면 현재 동전을 다음 동전으로 변경하여(단계 441) 단계 406부터 반복한다.
단계 418에서 새로 정해진 교환할 금액이 최저액 동전보다 많지 않다면(단계 424의 '아니오'), 더 이상 교환할 동전이 없음을 의미하므로 동전 교환 알고리즘을 종료하고, 저장된 현재 액면권 출금 매수 만큼 지폐를 방출하고(단계 427), 지폐 방출 후에 저장된 현재 동전 출금 개수만큼 동전을 방출한다(단계 430).
예를 들어, 지폐 알고리즘을 수행하고 남은 교환할 금액이 1800이라고 하였을 경우에 현재 동전은 최고액 동전인 오백원권이 되고, 교환할 금액 1800이 현재 동전의 액면가보다 크므로 현재 동전의 출금 계수를 계산한다.
즉 1800원에서 오백원권을 방출할 수 있는 예상 출금 계수는 3개이며, 이를 계산한뒤 현재 500원권 동전의 잔고가 현재 동전의 출금 개수 즉, 3개 이상인지 여부에 따라, 3개 이상이라면 교환할 금액은 1800원에서 현재 동전의 출금 금액인 1500원을 뺀 값으로 정하고, 현재 동전인 오백원권에 대해서 현재 동전의 출금 개수 3개를 저장한다.
만약 현재 동전의 잔고가 3개보다 적은 2개라고 한다면, 현재 동전의 출금 개수를 현재 동전의 잔고 만큼으로 정하고, 이때 교환할 금액은 1800원에서 현재 동전의 출금 금액인 1000원을 뺀 값으로 정하고, 현재 동전 오백원권에 대하여 현재 동전의 출금 개수 2개를 저장한다.
이제 교환할 금액을 300원이라고 하였을 경우에 교환할 금액 300원은 최저액 동전인 십원권보다 크고, 현재 동전이 최저액 동전이 아니므로 현재 동전을 다음 동전인 백원권으로 바꾸고 상기의 과정을 반복한다.
이와 같은 과정을 거쳐서 최저액 동전에 대한 계산이 종료하면, 저장된 현재 액면권 출금 매수만큼 지폐를 방출하고, 저장된 현재 동전의 출금 개수만큼 동전을 방출한다. 한편, 출금할 잔고가 부족한 경우에는, 출금할 잔고가 부족함을 알리고 교환할 금액을 반환해주는 것이 바람직하다.
한편, 이상의 설명에서는 지폐와 동전을 동시에 교환하는 경우에 대해서 설명하였으나, 지폐만을 교환하거나 동전만을 교환하는 경우에도 본 발명의 방법을 적용할 수 있다. 즉, 지폐를 교환하는 경우에는 도 3의 알고리즘을 적용할 수 있으 며, 동전을 교환하는 경우에는 도 4의 알고리즘을 적용할 수 있다. 그리고, 각 알고리즘의 종료시에 각 액면권에 대해서 산출된 출금매수만큼 지폐 또는 동전을 방출한다.
이상, 본 발명을 몇가지 예를 들어 설명하였지만, 본 발명은 특정 실시예에 한정되는 것은 아니다. 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자라면 본 발명의 사상에서 벗어나지 않으면서 다양한 수정과 변경을 가할 수 있음을 이해할 것이다.