• python 学生表


    1,主页面函数(01-mainpage.py)

    import json
    import file_manager
    import student_system
    ''' '''
    # 全局变量
    file_name='user_info.json'
    
    key_user_name='user_name'
    key_password='password'
    
    #=====================注册=======================
    '''
    为了下次打开系统的时候能够正常登录,注册成功的信息需要保存。保存用户名和密码
    一个系统可以注册多个用户,可以用列表保存多个用户,通过字典来保存每个用户的用户名和密码
    [
        {'user_name':用户名,'password':密码}
    ]
    保存到user_info.json中
    '''
    #
    def is_register(username):
        all_user = file_manager.read_json_file(file_name)
        if not all_user:
            return False
        for user in all_user:
            if user[key_user_name]==username:
                return True
            return False
    
    
    
    
    def get_all_user():
    
        if not file_manager.read_json_file(file_name):
            return []
        return file_manager.read_json_file(file_name)
    
    
    
    
    
    def register():
        while True:
            user_name=input('请输入用户名(3~10位)')
            # 判断是否符合格式要求
            if not 3<=len(user_name)<=10:
                print('重新输入')
                continue
            # 判断是否被注册过
            if is_register(user_name):
                print('用户名%s已被注册,请重新输入' % (user_name))
                continue
            print('用户名可用')
            break
    
        # 2密码
    
        while True:
            password = input('请输入密码:')
            if not 6 <= len(password) <= 16:
                print('密码输入有误')
                continue
            re_password = input('确认密码')
            if password != re_password:
                print('密码不同,请重新输入')
                continue
            break
    
        all_user=get_all_user()
        all_user.append({key_user_name:user_name,key_password:password})
        file_manager.write_json_file(all_user,file_name)
    
        print('zhucechenggong')
    
    #============================登录=========================
    def loging():
        user_name=input('请输入用户名')
        password=input('请输入密码')
    #     用户名是否注册
        all_user=get_all_user()
        for user in all_user:
            if user[key_user_name]==user_name:
                if user[key_password]==password:
                    print('登陆成功')
                    return user_name
                print('密码错误')
                return None
            print('用户名未注册')
            return None
    
    
    
    #=====================主页=======================
    def show_main_page():
        while True:
            print(file_manager.read_text_file('loging.txt'))
            value=int(input('请选择(1~3):'))
    
    
            #1,退出
            if value==3:
                break
            #2,注册
            elif value==2:
                register()
    
            #3,登录
            elif value==1:
                user_name=loging()
                if user_name:
                    student_system.user_name=user_name
                    student_system.main_page()
    
    
    
    
    
    
            else:
                print('重新选择')
    
    
    
    
    if __name__ == '__main__':
        show_main_page()
    
    

    2,学生系统函数(student_system.py)

    import file_manager
    
    user_name=''
    
    
    
    
    
    #====================ADD===========
    '''
    一个账号对应管理不同的学生-----不同用户对应不同json文件
    json格式
    {'name':'','number':个数,
    'all_students':[
                    {'name':  ,'age':  ,'tel'  ,}
                    ]
    }
    
    '''
    key_number='number'
    key_all_students='all_students'
    key_name='name'
    key_age='age'
    key_tel='tel'
    key_id='id'
    
    
    def get_system_info():
        system_info=file_manager.read_json_file(user_name+'.json')
        if system_info:
            return system_info
        return {}
    
    
    def creat_id():
        system_info=get_system_info()
        number=system_info.get(key_number,0)
        number+=1
        id='stu'+str(number).rjust(4,'0')
        return id,number
        #更新系统中的数据
    
    
    def add_student():
        while True:
            name=input('姓名')
            age=input('年龄')
            tel=input('电话')
    
            #id
            id,number=creat_id()
    
            #3创建学生
            student={key_name:name,key_age:age,key_tel:tel,key_id:id}
    
            #4保存学生信息
            system_info=get_system_info()
            all_student=system_info.get(key_all_students,[])
            all_student.append(student)
    
            #5保存
            system_info[key_all_students]=all_student
            system_info[key_number]=number
            re=file_manager.write_json_file(system_info,user_name+'.json')
    
            if re:
                print('添加成功')
            else:
                print('添加失败')
            print('1,继续添加','2,返回')
            x=input('选择')
            if x=='1':
                continue
            elif x=='2':
                break
    
    # ====================查找学生===================
    def find_student():
        while True:
            print('1,查看所有学生')
            print('2,根据姓名查找学生')
            print('3,根据学号查找学生')
    
    
            system_info=get_system_info()
            all_students=system_info[key_all_students]
            if not all_students:
                print('no stu')
                return
    
            value = input('请选择:')
    
            if value=='1':
                for student in all_students:
                    print('学号:%s,姓名:%s,年龄:%s,电话:%s'
                          %(student[key_id],student[key_name],student[key_age],student[key_tel]))
    
            if value=='2':
                name = input('姓名')
                for student in all_students:
                    if name==student[key_name]:
                        print('学号:%s,姓名:%s,年龄:%s,电话:%s' 
                              % (student[key_id], student[key_name], student[key_age], student[key_tel]))
    
    
            if value=='3':
                id = input('学号')
                for student in all_students:
                    if id==student[key_id]:
                        print('学号:%s,姓名:%s,年龄:%s,电话:%s' 
                              % (student[key_id], student[key_name], student[key_age], student[key_tel]))
    
            print('1,继续', '2,返回')
            x = input('选择')
            if x == '1':
                continue
            elif x == '2':
                break
    
    #     ===========================删除学生===========================
    def delete():
        while True:
            print('1,根据姓名删除学生')
            print('2,根据学号删除学生')
            wait_dele=[]
    
            system_info=get_system_info()
            all_student=system_info.get(key_all_students,[])
            value=input('请选择:')
            if value=='1':
                name = input('姓名')
                count=0
                for stu in all_student[:]:
    
                    if stu[key_name]==name:
                        count += 1
                        wait_dele.append(stu)
                        print('%d,学号:%s,姓名:%s,年龄:%s,电话:%s' 
                              % (count,stu[key_id], stu[key_name], stu[key_age], stu[key_tel]))
    
                option=int(input('请选择删除项:'))
                all_student.remove(wait_dele[option-1])
                system_info[key_all_students]=all_student
                file_manager.write_json_file(system_info,user_name+'.json')
    
            if value == '2':
                id = input('学号')
                for stu in all_student[:]:
    
                    if stu[key_id] == id:
    
                        print('学号:%s,姓名:%s,年龄:%s,电话:%s' 
                              % (stu[key_id], stu[key_name], stu[key_age], stu[key_tel]))
                        dele_stu=stu
                option = input('是否删除:1,是;2,否')
                if option==1:
                    all_student.remove(dele_stu)
    
                system_info[key_all_students] = all_student
                file_manager.write_json_file(system_info, user_name + '.json')
    
            print('1,继续', '2,返回')
            x = input('选择')
            if x == '1':
                continue
            elif x == '2':
                break
    
    # ==========================修改=======================================
    def revise():
        while True:
            print('1,根据姓名修改学生')
            print('2,根据学号修改学生')
    
            wait_revise=[]
    
            system_info = get_system_info()
            all_student = system_info.get(key_all_students, [])
            value = input('请选择:')
            if value == '1':
                name = input('姓名')
                count = 0
                index=-1
                for stu in all_student[:]:
                    index+=1
                    if stu[key_name] == name:
                        count += 1
                        wait_revise.append(index)
                        print('%d,学号:%s,姓名:%s,年龄:%s,电话:%s' 
                              % (count, stu[key_id], stu[key_name], stu[key_age], stu[key_tel]))
    
                option = int(input('请选择修改项:'))
                index=wait_revise[option-1]
                name = input('姓名')
                age = input('年龄')
                tel = input('电话')
                all_student[index][key_name]=name
                all_student[index][key_age] = age
                all_student[index][key_tel] = tel
    
    
                system_info[key_all_students] = all_student
                file_manager.write_json_file(system_info, user_name + '.json')
    
            if value == '2':
                id = input('学号')
                index1=-1
                for stu in all_student[:]:
                    index1+=1
                    if stu[key_id] == id:
                        print('学号:%s,姓名:%s,年龄:%s,电话:%s' 
                              % (stu[key_id], stu[key_name], stu[key_age], stu[key_tel]))
                        index = index1
                option = input('是否修改:1,是;2,否')
                if option == 1:
                    name = input('姓名')
                    age = input('年龄')
                    tel = input('电话')
                    all_student[index][key_name] = name
                    all_student[index][key_age] = age
                    all_student[index][key_tel] = tel
    
                system_info[key_all_students] = all_student
                file_manager.write_json_file(system_info, user_name + '.json')
    
            print('1,继续', '2,返回')
            x = input('选择')
            if x == '1':
                continue
            elif x == '2':
                break
    
    
    
    
    
    
    
    
    #====================zhuye================
    def main_page():
        while True:
            print(file_manager.read_text_file('system.txt'))
            value = int(input('请选择(1~5):'))
    
            if value ==5:
                break
            elif value ==1: #添加
                add_student()
            elif value ==2: #查找
                find_student()
            elif value == 3:  # 删除
                delete()
            elif value == 4:  # 修改
                revise()
    

    3,自定义模块函数(file_manager.py)

    import json
    
    
    '''   '''
    
    def read_text_file(file_name):
        '''
        获取文本文件的内容
        :param file_name:文件名
        :return:
        '''
        try:
            with open('./files/'+file_name,encoding='utf-8') as f:
                return f.read()
        except:
            print('文件不存在')
            return None
    
    def write_json_file(content,filename):
        '''
        写入json文件
        :param filename: 文件名
        :param content:写入内容
        :return:
        '''
        try:
            with open('./files/'+filename,'w',encoding='utf-8') as f:
                json.dump(content,f)
                return True
        except:
            return None
    
    
    
    def read_json_file(filename):
        '''
        读json文件
        :param filename:
        :return:
        '''
        try:
            with open('./files/'+filename,encoding='utf-8') as f:
                return json.load(f)
        except:
            return None
    




  • 相关阅读:
    什么是MSI文件?
    学习window系统下的注册表
    AngularJS学习手册
    学习ajax 总结
    jquery基础教程读书总结
    overflow:hidden清除浮动原理解析及清除浮动常用方法总结
    javascript进阶-原型prototype
    javascript-函数进阶
    小技巧之a标签自动解析URL
    Myeclipse出现 java文件中文乱码问题
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/10930711.html
Copyright © 2020-2023  润新知