栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础——歌曲管理系统

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础——歌曲管理系统

歌曲管理系统
  • 管理员操控
    • 管理登录密码数据
    • 使用步骤
    • 引入库
    • 运行函数
    • 主函数
    • 显示主页面菜单
    • 录入歌曲信息
    • 查找歌曲信息
    • 修改歌曲信息
    • 删除歌曲信息
    • 修改登录密码
  • 用户操控
    • 用户登录密码数据
    • 用户方法
    • 用户运行函数
    • 录入最近播放
    • 查找最近播放
    • 显示最近播放
    • 修改用户密码

管理员操控
管理员登录请输入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('''
    ==============================歌曲管理系统===================================
    ---------------------------------功能选择---------------------------------------
    tttt 1.录入歌曲信息
    tttt 2.查找歌曲信息
    tttt 3.删除歌曲信息
    tttt 4.修改歌曲信息
    tttt 5.显示歌曲排行
    tttt 6.修改登录密码
    tttt 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('密码修改成功!!!')

歌曲管理项目初此定稿已完成,在考核中我也认识到自己项目的不足,在以后学习中也会不断完善;知识漏洞仍有很多,令我刺挠且自卑,凌乱且头秃。但今天的天有点冷,所以还是需要我这个小太阳滴,继续吧!加油吧!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/655937.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号