프로그래밍/Python
python 5일차 - 성적 관리 프로그램
비전공개미
2022. 9. 2. 18:03
반응형
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