Python_不用函数_开发一个学生选课系统_逻辑训练(1)

创作不易,各位看官,点个赞收藏、关注必回关、QAQ、您的点赞是我更新的最大动力!


采用函数式开发(纯粹练下逻辑),后面会逐步升级为函数式编程,模块式开发
第一二版本V1.02 函数式开发 :https://blog.csdn.net/weixin_44238683/article/details/105822475
"""
项目描述:学生选课系统
时间:2020-04-27
版本:v1.01
作者:稳稳c9

需求:
    #课程:python,java,PHP,web,unity,UI
    #角色划分:管理员不需要注册,会员
    #权限划分:
            管理员:增删查课程
            学生:
                注册→ 账户名(账户名存在检测)、密码、

                登录→ 跳转选课界面[1.选课  2.查看已选课程]

                修改密码→ 输入旧密码、再输入新密码

                查看→ 查看已选课程
"""
import os
#课程存储
course_dic = {
    "1":{"course":"Python"},
    "2":{"course":"Java"},
    "3":{"course":"Web"},
    "4":{"course":"unity"},
    "5":{"course":"UI"}
}
#管理员
admin_dic = {"admin":"123"}
#学生
users_dict = { "1":{"username":"1","password":"1","course":["Python"]}}


while True:
    os.system("cls")
    #打印主界面菜单
    print("         学生选课系统")
    print("◆" * 30)
    print("         1.用户登录[学生/管理员]")
    print("         2.用户注册")
    print("         3.密码修改")
    print("         4.退出系统")
    print("◆" * 30)

    #提示用户输入选项
    choice = input("请输入您的选项:").strip()

    #用户登录
    if choice == "1":

        os.system("cls")
        #区分学生与管理员
        print("◆" * 30)
        print("         1.学生登录")
        print("         2.管理员登录")
        print("         3.任意键返回上一级")
        print(" 测试学生用户:账户密码1 1 ")
        print(" 测试管理员:账户密码admin 123 ")
        print("◆" * 30)

        choice_login = input("请输入您的选项:").strip()

        #学生登录

        if choice_login == "1":
            # 提示用户输入账户密码
            username = input("请输入您的账户:")
            password = input("请输入您的密码:")

            # 判断用户是否存在
            if username in users_dict:
                # 获取用户储存信息 并且根据账户获取密码
                data_password = users_dict.get(username).get("password")
                # 判断密码是否正确
                if password == data_password:
                    #跳转学生首页
                    while True:
                        print("◆" * 30)
                        print("         1.选课")
                        print("         2.查看已选课程")
                        print("         3.任意键返回上一级")
                        print("◆" * 30)
                        #提示学生做出选择
                        choice_stu = input("请输入您的选项:").strip()
                        #选课
                        if choice_stu == "1":
                            #打印出可选课程信息
                            print("课程编号\t课程名称")
                            for key, value in course_dic.items():
                                print(f"{key}\t\t{value.get('course')}")
                            #选课
                            choice_course = input("请输入您的选项:").strip()
                            #通过用户输入的编号获取课程存储
                            res = course_dic.get(choice_course).get("course")
                            #检测用户是否重复选择课程
                            if  res in users_dict.get(username).get('course') :
                                input("您已选择该课程,请勿重复选择,按任意键返回上一级..")
                            #用户课程数据没有 该课程
                            else:
                                #添加课程
                                # users_dict.get(username).get('course').append(res)
                                # users_dict[len(users_dict)] = {
                                #
                                # }
                                users_dict.get(username).get('course').append(res)
                                input(f"您已成功选择课程:{res}..按任意键返回上一级")
                        #查看已选课程
                        elif choice_stu == "2":
                            #获取用户已选课程数据
                            user_course = users_dict.get(username).get('course')
                            print(f"您已选择的课程:{user_course}")
                            input("按任意键返回上一级")
                        #返回上一级
                        else:
                            break
                else:
                    input("密码错误,按任意键返回主菜单")
                    continue
            else:
                input("账户不存在,请先注册,按任意键返回主菜单")
                continue
        #管理员登录
        elif choice_login == "2":

            # 提示管理员输入账户密码
            username = input("请输入您的账户:")
            password = input("请输入您的密码:")

            # 判断用户是否存在
            if username in admin_dic:
                # 获取用户储存信息 并且根据账户获取密码
                data_password = admin_dic.get(username)
                # 判断密码是否正确
                if password == data_password:
                    #进入管理员页面
                    while True:
                        print("◆" * 30)
                        print("         1.查看课程")
                        print("         2.添加课程")
                        print("         3.删除课程")
                        print("         4.任意键返回上一级")
                        print("◆" * 30)

                        #提醒管理员做出选择
                        choice_adm = input("请输入您的选项:").strip()

                        #查看课程 1
                        if choice_adm == "1":
                            # 打印出可选课程信息
                            print("课程编号\t课程名称")
                            for key, value in course_dic.items():
                                print(f"{key}\t\t{value.get('course')}")
                        #添加课程 2
                        elif choice_adm == "2":
                            #提示管理员 添加课程名称
                            add_course = input("请输入需要添加的课程名称: ").strip()
                            #根据已经存在的课程数量 获取编号建立如"6"
                            id = str(len(course_dic)+1)
                            # course_dic[id]["course"] =add_course
                            course_dic[id] = {
                                "course":add_course
                            }
                            input(f"您已成功添加课程{add_course}.按任意键返回上一级")
                        #删除课程 3
                        elif choice_adm == "3":
                            while True:
                                #提示管理员 删除课程名
                                rem_course = input("请输入需要删除的课程编号: ").strip()
                                if rem_course in course_dic.keys() :

                                    #并且删除用户课程中的信息 TODO
                                    c = course_dic.get(rem_course).get("course")
                                    for d in users_dict.values() :
                                        d.get('course').remove(c)
                                    # 删除系统课程中
                                    course_dic.pop(rem_course)
                                    input("您已经成功删除,按任意键返回上一级.")
                                    break
                                else:
                                    input("请输入正确的课程编号!..按任意键继续")
                                    continue
                        #返回上一级 4
                        else:
                            break
                else:
                    input("密码错误,按任意键返回主菜单")
                    continue
            else:
                input("账户不存在,按任意键返回主菜单")
                continue
        else:
            continue


    #用户注册
    elif choice == "2":

        #提示用户输入想要注册账户名
        username  = input("请输入您的账户:")

        #检测账户名是否已经存在库中
        if username in users_dict :
            input("对不起,您注册的账户已存在,按任意键返回主菜单")
            continue

        #账户可用
        else:
            #提示用户输入密码
            password = input("请输入注册账户密码:")
            confirm_ps = input("请再一次输入密码:")

            #确保两次密码一致
            if password == confirm_ps:
                #一致后录入注册信息
                users_dict[username] = {
                    "username":username,
                    "password":password,
                    "course":[]
                }
                input("注册成功,按任意键退出")
                continue
            else:
                input("两次密码不一致,按任意键返回主菜单")
                continue
    #修改密码
    elif choice == "3":
        username = input("请输入您原来的账户 : ").strip()
        password = input("请输入您原来的密码 :").strip()
        if username in users_dict:  # 检测用户输入的账户是否在 字典中
            user = users_dict.get(username)  # 根据键获取用户对应的值,
            if password in user.get("password"):  # get("password")即得到了对应的值
                while True:
                    check_new_password = input("请输入您需要修改的新密码 : ")
                    check_new_again = input("请再次输入您需要修改的新密码 : ")
                    if check_new_password == check_new_again:
                        user["password"] = check_new_password
                        input("修改完毕。。按任意键返回上一级")
                        break
                    else:
                        input("账户或者密码不存在,按任意键返回上一级")
                        continue
            else:
                input("密码错误,按任意键返回上级")
                continue
        else:
            input("账户不存在。。按任意键返回上级")
            continue
    # 退出系统
    elif choice == "4":
        import time
        for i in [3,2,1]:
            time.sleep(1)
            print(f"系统将在{i}秒后关闭")
        break
    #输入错误
    else:
        input("输入有误。。请重新输入")



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值