学生管理系统

"""
学生管理系统
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('输入有误,请重新输入!')
原文地址:https://www.cnblogs.com/lisen321/p/13889875.html