学生管理系统

2018-07-24  本文已影响0人  晓晓的忍儿
'''
1.分析数据结构
学生管理系统管理系统----->管理的是多个学生--->需要容器存储学生--->考虑使用那种容器
---->列表?字典?---->系统对应的大的容器是字典--->字典转给你的某一个key对应的值是所有的
学生(列表)---->每个学生是一个字典
{'students':[学生1(字典),学生2,学生3...]}
'''

# 声明所有的key值
key_all_student='students'# 所有学生
key_name='name'
key_age='age'
key_tel='tel'
key_id='id'
# 当前已经添加过的学生
num=0
# 系统容器
system_info={}
list1=[]
# 1.显示界面
while True:
    print('==========================')
    print('欢迎进入XXX学生管理系统')
    print('1.添加学生\n2.查看学生\n3.删除学生\n4.修改学生信息\n0.退出')
    print('==========================')
    input_value=input('请输入:')
    # ============退出系统===========
    if input_value=='0':
        break
    # ============添加学生============
    if input_value=='1':
        while True:
            num+=1
            print('添加学生')
            add_name=input('姓名:')
            add_age=input('年龄:')
            add_tel=input('电话:')
            # 产生学号
            add_id='py1805'+str(num).rjust(3,'0')
            #创建一个学生(一个学生就是一个字典)
            add_student={key_name:add_name,key_age:add_age,key_tel:add_tel,key_id:add_id}
            # 获取存学生的容器
            all_student=system_info.get(key_all_student)
            if all_student==None:
                all_student=[]
            # 添加学生
            all_student.append(add_student)
            system_info[key_all_student]=all_student
            print('添加学生%s成功'%(add_name))
            print(system_info)
            print('1.继续添加\n其他:返回上一层')
            add_input=input('>>>')
            if add_input!='1':
                break
            else:
                continue
        continue

    # ============查看学生============
    if input_value=='2':
        print('查看学生')
        print('1.查看所有的学生信息')
        print('2.根据学生姓名查看学生信息')
        print('3.根据学生学号查看学生信息')
        print('4.返回上一层')
        find_input=input('>>>')
        if find_input=='4':
            continue
        '''拿到所有的学生'''
        all_students = system_info.get(key_all_student)
        '''系统还没有添加过学生'''
        # or 和and的短路操作
        if (not all_students) or (not len(all_student)):
            print('系统中没有学生')
            continue
        # 查看所有学生信息
        if find_input=='1':
            '''有学生的时候'''
            for student in all_students:
                print('姓名:%s,年龄:%s,电话:%s,学号:%s'%\
                      (student[key_name],student[key_age],student[key_tel],\
                       student[key_id]))
        # 根据学生姓名查找
        elif find_input=='2':
            find_name=input('请输入要查看的学生的名字')
            flag=True#是否找不到学生
            for student in all_students:
                if find_name==student[key_name]:
                    print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
                          (student[key_name], student[key_age], student[key_tel], \
                           student[key_id]))
                    flag=False
            if flag:
                print('找不到该学生信息')
        # 根据学生学号查找
        elif find_input=='3':
            find_id = input('请输入要查看的学生的id')
            flag=True
            for student in all_students:
                if find_id == student[key_id]:
                    print('姓名:%s,年龄:%s,电话:%s,学号:%s' % \
                          (student[key_name], student[key_age], student[key_tel], \
                           student[key_id]))
                    flag=False
            if flag:
                print('找不到该学生信息')
        # 返回上一层
        else:
            pass
        continue
    # =============删除学生=============
    if input_value=='3':
        while True:
            print('1.按姓名删除学生')
            print('2.按学号删除学生')
            print('3.返回')
            del_input=input("请输入(1,2,3)")
            if del_input=='3':
                break
                # 把所有学生找出来
            all_students = system_info.get(key_all_student)
            if (not all_students) or (not len(all_students)):
                print('该系统没有学生')
                break
            if del_input=='1':
                list2=[]
                del_name=input('请输入要删除学生的姓名')
                for student in all_students:
                    if del_name==student[key_name]:
                        # 保存可能要删除的学生
                        list2.append(student)
                if not len(list2):
                    print('没有找到匹配的学生')
                    continue
                for x in range(len(list2)):
                    print(x,list2[x])
                del_num=int(input('请选择要删除的学生的编号:'))
                del_student=list2[del_num]
                system_info[key_all_student].remove(del_student)
            if del_input=='2':
                find_number=input('请输入要删除学生的学号')
                num=0
                for student in all_students[:]:
                    if find_number==student[key_id]:
                        all_students.remove(student)
                        num+=1
                if num==0:
                    print('没有找到匹配的学生')
                    continue
        continue
    # ===========修改学生信息============
    if input_value == '4':
        while True:
            print('1.按姓名修改学生')
            print('2.按学号修改学生')
            print('3.返回')
            all_students=system_info.get(key_all_student)
            if (not all_students) or (not len(all_students)):
                print('系统没有任何学生信息')
                break
            input_num=input('请选择查询方式:')
            if input_num=='1':
                find_name = input('请输入将要修改学生的名字:')
                list3=[]
                num8=0
                for student in all_students:
                    if find_name==student[key_name]:
                        list3.append(student)
                        num8+=1
                if num8==0:
                    print('没有找到匹配的学生:')
                    continue
                for x in range(len(list3)):
                    print(x,list3[x])
                find_num=int(input('请选择要修改的学生:'))
                while True:
                    find_type=input('请选择要修改的项')
                    values=input('请输入修改内容:')
                    num6=0
                    for student in all_students:
                        if student==list3[find_num]:
                            student[find_type]=values
                            print(all_students)
                            num6+=1
                    break
                    if num6==0:
                        print('没有找到匹配的项')
                        continue
            if input_num=='2':
                num7=0
                find_id = input('请输入将要修改学生的学号:')
                for student in all_students:
                    if student[key_id]==find_id:
                        print('已找到该学生:')
                        update_key=input('请输入修改项:')
                        update_value = input('请输入修改值:')
                        student[update_key]=update_value
                        print(all_students)
                        num7 += 1
                if num7==0:
                    print('没有找到匹配的学生')
                    continue
            if input_num=='3':
                break

        continue




结果:

D:\Python项目\Day5-练习和列表\code\venv\Scripts\python.exe D:/Python项目/Day7-函数/code/01-学生管理系统.py
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:1
添加学生
姓名:we
年龄:23
电话:34
添加学生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}]}
1.继续添加
其他:返回上一层

1
添加学生
姓名:we
年龄:56
电话:67
添加学生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}]}
1.继续添加
其他:返回上一层
1
添加学生
姓名:we
年龄:89
电话:90
添加学生we成功
{'students': [{'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]}
1.继续添加
其他:返回上一层
2
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
1
姓名:we,年龄:23,电话:34,学号:py1805001
姓名:we,年龄:56,电话:67,学号:py1805002
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
2
请输入要查看的学生的名字we
姓名:we,年龄:23,电话:34,学号:py1805001
姓名:we,年龄:56,电话:67,学号:py1805002
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
3
请输入要查看的学生的idpy1805003
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:4
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:1
请输入将要修改学生的名字:we
0 {'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}
1 {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}
2 {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}
请选择要修改的学生:0
请选择要修改的项age
请输入修改内容:32
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:2
请输入将要修改学生的学号:py1805002
已找到该学生:
请输入修改项:age
请输入修改值:65
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '65', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生

2
请输入要查看的学生的名字we
姓名:we,年龄:23,电话:34,学号:py1805001
姓名:we,年龄:56,电话:67,学号:py1805002
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
>>>3
请输入要查看的学生的idpy1805003
姓名:we,年龄:89,电话:90,学号:py1805003
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:4
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:1
请输入将要修改学生的名字:we
0 {'name': 'we', 'age': '23', 'tel': '34', 'id': 'py1805001'}
1 {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}
2 {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}
请选择要修改的学生:0
请选择要修改的项age
请输入修改内容:32
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '56', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:2
请输入将要修改学生的学号:py1805002
已找到该学生:
请输入修改项:age
请输入修改值:65
[{'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}, {'name': 'we', 'age': '65', 'tel': '67', 'id': 'py1805002'}, {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}]
1.按姓名修改学生
2.按学号修改学生
3.返回
请选择查询方式:3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:3
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)1
请输入要删除学生的姓名we
0 {'name': 'we', 'age': '32', 'tel': '34', 'id': 'py1805001'}
1 {'name': 'we', 'age': '65', 'tel': '67', 'id': 'py1805002'}
2 {'name': 'we', 'age': '89', 'tel': '90', 'id': 'py1805003'}
请选择要删除的学生的编号:0
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)2
请输入要删除学生的学号py1805003
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)
1.按姓名删除学生
2.按学号删除学生
3.返回
请输入(1,2,3)3
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:2
查看学生
1.查看所有的学生信息
2.根据学生姓名查看学生信息
3.根据学生学号查看学生信息
4.返回上一层
1
姓名:we,年龄:65,电话:67,学号:py1805002
==========================
欢迎进入XXX学生管理系统
1.添加学生
2.查看学生
3.删除学生
4.修改学生信息
0.退出
==========================
请输入:0

Process finished with exit code 0

上一篇下一篇

猜你喜欢

热点阅读