首页 > 编程 > Python > 正文

基于python实现学生管理系统

2020-01-04 14:19:45
字体:
来源:转载
供稿:网友

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

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


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表