목차
프로젝트 내용설명서 1부
프로젝트 소스코드 Document 1부
원본 소스파일 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)
(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)
추천자료
학습장애, 언어장애 치료교육 프로그램
C언어로 코드변환 프로그램 만들기
영어단어암기프로그램 발표(c언어)
C언어를 이용한 정산 프로그램
C언어 네트워트 통신 프로그램 만들기
유아언어교육(유아언어지도)의 말과 언어, 유아언어교육(유아언어지도)의 특성, 유아언어교육...
C언어로 상하좌우 이동하는 프로그램 코딩
멀티미디어학습(교육, 수업)프로그램, 동적기하소프트웨어(GSP)활용학습(교육, 수업)프로그램...
활동중심학습(수업)프로그램 사례, 통일협동학습(수업)프로그램 사례, 자기주도적학습(수업)...
노인성 질환에 대한 언어 재활 프로그램 - 실태조사, 재활 프로그램 개발
통합교육환경과 통합상황 내의 활동중심 미술프로그램이 발달장애유아의 표현언어발달에 미치...
영유아 언어발달 과정과 바람직한 언어지도 방법 및 유아 언어교육의 실제 : 문학적 접근 프...
가정과의 연계를 고려한 언어교육 - 유아 언어교육을 위한 유아교육기관과 가정의 연계 &...
소개글