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远程登录代码
Apr 29 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
Feb 19 Python
python实现汉诺塔递归算法经典案例
Mar 01 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
python多个模块py文件的数据共享实例
Jan 11 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
Python supervisor强大的进程管理工具的使用
Apr 24 Python
PHP统计代码行数的小代码
Sep 19 Python
基于Python实现拆分和合并GIF动态图
Oct 22 Python
python连接mongodb集群方法详解
Feb 13 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 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
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
php筛选不存在的图片资源
2015/04/28 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
婚庆公司的创业计划书
2014/01/22 职场文书
国际贸易专业个人求职信格式
2014/02/02 职场文书
法院信息化建设方案
2014/05/21 职场文书
校园文明标语
2014/06/13 职场文书
高中学校对照检查材料
2014/08/31 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
绿里奇迹观后感
2015/06/15 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
Django实现聊天机器人
2021/05/31 Python
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python