学生登录注册 和 信息管理系统.py

  • 先运行学生登录注册.py,没有账号密码就先注册,如果有的话就可以登陆,
    登录成功后转到学生信息管理页面.py,然后可以对学生信息进行
    增,删,改,查的操作
  • main_page.txtmanage_page.txt是主界面

  • file_manage.py是对文件读写的封装导入后可以直接调用

  • 账号密码 和 学生信息 都分别写入了本地(json文件)

学生登录注册.py

import module.file_manager as file_manager
import 学生管理页面 as student_manager
def login():
    #登录
    user_name = input('请输入账号:')
    pass_word = input('请输入密码:')

    all_user = file_manager.json_read('all_user.json')
    if user_name not in all_user:
        print('登录失败!账号不存在')
        return
    #账号存在就先通过账号获得正确的密码
    pass_word_old = all_user[user_name]
    if pass_word == pass_word_old:
        print('登录成功')
        student_manager.show_manager_page(user_name)
        #登陆成功后要做什么......
    else:
        print('登录失败!密码错误!')




def register():
    '''  注册功能'''
    while True:
        user_name = input('请输入账号(3-6位):')
        if  not 3<= len(user_name) <= 6:
            print('账号不合法!')
            continue
        break

    while True:
        pass_word = input('请输入密码(6-12位):')
        if not 6 <= len(pass_word) <= 12:
            print('密码有误!重新输入')
            continue
        break


    #检测账号是否已经注册过
    '''用一个字典保存账号和密码'''
    all_user =  file_manager.json_read('all_user.json')

    print(all_user)
    if user_name in all_user:
        print('该账号已经被注册了额')
        return

    #将账号信息添加到数据库

    all_user[user_name] = pass_word


    re = file_manager.json_write('all_user.json',all_user)
    if re:
        print('注册成功')
    else:
        print('注册失败')



def show_main_page():
    '''   显示主页 '''
    while True:

        print(file_manager.text_read('main_page.txt'))
        value = input('请选择(1-3):')
        if value == '1':
            print('登陆功能')
            login()


        elif value == '2':
            print('注册功能')
            register()
        elif value == '3':
            return
        else:
            print('重新输入')




if __name__ == '__main__':
    show_main_page()
import module.file_manager as file_manager
import 学生管理页面 as student_manager
def login():
    #登录
    user_name = input('请输入账号:')
    pass_word = input('请输入密码:')

    all_user = file_manager.json_read('all_user.json')
    if user_name not in all_user:
        print('登录失败!账号不存在')
        return
    #账号存在就先通过账号获得正确的密码
    pass_word_old = all_user[user_name]
    if pass_word == pass_word_old:
        print('登录成功')
        student_manager.show_manager_page(user_name)
        #登陆成功后要做什么......
    else:
        print('登录失败!密码错误!')




def register():
    '''  注册功能'''
    while True:
        user_name = input('请输入账号(3-6位):')
        if  not 3<= len(user_name) <= 6:
            print('账号不合法!')
            continue
        break

    while True:
        pass_word = input('请输入密码(6-12位):')
        if not 6 <= len(pass_word) <= 12:
            print('密码有误!重新输入')
            continue
        break


    #检测账号是否已经注册过
    '''用一个字典保存账号和密码'''
    all_user =  file_manager.json_read('all_user.json')

    print(all_user)
    if user_name in all_user:
        print('该账号已经被注册了额')
        return

    #将账号信息添加到数据库

    all_user[user_name] = pass_word


    re = file_manager.json_write('all_user.json',all_user)
    if re:
        print('注册成功')
    else:
        print('注册失败')



def show_main_page():
    '''   显示主页 '''
    while True:

        print(file_manager.text_read('main_page.txt'))
        value = input('请选择(1-3):')
        if value == '1':
            print('登陆功能')
            login()


        elif value == '2':
            print('注册功能')
            register()
        elif value == '3':
            return
        else:
            print('重新输入')




if __name__ == '__main__':
    show_main_page()




学生信息管理页面.py

import module.file_manager as file_manager
current_user = ''

'''
数据结构

1.账号和账号管理的学生要一一对应


2.一个账号要管理多个学生


3.一个学生要存储多个信息。每个学生存储的信息数量一样

方案一:整个管理系统所有的账号管理的学生放在一起
{
    账号:[{'name':aaa,'age':18,'tel':123,id:'1'},{'name1':aaa,'age':18,'tel':123,id:'1'}],
    账号2:[{'name':aaa,'age':18,'tel':123,id:'1'},{'name1':aaa,'age':18,'tel':123,id:'1'}]

}
将大字典写到一个json文件


方案二:


一个账号对应一个json文件,每个json文件中就是一个列表
json文件名和帐户名一一对应

aaa.json :
{
    count:nums,
    all_students:[{'name':aaa,'age':18,'tel':123,id:'1'}
}

bbb.json :[{001}]

'''

key_count = 'count'
key_all_students = 'all_students'
key_name = 'name'
key_age ='age'
key_tel = 'tel'
key_id = 'id'


def get_current_userinfo():
    '''获得当前账号'''
    content = file_manager.json_read(current_user+'.json')
    if not content:
        content ={}
    return content


# 添加学生
def add_student():
    '''获得当前账号数据'''
    user_info = get_current_userinfo()
    while True:
        #1.输入学生信息
        name = input('请输入学生的姓名')
        age = input('请输入学生的年龄')
        tel = input('请输入学生的电话')
        #2.产生学号
        number = user_info.get(key_count,0)
        number += 1
        stu_id = 'stu'+str(number).rjust(3,'0')

        #3.创建学生
        stu ={key_name:name,key_age:age,key_tel:tel,key_id:stu_id}

        #4.添加学生
        all_students = user_info.get(key_all_students,[])
        all_students.append(stu)

        #5.将新的数据更新到文件中
        user_info[key_count] = number
        user_info[key_all_students] = all_students
        re = file_manager.json_write(current_user+'.json',user_info)
        if re:
            print('添加成功!')
        else:
            print('添加失败!')
        print('1.继续添加')
        print('2.返回')
        value = input('选择(1-2:)')
        if value == '1':
            continue
        else:
            return
def show_student_info(stu):
    print('学号:%s 姓名:%s 年龄:%s 电话:%s'\
          %(stu[key_id],stu[key_name],stu[key_age],stu[key_tel]))

def find_student_with_name(name,all_students):
    #按姓名查找
    find_stu = [] #保存符合条件的所有学生
    for stu in all_students:
        if stu[key_name] == name:
            find_stu.append(stu)
    #print(find_stu)
    return  find_stu

def find_student_with_id(id,all_students):
    #按学号查找
    for stu in all_students:
        if stu[key_id] == id:
            return stu
    return  None



def find_student():
    #1.拿到所有学生
        user_info =get_current_userinfo()
        all_students = user_info.get(key_all_students,[])
        if not all_students:
            print('账号里面没有添加学生信息')
            return
        while True:
            print('1.查看所有学生')
            print('2.按姓名查找')
            print('3.按学号找')
            print('4.返回')
            value = input('选择(1-4):')
            if value == '1':
                for stu in all_students:
                    show_student_info(stu)
            elif value == '2':
                name = input('输入姓名')
                students = find_student_with_name(name,all_students)
                if students:
                    for stu in students:
                        show_student_info(stu)
                else:
                    print('没有找到学生%s'% name)

            elif value =='3':
                id = input('输入学号')
                stu =find_student_with_id(id,all_students)
                if stu:
                    show_student_info(stu)
                else:
                    print('没有找到学号%s对应的学生'%id)

            else:
                return

def delete_student():
    '''删除学生'''
    user_info = get_current_userinfo()
    all_students = user_info.get(key_all_students)
    if not all_students:
        print('账号里面没有添加学生信息')
        return
    while True:
        print('1.按姓名删除\n2.按学号删除\n3.返回')
        value = input('选择(1-3:)')
        if value == '1':
            name = input('输入姓名:')
            # 找到同名的学生
            students = find_student_with_name(name,all_students)

            #判断系统中是否有该学生
            if not students:
                print('该学生不存在')
                continue
            index = 0
            for stu in students:
                print(index,end='')
                show_student_info(stu)
                index += 1
            print('按p 返回上一层')
            del_index =input('输入要删除的学生对应的标号')

            if del_index  == 'p':
                continue
            else:
                del_stu =students[int(del_index)]
                print(del_stu)
                all_students.remove(del_stu)

                reulst=file_manager.json_write(current_user+'.json',user_info)

                if reulst:
                    print('删除成功')
                else:
                    print('删除失败')

        elif value == '2':
            del_id = input('输入要删除的学号')
            del_stu = find_student_with_id(del_id,all_students)
            if not del_stu:
                print('没有该学生')
                continue
            show_student_info(del_stu)
            value = input('是否要删除(Y/N):')
            if value == 'Y':
                all_students.remove(del_stu)
            reulst = file_manager.json_write(current_user + '.json', user_info)

            if reulst:
                print('删除成功')

            else:
                print('删除失败')
        elif value == '3':
            return

def modify_student():
    '''修改学生'''
    user_info = get_current_userinfo()
    all_students = user_info.get(key_all_students)
    if not all_students:
        print('账号里面没有添加学生信息')
        return

    while True:
        print('1.按姓名修改')
        print('2.按学号修改')
        print('3.返回')
        value = input('选择(1-3):')

        #按名字修改
        if value == '1':
            name = input('输入姓名:')
            # 找到同名的学生
            students = find_student_with_name(name, all_students)
            # 判断系统中是否有该学生
            if not students:
                print('该学生不存在')
                continue
            index = 0
            for stu in students:
                print(index, end='')
                show_student_info(stu)
                index += 1
            print('按p 返回上一层')
            modify_index = input('输入要修改的学生对应的标号')

            if modify_index  == 'p':
                continue

            else:
                modify_stu =students[int(modify_index)]
                name = input('请输入学生的姓名')
                age = input('请输入学生的年龄')
                tel = input('请输入学生的电话')
                modify_stu[key_name]=name
                modify_stu[key_age] = age
                modify_stu[key_tel] = tel


                reulst=file_manager.json_write(current_user+'.json',user_info)

                if reulst:
                    print('修改成功')
                else:
                    print('修改失败')

        #按学号修改
        elif value == '2':
            modify_id = input('输入要修改的学号')
            modify_stu = find_student_with_id(modify_id,all_students)
            if not modify_stu:
                print('没有该学生')
                continue
            show_student_info(modify_stu)
            value = input('是否要修改(Y/N):')
            if value == 'Y':

                name = input('请输入学生的姓名')
                age = input('请输入学生的年龄')
                tel = input('请输入学生的电话')
                modify_stu[key_name] = name
                modify_stu[key_age] = age
                modify_stu[key_tel] = tel
            reulst = file_manager.json_write(current_user + '.json', user_info)

            if reulst:
                print('修改成功')

            else:
                print('修改失败')

        #返回
        elif value == '3':
            return






def show_manager_page(user_name):
    #1.保存登录成功的用户
    global  current_user
    current_user = user_name

    while True:
        #2.显示页面
        content =file_manager.text_read('manage_page.txt')
        print(content % user_name)

        #3.做选择
        value = input('选择(1-5):')
        if  value == '5':
            return
        elif value == '1':
            print('添加学生')
            add_student()
        elif value == '2':
            #print('查看学生')
            find_student()
        elif value == '3':
            #print('修改学生信息')
            modify_student()
        elif value == '4':
            #print('删除学生')
            delete_student()




if __name__ == '__main__':
    show_manager_page()


<br>
<br>




file_manage.py(文件读写的封装)

import json

#TXT文件读操作
def text_read(file_name):
    try:
        with open ('./'+file_name,encoding='utf-8') as f:
            return f.read()
    except FileNotFoundError:
        print('%s文件不存在'%(file_name))
        return None


#TXT文件写操作
def text_write(file_name:str,content:str):
    with open('./'+file_name,'w',encoding='utf-8') as f:
        f.write(content)
        return  True

#JSON文件读操作
def json_read(file_name):
    try:
        with open('./' + file_name, encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        print('%s文件不存在'%(file_name))
        return None

#JSON文件写操作
def json_write(file_name:str,content):
    try:
        with open('./' + file_name, 'w', encoding='utf-8') as f:
            json.dump(content,f)
            return  True
    except:
        return  False



if __name__ == '__main__':
    pass




main_page.txt(学生登录注册界面)

=====================================================
            ❀欢迎来到XX学生登录注册系统❀
            1.      登    陆
            2.      注    册
            3.      退    出




manage_page.txt(学生信息管理界面)


=====================================================
   欢迎 %s 来到XX学生管理系统

            1.添加学生
            2,查看学生
            3.修改学生信息
            4.删除学生
            5.返回
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,311评论 22 257
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,322评论 0 10
  • "深入思考""深入研究""深入发展""深入探索"经常见诸报端以及各类书刊。"深入"己成为高频词和标配语,倘若没有这...
    剑走偏锋独行侠阅读 2,976评论 1 4
  • 春光懒困倚微风,莉湖青青柳色新。 数株红梅落草坡,可爱深红爱浅红。 周末孩童闲不住,满园嬉戏释天性。 又是一年春光...
    范堤烟雨阅读 2,350评论 0 0
  • 我戴上所有的面具去承受这个世界,结果面具和我融为了一体。
    森山野仁阅读 1,436评论 0 1

友情链接更多精彩内容