91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

使用python3.6怎么實現一個學生信息管理系統

發布時間:2021-04-20 17:14:25 來源:億速云 閱讀:146 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關使用python3.6怎么實現一個學生信息管理系統,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

python可以做什么

Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。

Menu.py

# -*- coding: UTF-8 -*-
import sys
import os
 
class Menu():
 """
 菜單管理類
 作用:向控制臺打印學生信息,從控制臺獲取輸入信息,并進行錯誤處理
 """
 
 
 def welcome(self):
 """
  歡迎語句
 """
 print("\n歡迎來到 WilliamCode 學生信息管理系統")
 
 def top_menu(self):
 """
  一級菜單,提示使用者輸入命令
 """
 print("""
請選擇要進行的操作:
 1、添加學生信息
 2、刪除學生信息
 3、查詢單個學生信息
 4、輸出所有學生信息
 5、輸出所有學生信息,按照成績由高到低排名
 6、保存并退出
 #、操作中輸入錯誤時,按Ctrl+C跳轉到主菜單
 """)
 
 def top_menu_get_data(self):
 """
  獲取一級菜單使用者輸入的命令
 """
 self.data = int(input())
 return [self.data]
 
 
 def sub_menu1(self):
 """
  打印子菜單1并收集信息
  子菜單1用于添加學生信息
 """
 print("""
 正在添加學生信息:
 請輸入學生姓名:""")
 self.name = input().strip()
 
 print("""
 請輸入學生年齡:""")
 self.age = int(input())
 
 print("""
 請輸入學生成績""")
 self.score = int(input())
 
 return [self.name, self.age, self.score]
 
 
 def sub_menu23_get_name(self):
 """
  收集子菜單2、3的輸入信息
  子菜單2、3作用是刪除或者查詢單個學生信息
 """
 print("""
 請輸入學生姓名:""")
 self.name = input().strip()
 return [self.name]
 
 
if __name__ == '__main__':
 
 print("Testing Menu Module")
 menu = Menu()
 print(menu.top_menu())
 print(menu.top_menu_get_data())
 print(menu.sub_menu1())
 print(menu.sub_menu23_get_name())

student_managemeng.py

# -*- coding: UTF-8 -*-
import sys
import os
 
class Student():
 """
 學生類,用于保存學生信息
 只能添加__slots__ = ['name', 'age', 'score']中的三個屬性,如需修改,請改變該列表內容
 name: 學生姓名
 age : 學生年齡
 score:學生成績
 """
 
 
 
 __slots__ = ['name', 'age', 'score']
 def __init__(self, name_str, age_int, score_int):
 """
  學生類的初始化函數 
  name_str :學生姓名
  age_int :學生年齡
  score_int:學生成績
 """
 self.name = name_str
 self.age = age_int
 self.score = score_int
 
 def __str__(self):
 """
  Student類轉為字符串信息的函數
  調試時使用
 """
 return "%s : %s\n%s : %d\n %s: %d\n" % ("name".center(10),self.name, "age".center(10),self.age, "score".center(10),self.score)
 
 
 
class Student_Info():
 """
 學生信息管理類
 用于存儲多個學生信息
 包含屬性:
 列表L:元素為Student類的實例
 """
 
 def __enter__(self):
 """
  錯誤處理機制的初始化函數
  調用with語句時首先調用此函數,然后將返回值返回給as后的變量
  功能:
  打開存儲學生信息的文件,將其信息讀入內存中
 """
 try:
  file = open("student_info.txt",'rt')
 
 except:
  print("文件未找到,請聯系管理員...")
  exit(-1)
 self.L = list()
 for i in file:
  if i == '\n':
  break
  l = i.split()
  s = Student(l[0], int(l[1]), int(l[2]))
  self.L.append(s)
 print("學生信息讀取成功...")
 file.close()
 return self
 
 
 def __exit__(self, exc_type, exc_value, exc_tb):
 """
  錯誤處理機制的資源回收函數
  跳出with語句時調用此函數
  功能:
  發生錯誤的情況下存儲學生信息到文件中,防止信息丟失
  關閉文件流文件
 """
 
 file = open("student_info.txt",'wt')
 for i in self.L:
  s = "%s %d %d\n" % (i.name, i.age, i.score)
  file.write(s)
 file.close()
 
 def add_student(self, S):
 """
  添加學生信息到列表L中
 """
 if isinstance(S, Student):
  self.L.append(S)
  return True
 return False
 
 @staticmethod
 def print_all(L):
 """
  類的靜態方法
  參數為:元素為Student類的列表
  功能:按照表格格式打印列表中所有學生信息
 """
 
 if len(L) == 0:
  print("數據庫中沒有學生信息,請先添加學生信息")
  return
 print("\n|%s|" % ("name".center(15)), end='')
 print("%s|" % ("age".center(15)), end = '')
 print("%s|" % ("score".center(15)))
 for i in L:
  print("|%s|" % (i.name.center(15)), end='')
  print("%s|" % (str(i.age).center(15)), end = '')
  print("%s|" % (str(i.score).center(15)))
 
 
 
 def print_sorted(self):
 """
  將學生信息按成績排序,并調用靜態方法print_all()按照格式打印
 """
 sorted_list = sorted(self.L, key = key_fun, reverse = True)
 self.print_all(sorted_list)
 
 
 
def key_fun(s1):
 """
 Student_Info類中規定排序規則的函數,按照分數排名,所以返回score
 """
 return s1.score

main.py

# -*- coding: UTF-8 -*-
import sys
import os
import student_management as sm
import menu
 
#用with語句塊進行操作,即使發生錯誤,也能進行資源釋放與數據保存工作
#減小程序bug帶來的損失
with sm.Student_Info() as si:
 
 #初始化菜單類實例,打印歡迎信息
 m = menu.Menu()
 m.welcome()
 while True:
 
 #打印1級菜單
 m.top_menu()
 
 #獲取用戶輸入的信息,如果發生錯誤,則重新打印一級菜單
 try:
  op_data = m.top_menu_get_data()
 except:
  print("輸入不合法,請重新選擇")
  continue
 
 #用戶選擇添加學生信息
 if op_data[0] == 1:
 
  #獲取并添加學生信息
  try:
  l = m.sub_menu1()
  s = sm.Student(l[0], l[1], l[2])
  if not si.add_student(s):
   print("\n添加失敗")
  print("\n信息添加成功")
 
  except:
  print("輸入數據不合法,請重新選擇")
 
 #用戶選擇刪除學生信息
 elif op_data[0] == 2:
 
  #獲取學生姓名并刪除學生信息,flag用于判斷學生信息是否被刪除
  #如果沒有被刪除,說明學生不存在,打印錯誤信息
  name = m.sub_menu23_get_name()[0]
  flag = False
  
  for i in range(len(si.L)):
  if si.L[i].name == name:
   del si.L[i]
   flag = True
   break
  if flag == False:
  print("學生不存在,刪除失敗")
  else:
  print("學生信息刪除成功")
 
 #用戶選擇查詢單個學生信息
 elif op_data[0] == 3:
  #獲取學生姓名并查詢學生信息,flag用于判斷學生信息是否被打印
  #如果沒有被打印,說明學生不存在,打印錯誤信息
  name = m.sub_menu23_get_name()[0]
  flag = False
  for i in range(len(si.L)):
  if si.L[i].name == name:
   print(si.L[i])
   flag = True
  if flag == False:
  print("學生不存在,查詢失敗")
 
 #用戶選擇打印學生信息,直接調用靜態函數打印
 elif op_data[0] == 4:
  si.print_all(si.L)
 
 #用戶選擇按照成績排序打印學生信息,直接調用函數
 elif op_data[0] == 5:
  si.print_sorted()
 
 #用戶選擇退出,直接退出循環,程序下一步將退出with語句塊
 #退出with語句塊后,程序自動調用Student_Info.__exit__()方法,保存學生信息,關閉文件,退出
 elif op_data[0] == 6:
  break

上述就是小編為大家分享的使用python3.6怎么實現一個學生信息管理系統了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

马关县| 衡水市| 兴文县| 乐平市| 富源县| 儋州市| 胶州市| 长葛市| 湖州市| 泾阳县| 日照市| 平定县| 竹山县| 侯马市| 绵阳市| 太谷县| 沂南县| 新丰县| 印江| 绍兴县| 福鼎市| 桃江县| 平果县| 康定县| 揭阳市| 巨野县| 定南县| 宁夏| 南宁市| 桑植县| 东阳市| 灯塔市| 宜兰市| 汝城县| 尚志市| 靖州| 赣州市| 聂拉木县| 饶平县| 铜川市| 嘉定区|