摘  要

近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,考研学习系统利用计算机网络实现信息化管理,使整个考研学习系统的发展和服务水平有显著提升。

本文拟采用PyCharm开发工具,Python语言、Django框架进行开发,后台使用MySQL数据库进行信息管理,设计开发的考研学习系统。通过调研和分析,系统拥有管理员、教师和学生三个角色,主要具备注册登录、个人信息修改、课程信息管理、课程分类管理、考研资料管理、资料分类管理、报考志愿管理、学习论坛、试题测试管理、试题管理、系统管理、考试管理等功能模块。将纸质管理有效实现为在线管理,极大提高工作效率。

关键词:考研学习系统;Python语言;MySQL数据库;

Abstract

In recent years, with the rapid development of science and technology, the popularity of the Internet has gradually extended to all walks of life, bringing great convenience to people's lives. The entrance examination and learning system uses computer network to achieve information management, which significantly improves the development and service level of the entire entrance examination and learning system.

This paper intends to use PyCharm development tool, Python language and Django framework for development, and use MySQL database for information management in the background to design and develop a postgraduate entrance examination learning system. Through research and analysis, the system has three roles of administrators, teachers and students, mainly with registration and login, personal information modification, course information management, course classification management, postgraduate entrance examination data management, data classification management, voluntary examination management, learning forum, test test management, test question management, system management, test management and other functional modules. The effective realization of paper management to online management, greatly improve work efficiency.

Key words: postgraduate entrance examination learning system; Python language; MySQL database;

目  录

  

第一章 概述

1.1研究背景

1.2研究目的及意义 2

1.3国内外发展现状 2

1.4 研究内容 3

1.5本文的结构 4

第二章 关键的技术介绍 4

2.1 Python语言 5

2.2 Django框架简介 5

2.3 MySQL简介 6

2.4 PyCharm开发环境 7

2.5 B/S架构 8

第三章 系统分析 9

3.1功能需求分析 10

3.2系统可行性分析 11

3.2.1技术可行性 12

3.2.2 经济可行性 13

3.2.3社会可行性 14

3.3系统用例图 15

3.4流程图设计 15

3.4.1 登录流程图 16

3.4.2 添加新用户流程图 17

第四章 系统概要设计 18

4.1系统设计原理 19

4.2功能模块设计 20

4.3 数据库设计 21

4.3.1数据库设计原则 22

4.3.2数据库E-R图设计 23

4.3.3数据库表结构设计 24

第五章 系统功能实现 25

5.1前台系统功能的实现 26

5.2后台管理员功能的实现 27

5.3后台教师功能的实现 27

第六章 系统测试 30

6.1系统测试的目的 31

6.2软件测试过程 32

6.3系统测试用例 33

     34

   35

参考文献 36

   

第一章 概述

1.1 研究背景

近些年,随着中国经济发展,人民的生活质量逐渐提高,对网络的依赖性越来越高,通过网络处理的事务越来越多。随着考研学习系统的常态化,如果依然采用传统的管理方式,将会为工作人员带来庞大的工作量,这将是一个巨大考验,需要投入大量人力开展对课程信息等相关工作进行管理,单一且反复的操作容易出错且不易被察觉,于是利用现代信息技术,设计开发一款考研学习系统,能够极大的节省人力物力、提高工作效率、降低工作成本[1]。

1.2研究目的及意义

本论文拟采用计算机技术设计并开发的考研学习系统,主要是为学生提供服务。使得学生可以在系统上课程信息、考研资料、学习论坛、试题测试等操作,管理员对信息进行统一管理,与此同时可以筛选出符合的信息,给笔者提供更符合实际的合理化建议,本课题的意义在于,管理者能通过使用考研学习系统,提高工作效率和服务质量,进而提高用户的体验感[2]。

1.3国内外发展现状

相比于国内,国外的线上管理系统建设比较早,在上世纪就已经很先进,但受七十年代的经济危机影响,导致部分国家发展缓慢,但也有些发达国家走群众路线,全面发展网络技术[3]。

在国内,线下管理系统已经特别完善,它基于计算机技术,让系统具有信息化、科学化、自动化等特性。在计算机的辅助下,国内该类系统可使管理者提高信息的复用率,对数据的处理、备份等方面也有了显著的效率提升,这种有效的工作可使管理者能更快的做好决定,也实现了“无纸化”的信息管理方式。由于其功能特别完善,也导致系统比较庞大,所以在了解该类系统的功能、操作后,决定开发一款考研学习系统,它的功能小,但是操作简单、快速、准确的特点,也体现了设计它的意义[4]。

1.4 研究内容

调研:通过网络、图书馆等渠道调查该课题的参考资料。

系统需求分析:对参考资料分类整理,设想需求与功能,再研究实现功能所需的开发工具、技术、数据库等。

系统概要设计:设计功能模块、流程、数据库模型、表与字段间的关系等。

系统实现:对系统用户以文字加截图的形式进行精细化分解。

系统测试:测试的作用和好处,测试的具体操作步骤,分析需求与测试结果是否一致[5]。

1.5本文的结构

本论文分为六个章节。

第一章,绪论,其包含课题背景及意义,现国内外的发展现状,本课题要研究的内容,所使用开发工具的描述等信息。

第二章,主要介绍了系统的开发技术。

第三章,先讲述功能需求分析,再讲述系统可行性分析和流程图的设计。

第四章,是系统设计原理,功能模块设计和数据库设计。

第五章,详细讲述每个界面的正确操作步骤。

第六章,该章讲述了测试的目的以及测试过程及用例。

最后对论文进行总结,包括致谢和参考文献等内容[6]。

  • 关键的技术介绍

此次管理系统的关键技术和架构由B/S结构、Python语言介绍和MySQL数据库,是本系统的关键开发技术,对系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划[7]。

 2.1 Python语言

Python是解释型的脚本语言,在运行过程中,把程序转换为字节码和机器语言,说明性语言的程序在运行之前不必进行编译,而是一个专用的解释器,当被执行时,它都会被翻译,与之对应的还有编译性语言。

同时,这也是一种用于电脑编程的跨平台语言,这是一门将编译、交互和面向对象相结合的脚本语言(script language)。

可以说其优点也是非常的突出,下面就其优点进行具体的说明:

(1)首先它是一种比较简单易学的,而且对初学者来说也是非常容易上手的一种语言,与其他的语言相比较在进行编写和阅读的时候,会更加接近人的思维模式,非常的适合用户的阅读性和易于理解的特点。

(2)由于其底层的逻辑是用c语言完成的,所以在运行的速度来说也是非常快的,就如许多的开发者所了解的,它的很多的标准库以及第三方的依赖都是由c语言所开发的,所以执行起来比较高效率。

(3)并且,它始终是一个面向对象的程序设计,它支持面向过程和面向对象的编写,在以流程为导向的语言里,一个程序是建立在一个过程或者一个简单的可重复使用的代码的功能上,在面向对象中,一个程序是以数据和函数为基础的对象构造的。 

(4)如果需要代码的扩充或者是快速查看,在使用它的时候格式也是非常的清晰,还有便于维护的特点,在不同的开发人员共同开发的过程中,都会比较方便的理解所编写的内容。

(5)同时也是因为它开源的特点,能够被移植到很多的平台进行使用,并且它也是完全支持重载、派生、继承等有助于增强代码的复用的特点,同时有两个标准库(functools, itertools)提供了开发的支持。

2.2 Django框架简介

Django是 python的一个 web 框架,可以帮助使用快速搭建一个 web 项目。Django 是一个开放源代码的 Web 应用框架,由 Python 写成。采用了 MTV 的框架模式。

Django的 MTV模式本质上和 MVC  是一样的,也是为了各组件间保持松耦合 关系,只是定义上有些许不同,Django的 MT分别是指:M 表示模型(Model):编写程序应有的功能,负责业务对象与数据库的映射 (ORM)。T表示模板 (Template):负责如何把页面(html)展示给用户。V  表示视图(View):负责业务逻辑,并在适当时候调用 Model 和 Template。除了以上三层之外,还需要一个 URL分发器,它的作用是将一个个 URL  的页 面请求分发给不同的 View处理,View再调用相应的 Model  和 Template,MTV的 响应模式。

2.3 MySQL简介

MySQL是一款小型关系型数据库管理系统(Relational Database Management System),开发商为瑞典MySQLAB公司。关系型数据库将数据存放在不同的表中,使数据更加规范化。MySQL因其体积小、速度快、源码开放的特点,很多网站开发都将MySQL作为首选。由于Python3不再支持MySQLdb模块,此次开发采用pymysql模块连接MySQL数据库。

2.4 PyCharm开发环境

   PyCharm是JetBrains公司开发的一款Python集成开发环境,它提供了很多便利于开发者的功能,比如调试、语法高亮、代码跳转、智能提示、自动补全等。除此之外Pycharm还提供了一些支持Web框架的高级功能,适合此次考研学习系统的开发。

2.5 B/S架构

B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作。

B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:

(1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间。

(2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。

第三章 系统分析

3.1功能需求分析

需求分析的首要任务是要分析用户的需求,知道用户存在的一些情况,并且要明确用户的使用状况,然后设计规划解决的问题。其中在使用定性的分析以及定量的分析,从这两个方面获取用户的需求。一方面定性的分析获得的应该是用户的基本需求,能够发现现在人们的习惯要求。所以定性的需要主要是为了多与用户交流,从而更为深刻的了解一些存在的需求问题;定量的分析则是发现一些潜在的用户,并且获得不一样的反馈内容。所以定量的需求要让用户来阐述一些情况,一定让使用者清晰的进行客观的描述,这样才能够比较全面的获得用户的需求所在[8]。

其中获得用户需求以后,就要可以将用户需求设计为系统的功能模块。在能及时的分析和发现有关需求的情况下,需要系统同时的跟进需求设计。在考研学习系统过程中还需要创建需求工作的数据分析,以便于后面的分析做总结[9]。写入一个需求的报告内容,其中需要包含完整的描述需求、以及功能需求、模型等后续开发过程中还需要用到的部分资料。

需求的分析中用户需求就是比较的重要,而且可以通过各种的路径,以及各用户对于系统的功能需求,你需要对这些内容做出整理以及分类,然后分析这些需求的现实情况下的可能原因,还需要有认真的分析过程,结合现实的情况下最终做出一系列的需求资料。在有关用户的期望分析中能够明确一些可能实现的情况,考研学习系统功能是许多个可以测试的功能相结合的,正是由于这些功能可以使得用户能够更加积极的提供出需求,让系统功能可以变得更加的完善。这样就可以保证所有设计的功能模块都是可以用到的,而且也是可测试的,对于后续系统的开发能够有比较关键的作用,也能快速完成用户所提供的需求[10]。 

3.2系统可行性分析

3.2.1技术可行性

该系统使用Python技术开发,MySQL数据库开发并实现。对于以上描述的技术,在当代都是较为成熟的技术和平台,虽然它们都有自已的体系,但在程序员的眼里,它们的配合度是很高的,数据库负责管理数据,开发工具负责管理项目,技术负责代码的框架,既相互独立,又相互依赖[11]。以上描述的工具、技术都已转化为自身的技能,所以从技术角色考虑是可行的,工作人员对于技术的关注度并不高,只要程序可用即可。

3.2.2 经济可行性

经济可行性,可分为两种,支出和收入,该系统属于研究型毕业设计,所以收入部分暂不考虑。支出可分为,设备、场地、开发环境、人力、时间等一切需考虑的因素,所有信息都是影响形成系统的一部分。设备:只需一台笔记本电脑,配套的输入设备;场地:暂定为图书馆与校内的自习室;开发环境:良好;人力:自身、指导老师、同学;时间:从选题到毕业为止,大约8个月。从以上描述可知,大部分条件已经满足,所以该系统不会存在经济方面的问题,所以是可行的。

3.2.3社会可行性

社会可行性,广义而讲可涉及到道德方面、法律方面、社会方面,每个方面都会影响系统的形成。本系统的是独立且没有任何传播性质的信息,更涉及不到道德层面,法律层面;本系统也没有触发法律,没有赌博、黄色等类型信息,同时也是遵从国家法律,不会显示任何触发法律层面的信息;社会方面,该系统是为方便用户提供更好的服务,是轻量级的考研学习系统,会为人们带来快速并有效查询的功能,也是具有贡献意义的。总体而言,该系统也是具有社会可行性的[12]。

3.3系统用例图

在设计系统的过程中,用例图也是系统设计过程中必不可少的模型,如果说系统的结构图可以简洁明了的表示出系统的有关功能模块,那么用例图则可以更为细致的,结合系统中人员的有关分配,能够从细节上描绘出系统中有关功能所完成的具体事件,确切的反映出某个操作以及它们相互之间的内部联系。

其中参与者就是和系统能够发生交互的外在实体,一般可以指系统的某个用户。一个用例图就能对应出系统中的一个功能过程,系统中完整的功能都是由许多不同的用例图所组成的。

系统用例图如图3-1、图3-2、图3-3、图3-4所示。

图3-1 管理员管理用例图

        

图3-2 登录管理用例图

图3-3 教师用例图

图3-4 管理员用例图

3.4流程图设计

流程图是用具体的图形符号和相应的线条来表示系统执行的整个过程。因为这种图可以很容易地描述系统的一系列过程,所以它的所有图形符号都是比较关键的,基本上一个图形符号可以表示一个过程的一个步骤。流程图不仅提供了一个比较完整、全面的实施过程,而且可以发现整个团队协同设计过程中可能存在的缺陷和不足,便于在后续过程中及时对系统进行修正和改进。

通过流程图可以对系统的需求和相关流程进行分析,可以详细细分为各个部分的设计。对于设计人员来说在开发过程中要能够以流程图为基础,能够快速的提高自己的逻辑思维,并且也能够指导后续的操作在系统设计中最重要的部分就是程序的设计,然后具体的编写程序,流程图是设计过程中的重要工具,下面是流程图的部分设计。

3.4.1 登录流程图

登录流程是该系统的第一个流程,登录的第一步是输入账号、密码登录,系统会验证账号与密码是否正确,正确时系统会判断账号类型再进入不同的后台;不正确时,会返回到登录的第一步,输入用户重新执行登录流程。该流程如图3-5所示。

图3-5登录流程图

3.4.2 添加新用户流程图

添加新用户的流程是先查询新用户名是否已存在,如已有该用户名,需重拟用户名并同时输入新用户的其它信息,添加新用户到数据库时会先验证数据是否完整,信息都正确且完整时,返回并刷新用户列表;信息不正确时,会返回输入信息的那一步。该流程如图3-6所示。

图3-6添加新用户流程图

第四章 系统概要设计

4.1系统设计原理

设计原理,是指一个系统的设计由来,其将需求合理拆解成功能,抽象的描述系统的模块,以模块下的功能。功能模块化后,变成可组合、可拆解的单元,在设计时,会将所有信息分解存储在各个表中,界面不会显示所有定义的字段。在设计时,会有几大要求,抽象、模块化、信息隐藏、耦合低、内聚等特性,本系统的设计也符合以上几大特性。制作和显示流程都属于程序员需要分析研究的一部分。每个模块都是相对独立的,系统前台不显示账号操作权限范围外的信息。

4.2功能模块设计

该章节的功能模块设计,只是大概描述了系统的所有功能模块,将功能按权限来讲解。系统总体结构图如图4-1所示。

图4-1 系统总体结构图

4.3 数据库设计

4.3.1数据库设计原则

学习程序设计,如果想要了解数据库管理系统或者是按照系统接口的要求制作的,就必须创建一个数据库管理系统模型,用来存储数据,这样在进行应用程序编程的过程中,就不需要加载操作系统页面的信息,从而提高整个系统的工作效率。在数据库管理系统中承载着众多的数据,应该说,一个管理信息系统的建设中心和基地,也为建设管理信息系统和信息管理系统提出了新的查询、删除、修改和操作功能,使管理信息系统建设可以快速查询需要的数据,而不是直接从代码中查找。信息库管理系统由各个组成部分的信息表按照具体的方法进行准确的归并、排序和组成信息库管理系统。

 4.3.2数据库E-R图设计

E-R图即实体-联系图,主要作用是提供了解显示数据类型存在的联系的途径,是藐视现实世界的概念模型,其关键要素是实体型、属性、联系。以下是本系统主要的E-R图如下所示。

考研资料E-R如图4-2所示。

图4-2 考研资料E-R图

报考志愿E-R如图4-3所示。

图4-3报考志愿实体图

自习室预约E-R如图4-4所示。

图4-4学生E-R图

教师E-R如图4-5所示。

   图4-5教师E-R图

考研学习E-R如图4-6所示。

图4-6考研学习实体图

4.3.3数据库表结构设计

该系统采用的数据库是MySQL,根据该系统的数据存储特点进行数据库关系表的设计。下面是该系统中关键部分关系表的详细信息。

表4-1:课程分类表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengfenlei

varchar

200

课程分类

表4-2:考研资讯分类表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

typename

varchar

200

分类名称

表4-3:关于我们表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-4:考研资料表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

ziliaobianhao

varchar

200

资料编号

ziliaomingcheng

varchar

200

资料名称

ziliaofenlei

varchar

200

资料分类

ziliaofengmian

longtext

4294967295

资料封面

ziliaowenjian

longtext

4294967295

资料文件

ziliaoneirong

longtext

4294967295

资料内容

shangchuanshijian

datetime

上传时间

jiaoshizhanghao

varchar

200

教师账号

jiaoshixingming

varchar

200

教师姓名

storeupnum

int

收藏数

0

表4-5:教师表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jiaoshizhanghao

varchar

200

教师账号

jiaoshixingming

varchar

200

教师姓名

mima

varchar

200

密码

shoujihao

varchar

200

手机号

xingbie

varchar

200

性别

nianling

varchar

200

年龄

touxiang

longtext

4294967295

头像

表4-6:学习论坛表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

帖子标题

content

longtext

4294967295

帖子内容

parentid

bigint

父节点id

userid

bigint

用户id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

isdone

varchar

200

状态

istop

int

是否置顶

0

toptime

datetime

置顶时间

表4-7:考试记录表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

username

varchar

200

用户名

paperid

bigint

试题测试id(外键)

papername

varchar

200

试题测试名称

questionid

bigint

试题id(外键)

questionname

varchar

200

试题名称

options

longtext

4294967295

选项,json字符串

score

bigint

分值

0

answer

varchar

200

正确答案

analysis

longtext

4294967295

答案解析

ismark

bigint

是否批卷

0

type

bigint

试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空) 4:主观题

0

myscore

bigint

试题得分

0

myanswer

varchar

200

考生答案

表4-8:试题库表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

questionname

varchar

200

试题名称

options

longtext

4294967295

选项,json字符串

score

bigint

分值

0

answer

varchar

200

正确答案

analysis

longtext

4294967295

答案解析

type

bigint

试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空) 4:主观题

0

sequence

bigint

试题排序,值越大排越前面

100

表4-9:资料分类表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

ziliaofenlei

varchar

200

资料分类

表4-10:试题表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

paperid

bigint

所属试题测试id(外键)

papername

varchar

200

试题测试名称

questionname

varchar

200

试题名称

options

longtext

4294967295

选项,json字符串

score

bigint

分值

0

answer

varchar

200

正确答案

analysis

longtext

4294967295

答案解析

type

bigint

试题类型,0:单选题 1:多选题 2:判断题 3:填空题(暂不考虑多项填空)4:主观题

0

sequence

bigint

试题排序,值越大排越前面

100

表4-11:学生表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xueshengzhanghao

varchar

200

学生账号

xueshengxingming

varchar

200

学生姓名

mima

varchar

200

密码

shoujihao

varchar

200

手机号

xingbie

varchar

200

性别

nianling

varchar

200

年龄

touxiang

longtext

4294967295

头像

表4-12:试题测试表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

name

varchar

200

试题测试名称

time

int

考试时长(分钟)

status

int

试题测试状态

0

表4-13:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

image

varchar

200

头像

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-14:课程信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-15:考研资讯表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

typename

varchar

200

分类名称

name

varchar

200

发布人

headportrait

longtext

4294967295

头像

clicknum

int

点击次数

0

clicktime

datetime

最近点击时间

thumbsupnum

int

0

crazilynum

int

0

storeupnum

int

收藏数

0

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-16:系统简介表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-17:配置文件表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

url

varchar

500

url

表4-18:课程信息表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

kechengbianhao

varchar

200

课程编号

kechengmingcheng

varchar

200

课程名称

kechengfenlei

varchar

200

课程分类

kechengfengmian

longtext

4294967295

课程封面

kechengshipin

longtext

4294967295

课程视频

kechengfujian

longtext

4294967295

课程附件

kechengbiao

longtext

4294967295

课程表

fabushijian

date

发布时间

jiaoshizhanghao

varchar

200

教师账号

jiaoshixingming

varchar

200

教师姓名

kechengxiangqing

longtext

4294967295

课程详情

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

discussnum

int

评论数

0

storeupnum

int

收藏数

0

表4-19:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-20:报考志愿表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

baokaobianhao

varchar

200

报考编号

yuanxiaomingcheng

varchar

200

院校名称

tupian

longtext

4294967295

图片

zhuanye

varchar

200

专业

shengfen

varchar

200

省份

kaoshifenshu

varchar

200

考试分数

baokaoshijian

date

报考时间

xueshengzhanghao

varchar

200

学生账号

xueshengxingming

varchar

200

学生姓名

shoujihao

varchar

200

手机号

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

第五章 系统功能实现

5.1前台系统功能实现

当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到考研学习系统的导航条显示首页、课程信息、考研资料、学习论坛、试题测试、考研资讯。系统首页界面如图5-1所示:

图5-1 系统首页界面

在注册流程中,学生在Vue前端填写必要信息(如学生姓名、密码等)并提交。前端将这些信息通过HTTP请求发送到Python后端。后端处理这些信息,检查学生姓名是否唯一,并将新学生数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知学生完成注册。这个过程实现了新学生的数据收集、验证和存储。如图5-2所示:

图5-2 学生注册界面

学生点击考研资料,在考研资料页面的搜索栏输入资料编号和资料名称进行查询,然后可以对资料编号、资料分类、上传时间、教师账号、教师姓名进行查看和收藏,还可以对资料文件进行下载操作;如图5-3所示:

图5-3考研资料页面

学生点击试题测试,在试题测试页面,学生可以进行在线考试的操作,如图5-4所示:

图5-4试题测试界面

在个人中心页面可以输入个人详细信息,进行信息更新操作,还可以对报考志愿、考试记录、我的发布、考试记录、错题本和我的收藏进行相关操作,如图5-5所示:

图5-5 个人中心界面

5.2 后台管理员功能的实现

管理员登录,通过登录页面填写用户名和密码等信息,点击登录操作,如图5-6所示。

图5-6管理员登录界面图

管理员登录进入系统可以查看首页、学生管理、教师管理、课程信息管理、课程分类管理、考研资料管理、资料分类管理、报考志愿管理、学习论坛、试题测试管理、试题管理、系统管理、考试管理、我的资料等功能,进行详细操作,如图5-7所示。

图5-7管理员功能界面图

学生信息管理功能实现是在Django后端部分,您需要创建一个新的应用,然后在该应用下创建一个模型(models.py)来定义学生的数据结构,使用Django的ORM来处理与MySQL数据库的交互,包括学生信息的增删改查等操作。接着,在views.py中编写视图逻辑来处理前端请求,使用Django的URL路由(urls.py)将请求映射到相应的视图函数。对于数据的验证和序列化,可以使用Django的表单或序列化器来实现。在前端Vue.js部分,将创建相应的Vue组件,在这些组件中使用axios或其他HTTP库与Django后端的API进行交互,实现学生信息的展示、新增学生、编辑学生信息和删除学生等功能。状态管理可以通过Vuex来维护,比如在store目录下定义学生模块的状态、突变、动作和获取器。管理员点击学生管理;在学生管理页面输入学号账号和学生姓名等信息,进行查询,添加或删除学生信息等操作;如图5-8所示。

图5-8学生管理界面图

教师信息管理功能实现是在Django后端部分,您需要创建一个新的应用,然后在该应用下创建一个模型(models.py)来定义教师的数据结构,使用Django的ORM来处理与MySQL数据库的交互,包括教师信息的增删改查等操作。接着,在views.py中编写视图逻辑来处理前端请求,使用Django的URL路由(urls.py)将请求映射到相应的视图函数。对于数据的验证和序列化,可以使用Django的表单或序列化器来实现。在前端Vue.js部分,将创建相应的Vue组件,在这些组件中使用axios或其他HTTP库与Django后端的API进行交互,实现教师信息的展示、新增教师、编辑教师信息和删除教师等功能。状态管理可以通过Vuex来维护,比如在store目录下定义教师模块的状态、突变、动作和获取器。管理员点击教师管理;在教师管理页面输入教师账号和教师姓名等信息,进行查询,添加或删除教师信息等操作;如图5-9所示。

图5-9教师管理界面图

管理员点击课程信息管理;在课程信息管理页面输入课程名称、课程分类、课程附件和教师姓名等信息,进行查询,查看评论或删除自习室信息等操作;如图5-10所示。

图5-10课程信息管理界面图

管理员点击考研资料管理;在考研资料管理页面输入资料编号、资料名称和资料分类进行搜索等,并可删除等操作;如图5-11所示。

图5-11考研资料管理界面图

管理员点击报考志愿管理;在报考志愿管理页面对报考编号、院校名称、图片、专业、省份、高考分数、报考时间、学生账号、学生姓名等信息进行搜索或删除等操作;如图5-12所示。

图5-12报考志愿管理界面图

管理员点击试题测试管理;在试题测试管理页面对试题测试名称、考试时长和试题测试状态等信息,进行查看、编辑和删除等操作;如图5-13所示。

图5-13试题测试管理界面图

管理员点击系统管理;在系统管理里,管理员可以对关于我们、系统简介、轮播图管理、考研资讯和考研资讯分类进行查看或编辑等操作;如图5-14所示。

图5-14系统管理界面图

5.3 后台教师功能的实现

教师登录界面,首先双击打开系统,连上网络之后会显示出本系统的登录界面,这是进入系统的第初始页面“登录”,能成功进入到该登录界面则代表系统的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能,如图5-15所示。

 图5-15教师登录界面

教师登录系统后,可以对课程信息管理、考研资料管理、报考志愿管理、试题管理、试题测试管理、考试管理、我的资料等功能进行相应操作,如图5-16所示。

图5-16教师功能界图面

    第六章 系统测试

6.1系统测试的目的

测试是为了发现问题,而不是证明程序没有问题。测试是可编写测试用例来描述测试的步骤、预想的界面或效果与实际的差距,来验证程序是否正确。测试的原则有几条,测试需要输入条件和输出结果,制定测试用例来规范测试的步骤,也会适当的推进测试的进度。正常的测试流程是从项目立项开始,就可按需求先写测试用例,与程序开发同步进行,等程序开发完成,测试用例也可同时完成,等程序开发交接到测试时,可直接展开测试工作[13]。

6.2软件测试过程

软件测试是软件设计的最后一个阶段,它贯穿于整个设计过程,是一项巨大的任务。软件测试需要测试程序的所有部分。每个部分的测试是不同的,在测试之前需要分为以下几个阶段:

一、单元测试,即模块测试;这是检查软件程序代码的测试。用于软件的最小单位部分。单元测试分为手动测试和动态测试。为了保证程序算法的正确性,静态检测应标准化程序的逻辑、标准化和正确性。该步骤是检测尽可能多的错误。动态检测通过将实际结果与预期结果进行比较来检测错误[14]。

二、集成测试:该测试基于单元测试,用于测试系统的各个功能模块。任何软件设计都会有一个集成阶段,因此在软件测试过程中,集成测试是必不可少的一部分。在集成测试过程中,由于测试是在模块之间进行的,因此在测试过程中可能不会发现问题,但在整个测试过程中会暴露出来。同时,在集成测试过程中,注意模块连接过程中是否有数据丢失。还应注意的是,尽管单个模块的误差可能很少且没有影响,但拼接可能对系统产生很大影响。

三、系统测试:系统测试遵循集成测试。系统测试将通过集成测试的部分作为整个系统的一部分。它与电子设备的所有软硬件一起,可以通过实际操作检测模拟的实际环境中是否存在错误。系统测试需要与计划中的理想情况进行比较,以找出与预期的差异。在分析设计器后确定如何修改。在软件的实际操作过程中,会出现许多意外错误,测试人员可能无法在第一时间解决问题。因此,系统测试应尽可能在实际运行情况下进行,以达到更好的测试目的。

四、验收测试:验收测试是在设计完成和发布之前对系统的最终测试。它需要了解用户和合作伙伴的需求。我们将与他们一起完成测试,并根据他们的需求进行有针对性的修改,成为能够更好地同时满足两者需求的软件[15]。

6.3系统测试用例

性能测试是指通过自动化测试工具模拟系统在不同负载和压力情况下,观察平均响应时间、CPU占用率和内存占用率等性能评价指标的变化情况,以检验系统性能是否能达到预期目标,确保平台上线后稳定运行。

本文采用开源的测试工具JMeter模拟用户对平台API网关的并发请求行为,并发量从200开始逐渐递增,利用JMeter自带的监听器与插件记录平均响应时间、CPU占用率和内存占用率等性能评价指标,具体测试结果如表6.1所示。

表6.1 API网关性能测试结果

由测试结果可知,在系统并发量逐渐递增到1200的过程中,平均响应时间控制在1.5秒内,异常率保持为0%,响应失败率小于5%}  CPU占用率小于80%,内存占用率小于95%,达到了预期的性能目标。当并发量达到1400时,有一部分请求出现异常,各项性能指标也超出以上标准,说明目前系统在1400并发请求时达到了性能瓶颈。

结    论

本系统将采用PyCharm为该系统的开发工具,Python 语言进行开发。系统从选题开始,共经历了搜集选题背景信息和选题目的及意义的分析,通过对国内外的研究,需求分析的整理,数据库的模型和表的设计,具体代码的实现。

通过调研和分析,该系统的功能设计为登录注册、个人信息修改、学生管理、教师管理、课程信息管理、课程分类管理、考研资料管理、资料分类管理、报考志愿管理、学习论坛、试题测试管理、试题管理、系统管理、考试管理等功能。

该系统从设计和实现,再到系统的测试,每个环节都一一经历学习,每个环节都顺利完成。其实,在配置系统的开发工具时,就已遇到各种问题,但在导师和同学的帮助下,都已顺利的解决。本系统有诸多功能都不够完善,希望日后技术和经验都更丰富的情况下,能完善系统的不足之处。

致  谢

时光荏苒,岁月如梭。大学美好的四年学涯生活即将结束,但仔细想想,这四年之间发生了很多故事。曾经与同学、老师、亲朋好友在大学里所有美好的事物都将成为回忆,心中浮满好多不舍。如果让我总结大学四年生活,我会说我成长了,这四年时光非常值得!感谢所有相遇的老师、朋友们!

首先,我要感谢我的指导老师,谢谢您这段时间对我的论文修改,是您的耐心、细心辅助我顺利的完成了论文的编写,也感谢您的奉献精神,让我学习到了职业精神,希望我以后也能对我的工作同样的负责。

其次,我要感谢我的同学,四年里分享我的情感生活,让我们成为了志同道合的朋友,感谢在大学认识你们。

最后,我要感谢我的父母和亲戚,是你们这些年的耐心的陪伴,让我成为了现在能独立思想的个人,有思想、有理想的人。谢谢所有感谢曾经帮助过我的人,谢谢你们,谢谢!

参考文献

[1]SilberschatzKorth Sudarshan 著,北京大学 杨冬青 李红燕 唐世渭等翻译 数据库系统概念(原书第6版)机械工业出版社,2019

[2] 于小鹏 MySQL 2019 清华大学出版社, 2021

[3] [美]Christian Nagel 著,李铭译清华大学出版社  C#高级编程  2020    

[4] 王红陈功平张寿安李家兵曹维祥金先好金宗安胡琼著,数据库案例与应用开发项目教程清华大学出版社 2020

[5] 罗福强 C#程序开发教程中国电力出版社 2021

[6] [英]马克·J.普赖斯(Mark J. Price)著王莉莉译清华大学出版社 C# 8.0和.Python Core 3.0高级编程 2020

[7] [英]约翰·夏普(John Sharp)著周靖译 Visual C#从入门到精通(第9版)清华大学出版社 2019

[8] 肖宏启、苏畅著, .Python网站开发项目化教程(第2版) 清华大学出版社 2021

[9] 徐洁罄. 数据库技术实用教程中国铁道出版社 2020

[10]赵良辉.MySQL数据库轻松实务-基于MySQL 2015.MySQL 2016 华南理工大学出版社 2019

[11]黄梯云李一军.管理信息系统(第7版) 北京: 高等教育出版社,2019年.

[12]胡艳丽. MySQL 2019数据库原理及应用北京:清华大学出版社2021  

[13]Alex Petrov,Database Internals (A deep-dive into how distributed data systems work).US: O'Reilly Media. Inc, 2020

[14] Abraham Silberschatz Professor / Henry F Korth / S Sudarshan. Database System Concepts (7th Edition), US: McGraw-Hill Education, Inc, 2020

[15] James Singleton. ASP.Python Core 2 High Performance. British:Packt Publishing, Inc,2019

免费领取项目源码,请点赞❤️关注收藏并私信博主,谢谢!

免费领取项目源码,请点赞❤️关注收藏并私信博主,谢谢!

免费领取项目源码,请点赞❤️关注收藏并私信博主,谢谢!

更多推荐