[프로그래밍언어]LISP을 이용한 DB관리프로그램
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
해당 자료는 7페이지 까지만 미리보기를 제공합니다.
7페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[프로그래밍언어]LISP을 이용한 DB관리프로그램에 대한 보고서 자료입니다.

목차

프로젝트 내용설명서 1부
프로젝트 소스코드 Document 1부
원본 소스파일 1부

본문내용

(defun EnterInfo ( input number ) ;입력정보를 입력하는 함수

(setq test ( member number StructNum )) ;입력된 레코드의 번호가 이제까지 입력된
; 레코드의 번호 리스트에 들어있는지 체크

(
if ( not test ) ;위에서 구한 test가 nil일 경우 새로운 레코드이므로 구조체를
;새로 만들어 입력된 정보를 저장
( progn

(setq StructNum (Cons number StructNum)) ;레코드의 번호를 list로 만듬
(setf employee1 (make-employee)) ;새로운 구조체를 만듬

(setq name ( cadr (member 'EName input)))
(setq title ( cadr (member 'ETitle input)))
(setq address ( cadr (member 'EAddress input)))
(setq phone (cadr (member 'EPhone input)))
(setq salary (cadr (member 'ESalary input)))
(setq skill (cadr (member 'ESkills input)))

(setf (employee-EName employee1) name)

; ( if (= number 0 ) (setq number 500) )

(setf (employee-ENumber employee1) number)

(setf (employee-ETitle employee1) title)
(setf (employee-EAddress employee1) address)
(setf (employee-EPhone employee1) phone)
(setf (employee-ESalary employee1) salary)
(setf (employee-ESkills employee1) skill)

(setq GStruct (Cons employee1 GStruct )) ;입력을 저장한후 구조체를 list로 연결
);progn

) ;if

( if test ;만일 레코드가 미리 입력되어 있던 레코드일 경우

( progn

( prog1 (print "Already same enumber! you want CONTINUE?( y / n ) ")
(setf x (read))) ;번호가 중복되었음을 알리고 계속 입력할 여부를 확인


( if ( equal x 'y)

(progn
(setq findnum ( - (list-length StructNum ) (list-length (member number StructNum))))
;번호가 중복된 경우 레코드를 새로 만들지 않고 그 번호의 레코드에 입력
(setq name ( cadr (member 'EName input)))
(setq title ( cadr (member 'ETitle input)))
(setq address ( cadr (member 'EAddress input)))
(setq phone (cadr (member 'EPhone input)))
(setq salary (cadr (member 'ESalary input)))
(setq skill (cadr (member 'ESkills input)))

;예전에 만들어진 구조체에 추가하거나 수정하는 경우이기 때문에
;바로위에서 nil이 된 변수일 경우 nil을 또 넣으면 예전값이 nil로
;바뀌므로 nil인 경우에는 스킵을함 (이전값을 그대로 이어감)

( if name ;만일 변수가 nil일 경우 구조체에 넣지 않음
(setf (employee-EName (nth findnum GStruct)) name)
)

(setf (employee-ENumber (nth findnum GStruct)) number)

(if title
(setf (employee-ETitle (nth findnum GStruct)) title)
)
(if address
(setf (employee-EAddress (nth findnum GStruct)) address)
)
(if phone
(setf (employee-EPhone (nth findnum GStruct)) phone)
)
(if salary
(setf (employee-ESalary (nth findnum GStruct)) salary)

키워드

  • 가격2,000
  • 페이지수20페이지
  • 등록일2004.11.15
  • 저작시기2004.10
  • 파일형식압축파일(zip)
  • 자료번호#269459
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니