基于python实现学生管理系统

本文为大家分享了python实现学生管理系统的具体代码,供大家参考,具体内容如下

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(基于python实现学生管理系统)