python创建学生成绩管理系统


Posted in Python onNovember 22, 2019

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运行都可以。

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python在命令行下使用google翻译(带语音)
Jan 16 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
python去除扩展名的实例讲解
Apr 23 Python
Django实战之用户认证(用户登录与注销)
Jul 16 Python
pytorch permute维度转换方法
Dec 14 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
Python下利用BeautifulSoup解析HTML的实现
Jan 17 Python
如何提高python 中for循环的效率
Apr 15 Python
Python with语句用法原理详解
Jul 03 Python
基于python爬取链家二手房信息代码示例
Oct 21 Python
Python paramiko使用方法代码汇总
Nov 20 Python
Python计算不规则图形面积算法实现解析
Nov 22 #Python
python实现连续变量最优分箱详解--CART算法
Nov 22 #Python
pycharm运行scrapy过程图解
Nov 22 #Python
python迭代器常见用法实例分析
Nov 22 #Python
python自动分箱,计算woe,iv的实例代码
Nov 22 #Python
python创建学生管理系统
Nov 22 #Python
Python如何计算语句执行时间
Nov 22 #Python
You might like
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
JavaScript中的其他对象
2008/01/16 Javascript
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
在Python中marshal对象序列化的相关知识
2015/07/01 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
python format 格式化输出方法
2018/07/16 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
pymysql 开启调试模式的实现
2019/09/24 Python
pandas针对excel处理的实现
2021/01/15 Python
酒店总经理欢迎词
2014/01/15 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
大明湖导游词
2015/02/03 职场文书
离婚被告代理词
2015/05/23 职场文书
常住证明范本
2015/06/23 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
python正则表达式re.search()的基本使用教程
2021/05/21 Python