基于python的学生管理系统

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dayun555/article/details/79154365

1.0版本学生管理系统

'''
    1.添加学员
    2.修改学员
    3.查询学员
    4.删除学员
    0.退出程序
'''
student_list=[]
while True:
    print('1.添加学员')
    print('2.修改学员')
    print('3.查询学员')
    print('4.删除学员')
    print('0.退出程序')
    sel_num=input('请输入您要进行的操作:')
    sel_num=int(sel_num)
    #如果选择的数字不在0~5 继续选择
    while sel_num not in range(0,5):
        sel_num=input('您的选择无效,请重新选择:')
        sel_num=int(sel_num)
    if sel_num==1:
        name=input('请输入姓名:')
        age=input('请输入年龄:')
        sex=input('请输入性别:')
        person_list=[name,age,sex]
        student_list.append(person_list)
        print('添加成功!')
    elif sel_num==2:
        for x in range(0,len(student_list)):
            person=student_list[x]
            print('序号:%s 姓名:%s 年龄:%s  性别:%s '%(x,person[0],person[1],person[2]))
        index=input('请输入要修改的序号:')
        index=int(index)
        while index not in range(0, len(student_list)):
            index = input('您选择的序号无效,请重新选择:')
            index = int(index)
        person=student_list[index]
        name=person[0]
        age=person[1]
        sex=person[2]
        student_list[index][0]=input('请输入修改后的姓名:(%s):'%name)
        student_list[index][1]=input('请输入修改后的年龄:(%s):'%age)
        student_list[index][2]=input('请输入修改后的性别:(%s)'%sex)
        print('修改成功!')
    elif sel_num==3:
        for x in range(0,len(student_list)):
            person=student_list[x]
            name=person[0]
            age=person[1]
            sex=person[2]
            print('序号:%s 姓名:%s 年龄:%s  性别:%s '%(x,name,age,sex))
    elif sel_num==4:
        for x in range(0,len(student_list)):
            person=student_list[x]
            print('序号:%s 姓名:%s 年龄:%s  性别:%s '%(x,person[0],person[1],person[2]))
        print('1.删除所有学员')
        print('2.删除选择的学员')
        num=input('请输入您的选择:')
        if num=='1':
            student_list.clear()
        else:
            index = input('请输入要删除学员的序号:')
            index = int(index)
            while index not in range(0, len(student_list)):
                index = input('您选择的序号无效,请重新选择:')
                index = int(index)
            del student_list[index]
    else:
        break
2.0版本学生管理系统---函数版--用列表存放学员信息

#添加学员函数
def add_student():
    #输入学员姓名、年龄、电话
    name=input('请输入学员姓名:')
    age=input('请输入学员年龄:')
    phone=input('请输入学员电话:')
    #把name、age、phone放在小列表中
    student=[name,age,phone]
    # 把小列表添加到所有学员的大列表中
    # append(object) insert(index,object) extend(iterable)
    student_list.append(student)
    print('添加学员成功!')
#查询学员函数
def query_student():
    #1.查询所有学员
    #2.输入学员姓名 查询学员得到查询的学员的序号
    print('1.查询所有学员')
    print('2.查询部分学员')
    num=int(input('请输入操作序号:'))
    while num not in range(1,3):
        num=int(input('选择无效,请重新输入:'))
    if num==1:
        print('**************学员信息列表***************')
        #遍历大列表
        for x in range(0,len(student_list)):
            #根据x的值从大列表中取出小列表
            student=student_list[x]
            #从小列表中取出姓名、年龄、电话
            name=student[0]
            age=student[1]
            phone=student[2]
            print('序号:%s 姓名:%s  年龄:%s  电话:%s'%(x,name,age,phone))
    else:
        name = input('请输入您要查询的学员姓名:')
        while 1:
            a=False
            for student in student_list:
                if student[0] == name:
                   index = student_list.index(student, 0, 8)
                   print('序号:%s 姓名:%s 年龄:%s 电话:%s'%(index,student_list[index][0],student_list[index][1],student_list[
                    index][2]))
                   a=True
            if a==False:
                name=input('该学员没找到,请重新输入:')
            else:
                break

# 修改学员的函数
def update_student():
    #判断是否有学员信息,如果没有,直接结束函数的执行
    if len(student_list)==0:
        print('没有学员信息,无法进行修改操作!')
        #强制结束函数的执行 return下面的代码都不会再执行了
        return
    #1.查询学员信息
    query_student()
    #2.选择要修改的学员序号
    num=input('请选择要修改的学员序号:')
    #3.转换为整数
    num=int(num)
    #4.判断选择的学员序号是否在范围内
    while num not in range(0,len(student_list)):
        #不在范围,重新选择
        num=input('没有该序号,请重选:')
        num=int(num)
    #5.根据选择的序号取出对应的小列表
    student=student_list[num]
    new_name=input('请输入修改后的姓名(%s):'%student[0])
    new_age=input('请输入修改后的年龄(%s)'%student[1])
    new_phone=input('请输入修改后的电话(%s)'%student[2])
    #6.修改小列表中的数据
    student[0]=new_name
    student[1]=new_age
    student[2]=new_phone
    print('修改数据完成!')
#删除学员
#1.根据学员序号删除  2.删除所有学员 3.根据学员的姓名来删除(有同名的)
def delete_student():
    if len(student_list)==0:
        print('没有学员信息,无法执行删除操作!')
        return
    print('1.根据学员序号删除')
    print('2.删除所有学员')
    print('3.根据学员姓名删除学员')
    #获取输入的内容并转换为整数类型
    num=int(input('请输入您的选择:'))
    #判断选择的选项是否在范围内
    while num not in range(1,4):
        num=int(input('没有该序号,请重新选择'))
    #判断选择的选项
    if num == 1:
        # 1.查询学员信息
        query_student()
        #2.选择删除的序号
        num=int(input('请输入您要删除的学员序号:'))
        #判断选择序号是否在范围内
        while num not in range(0,len(student_list)):
            num=int(input('序号无效,请重选!'))
        is_del=input('您确定要删除(%s)学员的信息吗?(y/n):'%student_list[num][0])
        if is_del=='y':
            #删除列表中的所有数据
            del student_list[num]
            #student_list.pop(index)
            print('%s学员信息删除成功!'%student_list[num][0])
    if num==2:
        #确认删除
        is_del=input('您确定要删除所有学员信息吗?y(确定)/n(取消):')
        if is_del=='y':
            #删除列表中的所有数据
            student_list.clear()
            print('所有学员删除成功!')
        else:
            print('删除数据操作已去取消!')
    else:
        name = input('请输入您要删除的学员的姓名:')
        while 1:
            #定义列表存放不等于name的小列表
            list = []
            #遍历大列表
            for student in student_list:
                #判断输入的name是否和小列表里name的相等
                if student[0] != name:
                    #找出与name不等的小列表所在的索引
                    index = student_list.index(student,0,len(student_list))
                    #将符合的小列表添加到list列表中
                    list.append(student_list[index])
            #判断两个列表长度是否相等  相等说明大列表中不存在名字为name的小列表
            if len(student_list) == len(list):
                name = input('序号不存在,请重新输入:')
            #存在符合的小列表
            else:
                #清空大列表
                student_list.clear()
                #循环将list列表的内容写入到空的大列表中
                for dict in list:
                    student_list.append(dict)
                break
#1.声明一个大列表,存放所有学员信息
student_list=[]
#2.while循环
while True:
    print('***********学员管理系统V2.0**************')
    print('1.添加学员')
    print('2.查询学员')
    print('3.修改学员')
    print('4.删除学员')
    print('0.退出程序')
    print('***************************************')
    #选择操作
    num=input('请选择您的操作:')
    #转换为整数
    num=int(num)
    #判断选择的选项是否在范围内
    while num not in range(0,5):
        #重新选择
        num=input('没有该选项,请重选:')
        #把字符串转换为整数类型
        num=int(num)
    #根据选择的选项执行对应的操作
    if num==1:
        #调用添加学员的函数
        add_student()
    elif num==2:
        #调用查询学员的函数
        query_student()
    elif num==3:
        #调用修改学员的的函数
        update_student()
    elif num==4:
        delete_student()
    else:
        print('程序已结束!')
        break
2.1版本学生管理系统---函数版--用字典存放学员信息

#添加学员函数
def add_student():
    #输入学员姓名、年龄、电话
    name=input('请输入学员姓名:')
    age=input('请输入学员年龄:')
    phone=input('请输入学员电话:')
    #把name、age、phone放在小字典中
    student={'name':name,'age':age,'phone':phone}
    # 把小字典添加到所有学员的大列表中
    # append(object) insert(index,object) extend(iterable)
    student_list.append(student)
    print('添加学员成功!')
#查询学员函数
def query_student():
    #1.查询所有学员
    #2.输入学员姓名 查询学员得到查询的学员的序号
    print('1.查询所有学员')
    print('2.查询部分学员')
    num=int(input('请输入操作序号:'))
    while num not in range(1,3):
        num=int(input('选择无效,请重新输入:'))
    if num==1:
        print('**************学员信息列表***************')
        #遍历大列表
        for x in range(0,len(student_list)):
            #根据x的值从大列表中取出小字典
            student=student_list[x]
            #从小字典中取出姓名、年龄、电话
            name=student['name']
            age=student['age']
            phone=student['phone']
            print('序号:%s 姓名:%s  年龄:%s  电话:%s'%(x,name,age,phone))
    else:
        name = input('请输入您要查询的学员姓名:')
        while 1:
            a=False
            for student in student_list:
                if student['name'] == name:
                   index = student_list.index(student, 0, 8)
                   print('序号:%s 姓名:%s 年龄:%s 电话:%s'%(index,student_list[index]['name'],student_list[index]['age'],
                                                    student_list[index]['phone']))
                   a=True
            if a==False:
                name=input('该学员没找到,请重新输入:')
            else:
                break

# 修改学员的函数
def update_student():
    #判断是否有学员信息,如果没有,直接结束函数的执行
    if len(student_list)==0:
        print('没有学员信息,无法进行修改操作!')
        #强制结束函数的执行 return下面的代码都不会再执行了
        return
    #1.查询学员信息
    query_student()
    #2.选择要修改的学员序号
    num=input('请选择要修改的学员序号:')
    #3.转换为整数
    num=int(num)
    #4.判断选择的学员序号是否在范围内
    while num not in range(0,len(student_list)):
        #不在范围,重新选择
        num=input('没有该序号,请重选:')
        num=int(num)
    #5.根据选择的序号取出对应的小字典
    student=student_list[num]
    new_name=input('请输入修改后的姓名(%s):'%student['name'])
    new_age=input('请输入修改后的年龄(%s)'%student['age'])
    new_phone=input('请输入修改后的电话(%s)'%student['phone'])
    #6.修改小列表中的数据
    student['name']=new_name
    student['age']=new_age
    student['phone']=new_phone
    print('修改数据完成!')
#删除学员
#1.根据学员序号删除  2.删除所有学员 3.根据学员的姓名来删除(有同名的)
def delete_student():
    if len(student_list)==0:
        print('没有学员信息,无法执行删除操作!')
        return
    print('1.根据学员序号删除')
    print('2.删除所有学员')
    print('3.根据学员姓名删除学员')
    #获取输入的内容并转换为整数类型
    num=int(input('请输入您的选择:'))
    #判断选择的选项是否在范围内
    while num not in range(1,4):
        num=int(input('没有该序号,请重新选择'))
    #判断选择的选项
    if num == 1:
        # 1.查询学员信息
        query_student()
        #2.选择删除的序号
        num=int(input('请输入您要删除的学员序号:'))
        #判断选择序号是否在范围内
        while num not in range(0,len(student_list)):
            num=int(input('序号无效,请重选!'))
        is_del=input('您确定要删除(%s)学员的信息吗?(y/n):'%student_list[num]['name'])
        if is_del=='y':
            #删除列表中的所有数据
            del student_list[num]
            #student_list.pop(index)
            print('%s学员信息删除成功!'%student_list[num]['name'])
        else:
            print('删除数据操作已去取消!')
    elif num==2:
        #确认删除
        is_del=input('您确定要删除所有学员信息吗?y(确定)/n(取消):')
        if is_del=='y':
            #删除列表中的所有数据
            student_list.clear()
            print('所有学员删除成功!')
        else:
            print('删除数据操作已去取消!')
    else:
        name = input('请输入您要删除的学员的姓名:')
        while 1:
            # 定义列表存放不等于name的小列表
            list=[]
            # 遍历大列表
            for student in student_list:
                # 判断输入的name是否和小字典里name的相等
                if student['name']!=name:
                    # 找出与name不等的小字典所在的索引
                    index=student_list.index(student)
                    # 将符合的小字典添加到list列表中
                    list.append(student_list[index])
            # 判断两个列表长度是否相等  相等说明大列表中不存在名字为name的小列表
            if len(student_list)==len(list):
                name=input('序号不存在,请重新输入:')
            # 存在符合的小字典
            else:
                # 清空大列表
                student_list.clear()
                # 循环将list列表的内容写入到空的大列表中
                for dict in list:
                    student_list.append(dict)
                break
#1.声明一个大列表,存放所有学员信息
student_list=[]
#2.while循环
while True:
    print('***********学员管理系统V2.0**************')
    print('1.添加学员')
    print('2.查询学员')
    print('3.修改学员')
    print('4.删除学员')
    print('0.退出程序')
    print('***************************************')
    #选择操作
    num=input('请选择您的操作:')
    #转换为整数
    num=int(num)
    #判断选择的选项是否在范围内
    while num not in range(0,5):
        #重新选择
        num=input('没有该选项,请重选:')
        #把字符串转换为整数类型
        num=int(num)
    #根据选择的选项执行对应的操作
    if num==1:
        #调用添加学员的函数
        add_student()
    elif num==2:
        #调用查询学员的函数
        query_student()
    elif num==3:
        #调用修改学员的的函数
        update_student()
    elif num==4:
        delete_student()
    else:
        print('程序已结束!')
        break

3.0版本学生管理系统--将学员信息存入文件中

def is_in_range():
    index = input('请选择要(修改)删除的学员序号:')
    index = int(index)
    while index not in range(0, len(student_list)):
        index = input('您输入的序号不在范围内,请重新输入:')
        index = int(index)
    return index
def add_stu():
    name = input('请输入姓名:')
    age = input('请输入年龄:')
    sex = input('请输入性别:')
    person_list = [name, age, sex]
    student_list.append(person_list)
    print('添加成功!')
def alter_stu():
    index=is_in_range()
    person = student_list[index]
    name = person[0]
    age = person[1]
    sex = person[2]
    student_list[index][0] = input('请输入修改后的姓名:(%s):' % name)
    student_list[index][1] = input('请输入修改后的年龄:(%s):' % age)
    student_list[index][2] = input('请输入修改后的性别:(%s)' % sex)
    print('修改成功!')
def see_stu():
    for x in range(0, len(student_list)):
        person = student_list[x]
        name = person[0]
        age = person[1]
        sex = person[2]
        print('序号:%s 姓名:%s 年龄:%s  性别:%s ' % (x, name, age, sex))
def del_stu():
    print('1.删除所有学员')
    print('2.删除选择的学员')
    num = input('请输入您的选择:')
    if num == '1':
        student_list.clear()
    else:
        index = is_in_range()
        del student_list[index]
#声明保存数据的函数
def save_data():
    #1.打开文件
    file_handle=open('student_v2.txt',mode='w')
    #2.for循环遍历大列表
    for student in student_list:
        #把列表中的数据用空格分开拼接成一个字符串
        s=' '.join(student)
        #写入
        file_handle.write(s)
        file_handle.write('\n')
    #3.关闭文件
    file_handle.close()
#引入os模块
import os
#读取文件的函数
def read_data():
    #判断文件是否存在
    rs=os.path.exists('student_v2.txt')
    if rs==True:
        #1.打开文件
        file_handle=open('student_v2.txt',mode='r')
        #2.取出信息
        contents=file_handle.readlines()
        for content in contents:
            #去除/n
            content=content.strip('\n')
            #使用空格分割字符串,得到列表
            list_1=content.split(' ')
            #将小列表添加到大列表中
            student_list.append(list_1)
        # 3.关闭文件
        file_handle.close()
# 声明一个大列表,存放学院的姓名
student_list = []
read_data()
while True:
    print('1.添加学员')
    print('2.修改学员')
    print('3.查询学员')
    print('4.删除学员')
    print('0.退出程序')
    sel_num = input('请输入您要进行的操作:')
    sel_num = int(sel_num)
    # 如果选择的数字不在0~5 继续选择
    while sel_num not in range(0, 5):
        sel_num = input('您的选择无效,请重新选择:')
        sel_num = int(sel_num)
    # 添加学员
    if sel_num == 1:
        add_stu()
        save_data()
    elif sel_num == 2:
        # 1.展示所有学员信息
        see_stu()
        # 2.选择要修改的学员序号
        alter_stu()
        save_data()
    elif sel_num == 3:
        see_stu()
    elif sel_num == 4:
        see_stu()
        # 2.选择要删除的学员序号
        del_stu()
        save_data()
    else:
        break




展开阅读全文

没有更多推荐了,返回首页