비전공개미 개발노트
python 5일차 - 성적 관리 프로그램 본문
반응형
    
    
    
  SMALL
    In [54]:
class Student:   # dto, vo
    def __init__(self, name, number, lang, eng, math):
        self.name = name
        self.number = number
        self.lang = lang
        self.eng = eng
        self.math = math
    
    # 확인용
    def dataPrint(self):
        print(self.name, self.number, self.lang, self.eng, self.math)
In [55]:
class StudentDao(Student):  # Data Access Object == CRUD
    def __init__(self):
        self.student_list = []
        # 테스트 넣어놓기
        self.student_list.append(Student('홍길동', 1, 90, 80, 70))
        self.student_list.append(Student('홍길동', 4, 80, 70, 75))
        self.student_list.append(Student('성춘향', 2, 95, 10, 60))
        self.student_list.append(Student('홍두깨', 3, 80, 70, 50))
        
    def insert(self):
        name = input('이름 > ')
        age = int(input('나이 > '))
        lang = int(input('국어 점수 > '))
        eng = int(input('영어 점수 > '))
        math = int(input('수학 점수 > '))
        
        stud = Student(name, age, lang, eng, math)
        
        self.student_list.append(stud)
    
    def delete(self):  # remove
        name = input('삭제할 학생의 이름 > ')
        
        findObj = None
        # 검색
        for obj in self.student_list:
            if obj.name == name:
                #obj.dataPrint()  # 데이터 확인하기
                findObj = obj  # 찾았을때
                break
        
        if findObj != None:
            #findObj.dataPrint()
            self.student_list.remove(findObj)
            print('삭제되었습니다')
        else:
            print('학생 데이터를 찾을 수 없습니다')
        
    def select(self):
        name = input('검색할 학생의 이름 > ')
        
        findObjList = []  # 찾은 학생들을 넣어줄 리스트 생성
        # 검색
        for obj in self.student_list:
            if obj.name == name:
                #obj.dataPrint()  # 데이터 확인하기
                #findObj = obj  # 찾았을때
                findObjList.append(obj)
        
        for obj in findObjList:
            obj.dataPrint()
                
    def update(self):
        name = input('수정할 학생의 이름 > ')
        findObj = self.search(name)
        
        if findObj != None:
            lang = int(input('국어 점수 > '))
            eng = int(input('영어 점수 > '))
            math = int(input('수학 점수 > '))
            
            findObj.lang = lang
            findObj.eng = eng
            findObj.math = math
            
            print(name,'학생의 정보가 변경되었습니다')
            
        else:
            print('학생 데이터를 찾을 수 없습니다')
    
    # search함수화
    def search(self, name):
        findObj = None
        for obj in self.student_list:
            if obj.name == name:
                #obj.dataPrint()  # 데이터 확인하기
                findObj = obj  # 찾았을때
                break
                
        return findObj
    
    def allprint(self):
        for obj in self.student_list:
            obj.dataPrint()
 
In [ ]:
# StudentDao 생성
dao = StudentDao()
while True:   # 무한루프
    print('menu >>>>>>>>>>>>>>>> ')
    print('1. 학생 정보 추가')
    print('2. 학생 정보 삭제')
    print('3. 학생 정보 검색')
    print('4. 학생 정보 수정')
    print('5. 학생 정보 모두 출력')
    print('6. 종료')
    
    work = int(input('번호를 입력 > '))
    
    if work == 1:
        dao.insert()
    elif work == 2:
        dao.delete()
    elif work == 3:
        dao.select()
    elif work == 4:
        dao.update()
    elif work == 5:
        dao.allprint()
    else:
        break
menu >>>>>>>>>>>>>>>> 
1. 학생 정보 추가
2. 학생 정보 삭제
3. 학생 정보 검색
4. 학생 정보 수정
5. 학생 정보 모두 출력
6. 종료
번호를 입력 > 1
이름 > 임꺽정
나이 > 40
국어 점수 > 90
영어 점수 > 90
수학 점수 > 85
menu >>>>>>>>>>>>>>>> 
1. 학생 정보 추가
2. 학생 정보 삭제
3. 학생 정보 검색
4. 학생 정보 수정
5. 학생 정보 모두 출력
6. 종료
번호를 입력 > 5
홍길동 1 90 80 70
홍길동 4 80 70 75
성춘향 2 95 10 60
홍두깨 3 80 70 50
임꺽정 40 90 90 85
menu >>>>>>>>>>>>>>>> 
1. 학생 정보 추가
2. 학생 정보 삭제
3. 학생 정보 검색
4. 학생 정보 수정
5. 학생 정보 모두 출력
6. 종료
번호를 입력 > 2
삭제할 학생의 이름 > 임꺽정
삭제되었습니다
menu >>>>>>>>>>>>>>>> 
1. 학생 정보 추가
2. 학생 정보 삭제
3. 학생 정보 검색
4. 학생 정보 수정
5. 학생 정보 모두 출력
6. 종료
번호를 입력 > 3
검색할 학생의 이름 > 홍길동
홍길동 1 90 80 70
홍길동 4 80 70 75
menu >>>>>>>>>>>>>>>> 
1. 학생 정보 추가
2. 학생 정보 삭제
3. 학생 정보 검색
4. 학생 정보 수정
5. 학생 정보 모두 출력
6. 종료
번호를 입력 > 4
수정할 학생의 이름 > 홍두깨
국어 점수 > 90
영어 점수 > 95
수학 점수 > 90
홍두깨 학생의 정보가 변경되었습니다
menu >>>>>>>>>>>>>>>> 
1. 학생 정보 추가
2. 학생 정보 삭제
3. 학생 정보 검색
4. 학생 정보 수정
5. 학생 정보 모두 출력
6. 종료
번호를 입력 > 5
홍길동 1 90 80 70
홍길동 4 80 70 75
성춘향 2 95 10 60
홍두깨 3 90 95 90
menu >>>>>>>>>>>>>>>> 
1. 학생 정보 추가
2. 학생 정보 삭제
3. 학생 정보 검색
4. 학생 정보 수정
5. 학생 정보 모두 출력
6. 종료
반응형
    
    
    
  LIST
    '프로그래밍 > Python' 카테고리의 다른 글
| [Python] Pandas 기본출력 (0) | 2022.12.01 | 
|---|---|
| [Python] Numpy 기본출력 (0) | 2022.12.01 | 
| python 5일차 - NumPy (0) | 2022.09.02 | 
| python 5일차 - OOP, 클래스 (0) | 2022.09.02 | 
| python 4일차 - class(클래스) (0) | 2022.09.01 | 
			  Comments