歌曲管理系统
管理员操控
管理员登录请输入1,用户都登录请输入2:1
请输入管理员名:AB
请输入密码123
登录成功
==============================歌曲管理系统===================================
---------------------------------功能选择---------------------------------------
1.录入歌曲信息
2.查找歌曲信息
3.删除歌曲信息
4.修改歌曲信息
5.显示歌曲排行
6.修改登录密码
0.退出系统
------------------------------------------------------------------------------
==============================================================================
请输入要执行的功能序号:
管理登录密码数据
{'管理员': 'AB', '密码': '123'}
{'管理员': 'CD', '密码': '456'}
{'管理员': 'ab', '密码': '123'}
使用步骤
class Manager():
def __init__(self,name,pw):
self.name=name
self.pw=pw
def change(self,other):
if self.name==other.name and self.pw==other.pw:
return True
else:
return False
def updatePw(self,newPw):
self.pw=newPw
def showManager(self):
print("管理员名:",self.name)
print("密码:",self.pw)
#声明类名Manager 一个构造方法加三个普通方法
def check():
filename = '管理档案.txt'
Manager_check=[]
while True:
if os.path.exists(filename):
a = 0
管理员名=input('请输入管理员名:')
密码 = input('请输入密码')
with open(filename, 'r', encoding='utf-8') as rfile:
song = rfile.readlines()
for item in song:
d = dict(eval(item))
if d['管理员'] == 管理员名:
if d['密码'] == 密码:
a == 0
break
else:
a += 1
if a == 0:
print('登录成功')
return
else:
print('登录失败,请重新尝试')
引入库
import 用户使用
运行函数
if __name__ == '__main__':
choice= input('管理员登录请输入1,用户都登录请输入2:')
if choice =='1':
check()
main()
if choice =="2":
print('用户方法')
用户使用.check()
用户使用.menu()
用户使用.main()
用户使用.change()
主函数
import os
#引入库
def main():
while True:
menu()
choice=int(input("请输入要执行的功能序号:"))
if choice in [0,1,2,3,4,5,6]:
if choice==0:
answer=input("您要退出系统吗?y/n:")
if answer == 'y' or answer == 'Y':
print("感谢您的使用")
return
if answer == 'n' or answer == 'N':
continue
elif choice == 1:
insert()
elif choice == 2:
search()
elif choice == 3:
delete()
elif choice == 4:
modify()
elif choice == 5:
show()
elif choice == 6:
change()
else:
print("输入有误,请重新输入")
显示主页面菜单
def menu():
print('''
==============================歌曲管理系统===================================
---------------------------------功能选择---------------------------------------
\t\t\t\t 1.录入歌曲信息
\t\t\t\t 2.查找歌曲信息
\t\t\t\t 3.删除歌曲信息
\t\t\t\t 4.修改歌曲信息
\t\t\t\t 5.显示歌曲排行
\t\t\t\t 6.修改登录密码
\t\t\t\t 0.退出系统
------------------------------------------------------------------------------
==============================================================================''')
录入歌曲信息
def insert():
song_list=[]
while True:
歌名=input("请输入歌名:")
if not 歌名:
break
歌手 = input("请输入歌曲歌手:")
if not 歌手:
break
try:
曲风=input("请输入歌曲曲风:")
排行=int(input("请输入歌曲排行:"))
专辑 = input("请输入歌曲专辑:")
except:
print("输入有误,请重新输入")
continue
song={'歌名':歌名,'歌手':歌手,'曲风':曲风,'排行':排行,'专辑':专辑}
song_list.append(song)
answer=input("是否继续输入y/n:")
if answer=='y'or answer=='Y':
continue
else:
save(song_list)
print("歌曲信息录入完毕!!!")
return main()
查找歌曲信息
filename='song.txt'
def save(list):
son_txt=open(filename,'a',encoding='utf-8')
# 打开文件用于追加,新文件将会写入已有文件;若该文件不存在,创建新文件进行写入即保存。
for item in list:
print(item)
son_txt.write(str(item) + '\n')
son_txt.close()
def search():
song_query=[]
while True:
歌名=''
if os.path.exists(filename):
mode=input('按歌名查找输入1,按歌手查找输入2:')
if mode=='1':
歌名=input('请输入歌曲歌名:')
with open(filename, 'r', encoding='utf-8') as rfile:
# 一般常用with open,r以只读的方式打开文件,file encoding为文件使用的编码
song = rfile.readlines()
#读取文件所有行
for item in song:
d = dict(eval(item))
if d['歌名'] == 歌名:
song_query.append(d)
print(song_query)
song_query.clear()
elif mode=='2':
歌手=input('请输入歌曲歌手:')
with open(filename, 'r', encoding='utf-8') as rfile:
song = rfile.readlines()
for item in song:
d = dict(eval(item))
if d['歌手'] == 歌手:
song_query.append(d)
print(song_query)
song_query.clear()
else:
print('输入信息有误')
search()
answer=input('是否继续查询歌曲信息:y/n:')
if answer=='y' or answer=='Y':
continue
else:
break
else:
print('尚未保存歌曲信息:')
return search()
return main()
修改歌曲信息
def modify():
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8') as rfile:
song_old=rfile.readlines()
else:
return
song_歌名=input('请输入你想修改的歌曲歌名:')
with open(filename,'w',encoding='utf-8') as wfile:
# w打开文件只用于写入,若该文件已存在则将其覆盖;不存在则创建新文件
for item in song_old:
d=dict(eval(item))
#列表转为字典
if d['歌名']==song_歌名:
print(f'找到{song_歌名}的信息,可以修改')
while True:
try:
d['歌名']=input('请输入新歌名:')
d['歌手']=input('请输入歌手:')
d['曲风']=input('请输入歌曲曲风:')
d['排行']=int(input('请输入歌曲排行:'))
d['专辑']=input('请输入歌曲专辑:')
except:
print('输入有误,请重新输入')
continue
else:
break
wfile.write(str(d)+'\n')
else:
wfile.write(str(d)+'\n')
wfile.close()
answer=input('是否继续修改歌曲信息y/n:')
if answer=='y' or answer=='Y':
modify()
else:
print('信息修改成功!!!')
删除歌曲信息
def delete():
while True:
song_歌名=input('请输入想要删除的歌名:')
if song_歌名!='':
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8') as file:
song_old=file.readlines()
else:
song_old=[]
flag=False
if song_old:
with open(filename,'w',encoding='utf-8') as wfile:
d={}
for item in song_old:
d=dict(eval(item))
if d['歌名']!=song_歌名:
wfile.write(str(d)+'\n')
else:
flag=True
if flag:
print(f"歌名为{song_歌名}的歌曲信息已经删除!")
else:
print(f'没有找到歌名为{song_歌名}的歌曲信息')
else:
print('无此歌曲信息')
break
# show()
s=input('请选择是否继续删除歌曲信息y/n:')
if s=='y' or s=='Y':
continue
else:
return main()
修改登录密码
def change():
filename='管理档案.txt'
if os.path.exists(filename):
with open(filename,'r',encoding='utf-8') as rfile:
密码_old=rfile.readlines()
else:
return
manager_管理员名=input('请输入管理员名:')
with open(filename,'w',encoding='utf-8') as wfile:
for item in 密码_old:
d=dict(eval(item))
# song_排行=int(input('请输入歌曲排行'))
if d['管理员']==manager_管理员名:
print(f'找到{manager_管理员名}的信息,可以修改')
while True:
try:
d['密码']=input('请输入新密码:')
except:
print('输入有误,请重新输入')
continue
else:
break
wfile.write(str(d)+'\n')
else:
wfile.write(str(d)+'\n')
wfile.close()
answer = input('是否继续修改y/n:')
if answer == 'y' or answer == 'Y':
modify()
else:
print('密码修改成功!!!')
return main()
用户操控
管理员登录请输入1,用户都登录请输入2:2
用户方法
请输入用户名:ab
请输入密码789
登录成功
==============================用户歌曲系统===================================
---------------------------------功能选择---------------------------------------
1.录入最近播放
2.查找歌曲信息
3.显示最近播放
4.修改登录密码
0.退出系统
------------------------------------------------------------------------------
==============================================================================
请输入要执行的功能序号:
用户登录密码数据
{'用户名': 'ab', '密码': '789'}
{'用户名': 'cd', '密码': '456'}
{'用户名': 'mn', '密码': '000'}
用户方法
class User():
def __init__(self,name,pw):
self.name=name
self.pw=pw
def change(self,user):
if self.name==user.name and self.pw==user.pw:
return True
else:
return False
def updatePw(self,newPw):
self.pw=newPw
def showUser(self):
print("用户名:",self.name)
print("密码:",self.pw)
return check()
# # user=User('ab','456')
def check():
filename = '用户数据.txt'
User_check = []
while True:
if os.path.exists(filename):
a = 0
用户名 = input('请输入用户名:')
密码 = input('请输入密码')
with open(filename, 'r', encoding='utf-8') as rfile:
song = rfile.readlines()
for item in song:
d = dict(eval(item))
if d['用户名'] == 用户名:
if d['密码'] == 密码:
a == 0
break
else:
a += 1
if a == 0:
print('登录成功')
return
else:
print('登录失败,请重新尝试')
用户运行函数
def main():
while True:
menu()
choice=int(input("请输入要执行的功能序号:"))
if choice in [0,1,2,3,4]:
if choice==0:
answer=input("您要退出系统吗?y/n:")
if answer == 'y' or answer == 'Y':
print("感谢您的使用")
return
if answer == 'n' or answer == 'N':
continue
elif choice == 1:
record()
elif choice == 2:
search()
elif choice == 3:
show()
elif choice == 4:
change()
else:
print("输入有误,请重新输入")
录入最近播放
def record():
song_list=[]
while True:
歌名=input("请输入歌名:")
if not 歌名:
break
歌手 = input("请输入歌曲歌手:")
if not 歌手:
break
song={'歌名':歌名,'歌手':歌手}
song_list.append(song)
answer=input("是否继续输入y/n:")
if answer=='y'or answer=='Y':
continue
else:
save(song_list)
print("最近播放录入完毕!!!")
# break
return main()
filename='用户专享.txt'
def save(list):
son_txt=open(filename,'a',encoding='utf-8')
for item in list:
print(item)
son_txt.write(str(item) + '\n')
son_txt.close()
查找最近播放
def search():
song_query=[]
while True:
gm=''
if os.path.exists(filename):
mode=input('按歌名查找输入1,按歌手查找输入2:')
if mode=='1':
歌名=input('请输入歌曲歌名:')
with open(filename, 'r', encoding='utf-8') as rfile:
song = rfile.readlines()
for item in song:
d = dict(eval(item))
if d['歌名'] == 歌名:
song_query.append(d)
print(song_query)
song_query.clear()
elif mode=='2':
歌手=input('请输入歌曲歌手:')
with open(filename, 'r', encoding='utf-8') as rfile:
song = rfile.readlines()
for item in song:
d = dict(eval(item))
if d['歌手'] == 歌手:
song_query.append(d)
print(song_query)
song_query.clear()
else:
print('输入信息有误')
search()
answer = input('是否继续查找歌曲信息:y/n:')
if answer == 'y' or answer == 'Y':
continue
else:
break
else:
print('尚未保存歌曲信息:')
return search()
return main()
显示最近播放
def show():
filename = '用户专享.txt'
song_list = {}
if os.path.exists(filename):
with open(filename, 'r', encoding='utf-8') as rfile:
songs = rfile.readlines()
for item in songs:
d = dict(eval(item))
song_list[d['歌手']] = d['歌名']
print(song_list)
return main()
修改用户密码
def change():
filename = '用户数据.txt'
if os.path.exists(filename):
with open(filename, 'r', encoding='utf-8') as rfile:
密码_old = rfile.readlines()
else:
return
username_用户名 = input('请输入用户名:')
with open(filename, 'w', encoding='utf-8') as wfile:
for item in 密码_old:
d = dict(eval(item))
if d['用户名'] == username_用户名:
print(f'找到{username_用户名}的信息,可以修改')
while True:
try:
d['密码'] = input('请输入新密码:')
except:
print('输入有误,请重新输入')
continue
else:
break
wfile.write(str(d) + '\n')
else:
wfile.write(str(d) + '\n')
wfile.close()
answer = input('是否继续修改y/n:')
if answer == 'y' or answer == 'Y':
change()
else:
print('密码修改成功!!!')
歌曲管理项目初此定稿已完成,在考核中我也认识到自己项目的不足,在以后学习中也会不断完善;知识漏洞仍有很多,令我刺挠且自卑,凌乱且头秃。但今天的天有点冷,所以还是需要我这个小太阳滴,继续吧!加油吧!