中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

python如何實現簡易學生信息管理系統

發布時間:2021-03-11 09:34:17 來源:億速云 閱讀:159 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關python如何實現簡易學生信息管理系統的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體內容如下

簡易學生信息管理系統主要功能有

1 錄入學生信息
2 查找學生信息
3 刪除學生信息
4 修改學生信息
5 排序
6 統計學生總人數
7 顯示所有學生信息
0 退出系統

系統運行效果

python如何實現簡易學生信息管理系統

主菜單的代碼方法:

# Author: dry
# 開發時間:2019/9/11
# 開發工具:PyCharm
import re # 導入正則表達式模塊
import os # 導入操作系統模塊
filename = "student.txt" # 學生信息保存文件
def menu():
 # 輸出菜單
 print('''
 ---------------學生信息管理系統------------
 ==================功能菜單================
   1 錄入學生信息
   2 查找學生信息
   3 刪除學生信息
   4 修改學生信息
   5 排序
   6 統計學生總人數
   7 顯示所有學生信息
   0 退出系統
 ======================================= 
   說明:通過數字選擇菜單
 =======================================
 ''')

系統主方法:

def main():
 ctrl = True # 標記是否退出系統
 while (ctrl):
 menu() # 顯示菜單
 option = input("請選擇:") # 選擇菜單項
 option_str = re.sub("\D", "", option) # 提取數字
 if option_str in ['0', '1', '2', '3', '4', '5', '6', '7']:
  option_int = int(option_str)
  if option_int == 0: # 退出系統
  print('您已退出學生成績管理系統!')
  ctrl = False
  elif option_int == 1: # 錄入學生成績信息
  insert()
  elif option_int == 2: # 查找學生成績信息
  search()
  elif option_int == 3: # 刪除學生成績信息
  delete()
  elif option_int == 4: # 修改學生成績信息
  modify()
  elif option_int == 5: # 排序
  sort()
  elif option_int == 6: # 統計學生總數
  total()
  elif option_int == 7: # 顯示所有學生信息
  show()

錄入學生信息方法:

'''錄入學生信息'''
def insert():
 studentList = [] # 保存學生信息的列表
 mark = True # 是否繼續添加
 while mark:
 id = input("請輸入學生ID(如1001):")
 if not id:
  break
 name = input("請輸入名字:")
 if not name:
  break
 try:
  english = int(input("請輸入英語成績:"))
  python = int(input("請輸入python成績:"))
  c = int(input("請輸入C語言成績:"))
 except:
  print("輸入無效,不是整型數值,請重新輸入信息")
  continue
  # 將輸入的學生信息保存到字典
 student = {"id": id, "name": name, "english": english, "python": python, "c": c}
 studentList.append(student) # 將學生字典添加到列表中
 inputList = input("是否繼續添加?(y/n):")
 if inputList == 'y': # 繼續添加
  mark = True
 else:
  mark = False
 save(studentList) # 將學生信息保存到文件
 print("學生信息錄入完畢!!!")

保存學生信息方法:

'''將學生信息保存到文件'''
def save(student):
 try:
 student_txt = open(filename, 'a') # 以追加模式打開
 except Exception as e:
 student_txt = open(filename, 'w') # 文件不存在,創建文件并打開
 for info in student:
 student_txt.write(str(info) + "\n") # 執行存儲,添加換行符
 student_txt.close() # 關閉文件

查詢學生信息方法:

'''查詢學生信息'''
def search():
 mark = True
 student_query = []
 while mark:
 id = ""
 name = ""
 if os.path.exists(filename):
  mode = input("按ID查詢輸入1:按姓名查詢輸入2:")
  if mode == "1":
  id = input("請輸入學生ID:")
  elif mode == "2":
  name = input("請輸入學生姓名:")
  else:
  print("您輸入有誤,請重新輸入!")
  search()
  with open(filename, "r") as file:
  student = file.readlines()
  for list in student:
   d = dict(eval(list))
   if id is not "":
   if d['id'] == id:
    student_query.append(d)
   elif name is not "":
   if d['name'] == name:
    student_query.append(d)
  show_student(student_query)
  student_query.clear()
  inputMark = input("是否繼續查詢?(y/n):")
  if inputMark == "y":
   mark = True
  else:
   mark = False
 else:
  print("暫未保存數據信息...")
  return

顯示學生信息方法

'''將保存在列表中的學生信息顯示出來'''
def show_student(studentList):
 if not studentList:
 print("無效的數據")
 return
 format_title = "{:^6}{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:10}"
 print(format_title.format("ID", "名字", "英語成績", "python成績", "C語言成績", "總成績"))
 format_data = "{:^6}{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:10}"
 for info in studentList:
 print(format_data.format(info.get("id"), info.get("name"), str(info.get("english")), str(info.get("python")),
     str(info.get("c")),
     str(info.get("english") + info.get("python") + info.get("c")).center(12)))

刪除學生信息方法:

'''刪除學生信息'''
def delete():
 mark = True # 標記是否循環
 while mark:
 studentId = input("請輸入要刪除的學生ID:")
 if studentId is not "": # 判斷要刪除的學生ID是否存在
  if os.path.exists(filename):
  with open(filename, 'r') as rfile:
   student_old = rfile.readlines()
  else:
  student_old = []
  ifdel = False # 標記是否刪除
  if student_old: # 如果存在學生信息
  with open(filename, 'w') as wfile:
   d = {} # 定義空字典
   for list in student_old:
   d = dict(eval(list)) # 字符串轉字典
   if d['id'] != studentId:
    wfile.write(str(d) + "\n") # 將一條信息寫入文件
   else:
    ifdel = True # 標記已經刪除
   if ifdel:
   print("ID為%s的學生信息已經被刪除..." % studentId)
   else:
   print("沒有找到ID為%s的學生信息..." % studentId)
  else:
  print("不存在學生信息")
  break
  show() # 顯示全部學生信息
  inputMark = input("是否繼續刪除?(y/n):")
  if inputMark == "y":
  mark = True # 繼續刪除
  else:
  mark = False # 退出刪除學生信息操作

修改學生信息方法:

'''修改學生信息'''
def modify():
 show() # 顯示全部學生信息
 if os.path.exists(filename):
 with open(filename, 'r') as rfile:
  student_old = rfile.readlines()
 else:
 return
 studentid = input("請輸入要修改的學生ID:")
 with open(filename, 'w') as wfile:
 for student in student_old:
  d = dict(eval(student))
  if d['id'] == studentid:
  print("找到了這名學生,可以修改他的信息")
  while True: # 輸入要修改的信息
   try:
   d["name"] = input("請輸入姓名:")
   d["english"] = int(input("請輸入英語成績:"))
   d["python"] = int(input("請輸入python成績:"))
   d['c'] = int(input("請輸入C語言成績:"))
   except:
   print("您輸入有誤,請重新輸入!")
   else:
   break
  student = str(d) # 將字典轉為字符串
  wfile.write(student + "\n") # 將修改信息寫入到文件
  print("修改成功")
  else:
  wfile.write(student) # 將未修改的信息寫入文件
 mark = input("是否繼續修改其他學生信息?(y/n):")
 if mark == "y":
 modify()

學生信息排序方法:

'''排序'''
def sort():
 show()
 if os.path.exists(filename):
 with open(filename, 'r') as file:
  student_old = file.readlines()
  student_new = []
 for list in student_old:
  d = dict(eval(list))
  student_new.append(d)
 else:
 return
 ascORdesc = input("請選擇(0升序;1降序)")
 if ascORdesc == "0":
 ascORdescBool = False # 標記變量,為False時表示升序,為True時表示降序
 elif ascORdesc == "1":
 ascORdescBool = True
 else:
 print("您輸入的信息有誤,請重新輸入!")
 sort()
 mode = input("請選擇排序方式(1按英語成績排序;2按python成績排序;3按C語言成績排序;0按總成績排序):")
 if mode == "1": # 按英語成績排序
 student_new.sort(key=lambda x: x["english"], reverse=ascORdescBool)
 elif mode == "2": # 按python成績排序
 student_new.sort(key=lambda x: x["python"], reverse=ascORdescBool)
 elif mode == "3": # 按C語言成績排序
 student_new.sort(key=lambda x: x["c"], reverse=ascORdescBool)
 elif mode == "0": # 按總成績排序
 student_new.sort(key=lambda x: x["english"] + x["python"] + x["c"], reverse=ascORdescBool)
 else:
 print("您的輸入有誤,請重新輸入!")
 sort()
 show_student(student_new) # 顯示排序結果

統計學生總數方法:

'''統計學生總數'''
def total():
 if os.path.exists(filename):
 with open(filename, 'r') as rfile:
  student_old = rfile.readlines()
  if student_old:
  print("一共有%d名學生!" % len(student_old))
  else:
  print("還沒有錄入學生信息")
 else:
 print("暫未保存數據信息")

顯示所有學生信息方法:

'''顯示所有學生信息'''
def show():
 student_new = []
 if os.path.exists(filename):
 with open(filename, 'r') as rfile:
  student_old = rfile.readlines()
 for list in student_old:
  student_new.append(eval(list))
 if student_new:
  show_student(student_new)
 else:
  print("暫未保存數據信息")

開始函數:

if __name__ == '__main__':
 main()

完整代碼如下:

# Author: dry
# 開發時間:2019/9/11
# 開發工具:PyCharm
import re # 導入正則表達式模塊
import os # 導入操作系統模塊

filename = "student.txt" # 學生信息保存文件


def menu():
 # 輸出菜單
 print('''
 ---------------學生信息管理系統------------
 ==================功能菜單================
   1 錄入學生信息
   2 查找學生信息
   3 刪除學生信息
   4 修改學生信息
   5 排序
   6 統計學生總人數
   7 顯示所有學生信息
   0 退出系統
 ======================================= 
   說明:通過數字選擇菜單
 =======================================
 ''')


def main():
 ctrl = True # 標記是否退出系統
 while (ctrl):
 menu() # 顯示菜單
 option = input("請選擇:") # 選擇菜單項
 option_str = re.sub("\D", "", option) # 提取數字
 if option_str in ['0', '1', '2', '3', '4', '5', '6', '7']:
  option_int = int(option_str)
  if option_int == 0: # 退出系統
  print('您已退出學生成績管理系統!')
  ctrl = False
  elif option_int == 1: # 錄入學生成績信息
  insert()
  elif option_int == 2: # 查找學生成績信息
  search()
  elif option_int == 3: # 刪除學生成績信息
  delete()
  elif option_int == 4: # 修改學生成績信息
  modify()
  elif option_int == 5: # 排序
  sort()
  elif option_int == 6: # 統計學生總數
  total()
  elif option_int == 7: # 顯示所有學生信息
  show()


'''錄入學生信息'''


def insert():
 studentList = [] # 保存學生信息的列表
 mark = True # 是否繼續添加
 while mark:
 id = input("請輸入學生ID(如1001):")
 if not id:
  break
 name = input("請輸入名字:")
 if not name:
  break
 try:
  english = int(input("請輸入英語成績:"))
  python = int(input("請輸入python成績:"))
  c = int(input("請輸入C語言成績:"))
 except:
  print("輸入無效,不是整形數值,請重新輸入信息")
  continue
  # 將輸入的學生信息保存到字典
 student = {"id": id, "name": name, "english": english, "python": python, "c": c}
 studentList.append(student) # 將學生字典添加到列表中
 inputList = input("是否繼續添加?(y/n):")
 if inputList == 'y': # 繼續添加
  mark = True
 else:
  mark = False
 save(studentList) # 將學生信息保存到文件
 print("學生信息錄入完畢!!!")


'''將學生信息保存到文件'''


def save(student):
 try:
 student_txt = open(filename, 'a') # 以追加模式打開
 except Exception as e:
 student_txt = open(filename, 'w') # 文件不存在,創建文件并打開
 for info in student:
 student_txt.write(str(info) + "\n") # 執行存儲,添加換行符
 student_txt.close() # 關閉文件


'''查詢學生信息'''


def search():
 mark = True
 student_query = []
 while mark:
 id = ""
 name = ""
 if os.path.exists(filename):
  mode = input("按ID查詢輸入1:按姓名查詢輸入2:")
  if mode == "1":
  id = input("請輸入學生ID:")
  elif mode == "2":
  name = input("請輸入學生姓名:")
  else:
  print("您輸入有誤,請重新輸入!")
  search()
  with open(filename, "r") as file:
  student = file.readlines()
  for list in student:
   d = dict(eval(list))
   if id is not "":
   if d['id'] == id:
    student_query.append(d)
   elif name is not "":
   if d['name'] == name:
    student_query.append(d)
  show_student(student_query)
  student_query.clear()
  inputMark = input("是否繼續查詢?(y/n):")
  if inputMark == "y":
   mark = True
  else:
   mark = False
 else:
  print("暫未保存數據信息...")
  return


'''將保存在列表中的學生信息顯示出來'''


def show_student(studentList):
 if not studentList:
 print("無效的數據")
 return
 format_title = "{:^6}{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:10}"
 print(format_title.format("ID", "名字", "英語成績", "python成績", "C語言成績", "總成績"))
 format_data = "{:^6}{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:10}"
 for info in studentList:
 print(format_data.format(info.get("id"), info.get("name"), str(info.get("english")), str(info.get("python")),
     str(info.get("c")),
     str(info.get("english") + info.get("python") + info.get("c")).center(12)))


'''刪除學生信息'''


def delete():
 mark = True # 標記是否循環
 while mark:
 studentId = input("請輸入要刪除的學生ID:")
 if studentId is not "": # 判斷要刪除的學生ID是否存在
  if os.path.exists(filename):
  with open(filename, 'r') as rfile:
   student_old = rfile.readlines()
  else:
  student_old = []
  ifdel = False # 標記是否刪除
  if student_old: # 如果存在學生信息
  with open(filename, 'w') as wfile:
   d = {} # 定義空字典
   for list in student_old:
   d = dict(eval(list)) # 字符串轉字典
   if d['id'] != studentId:
    wfile.write(str(d) + "\n") # 將一條信息寫入文件
   else:
    ifdel = True # 標記已經刪除
   if ifdel:
   print("ID為%s的學生信息已經被刪除..." % studentId)
   else:
   print("沒有找到ID為%s的學生信息..." % studentId)
  else:
  print("不存在學生信息")
  break
  show() # 顯示全部學生信息
  inputMark = input("是否繼續刪除?(y/n):")
  if inputMark == "y":
  mark = True # 繼續刪除
  else:
  mark = False # 退出刪除學生信息操作


'''修改學生信息'''


def modify():
 show() # 顯示全部學生信息
 if os.path.exists(filename):
 with open(filename, 'r') as rfile:
  student_old = rfile.readlines()
 else:
 return
 studentid = input("請輸入要修改的學生ID:")
 with open(filename, 'w') as wfile:
 for student in student_old:
  d = dict(eval(student))
  if d['id'] == studentid:
  print("找到了這名學生,可以修改他的信息")
  while True: # 輸入要修改的信息
   try:
   d["name"] = input("請輸入姓名:")
   d["english"] = int(input("請輸入英語成績:"))
   d["python"] = int(input("請輸入python成績:"))
   d['c'] = int(input("請輸入C語言成績:"))
   except:
   print("您輸入有誤,請重新輸入!")
   else:
   break
  student = str(d) # 將字典轉為字符串
  wfile.write(student + "\n") # 將修改信息寫入到文件
  print("修改成功")
  else:
  wfile.write(student) # 將未修改的信息寫入文件
 mark = input("是否繼續修改其他學生信息?(y/n):")
 if mark == "y":
 modify()


'''排序'''


def sort():
 show()
 if os.path.exists(filename):
 with open(filename, 'r') as file:
  student_old = file.readlines()
  student_new = []
 for list in student_old:
  d = dict(eval(list))
  student_new.append(d)
 else:
 return
 ascORdesc = input("請選擇(0升序;1降序)")
 if ascORdesc == "0":
 ascORdescBool = False # 標記變量,為False時表示升序,為True時表示降序
 elif ascORdesc == "1":
 ascORdescBool = True
 else:
 print("您輸入的信息有誤,請重新輸入!")
 sort()
 mode = input("請選擇排序方式(1按英語成績排序;2按python成績排序;3按C語言成績排序;0按總成績排序):")
 if mode == "1": # 按英語成績排序
 student_new.sort(key=lambda x: x["english"], reverse=ascORdescBool)
 elif mode == "2": # 按python成績排序
 student_new.sort(key=lambda x: x["python"], reverse=ascORdescBool)
 elif mode == "3": # 按C語言成績排序
 student_new.sort(key=lambda x: x["c"], reverse=ascORdescBool)
 elif mode == "0": # 按總成績排序
 student_new.sort(key=lambda x: x["english"] + x["python"] + x["c"], reverse=ascORdescBool)
 else:
 print("您的輸入有誤,請重新輸入!")
 sort()
 show_student(student_new) # 顯示排序結果


'''統計學生總數'''


def total():
 if os.path.exists(filename):
 with open(filename, 'r') as rfile:
  student_old = rfile.readlines()
  if student_old:
  print("一共有%d名學生!" % len(student_old))
  else:
  print("還沒有錄入學生信息")
 else:
 print("暫未保存數據信息")


'''顯示所有學生信息'''


def show():
 student_new = []
 if os.path.exists(filename):
 with open(filename, 'r') as rfile:
  student_old = rfile.readlines()
 for list in student_old:
  student_new.append(eval(list))
 if student_new:
  show_student(student_new)
 else:
  print("暫未保存數據信息")


if __name__ == '__main__':
 main()

感謝各位的閱讀!關于“python如何實現簡易學生信息管理系統”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武宣县| 五河县| 新营市| 深圳市| 长宁县| 宝应县| 敖汉旗| 涿州市| 原阳县| 安岳县| 东港市| 枝江市| 阿鲁科尔沁旗| 博乐市| 明光市| 崇信县| 临城县| 开封市| 九龙坡区| 千阳县| 金塔县| 杭锦后旗| 建平县| 太保市| 麻阳| 威远县| 青田县| 金平| 曲靖市| 平远县| 灵璧县| 澄江县| 邹城市| 海门市| 康保县| 贺州市| 无棣县| 永登县| 资溪县| 仲巴县| 耿马|