zoukankan      html  css  js  c++  java
  • 学生管理系统

    """
    学生管理系统
    1.添加学生信息
    2.删除学生信息
    3.修改学生信息
    4.查找学生信息
    5.退出系统
    """
    import time
    
    
    def print_info():
        print("=" * 30)
        print("欢迎使用学生管理系统")
        print("1. 添加学生信息")
        print("2. 修改学生信息")
        print("3. 删除学生信息")
        print("4. 查询学生信息")
        print("5. 退出系统")
        print("=" * 30)
    
    
    def add_student():  # 添加学生信息
        global student_info  # 声明函数中要修改的是全局变量student_info
        dict_1 = {}
        name = input("请输入学生的姓名:")
        age = input("请输入学生的年龄:")
        sex = input("请输入学生的性别:")
        id = input("请输入学生的身份证号码:")
        dict_1["name"] = name  # 通过key添加value
        dict_1["age"] = age
        dict_1["sex"] = sex
        dict_1["id"] = id
        student_infor.append(dict_1)  # 将字典追加到列表的一个元素
    
    
    # student_infor = [{'name': 'zhangsna ', 'age': '20', 'sex': 'nv', 'id': '123456y'}]
    
    
    def alter_student():
        alter = int(input("请输入要修改的学生序号"))
        global student_infor
        name = input("请输入新的学生的姓名:(回车不修改)")
        if len(name) > 0:
            student_infor[alter - 1]["name"] = name
        age = input("请输入新的年龄,(回车不修改)")
        if len(age) > 0:
            student_infor[alter - 1]["age"] = age
        id = input("请输入新的id,(回车不修改)")
        if len(id) > 0:
            student_infor[alter - 1]["id"] = id
        sex = input("请输入新的性别,(回车不修改)")
        if len(sex) > 0:
            student_infor[alter - 1]["sex"] = sex
    
    
    def opp_student():
        opp_num = int(input("请输入要删除的学生序号:"))
        global student_infor
        del student_infor[opp_num - 1]
    
    
    def show_student():  # 显示学生信息
        show_num = int(input("请输入您要查询的学生信息:(0代表嘻查询所有的学生信息)"))
        if show_num != 0:
            for i, j in student_infor[show_num - 1].items():
                print(i, j)
        elif show_num == 0:
            m = 1
            for temp in student_infor:  # 遍历列表
                for x, y in temp.items():
                    print(m, x, y)
                    m += 1
            time.sleep(2)
    
    
    student_infor = []
    
    
    while True:
        print_info()
        choise = int(input('请输入您要选择的操作:(1~5)'))
        if choise in [1, 2, 3, 4, 5]:
            print("您选择的操作是", choise)
            if choise == 5:
                print("感谢使用该程序")
                num_1 = input("您确定要退出程序吗:(Y/N)")
                if num_1 == "Y":
                    break
                elif num_1 == "N":
                    continue
            elif choise == 1:
                print("您选择的操作是1")
                add_student()
                print(student_infor)
            elif choise == 2:
                print("您选择的操作是修改学生信息")
                alter_student()
                print(student_infor)
            elif choise == 3:
                print("您选择的操作是删除学生信息")
                opp_student()
            elif choise == 4:
                print("您选择的操做是查看学生信息")
                show_student()
                print(student_infor)
        else:
            print("输入有误请重新输入")




    def demo1():
    '''演示字典的方法'''
    d1 = {} #空字典
    # 1. 增加
    d1['name1']= 'aa'
    d1['name2']='bb'
    # 2.修改
    d1['name2']='cc'
    d1.update({'name2':'ddd'})
    d1.update({'name3': 'ee'}) #update:更新操作,有就修改,无:新增
    # 3.删除
    del d1['name1']
    print(d1)

    def show_menu():
    '''显示菜单'''
    print('*******欢迎使用学生管理系统*************')
    print('******* 1.增加学生信息************')
    print('******* 2.删除学生信息************')
    print('******* 3.修改学生信息************')
    print('******* 4.展示所有学生信息************')
    print('******* 5.根据名字查询************')
    print('******* 6.统计平均年龄************')
    print('******* 7.退出系统************')

    def add_stu():
    '''返回的是所有学生列表!'''
    print(' *************增加学生信息************')
    # 循环增加
    flag = 'y' #循环标记
    studetns =[] # 多个学生
    while flag=='y':
    id = input('请输入编号:')
    name = input('请输入名字:')
    sex = input('请输入性别:')
    age = input('请输入年龄:')
    # 创建一个学生字典!
    stu = {'id':id,'name':name,'sex':sex,'age':age}
    studetns.append(stu) #放到列表!
    flag = input('是否继续(y/n):')
    print('学生添加完成!!!')


    return studetns



    def del_stu(students):
    print(' **************删除学生信息*************')
    print(students)
    name = input('请输入删除的名字:')
    # 根据名字找位置
    delnum=0
    for i,stu in enumerate(students):
    if stu['name']==name:
    delnum = i #要删除的位置
    break
    students.pop(delnum) #根据位置删除
    print('删除后的数据:')
    print(students)

    def update_stu(students):
    print('修改')
    id = input('请输入编号:')
    name = input('请输入名字:')
    sex = input('请输入性别:')
    age = input('请输入年龄:')
    # 创建一个学生字典!
    stu = {'id': id, 'name': name, 'sex': sex, 'age': age}
    return students.append(stu)

    def show_list(students):
    print('展示所有学生信息!')
    # 循环打印所有学生
    # [{},{},....] for i in students : i是每个值!
    for stu in students:
    print(stu)
    for i,v in enumerate(students):
    print(f'第{i+1}个,值:{v}')


    def search_name(students):
    print('根据名字查询')
    print(' **************删除学生信息*************')
    print(students)
    name = input('请输入删除的名字:')
    # 根据名字找位置
    delnum = 0
    for i, stu in enumerate(students):
    if stu['name'] == name:
    delnum = i # 要删除的位置
    break

    #students.pop(delnum)#删除
    print(students[delnum]) #根据位置查找

    def avg_age(students):
    print('统计平均年龄')
    print(' **************平均年龄*************')
    sum = 0 #总年龄
    for i, stu in enumerate(students):
    sum += stu['age']
    print(f'平均年龄:{sum/len(students)}')

    if __name__ == '__main__':
    students = [] # 总学生列表!
    while True:
    show_menu()
    num = int(input('请输入选择的菜单(1-7):'))
    if num==7:
    print('感谢使用,退出程序!')
    flag = input('确定要退出么(y退出/n不退出!):?')
    if flag=='y':
    break #循环结束
    else:
    continue # 中断本次
    elif num ==1:
    students= add_stu() #增加
    print(f'增加完了,所有的学生总数{len(students)}')
    continue
    elif num==2:
    del_stu(students)
    elif num==3:
    update_stu(students)
    elif num==4:
    show_list(students)
    elif num==5:
    search_name(students)
    elif num==6:
    avg_age(students)
    else:
    print('输入有误,请重新输入!')
  • 相关阅读:
    BZOJ 3527: [Zjoi2014]力
    BZOJ 3240: [Noi2013]矩阵游戏
    BZOJ 3143: [Hnoi2013]游走
    BZOJ 1901: Zju2112 Dynamic Rankings
    BZOJ 1565: [NOI2009]植物大战僵尸
    BZOJ 3676: [Apio2014]回文串
    BZOJ 1041: [HAOI2008]圆上的整点
    BZOJ 1146: [CTSC2008]网络管理Network
    BZOJ 2424: [HAOI2010]订货
    BZOJ 2006: [NOI2010]超级钢琴
  • 原文地址:https://www.cnblogs.com/lisen321/p/13889875.html
Copyright © 2011-2022 走看看