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 urlopen 使用小示例
Sep 06 Python
python根据出生年份简单计算生肖的方法
Mar 27 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
Apr 28 Python
tensorflow获取变量维度信息
Mar 10 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
python3学生名片管理v2.0版
Nov 29 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
Python随机函数库random的使用方法详解
Aug 21 Python
Python 项目转化为so文件实例
Dec 23 Python
Python通过socketserver处理多个链接
Mar 18 Python
举例讲解Python装饰器
Dec 24 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
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
javascript折半查找详解
2015/01/26 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
js常用DOM方法详解
2017/02/04 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
解决Python传递中文参数的问题
2015/08/04 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
Python冲顶大会 快来答题!
2018/01/17 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
Snapfish爱尔兰:在线照片打印和个性化照片礼品
2018/09/17 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
交通安全演讲稿
2014/01/07 职场文书
四年级数学教学反思
2014/02/02 职场文书
委托书模板
2014/04/04 职场文书
处罚决定书范文
2015/06/24 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript
python实现简单聊天功能
2021/07/07 Python
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
Python 全局空间和局部空间
2022/04/06 Python