2016-12-26 4 views
1

최근에 메뉴를 사용해야하는 프로그램을 만드는 작업이 주어졌습니다. 그러나 창을 만들고 특정 키를 사용하여 상호 작용할 수있는 텍스트를 표시하는 방법을 모릅니다. '입력'키를 사용해 봅시다. 누구든지이 작업을 수행하는 방법에 대한 힌트가 있습니까?체계에서 대화식 메뉴를 만드는 방법

답변

1

구성표 보고서에는 GUI가 지원되지 않으므로 유일한 이식 가능한 인터페이스는 CLI 인터페이스입니다. 이것은 단지 이러한 부분을 가진 매우 간단한 프로그램입니다.

#!r6rs 
(import (rnrs)) 

(define *stdin* (current-input-port)) 
(define (readline) 
    (get-line *stdin*)) 

;;; displays a textual menu 
(define (menu) 
    (display "Menu\n1. read input\n2. print data\n3. empty input\n")) 

;; read until we got the value between 1 and 3 from user 
(define (read-command) 
    (display "Enter choice [1-3] >") 
    (let* ((in (readline)) 
     (n (string->number in))) 
    (cond ((<= 1 n 3) n) 
      (else 
      (display "Invalid choice \"") 
      (display in) 
      (display "\"\n") 
      (read-command))))) 


(define (driver data) 
    (menu) 
    (let ((choice (read-command))) 
    (cond ((= choice 1) (display "Enter text >") 
         (driver (cons (readline) data))) 
      ((= choice 2) (display "Data:\n") 
         (display data) 
         (newline) 
         (driver data)) 
      (else (display "Emptied\n") 
       (driver '()))))) 

(driver '()) 

물론 개별 구현에는 GUI가 지원됩니다. 예 : Racket은 메뉴를 클릭하는 버튼이 될 수있는 데스크톱 애플리케이션을 만드는 방법을 제공합니다.

관련 문제