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

溫馨提示×

溫馨提示×

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

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

python創建學生成績管理系統

發布時間:2020-10-11 05:21:28 來源:腳本之家 閱讀:228 作者:沈希辭 欄目:開發技術

python學生成績管理系統創建,供大家參考,具體內容如下

要求編寫學生類,班級類,并在電腦運行生成表單,輸入一個數字,得到對應的結果。

輸出樣式

python創建學生成績管理系統

代碼如下

學生類

class Student:
 def __init__(self,sno,name,english,math):
  self.sno=sno
  self.name=name
  self.__english=english
  self.__math=math
  
 @property
 def english(self):
  return self.__english
  
 @english.setter
 def english(self,english):
  self.__english=english if 0<=english<=100 else 0
  
 @property
 def math(self):
  return self.__math
    
 @math.setter
 def math(self,math):
  self.__math=math if 0<=math<=100 else 0
  
 def get_average(self):
  return (self.english+self.math)/2


 def __str__(self):
  s=str.format('{0:>4d}{1: >4s}{2:>8d}{3:>8d}',self.sno,self.name,self.english,self.math)
  return s
  
  
 @staticmethod
 def get_header():
  return '{0:>2s}{1: >4s}{2:\u3000>4s}{3: >4s}'.format('學號','姓名','英語','數學')
  
 def __eq__(self,other):
  return self.sno==other.sno
  
 def __gt__(self,other):
  return self.sno>other.sno

測試

#測試
if __name__=='__main__':
 s1=Student(1,'王大海',100, 65)
 s2=Student(2,'李三',38,45)
 s3=Student(3,'李四',88,45)
 print(s1>s2)
 students=[s2,s1,s3]
 students.sort()
 print(students)
 print(Student.get_header())
 for s in students:
  print(s) 

結果

python創建學生成績管理系統

班級類

from student import Student

class BanJi:
 def __init__(self,name):
  self.name=name
  self.students=[]
  self.load_data()
  
 def load_data(self):
  with open('data.txt','r')as f:
   for line in f:
    d=line.split()
    self.students.append(Student(int(d[0]),d[1],int(d[2]),int(d[3])))
    
 def show_student(self):
  print(Student.get_header())
  for s in self.students:
   print(s)
   
 def add_student(self,student):
  if student in self.students:
   return '此學生已存在'
  else:
   self.students.append(student)
   return'添加成功'
   
 def __index_student(self,sno):
  s=Student(sno,'',0,0)
  if s not in self.students:
   return None
  else:
   return self.students.index(s)
   
 def find_student(self,sno):
  i = self.__index_student(sno)
  if i is None:
   return None
  else:
   return self.students[i]


 def delete_student(self,sno):
  i = self.__index_student(sno)
  if i is None:
   r = '沒有學號為{0: d}'.format(sno)
  else:
   del self.students[i]
   r = '刪除成功!'
  return r
  
 def update_student(self,sno):
  s = self.find_student(sno)
  if s is None:
   return '沒有學號為{0:d}的學生!'.format(sno)
  else:
   print(s)
   print('請輸入新的值,直接回車不修改!')
   name_str = input('姓名:')
   english_str = input('英語:')
   math_str = input('數學:')
   s.name = name_str if len(name_str)>0 else s.name
   s.name = int(english_str) if len(english_str)>0 else s.english
   s.name = int(math_str) if len(math_str)>0 else s.math
   return '修改成功!'
   
 def save_data(self):
  with open('data.txt','w',encoding = 'GBK') as f:
   for s in self.students:
    r = str.format('{0:d} {1:s} {2:d} {3:d}\n',s.sno,s.name,s.english,s.math)
    f.write(r)
   
    
 def sort_by_english(self,reverse = False):
  self.students.sort(key=lambda x: x.english,reverse = reverse)

學生管理系統

import os
from student import Student
from banji import BanJi

menu = """

*********************

 學生成績管理系統
 1.瀏覽學生成績
 2.按學號查找學生
 3.按英語成績排序
 4.添加學生
 5.刪除學生
 6.修改學生信息
 9.保存
 0.退出
 
*********************

"""
tip = '輸入(0-9)選擇操作:'

choice = ''

b = BanJi('1802')

os.system('cls')
print(menu)

while True:
 choice = input(tip)
 os.system('cls')
 print(menu)
 if choice == '0':
  print('數據以保存!')
  break
 elif choice == '1':
  b.show_student()
 elif choice == '2':
  sno = int(input('請輸入您需要查詢的學生的學號:'))
  s = b.find_student(sno)
  if s is None:
   print('無此學號的學生!')
  else:
   print(s)
 elif choice == '3':
  b.sort_by_english()
  b.show_student()
 elif choice == '4':
  print('請輸入學生信息:')
  sno = int(input('學號:'))
  name = input('姓名:')
  english = int(input('英語:'))
  math = int(input('數學:'))
  student = Student(sno,name,english,math)
  r = b.add_student(student)
  print(r)
 elif choice == '5':
  sno = int(input('請輸入要刪除的學生的學號:'))
  r = b.delete_student(sno)
  print(r)
  
 elif choice == '6':
  sno = int(input('請輸入要修改的學生的學號:'))
  r = b.update_student(sno)
  print(r)
  
 elif choice == '9':
  b.save_data()
  print('保存成功!')
 else:
  print('輸入錯誤!')

用spyder或者cmd運行都可以。

更多學習資料請關注專題《管理系統開發》。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

贺州市| 夏河县| 秀山| 黄浦区| 松溪县| 乐陵市| 蒙阴县| 榆社县| 炉霍县| 阿拉善右旗| 万荣县| 长垣县| 南开区| 临沭县| 织金县| 疏勒县| 卢湾区| 延津县| 板桥市| 高平市| 集贤县| 西丰县| 金门县| 新余市| 霍邱县| 红桥区| 阿坝| 绵阳市| 邵东县| 五莲县| 富裕县| 四子王旗| 新绛县| 沅陵县| 永清县| 延川县| 南昌县| 桃园县| 乐清市| 广元市| 通渭县|