基于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

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

(0)

相关推荐

  • python学生管理系统代码实现

    本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下 类 class Student: stuID = "" name = "" sex = "M" classID = "NULL" #set ID def setStuID(self,stuID): self.stuID = stuID def setName(self,name): self.name = name def setSex(self

  • python学生管理系统开发

    本文实例为大家分享了python学生管理系统开发的具体代码,供大家参考,具体内容如下 学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管理系统 ") print(" 1.添加学生的信息") print(" 2.删除学生的信息") print(" 3.修改学生的信息") print(" 4.查询学生

  • python实现学生管理系统

    python写的简单的学生管理系统,练习python语法. 可以运行在windows和linux下,python 2.7. #!/usr/local/bin/python # -*- coding:utf-8 -*- import os import re #定义学生类 class Student: def __init__(self): self.name = '' self.ID = '' self.score = 0 #根据学生分数进行从大到小的冒泡排序 def BuddleSortByS

  • python初学者,用python实现基本的学生管理系统(python3)代码实例

    这个是用python实现的基本的增删改查的学生管理系统吧,其中主要是对输入的数据进行合法性检测的问题,这次又对函数进行了练习!掌握函数更加熟练了!二话不说先贴代码,一切问题请看注释,都很详细,适合python3初学者! """ 学生管理系统 主要特点:1.可以检测学号是否重复/有误(不为纯数字) 2.可以检测手机号是否合法(是否为纯数字) 3.可以检测性别是否为男或者女 4.能选择性修个学生的某个属性信息,比如只修改某个学生的手机号码 5.能够实现基本的增删改查 6.优化了代

  • python学生管理系统

    这几天开始接触了python语言,这语言相对c语言简洁了不少,语言真是一通百通,学起来还是比较轻松,在熟悉了基本语法,列表(序列),元组以及字典之后写了一个最基础简单的的学生管理系统 能完成的功能有: 学生管理系统  v1.0  1.添加学生的信息  2.删除学生的信息  3.修改学生的信息  4.查询学生的信息  5.遍历所有学生的信息  6.退出系统 学生信息中,学号是唯一的,所以进行删除,修改,查询都会有学号的唯一的检测 1.框架显示以及添加学生的功能 2.添加两个学生之后,进行显示功能

  • python Tkinter版学生管理系统

    本文实例为大家分享了python Tkinter版学生管理的具体代码,供大家参考,具体内容如下 Tkinter是python自带的UI包,无需下载,只需要导入 tkinter 文档 //http://effbot.org/tkinterbook//// 文档是英文版本的,可以翻译! 界面效果如下: python的pc端界面还是可以的,较为美观! 页面较为粗狂,为经过专业设计! 系统的对象封装,数据连接使用的是原本控制台版本的! 控制台版本的系统,包含对象封装,数据连接 #导入tkinter 包

  • Python基于mysql实现学生管理系统

    本篇文章主要介绍了Python基于mysql实现学生管理系统,分享给大家,具体如下: import pymysql import re def idinput(string): ID = input(string) pattern = re.compile("^\d{1,3}$") while not re.match(pattern, ID): ID = input("请输入1-3位整数:") return ID def appendStudentInfo():

  • python版学生管理系统

    写一个学生管理系统,最好用python. 我都没学过python呢,只好开始临时抱佛脚,再到网上找找有没有例子看看,下面是我参照另一个博主写的,中间有一些和我不能融合的错误,我已经解决了. input("\n\nPress the enter key to exit.") def functionList(): # 定义功能菜单 print("---------请输入序号选择您要得功能---------") print("") print(&qu

  • python学生管理系统学习笔记

    本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下 基于列表存储的学生管理系统,实现如下功能 ================== 学生管理系统 1.添加学生信息 2.删除学生信息 3.查询学生信息 4.修改学生信息 5.显示所有学生信息 6.退出 ================== 代码如下: import re student=[] def appendStudentInfo(): studentinfo={"Name":"",&

  • 详解用python实现基本的学生管理系统(文件存储版)(python3)

    这个是升级的版本,比较进阶一点的,相对与之前的文件管理系统,数据只是存储到了内存中,而不是存储到硬盘上,我们想让文件存储到硬盘上的话,一个是存储到文件里,一个是存储到数据库中,存储到数据库中的版本会后续发布,先来看一下文件存储版,是把学生信息存储到了txt文件中,我这里是默认存储到了students.txt文件中,想更改文件名字根据代码修改即可,代码中注释很详细,我也是python初学者,欢迎大家和我交流! """ 学生管理系统(文件存储版) 再原有功能的基础上添加了如下功能

随机推荐