python实现学生成绩管理系统

学生成绩管理系统,带权限
作者:wf 版本:终版
面向对象,带日志,带异常处理的,带密码加密
初始数据库带100条数据
第一次执行会生成数据库和日志文件,以后添加的数据会自动保存到里面
删除数据库再次执行程序。会初始化数据库

管理员(具有最大权限)
账户:admin 密码:admin
账户:1 密码:1
普通用户
账户:zhangsan 密码:123456

#学生成绩管理系统,带权限
#作者:wf 版本:终版
#面向对象,带日志,带异常处理的,带密码加密
import logging
import hashlib
import shelve
from random import randint
#定义学生类
class student():
    def __init__(self,id,yw,sx,en):
        self.id=id
        self.yw=yw
        self.sx=sx
        self.en=en
    def __str__(self):
        return f"学号:{self.id}\n总分:{self.total()}\n"
    def total(self):
        return self.yw+self.sx+self.en
    def pm(self,alist):
        return len(list(filter(lambda i:i.total()>self.total(),alist)))+1
        
#定义全局变量默认值
user=''
datas=[]
accouts={"admin":{"pwd":"21232f297a57a5a743894a0e4a801fc3","role":"1234567890"},"zhangsan":{"pwd":"e10adc3949ba59abbe56e057f20f883e","role":"12360"},"1":{"pwd":"c4ca4238a0b923820dcc509a6f75849b","role":"1234567890"}}
funcdic={"1":"打印出原始数据",
         "2":"打印出成绩排名",
         "3":"打印出成绩统计",
         "4":"列出补考名单",
         "5":"增加学生记录",
         "6":"查询学生记录",
         "7":"修改学生记录",
         "8":"删除学生记录",
         "9":"用户管理",
         "0":"退出!"}
subjectdic={"语文":0,"数学":1,"英语":2}
logging.basicConfig(level= logging.DEBUG,
                    filename = "xxgl.log",
                    format   = "%(asctime)s  %(filename)s : %(levelname)s  %(message)s",
                    datefmt  = "%Y-%m-%d %H:%M:%S",
                    filemode = "a")
for i in range(100):        
    datas.append(student(f"15{i+1:03d}",randint(30,100),randint(40,100),randint(50,100)))                    
#数据初始化
def init():
    global datas,accouts
    with shelve.open("mydb") as f:
        try:
            datas=f["data"]
            accouts=f["user
  • 32
    点赞
  • 214
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值