欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于python实现学生管理系统

程序员文章站 2024-02-05 08:57:10
本文为大家分享了python实现学生管理系统的具体代码,供大家参考,具体内容如下 1.0版本学生管理系统 ''' 1.添加学员 2.修改学员...

本文为大家分享了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

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