파이썬 최종 - 아이디 알고리즘 (DMCCONET)

hoegon kim·2022년 10월 24일

Python

목록 보기
6/18
post-thumbnail

로딩파일 txt

orange,1234,오렌지,orange@test.com,043,우송대
red,1234,장미,red@test.com,062,전남대
yellow,1234, 개나리, yellow@test.com,062,전남대
green,1234,소나무,green@test.com,043,우송대
blue,1234,바다,blue@test.com,062,전남대

#타이틀
def memTitle(arg):
	print(f'\n{"메뉴선택":=^91}\n')
	for x in arg:
		print(x, end="	")
	print("")
	print("")
	print('='*95)

#회원가입
def memIns(arg):
	f = open('MemV01.txt','a')
	n = 1
	for x in arg:
		if n != len(arg):
			User_info = input('{:^60}	:	'.format(x))
			f.write('{},'.format(User_info))
			n += 1
		elif n == len(arg):
			User_info = input('{:^60}	:	'.format(x))
			f.write('{}\n'.format(User_info))
	f.close()
#로그인
def memLog(arg):
	f = open('MemV01.txt','r')
	i = input('{:^60}	:	'.format(arg[0]))
	p = input('{:^60}	:	'.format(arg[1]))
	while True:
		line = f.readline()
		if not line:
			print(f'\n{"잘못된 아이디입니다.":^88}')
			break
		line = line.split(',')
		if i == line[0].strip():
			if p == line[1].strip():
				print('\n					{0}님 환영합니다.'.format(i))
				break
			else:
				print(f'\n{"잘못된 비밀번호입니다.":^88}')
				break
#회원목록
def memSel(arg):
	print("="*95)
	for i in arg:
		print(i,end='		')
	print('')
	print("="*95)
	print()
	f = open('MemV01.txt','r')
	while True:
		line = f.readline()
		if not line: break
		line = line.split(',')
		n = 1
		for x in line:
			x = x.strip()
			if n != len(arg):
				print(x,end='		')
				n += 1
			elif n == len(arg):
				print(x,'\n')
	f.close()
	print('')
	print('-'*95)

#회원수정
def memUpd():
	memFile = open('MemV01.txt','r')
	temp = ""
	for i in range(0,2):
		print(f'\t\t{itemList[i]:<7} : ', end = '')
		temp += input() + ","
	idChk = 0
	memData = memFile.readlines()
	tempList = temp.split(',')
	memList = ""
	idxChk = -1
	for mem_data in memData:
		idxChk += 1
		memList = mem_data.split(',')
		if tempList[0] == memList[0]:
			idChk = 1
			break

	if idChk:
		if tempList[1] == memList[1]:
			print("\n{:>30} 님 {:}".format(memList[0],'회원수정 가능 상태입니다.\n')) 
			print("\t\t수정전 내용 확인 : {}".format(memData[idxChk]))

			for idx in range(1, len(itemList)):
				print(f'\n\t\t{itemList[idx]:<7} 수정(Y/N) : ', end = '')
				updChk = input()
				if(updChk.upper() == 'Y'):
					print(f'\t\t{itemList[idx]:<7} : ',end = '')
					memList[idx] = input()
				memStr=""
				for idx, memItem in enumerate(memList):
					if idx != len(memList)-1:
						memStr += (memItem+",")
					else:
						memStr += memItem
			memData[idxChk] = memStr
			print("\t\t수정후 내용 확인 : {}". format(memData[idxChk]))
			memFile = open('MemV01.txt','w')
			for memList in memData:
				memFile.write(memList)
			memFile.close()
			print("\n{:>30} 님 {:}".format(tempList[0],"회원 수정 성공입니다.\n"))
			print(f"\n{'현재 회원 수는 ' + str(len(memData)) + '명입니다.': ^46}\n")
			print(f"{memData} / {len(memData)}")
		else:
			print("\n{0:^50}".format("	비밀번호를 확인해 주세요.\n"))
	else:
		print("\n{0:^50}".format("	아이디를 확인해주세요.\n"))


#회원탈퇴
def memDel():
	print('Delete Chk')

#사용 리스트
menu    = ['1.회원가입', '2.로그인', '3.회원목록','4.정보수정','5.회원탈퇴', '9.메뉴종료']
itemList = ['ID', 'PWD', 'NAME', 'EMAIL', 'PHONE', 'ADDRESS']
menuChk = ['1','2','3','4','5','9']

#코드 시작
while True:
	memTitle(menu)
	Mchoice = input('\n{:^40}'.format("메뉴의 번호를 입력해주세요:"))
	print()

	if Mchoice in menuChk:
		if Mchoice == '1':
			print(f'{"SignUp  !":^96}\n')
			memIns(itemList)
		elif Mchoice == '2':
			print(f'{"LogIn  !":^96}\n')
			memLog(itemList)
		elif Mchoice == '3':
			print(f'{"MemberList  !":^95}\n')
			print("")
			memSel(itemList)
		elif Mchoice == '4':
			print(f'{"Modify  !":^96}\n')
			memUpd()
		elif Mchoice == '5':
			print(f'{"WithDrawal  !":^96}\n')
			memDel()
		elif Mchoice == '9':
			print("")
			print(f'{"시스템을 종료 합니다":^88}')
			exit()
	else:
		print(f'{"잘못된 번호입니다":^88}.')

0개의 댓글