溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用python實(shí)現(xiàn)學(xué)生管理系統(tǒng)

發(fā)布時(shí)間:2021-04-09 12:29:54 來源:億速云 閱讀:151 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)如何使用python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

具體內(nèi)容如下

1.0版本學(xué)生管理系統(tǒng)

'''
 1.添加學(xué)員
 2.修改學(xué)員
 3.查詢學(xué)員
 4.刪除學(xué)員
 0.退出程序
'''
student_list=[]
while True:
 print('1.添加學(xué)員')
 print('2.修改學(xué)員')
 print('3.查詢學(xué)員')
 print('4.刪除學(xué)員')
 print('0.退出程序')
 sel_num=input('請輸入您要進(jìn)行的操作:')
 sel_num=int(sel_num)
 #如果選擇的數(shù)字不在0~5 繼續(xù)選擇
 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('序號(hào):%s 姓名:%s 年齡:%s 性別:%s '%(x,person[0],person[1],person[2]))
  index=input('請輸入要修改的序號(hào):')
  index=int(index)
  while index not in range(0, len(student_list)):
   index = input('您選擇的序號(hào)無效,請重新選擇:')
   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('序號(hào):%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('序號(hào):%s 姓名:%s 年齡:%s 性別:%s '%(x,person[0],person[1],person[2]))
  print('1.刪除所有學(xué)員')
  print('2.刪除選擇的學(xué)員')
  num=input('請輸入您的選擇:')
  if num=='1':
   student_list.clear()
  else:
   index = input('請輸入要?jiǎng)h除學(xué)員的序號(hào):')
   index = int(index)
   while index not in range(0, len(student_list)):
    index = input('您選擇的序號(hào)無效,請重新選擇:')
    index = int(index)
   del student_list[index]
 else:
  break

2.0版本學(xué)生管理系統(tǒng)---函數(shù)版--用列表存放學(xué)員信息

#添加學(xué)員函數(shù)
def add_student():
 #輸入學(xué)員姓名、年齡、電話
 name=input('請輸入學(xué)員姓名:')
 age=input('請輸入學(xué)員年齡:')
 phone=input('請輸入學(xué)員電話:')
 #把name、age、phone放在小列表中
 student=[name,age,phone]
 # 把小列表添加到所有學(xué)員的大列表中
 # append(object) insert(index,object) extend(iterable)
 student_list.append(student)
 print('添加學(xué)員成功!')
#查詢學(xué)員函數(shù)
def query_student():
 #1.查詢所有學(xué)員
 #2.輸入學(xué)員姓名 查詢學(xué)員得到查詢的學(xué)員的序號(hào)
 print('1.查詢所有學(xué)員')
 print('2.查詢部分學(xué)員')
 num=int(input('請輸入操作序號(hào):'))
 while num not in range(1,3):
  num=int(input('選擇無效,請重新輸入:'))
 if num==1:
  print('**************學(xué)員信息列表***************')
  #遍歷大列表
  for x in range(0,len(student_list)):
   #根據(jù)x的值從大列表中取出小列表
   student=student_list[x]
   #從小列表中取出姓名、年齡、電話
   name=student[0]
   age=student[1]
   phone=student[2]
   print('序號(hào):%s 姓名:%s 年齡:%s 電話:%s'%(x,name,age,phone))
 else:
  name = input('請輸入您要查詢的學(xué)員姓名:')
  while 1:
   a=False
   for student in student_list:
    if student[0] == name:
     index = student_list.index(student, 0, 8)
     print('序號(hào):%s 姓名:%s 年齡:%s 電話:%s'%(index,student_list[index][0],student_list[index][1],student_list[
     index][2]))
     a=True
   if a==False:
    name=input('該學(xué)員沒找到,請重新輸入:')
   else:
    break
 
# 修改學(xué)員的函數(shù)
def update_student():
 #判斷是否有學(xué)員信息,如果沒有,直接結(jié)束函數(shù)的執(zhí)行
 if len(student_list)==0:
  print('沒有學(xué)員信息,無法進(jìn)行修改操作!')
  #強(qiáng)制結(jié)束函數(shù)的執(zhí)行 return下面的代碼都不會(huì)再執(zhí)行了
  return
 #1.查詢學(xué)員信息
 query_student()
 #2.選擇要修改的學(xué)員序號(hào)
 num=input('請選擇要修改的學(xué)員序號(hào):')
 #3.轉(zhuǎn)換為整數(shù)
 num=int(num)
 #4.判斷選擇的學(xué)員序號(hào)是否在范圍內(nèi)
 while num not in range(0,len(student_list)):
  #不在范圍,重新選擇
  num=input('沒有該序號(hào),請重選:')
  num=int(num)
 #5.根據(jù)選擇的序號(hào)取出對應(yīng)的小列表
 student=student_list[num]
 new_name=input('請輸入修改后的姓名(%s):'%student[0])
 new_age=input('請輸入修改后的年齡(%s)'%student[1])
 new_phone=input('請輸入修改后的電話(%s)'%student[2])
 #6.修改小列表中的數(shù)據(jù)
 student[0]=new_name
 student[1]=new_age
 student[2]=new_phone
 print('修改數(shù)據(jù)完成!')
#刪除學(xué)員
#1.根據(jù)學(xué)員序號(hào)刪除 2.刪除所有學(xué)員 3.根據(jù)學(xué)員的姓名來刪除(有同名的)
def delete_student():
 if len(student_list)==0:
  print('沒有學(xué)員信息,無法執(zhí)行刪除操作!')
  return
 print('1.根據(jù)學(xué)員序號(hào)刪除')
 print('2.刪除所有學(xué)員')
 print('3.根據(jù)學(xué)員姓名刪除學(xué)員')
 #獲取輸入的內(nèi)容并轉(zhuǎn)換為整數(shù)類型
 num=int(input('請輸入您的選擇:'))
 #判斷選擇的選項(xiàng)是否在范圍內(nèi)
 while num not in range(1,4):
  num=int(input('沒有該序號(hào),請重新選擇'))
 #判斷選擇的選項(xiàng)
 if num == 1:
  # 1.查詢學(xué)員信息
  query_student()
  #2.選擇刪除的序號(hào)
  num=int(input('請輸入您要?jiǎng)h除的學(xué)員序號(hào):'))
  #判斷選擇序號(hào)是否在范圍內(nèi)
  while num not in range(0,len(student_list)):
   num=int(input('序號(hào)無效,請重選!'))
  is_del=input('您確定要?jiǎng)h除(%s)學(xué)員的信息嗎?(y/n):'%student_list[num][0])
  if is_del=='y':
   #刪除列表中的所有數(shù)據(jù)
   del student_list[num]
   #student_list.pop(index)
   print('%s學(xué)員信息刪除成功!'%student_list[num][0])
 if num==2:
  #確認(rèn)刪除
  is_del=input('您確定要?jiǎng)h除所有學(xué)員信息嗎?y(確定)/n(取消):')
  if is_del=='y':
   #刪除列表中的所有數(shù)據(jù)
   student_list.clear()
   print('所有學(xué)員刪除成功!')
  else:
   print('刪除數(shù)據(jù)操作已去取消!')
 else:
  name = input('請輸入您要?jiǎng)h除的學(xué)員的姓名:')
  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])
   #判斷兩個(gè)列表長度是否相等 相等說明大列表中不存在名字為name的小列表
   if len(student_list) == len(list):
    name = input('序號(hào)不存在,請重新輸入:')
   #存在符合的小列表
   else:
    #清空大列表
    student_list.clear()
    #循環(huán)將list列表的內(nèi)容寫入到空的大列表中
    for dict in list:
     student_list.append(dict)
    break
#1.聲明一個(gè)大列表,存放所有學(xué)員信息
student_list=[]
#2.while循環(huán)
while True:
 print('***********學(xué)員管理系統(tǒng)V2.0**************')
 print('1.添加學(xué)員')
 print('2.查詢學(xué)員')
 print('3.修改學(xué)員')
 print('4.刪除學(xué)員')
 print('0.退出程序')
 print('***************************************')
 #選擇操作
 num=input('請選擇您的操作:')
 #轉(zhuǎn)換為整數(shù)
 num=int(num)
 #判斷選擇的選項(xiàng)是否在范圍內(nèi)
 while num not in range(0,5):
  #重新選擇
  num=input('沒有該選項(xiàng),請重選:')
  #把字符串轉(zhuǎn)換為整數(shù)類型
  num=int(num)
 #根據(jù)選擇的選項(xiàng)執(zhí)行對應(yīng)的操作
 if num==1:
  #調(diào)用添加學(xué)員的函數(shù)
  add_student()
 elif num==2:
  #調(diào)用查詢學(xué)員的函數(shù)
  query_student()
 elif num==3:
  #調(diào)用修改學(xué)員的的函數(shù)
  update_student()
 elif num==4:
  delete_student()
 else:
  print('程序已結(jié)束!')
  break

2.1版本學(xué)生管理系統(tǒng)---函數(shù)版--用字典存放學(xué)員信息

#添加學(xué)員函數(shù)
def add_student():
 #輸入學(xué)員姓名、年齡、電話
 name=input('請輸入學(xué)員姓名:')
 age=input('請輸入學(xué)員年齡:')
 phone=input('請輸入學(xué)員電話:')
 #把name、age、phone放在小字典中
 student={'name':name,'age':age,'phone':phone}
 # 把小字典添加到所有學(xué)員的大列表中
 # append(object) insert(index,object) extend(iterable)
 student_list.append(student)
 print('添加學(xué)員成功!')
#查詢學(xué)員函數(shù)
def query_student():
 #1.查詢所有學(xué)員
 #2.輸入學(xué)員姓名 查詢學(xué)員得到查詢的學(xué)員的序號(hào)
 print('1.查詢所有學(xué)員')
 print('2.查詢部分學(xué)員')
 num=int(input('請輸入操作序號(hào):'))
 while num not in range(1,3):
  num=int(input('選擇無效,請重新輸入:'))
 if num==1:
  print('**************學(xué)員信息列表***************')
  #遍歷大列表
  for x in range(0,len(student_list)):
   #根據(jù)x的值從大列表中取出小字典
   student=student_list[x]
   #從小字典中取出姓名、年齡、電話
   name=student['name']
   age=student['age']
   phone=student['phone']
   print('序號(hào):%s 姓名:%s 年齡:%s 電話:%s'%(x,name,age,phone))
 else:
  name = input('請輸入您要查詢的學(xué)員姓名:')
  while 1:
   a=False
   for student in student_list:
    if student['name'] == name:
     index = student_list.index(student, 0, 8)
     print('序號(hào):%s 姓名:%s 年齡:%s 電話:%s'%(index,student_list[index]['name'],student_list[index]['age'],
             student_list[index]['phone']))
     a=True
   if a==False:
    name=input('該學(xué)員沒找到,請重新輸入:')
   else:
    break
 
# 修改學(xué)員的函數(shù)
def update_student():
 #判斷是否有學(xué)員信息,如果沒有,直接結(jié)束函數(shù)的執(zhí)行
 if len(student_list)==0:
  print('沒有學(xué)員信息,無法進(jìn)行修改操作!')
  #強(qiáng)制結(jié)束函數(shù)的執(zhí)行 return下面的代碼都不會(huì)再執(zhí)行了
  return
 #1.查詢學(xué)員信息
 query_student()
 #2.選擇要修改的學(xué)員序號(hào)
 num=input('請選擇要修改的學(xué)員序號(hào):')
 #3.轉(zhuǎn)換為整數(shù)
 num=int(num)
 #4.判斷選擇的學(xué)員序號(hào)是否在范圍內(nèi)
 while num not in range(0,len(student_list)):
  #不在范圍,重新選擇
  num=input('沒有該序號(hào),請重選:')
  num=int(num)
 #5.根據(jù)選擇的序號(hào)取出對應(yīng)的小字典
 student=student_list[num]
 new_name=input('請輸入修改后的姓名(%s):'%student['name'])
 new_age=input('請輸入修改后的年齡(%s)'%student['age'])
 new_phone=input('請輸入修改后的電話(%s)'%student['phone'])
 #6.修改小列表中的數(shù)據(jù)
 student['name']=new_name
 student['age']=new_age
 student['phone']=new_phone
 print('修改數(shù)據(jù)完成!')
#刪除學(xué)員
#1.根據(jù)學(xué)員序號(hào)刪除 2.刪除所有學(xué)員 3.根據(jù)學(xué)員的姓名來刪除(有同名的)
def delete_student():
 if len(student_list)==0:
  print('沒有學(xué)員信息,無法執(zhí)行刪除操作!')
  return
 print('1.根據(jù)學(xué)員序號(hào)刪除')
 print('2.刪除所有學(xué)員')
 print('3.根據(jù)學(xué)員姓名刪除學(xué)員')
 #獲取輸入的內(nèi)容并轉(zhuǎn)換為整數(shù)類型
 num=int(input('請輸入您的選擇:'))
 #判斷選擇的選項(xiàng)是否在范圍內(nèi)
 while num not in range(1,4):
  num=int(input('沒有該序號(hào),請重新選擇'))
 #判斷選擇的選項(xiàng)
 if num == 1:
  # 1.查詢學(xué)員信息
  query_student()
  #2.選擇刪除的序號(hào)
  num=int(input('請輸入您要?jiǎng)h除的學(xué)員序號(hào):'))
  #判斷選擇序號(hào)是否在范圍內(nèi)
  while num not in range(0,len(student_list)):
   num=int(input('序號(hào)無效,請重選!'))
  is_del=input('您確定要?jiǎng)h除(%s)學(xué)員的信息嗎?(y/n):'%student_list[num]['name'])
  if is_del=='y':
   #刪除列表中的所有數(shù)據(jù)
   del student_list[num]
   #student_list.pop(index)
   print('%s學(xué)員信息刪除成功!'%student_list[num]['name'])
  else:
   print('刪除數(shù)據(jù)操作已去取消!')
 elif num==2:
  #確認(rèn)刪除
  is_del=input('您確定要?jiǎng)h除所有學(xué)員信息嗎?y(確定)/n(取消):')
  if is_del=='y':
   #刪除列表中的所有數(shù)據(jù)
   student_list.clear()
   print('所有學(xué)員刪除成功!')
  else:
   print('刪除數(shù)據(jù)操作已去取消!')
 else:
  name = input('請輸入您要?jiǎng)h除的學(xué)員的姓名:')
  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])
   # 判斷兩個(gè)列表長度是否相等 相等說明大列表中不存在名字為name的小列表
   if len(student_list)==len(list):
    name=input('序號(hào)不存在,請重新輸入:')
   # 存在符合的小字典
   else:
    # 清空大列表
    student_list.clear()
    # 循環(huán)將list列表的內(nèi)容寫入到空的大列表中
    for dict in list:
     student_list.append(dict)
    break
#1.聲明一個(gè)大列表,存放所有學(xué)員信息
student_list=[]
#2.while循環(huán)
while True:
 print('***********學(xué)員管理系統(tǒng)V2.0**************')
 print('1.添加學(xué)員')
 print('2.查詢學(xué)員')
 print('3.修改學(xué)員')
 print('4.刪除學(xué)員')
 print('0.退出程序')
 print('***************************************')
 #選擇操作
 num=input('請選擇您的操作:')
 #轉(zhuǎn)換為整數(shù)
 num=int(num)
 #判斷選擇的選項(xiàng)是否在范圍內(nèi)
 while num not in range(0,5):
  #重新選擇
  num=input('沒有該選項(xiàng),請重選:')
  #把字符串轉(zhuǎn)換為整數(shù)類型
  num=int(num)
 #根據(jù)選擇的選項(xiàng)執(zhí)行對應(yīng)的操作
 if num==1:
  #調(diào)用添加學(xué)員的函數(shù)
  add_student()
 elif num==2:
  #調(diào)用查詢學(xué)員的函數(shù)
  query_student()
 elif num==3:
  #調(diào)用修改學(xué)員的的函數(shù)
  update_student()
 elif num==4:
  delete_student()
 else:
  print('程序已結(jié)束!')
  break

3.0版本學(xué)生管理系統(tǒng)--將學(xué)員信息存入文件中

def is_in_range():
 index = input('請選擇要(修改)刪除的學(xué)員序號(hào):')
 index = int(index)
 while index not in range(0, len(student_list)):
  index = input('您輸入的序號(hào)不在范圍內(nèi),請重新輸入:')
  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('序號(hào):%s 姓名:%s 年齡:%s 性別:%s ' % (x, name, age, sex))
def del_stu():
 print('1.刪除所有學(xué)員')
 print('2.刪除選擇的學(xué)員')
 num = input('請輸入您的選擇:')
 if num == '1':
  student_list.clear()
 else:
  index = is_in_range()
  del student_list[index]
#聲明保存數(shù)據(jù)的函數(shù)
def save_data():
 #1.打開文件
 file_handle=open('student_v2.txt',mode='w')
 #2.for循環(huán)遍歷大列表
 for student in student_list:
  #把列表中的數(shù)據(jù)用空格分開拼接成一個(gè)字符串
  s=' '.join(student)
  #寫入
  file_handle.write(s)
  file_handle.write('\n')
 #3.關(guān)閉文件
 file_handle.close()
#引入os模塊
import os
#讀取文件的函數(shù)
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.關(guān)閉文件
  file_handle.close()
# 聲明一個(gè)大列表,存放學(xué)院的姓名
student_list = []
read_data()
while True:
 print('1.添加學(xué)員')
 print('2.修改學(xué)員')
 print('3.查詢學(xué)員')
 print('4.刪除學(xué)員')
 print('0.退出程序')
 sel_num = input('請輸入您要進(jìn)行的操作:')
 sel_num = int(sel_num)
 # 如果選擇的數(shù)字不在0~5 繼續(xù)選擇
 while sel_num not in range(0, 5):
  sel_num = input('您的選擇無效,請重新選擇:')
  sel_num = int(sel_num)
 # 添加學(xué)員
 if sel_num == 1:
  add_stu()
  save_data()
 elif sel_num == 2:
  # 1.展示所有學(xué)員信息
  see_stu()
  # 2.選擇要修改的學(xué)員序號(hào)
  alter_stu()
  save_data()
 elif sel_num == 3:
  see_stu()
 elif sel_num == 4:
  see_stu()
  # 2.選擇要?jiǎng)h除的學(xué)員序號(hào)
  del_stu()
  save_data()
 else:
  break

感謝各位的閱讀!關(guān)于“如何使用python實(shí)現(xiàn)學(xué)生管理系統(tǒng)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI