国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python3.6實現學生信息管理系統

2020-02-16 01:16:31
字體:
來源:轉載
供稿:網友

簡單版本學生信息管理系統,用python基礎語法實現,基于python 3.6

容錯率很高的代碼,做了很多異常處理功能,出錯也不會丟失信息

啟動時自動從文件中讀取已有學生信息,退出時自動保存

程序分3個模塊:

Menu:進行菜單管理

Student_managemant:進行學生信息管理

main:主函數

直接上代碼,有注釋 

Menu.py

# -*- coding: UTF-8 -*-import sysimport 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 sysimport 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            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安新县| 霞浦县| 克山县| 江北区| 祁阳县| 沙田区| 盘锦市| 宁河县| 阿克陶县| 通河县| 屏东市| 阜南县| 天峻县| 东兰县| 宜兰市| 黄浦区| 济阳县| 阳山县| 景宁| 景泰县| 吉安市| 合江县| 平远县| 孝昌县| 申扎县| 六枝特区| 克拉玛依市| 三都| 灵川县| 彭阳县| 兴隆县| 石阡县| 江永县| 曲麻莱县| 沁水县| 潜江市| 福鼎市| 莱州市| 临西县| 昌宁县| 舞阳县|