목차
프로젝트 내용설명서 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)활용학습(교육, 수업)프로그램...
- 활동중심학습(수업)프로그램 사례, 통일협동학습(수업)프로그램 사례, 자기주도적학습(수업)...
- 노인성 질환에 대한 언어 재활 프로그램 - 실태조사, 재활 프로그램 개발
- 통합교육환경과 통합상황 내의 활동중심 미술프로그램이 발달장애유아의 표현언어발달에 미치...
- 영유아 언어발달 과정과 바람직한 언어지도 방법 및 유아 언어교육의 실제 : 문학적 접근 프...
- 가정과의 연계를 고려한 언어교육 - 유아 언어교육을 위한 유아교육기관과 가정의 연계 &...
소개글