美文网首页
day7-作业:学生管理系统(功能ok 操作错误有bug哦)

day7-作业:学生管理系统(功能ok 操作错误有bug哦)

作者: 2ez4ddf | 来源:发表于2018-11-13 17:25 被阅读0次
#==============1.数据结构的设置================
"""
数据关系:一个学生管理系统可以保存多个学生信息。一个学生保存姓名、年龄、电话、学号等信息。
一个学生管理系统对应的数据模型:一个列表
一个学生对应的数据类型:一个字典
整个数据结构:
student_system=
[
    {'name':x,'age':x,'tel':x,'id':x},
    {'name':x,'age':x,'tel':x,'id':x},
    {'name':x,'age':x,'tel':x,'id':x},
]
"""
#==============2.页面设计和控制================
page = """=============================
    ^(* ̄(oo) ̄)^欢迎ddf:
    1.添加学生
    2.查看学生
    3.修改学生信息
    4.删除学生
    5.返回
============================="""
#函数声明变量赋值
#添加学生函数
def add_student():
    dict1 = {}
    student_id = 'stu' + str(i).rjust(3, '0')
    name = input('请输入学生姓名:')
    age = input('请输入学生的年龄:')
    tel = input('请输入学生的电话:')
    dict1.update({'学号': student_id, '姓名': name, '年龄': age, '电话': tel})
    dict2 = dict1.copy()
    list1.append(dict2)
    return list1


#按姓名查找
def name_find(name):
    global j,list9
    list9 = []
    j = 0
    for item in list1:
        if item['姓名'] == name:
            print(j,item)
            list9.append({j: item})
            j += 1
    return list9

#按学号查找
def id_find(id):
    for item in list1:
        if item['学号'] == id:
            return item

#按姓名修改
def name_change(n: int):
    x = list9[n].get(n)
    x['姓名'] = input('请修改姓名:')
    x['年龄'] = input('请修改年龄:')
    x['电话'] = input('请修改电话:')


#按学号修改
def id_change(id):
    print(id_find(id))
    id_find(id)['姓名'] = input('请修改姓名:')
    id_find(id)['年龄'] = input('请修改年龄:')
    id_find(id)['电话'] = input('请修改电话:')
    return id_find(id)

#按姓名删除
def name_del(n: int):
    x = list9[n].get(n)
    list1.remove(x)
    del list9[n]
    return list1


#按学号删除
def id_delete(id):
    list1.remove(id_find(id))
    return list1


#学生信息保存的列表
list1 = []
#学号自动生成初始值
i = 0
#主程序
while True:
    #显示主界面
    print(page)
    #给出选择
    value = input('请选择(1-5):')
    #根据不同的选择做不一样的反应
    if value == '1':
        # 添加学生
        while True:
            i += 1
            add_student()
            print('添加成功!')
            print('1. 继续\n2. 返回')
            value1 = input('请选择(1-2):')
            if value1 == '1':
                continue#继续执行while True这个循环
            #输错提示
            else:
                break#跳出while True这个循环
    elif value == '2':
        #查看学生
        while True:
            print('1.查看所有学生')
            print('2.按姓名查找')
            print('3.按学号查找')
            print('4.返回')
            value2 = input('请选择(1-4):')
            if  value2 == '1':
                for item in list1:
                    print(item)
                continue
            elif value2 == '2':
                name = input('请输入姓名:')
                name_find(name)
                continue
            elif value2 == '3':
                id = 'stu' + input('请输入学号(别超过三位数):').rjust(3, '0')
                print(id_find(id))
                continue
            else:
                break
    elif value == '3':
        #修改学生
        while True:
            print('1.按姓名修改')
            print('2.按学号修改')
            print('3.返回')
            value3 = input('请选择(1-3):')
            if value3 == '1':
                name = input('请输入姓名:')
                while True:
                    name_find(name)
                    print('q 返回上一层')
                    value31 = input('请输入要修改学生对应的标号')  # 不能将q转换为int型
                    if value31 == 'q':
                        break
                    elif int(value31) <= j:
                        name_change(int(value31))
                        continue
            if value3 == '2':
                id = 'stu' + input('请输入学号(别超过三位数):').rjust(3, '0')
                print(id_change(id))
            else:
                break
    elif value == '4':
        #删除学生
        while True:
            print('1.按姓名删除')
            print('2.按学号删除')
            print('3.返回')
            value4 = input('请选择(1-3):')
            if value4 == '1':
                name = input('请输入姓名:')
                while True:
                    name_find(name)
                    print('q 返回上一层')
                    value41 = input('请输入要删除学生对应的标号')  # 不能将q转换为int型
                    if value41 == 'q':
                        break
                    elif int(value41) <= j:
                        name_del(int(value41))
                        continue
            if value4 == '2':
                id = 'stu' + input('请输入学号(别超过三位数):').rjust(3, '0')
                print(id_delete(id))
            else:
                break
    else:
        #退出
        print('\t退出成功!')
        break

相关文章

网友评论

      本文标题:day7-作业:学生管理系统(功能ok 操作错误有bug哦)

      本文链接:https://www.haomeiwen.com/subject/kqblfqtx.html