⛄博主介绍:⚡全栈开发工程师,精通Web前后端技术、数据库、架构设计。专注于Java、Python、机器学习、大数据、爬虫等技术领域和小程序领域的开发,毕业设计、课程设计项目中主要包括定制化开发、源代码、代码讲解、文档报告辅导、安装调试等。
✅文末获取联系✅
目录
1 项目介绍
随着科学技术发展,计算机已成为人们生活中必不可少的生活办公工具,在这样的背景下,网络技术被应用到各个方面,为了提高办公生活效率,网络信息技术飞速发展。人类社会进入了全新的信息化时代。学生在线考试管理一直是信息管理的一大难题,学生在线考试信息数量多,此时寻找有效便捷的学生在线考试管理方法就是当务之急。而日趋成熟的计算机信息管理技术便成为解决这一难题的唯一之选。如今计算机信息管理技术来处理学生在线考试管理早已游刃有余,其实信息管理技术已经渗透到各个行业的信息控制管理当中,且有着举足轻重的地位。而随着现代化社会主义不断进步,普通群众生活水平有了大幅提高,很多方面都在网络上去实现,从而网络也就成为了最直接、即方便又快捷的接入口。
本系统采用Python语言开发,Django框架,前端Vue、ElementUI,以MySQL来设计数据库,系统功能主要包括:管理员登入使用本系统涉到的功能主要有首页、个人中心、用户管理、课程信息管理、试卷管理、试题管理、考试管理等功能。用户登入使用本系统涉到的功能主要有首页、个人中心、课程信息管理、考试管理等功能。
2 技术选型
此系统基于Python语言开发,采用B/S架构模式,使用技术有Django+Vue+ElementUI等,数据库使用的是MySQL,采用Maven构建工具,可使用开发软件有PyCharm/Navicat/VScode,都能够正常运行。
3 功能需求分析
(1)管理员用例分析图
(2)用户用例分析图
4 系统总体设计
4.1系统功能模块设计
4.2 数据库概念结构设计
(1)教师实体属性图
(2)考试记录实体属性图
(3)试题实体属性图
(4)课程信息实体属性图
(5)用户实体属性图
3.3 数据库逻辑结构设计
表3.1教师表
表3.2考试记录表
表3.3试题表
表3.4试卷表
表3.5用户表
表3.6课程信息表
5 项目效果图
(1)用户注册界面
(2)用户管理界面
(3)课程信息管理界面
(4)试卷管理界面
(5)试题管理界面
(6)学生端课程信息管理界面
(7)学生在线考试界面
(8)学生考试记录界面
6 代码实现
def yonghu_register(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
error = yonghu.createbyreq(yonghu, yonghu, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = "用户已存在,请勿重复注册!"
return JsonResponse(msg)
def yonghu_login(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
datas = yonghu.getbyparams(yonghu, yonghu, req_dict)
if not datas:
msg['code'] = password_error_code
msg['msg'] = mes.password_error_code
return JsonResponse(msg)
try:
__sfsh__= yonghu.__sfsh__
except:
__sfsh__=None
if __sfsh__=='是':
if datas[0].get('sfsh')!='是':
msg['code']=other_code
msg['msg'] = "账号已锁定,请联系管理员审核!"
return JsonResponse(msg)
req_dict['id'] = datas[0].get('id')
return Auth.authenticate(Auth, yonghu, req_dict)
def yonghu_logout(request):
if request.method in ["POST", "GET"]:
msg = {
"msg": "登出成功",
"code": 0
}
return JsonResponse(msg)
def yonghu_save(request):
'''
后台新增
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
if 'clicktime' in req_dict.keys():
del req_dict['clicktime']
tablename=request.session.get("tablename")
__isAdmin__ = None
allModels = apps.get_app_config('main').get_models()
for m in allModels:
if m.__tablename__==tablename:
try:
__isAdmin__ = m.__isAdmin__
except:
__isAdmin__ = None
break
#获取全部列名
columns= yonghu.getallcolumn( yonghu, yonghu)
if tablename!='users' and req_dict.get("userid")!=None and 'userid' in columns and __isAdmin__!='是':
params=request.session.get("params")
req_dict['userid']=params.get('id')
if 'addtime' in req_dict.keys():
del req_dict['addtime']
error= yonghu.createbyreq(yonghu,yonghu, req_dict)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def yonghu_update(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
if req_dict.get("mima") and "mima" not in yonghu.getallcolumn(yonghu,yonghu) :
del req_dict["mima"]
if req_dict.get("password") and "password" not in yonghu.getallcolumn(yonghu,yonghu) :
del req_dict["password"]
try:
del req_dict["clicknum"]
except:
pass
error = yonghu.updatebyparams(yonghu, yonghu, req_dict)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def yonghu_delete(request):
'''
批量删除
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
error=yonghu.deletes(yonghu,
yonghu,
req_dict.get("ids")
)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def yonghu_vote(request,id_):
'''
浏览点击次数(表属性[browseClick:是/否],点击字段(clicknum),调用info/detail接口的时候后端自动+1)、投票功能(表属性[vote:是/否],投票字段(votenum),调用vote接口后端votenum+1)
统计商品或新闻的点击次数;提供新闻的投票功能
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code}
data= yonghu.getbyid(yonghu, yonghu, int(id_))
for i in data:
votenum=i.get('votenum')
if votenum!=None:
params={"id":int(id_),"votenum":votenum+1}
error=yonghu.updatebyparams(yonghu,yonghu,params)
if error!=None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
7 总结
一、本系统具有以下优点:
1、该系统具有较高的适用性,选用B/S结构,这一系统可以在大部分服务平台上应用。
2、系统页面简单明了,绝大多数人都能正常的应用。
二、但也存在以下问题需要改进:
1、运行时窗口不能被刷新,可以改进。
2、系统过于简单,显示的信息有限。
3、不能添加多个管理员账号,如果可以则将利于发展学生在线考试系统规模,便于学生在线考试信息的集中管理。
。
8 源码获取或咨询
关注公众号:计算机编程吧
关注后 会不定时更新学习资源,发放福利哟!
感谢大家能够积极点赞、收藏、关注、评论哦 ,更多推荐:计算机毕业设计
👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻如果大家有任何疑虑,请下方昵称位置详细咨询。