【Python学生选课系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
学生选课系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的Python进行编写,使用了Django框架。该系统从三个对象:由管理员和学生、教师来对系统进行设计构建。主要功能包括:个人信息修改,对学生、教师信息、课程信息、课程分类、选择课程、班级、成绩通知、教室信息、系统管理等功能进行管理。本系统在一般学生选课系统的基础上增加了首页推送最新信息的功能,方便学生快速浏览,是一个高效的、动态的、交互友好的学生选课系统。
本系统在设计过程中,很好地发挥了该开发方式的优势,让实现代码有了良好的可读性,而且使代码的更新和维护更加的方便,操作简单,对以后的维护减少了很多麻烦。系统的顺利开发和实现,对于学生选课这一方面提供巨大的便利服务,无论是管理员还是学生和教师,都带来了极大的便利,方便大众,为社会的进步与发展提供了一些动力。
关键词:学生选课系统;Python语言;MySQL数据库
Abstract
The student course selection system adopts B/S architecture, and the database is MySQL. The construction and development of the website are written in advanced Python and the Django framework is used. The system is designed and constructed from three objects: administrators, students and teachers. The main functions include: personal information modification, student, teacher information, course information, course classification, course selection, class, grade notification, classroom information, system management and other functions. On the basis of the general student course selection system, this system adds the function of pushing the latest information on the home page, which is convenient for students to browse quickly, and is an efficient, dynamic, interactive and friendly student course selection system.
In the design process of this system, the advantages of the development method are well played, so that the implementation code has a good readability, and the update and maintenance of the code is more convenient, simple operation, and the maintenance of the future reduced a lot of trouble. The smooth development and implementation of the system provides great convenience for students in course selection, both administrators, students and teachers, have brought great convenience, convenient for the public, and provided some impetus for social progress and development.
Key words: student course selection system; Python language; MySQL database
目 录
1 绪 论
互联网这几年来的发展也是日新月异的,互联网让地球变成了一个地球村,人们足不出户就可以完成各种各样的工作[1]。从2017年末开始,国家各个部门印发的各项文件,包括给领导人的工作报告中都频繁提到了互联网发展的重要性,这为人们指明了互联网将是未来发展的主要方向,在国内受到了众多的重视并得到了大力发展。在这个大数据时代下,互联网的普遍应用可以解决上述人们的问题,一个学生选课系统便开始研发了[2]。
1.1背景与意义
随着社会的快速发展,计算机技术的影响是全面且深入的。目前,社会的各种类型的网站越来越多,但是有些类型的网站附加了太多的商业元素和虚假信息,而且,学生在搜索相关信息时需访问多个网站和大量垃圾广告,这已经在很大程度上影响了对信息搜索效率,并且降低了学生的体验感,使学生很难快速地浏览或查询到自己所需要的相关信息。电子计算机在现代管理中的应用使电子,计算机变成了人类运用现代信息技术的主要工具[3]。可以更高效的处理人类获取信息中精细化、全面化的问题,从而提高了效率。本系统使用具有独特且和资源相对优势的管理方式,来提供一个优秀的系统平台,在这个管理过程受到了鼓励与帮助。而随着互联网的应用,互联网也以一种巨大变革力的新形象出现于商务关系领域。
探究本课题,就是希望能够实现管理员、学生和教师的选择,便于管理员和学生、教师的同时也可以发现更优质的信息管理系统[4]。
1.2 国内外研究概况
在当前这个飞速发展的时代,无论是国内还是国外,发展都是突飞猛进的,经济形势也是一片明朗。在这种背景下,互联网的这一块的市场成为了各个国家想要争夺的香饽饽。于是无论是国内还是国外一些公司把目光投向了互联网这块市场,越来越多的人对互联网有所了解,具备了一些网络意识。在这种互联网大浪潮的不断冲刷下,各种各样的系统被开发出来[5]。计算机技术无论是在国内还是国外中应用普遍,使计算机这一新型工具成为人们耳熟能详、妇孺皆知的新技术。计算机和互联网的广泛应用,让国内外的距离变“近”了,这个庞大的地球家园一下变成了地球村。国内国外的互联网发展也存在一些差距,我国近些年的互联网发展迅速,跻身于世界前列。
本系统使用Python语言,B/S架构和MySQL数据库进行开发。该系统的开发方式无论在国内还是国外都比较常见,而且开发完成后使用普遍,可以给学生提供大量的便利。该系统在国内外前景较为良好[6]。
1.3 研究的内容
目前很多人仍把传统的纸质工具,如记录本、文档、文件夹等视为信息处理的主要工具,对大多数人而言,选择记录和获取信息的第一选择永远是纸质工具,而互联网上的信息和数据对人们而言相对抽象遥远。这些纸质工具存在一些优点,但在当下这个互联网飞速发展的社会,纸质工具的缺点也被逐渐放大,如记录数据内容有限、操作不方便、数据重读性低、容易丢失以及浪费资源等。虽然也有很多人在互联网上冲浪来获取信息,但网络这一块的理解也是很有局限的。当下流行的WPS、Word等办公软件成为了人们耳熟能详的系统,但一些更加专业性、性能更加强大的网络信息工具被人们“埋没”在互联网的大海中。学生选课系统是一个便于学生在线查看课程信息、教室信息等,管理员进行管理的平台。因此本文主要论述了系统开发的过程和实现的功能,结合Web技术来实现的学生选课系统。本系统以软件工程理论为开发基础,以专业的计算机编程语言来开发并实现系统的功能[7]。
该选题原则上力求采用标签模块分类等方法,来完成注册登录、教师信息、课程信息、教室信息等,管理员对页面的设置和对后台数据库中数据的增删查改等一系列的操作和运行等。在这一系列模块分类的功能下,完成对学生选课的高效执行和规范管理[8]。
2 系统开发技术
2.1 MySQL数据库介绍
MySQL是一种关系型的数据库管理系统,属于Oracle旗下的产品。MySQL的语言是非结构化的,使用的学生可以在数据上进行工作。这个数据库管理系统一经问世就受到了社会的广泛关注。在各个方面,与同等的数据库相比,MySQL的优点极为突出,它的运行速度快,适用的范围广泛,而且数据库的安全性这一方面独树一帜。在语言结构方面,MySQL的语言简单,其他数据库需要一大段代码来实现的操作,MySQL仅需要一小部分代码甚至几行。综上所述,MySQL这种关系型数据库管理系统,已经成为了开发者进行项目的数据开发、存储的不二之选。MySQL的功能也多种多样,如数据操纵和数据库的建立维护等。而且该数据库的数据共享性高、冗余度低而且容易扩充。MySQL在安全性这一方面也具有自身的特点,它应用了学生的标识和鉴别技术,对试图和数据进行加密,确保资料信息的可靠性。介于数据库系统的功能与强大等性质之间,本数据库系统的设计中主要使用了MySQL实现对数据的处理。基于Web的学生选课系统运用MySQL数据库,在Web应用这一块,MySQL是最好的选择。对于该系统整个的开发、搭建、运行和维护具有极其重要的作用。
2.2 PyCharm开发环境
PyCharm是一种比较好的用来开发Python的集成开发环境,其中它里面包含了许多的可以提高开发效率的工具,对于开发者来说能够节省很大的精力,所有工具中比较常见的就是语法如果有任何的错误,都能够自动的标示出来,方便开发者可以及时的修正,还有它所自带的调试功能,方便在开发者完成相应的模块后,可以进行对于某段程序的调试。当然对于初学者也是非常友好的,因为它会自带一种对于程序的相应代码的逐条执行,并且能够及时的返回执行的显示结果,这样就可以让初学者可以更加清晰的看到程序中的基于一些算法的逻辑方面的思维模式。可以说它是一个功能比较强大的编译器同时也是调试器。
2.3 Python语言
Python是解释型的脚本语言,在运行过程中,把程序转换为字节码和机器语言,说明性语言的程序在运行之前不必进行编译,而是一个专用的解释器,当被执行时,它都会被翻译,与之对应的还有编译性语言。
同时,这也是一种用于电脑编程的跨平台语言,这是一门将编译、交互和面向对象相结合的脚本语言(script language)。
可以说其优点也是非常的突出,下面就其优点进行具体的说明:
(1)首先它是一种比较简单易学的,而且对初学者来说也是非常容易上手的一种语言,与其他的语言相比较在进行编写和阅读的时候,会更加接近人的思维模式,非常的适合学生的阅读性和易于理解的特点。
(2)由于其底层的逻辑是用c语言完成的,所以在运行的速度来说也是非常快的,就如许多的开发者所了解的,它的很多的标准库以及第三方的依赖都是由c语言所开发的,所以执行起来比较高效率。
(3)并且,它始终是一个面向对象的程序设计,它支持面向过程和面向对象的编写,在以流程为导向的语言里,一个程序是建立在一个过程或者一个简单的可重复使用的代码的功能上,在面向对象中,一个程序是以数据和函数为基础的对象构造的。
(4)如果需要代码的扩充或者是快速查看,在使用它的时候格式也是非常的清晰,还有便于维护的特点,在不同的开发人员共同开发的过程中,都会比较方便的理解所编写的内容。
(5)同时也是因为它开源的特点,能够被移植到很多的平台进行使用,并且它也是完全支持重载、派生、继承等有助于增强代码的复用的特点,同时有两个标准库(functools, itertools)提供了开发的支持。
2.4 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.5 B/S架构
B/S(Browser/Server,浏览器/服务器)模式,是一种架构模式,属于WEB发展后的所出现的一种网络构造,而WEB又是主要的浏览器应用商品软件。B/S架构模式不仅将系统的重新开发、维修及利用等简单化,更将其重点放到了服务器上。它使客户端得到了统一,服务器上集中了系统功能的最关键部分。
B/S架构的工作模式是浏览器发出请求后服务器进行相应的响应。Internet上文本、图片、动画等信息主要由Web服务器产生,而学生主要是通过浏览器访问这些信息。在Web服务器上下载程序时,如果在下载过程中遇到某些与数据库相关的指令,可以将这些指令交给数据库服务器来解释、进行执行。
3系统分析
3.1 系统需求分析
在当下社会的生活中,互联网已经非常普遍和十分重要。利用好互联网大数据等技术,可以帮助解决很多问题。当下学生选课方面都面临各自的问题。根据这一常见现象,本学生选课系统的出现就有很大的需求。该系统可以很好地解决这些麻烦和问题。系统中学生的数据极为关键,所以系统数据要整理好,因为数据的存储是按一定格式,但并非无序的,其概念是:按长期的稳定格式,可共享的存放在电脑内存上[9]。数据库管理系统,主要是指数据保存、更改和添加以及数据库的设置。为保证系统数据管理的顺利操作,一些有能力的处理者可以进行管理而不需要专业的人来处理。资料表的建立,可对资料表中的数据加以调整,数据的重新组合和重新建立,确保资料的可靠性。介于数据库系统的功能与强大等性质之间本数据库系统的设计中主要使用了MySQL实现对数据的集中管理。各个方面都具有不错的性能[10]。
3.2 系统可行性分析
3.2.1技术可行性
在系统可行性分析中,技术可行性分析是十分重要的分析角度。本学生选课系统是在Windows 11系统上进行开发与运行,该系统是目前比较先进,应用范围比较广的电脑系统。开发该系统的电脑的客户端也都配置较高的硬件设施,性能强大。系统开发所使用的各种技术也都来自PC端,也都十分的先进。与普通的Web服务器相比,具有非常明显的优势。开发的技术也都来自也专业方面,有据可依,具有较强的理论性和权威性[11]。
(1)硬件可行性分析
学生选课系统的操作运行和数据处理跟大多数系统一样,大同小异,没有特殊的地方,对于硬件也没有过多的要求。无论是公司的办公电脑,还是家里的私人电脑,只要能够进行正常的代码编写和网页浏览就可以。该系统的“苛刻”条件是针对于服务器,服务器的优劣是该系统的关键,所以拥有一个良好的服务器至关重要。对于服务器的选择应慎重,必须选择具有良好的完整性,安全可靠的服务器,以确保打开浏览器执行一系列操作时能够流畅的运行,不会出现卡顿的现象,最后安全方面也有所保障。
(2)软件可行性分析
该系统运用的软件是一些完全免费且常用的,操作简单易上手,只要是有点计算机基础的学生只要花上很少的时间就能掌握相关技能;同时无论是从经济上还是安全上都能使系统得到充分的保障。
技术可行性从硬件可行性分析和软件可行性分析这两个方面进行了可行性研究,可以看出该学生选课系统的开发没有问题,所以在技术这一方面,本系统没有阻碍,会顺利执行。
3.2.2经济可行性
学生选课系统开发之前,通过互联网、广播以及新闻等渠道得出了关键信息,对于现有的学生选课的系统不多且大都不太健全,该系统的开发可以给这个领域增加新的血液,具有良好的前景。
学生选课系统开发的时候,对一些相关事于进行了充分的调查。调查都是开发人员亲自做的,没有花钱雇佣他人,接近零成本。开发过程遇到困难时,通过互联网搜索,或者向指导老师求助来进行解决的,没有造成成本损失。
学生选课系统开发完成后,该系统是基于Python来开发的,采用了MySQL数据库。两者都具有较强的稳定性和安全性,在后续的维护与更新中,也能够减少成本浪费。
综上所述,开发前、中、后期成本和要求非常小,具有较高的经济可行性。而且,该系统的开发成功也会有不错的市场前景[12]。
3.3 项目设计目标与原则
3.3.1系统总体描述
关于学生选课系统的基本要求
(1)功能要求:信息共享、信息更新、平台个性化的设置、三者相互的信息交流、一些数据的增删查改和访问、教师、学生和管理员数据的查找及管理等常见的功能。
(2)性能要求:在各种各样的操作系统上,无论是教师、学生还是管理员都能够顺利的登录该学生选课系统,且成功登录后完成相应的操作和预期的目的,顺利执行各个页面功能。
(3)安全性保密规定:管理员的登录一定要进行安全监测。管理员通过特定的账号和密码登录并要进行身份验证才能进入下一个界面从而进行一些内部操作。
(4)系统的运行环境要求:支持Windows等一系列操作平台。
3.3.2开发目标
学生选课系统的主要开发目标如下:
(1)对零碎化、分布散的数据信息进行收纳、整理,通过网络服务平台使这些信息内容更加调理,更加方便化和清晰化,让访问该系统的每个学生享受浏览的过程。
(2)生活中存在的一些现象:人员冗余。学生选课系统应尽量减少学生的需求压力,给他们提供省时省力省心的服务平台,降低其工作量。
(3)便于查询信息及管理信息等。
(4)通过计算机网络技术,提升解决管理问题和技术工作的质量,为学生一种规范方便的服务。
(5)该系统的设计风格应该简约整洁,操作容易上手,目标信息明确,避免花里胡哨。
(6)为社会稳定和发展贡献一份力量。
3.4系统流程分析
3.4.1操作流程
首先为系统登录页面。进入页面后,学生可进行登录和注册的操作。点击登录后,页面就会出现一个登录提示框,向学生传达信息:要进行学生名和密码的输入,完成后才可以进行下一步的操作。学生输入完成后,系统会将输入的信息提交给后台,与数据库中的信息记录进行比较判断。判断比较内容主要分为三个方面:从学生名是否为空、输入的密码是否为空、学生名和密码是否匹配三方面进行判断。只有上述三个条件同时满足,数据库中的信息匹配正确,才视为登陆成功,方可完成后续的操作。若以上三种情况有一条不满足,则会提示该次登录错误,就需要进行重新登录。系统登录流程图如图3-1所示:

图3-1登录流程图
3.4.2添加信息流程
然后是添加信息的页面。进入该页面后,页面会出现一个提示框,示意操作者可以进行信息的添加,从而进行下一步的操作。学生输入想要添加的信息后提交,系统会对输入的内容进行检测。如果检测后输入的信息正确,则会出现“添加成功”的提示框,从而可以进行下一步操作;如果系统检测后检测到想要添加的信息不符合规范要求,则会提示报错,需要进行修改后重新添加。添加信息流程图如图3-2所示:

图3-2添加信息流程图
3.4.3删除信息流程
最后为删除信息页面。进入该页面后,学生可以对所要删除的信息进行选择,选择好删除的内容后,会有一个“是否确认删除”的提示框,操作者可以根据自己的意愿来选择“是”或“否”。完成上述操作,系统会自动的对删除的内容进行判断,如果符合删除要求则会成功删除数据记录,并且更新数据库的内容信息;如果删除的数据记录不符合要求,则会有一个“删除失败”的提示框,操作人员需要根据提示来进行修改,修改完成后重新删除知道删除成功。删除信息流程图如图3-3所示:

图3-3删除信息流程图
4 系统设计
4.1 系统体系结构
管理员管理用例图4-1所示。

图4-1 管理员管理用例图
登录管理用例图4-2所示。

图4-2 登录管理用例图

图4-3 学生用例图

图4-4教师用例图

图4-5 管理员用例图
4.2 系统总功能结构设计
系统按照学生的实际需求开发而来,贴近生活。从管理员通过正确的账号的密码进入系统,可以使用相关的系统应用。管理员总体负责整体系统的运行维护,统筹协调。
系统整体模块设计:系统分为管理员和学生、教师三大角色,系统管理员有最大的权限,总体功能展示如图4-6所示。

图4-6系统总体功能图
4.3开发流程设计
系统开发流程的分析是一个至关重要的过程,它是指通过系统的设计开发目的初衷、面向使用学生的范围、系统运行和操作的安全性、各种问题的处理以及后台数据的分析能力等各个角度,来对学生选课系统进行设计、开发、搭建和调节,以保证该系统能够顺利的完成,达到预期的工作状态。上述每个环节、每个步骤一开始就要下足功夫,从各个方面、各个角度进行调查研究,进行大量的测试和评估,来保证学生选课系统的正常和该系统的后台数据库的完整性以及安全性,从而把控系统所包含信息的安全性、确保信息进入、出口顺利过渡。然后,对系统和数据进行操作和分析,根据每一步的执行步骤,完成信息的流程图制作过程。
系统的开发对管理模型和系统应用中的数据库进行了分类,创建代码,以及系统测试,如图4-7所显示。

图4-7开发系统流程图
4.4 数据库设计原则
学习程序设计,如果要了解数据库管理系统或者是根据需求而制定的系统接口,就必须创建一种数据库管理系统的模式,用来保存数据资料,这样当在应用编程过程中时候,就不需要再向操作系统页面上加载信息,进而增加了整个系统的工作效率。信息库管理系统中保存着许多数据,应该说是一个管理信息系统建设的中心和基础,而信息库管理系统也为管理信息系统建设提出了新增、删除、更改和搜索的操作功能,使管理信息系统建设能够迅速地查询所需要的数据,而不会直接从程序代码中查找。信息库管理系统通过将信息表的各个组成部分按照特定的方法准确地合并,排序和组成信息库管理系统。
通过对学生选课系统的主要功能信息进行规划并分为若干功能实体信息,本系统的主要功能实体E-R图如图4-8、图4-8、图4-10、图4-11、图4-12。

图4-8学生信息实体属性图

图4-9教师信息实体属性图

图4-10教室信息实体属性图

图4-11选择课程实体属性图

图4-12学生选课实体属性图
4.5 数据表
把按照数据库理念建立的E-R图,转换为国际关系信息库。在关联数据库中,统计关联主要由统计表所构成,但是表的构成主要体现在表格的数文字段上。如下表所示。
表4-1:用户表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
username |
varchar |
100 |
用户名 |
||
|
password |
varchar |
100 |
密码 |
||
|
image |
varchar |
200 |
头像 |
||
|
role |
varchar |
100 |
角色 |
管理员 |
|
|
addtime |
timestamp |
新增时间 |
CURRENT_TIMESTAMP |
表4-2:学生表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
xuehao |
varchar |
200 |
学号 |
||
|
mima |
varchar |
200 |
密码 |
||
|
xueshengxingming |
varchar |
200 |
学生姓名 |
||
|
touxiang |
longtext |
4294967295 |
头像 |
||
|
xingbie |
varchar |
200 |
性别 |
||
|
youxiang |
varchar |
200 |
邮箱 |
||
|
shoujihaoma |
varchar |
200 |
手机号码 |
||
|
banji |
varchar |
200 |
班级 |
表4-3:成绩通知表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
kechengbianhao |
varchar |
200 |
课程编号 |
||
|
kechengmingcheng |
varchar |
200 |
课程名称 |
||
|
fengmian |
longtext |
4294967295 |
封面 |
||
|
kechengfenlei |
varchar |
200 |
课程分类 |
||
|
jiaoshizhanghao |
varchar |
200 |
教师账号 |
||
|
jiaoshixingming |
varchar |
200 |
教师姓名 |
||
|
xuehao |
varchar |
200 |
学号 |
||
|
xueshengxingming |
varchar |
200 |
学生姓名 |
||
|
chengjifenshu |
varchar |
200 |
成绩分数 |
||
|
fabushijian |
datetime |
发布时间 |
表4-4:系统简介表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
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-5:选择课程表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
kechengbianhao |
varchar |
200 |
课程编号 |
||
|
kechengmingcheng |
varchar |
200 |
课程名称 |
||
|
fengmian |
longtext |
4294967295 |
封面 |
||
|
kechengfenlei |
varchar |
200 |
课程分类 |
||
|
jiaoshizhanghao |
varchar |
200 |
教师账号 |
||
|
jiaoshixingming |
varchar |
200 |
教师姓名 |
||
|
xuehao |
varchar |
200 |
学号 |
||
|
xueshengxingming |
varchar |
200 |
学生姓名 |
||
|
sfsh |
varchar |
200 |
是否审核 |
待审核 |
|
|
shhf |
longtext |
4294967295 |
审核回复 |
表4-6:班级表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
banji |
varchar |
200 |
班级 |
表4-7:收藏表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
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-8:关于我们表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
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-9:公告分类表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
typename |
varchar |
200 |
分类名称 |
表4-10:公告表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
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-11:课程信息表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
kechengbianhao |
varchar |
200 |
课程编号 |
||
|
kechengmingcheng |
varchar |
200 |
课程名称 |
||
|
kechengfenlei |
varchar |
200 |
课程分类 |
||
|
jianjie |
longtext |
4294967295 |
简介 |
||
|
xiangqing |
longtext |
4294967295 |
详情 |
||
|
faburiqi |
date |
发布日期 |
|||
|
jiaoshizhanghao |
varchar |
200 |
教师账号 |
||
|
jiaoshixingming |
varchar |
200 |
教师姓名 |
||
|
fengmian |
longtext |
4294967295 |
封面 |
||
|
thumbsupnum |
int |
赞 |
0 |
||
|
crazilynum |
int |
踩 |
0 |
||
|
discussnum |
int |
评论数 |
0 |
||
|
storeupnum |
int |
收藏数 |
0 |
表4-12:课程分类表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
kechengfenlei |
varchar |
200 |
课程分类 |
表4-13:教室信息表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
jiaoshibianhao |
varchar |
200 |
教室编号 |
||
|
jiaoshimingcheng |
varchar |
200 |
教室名称 |
||
|
jiaoshirongliang |
varchar |
200 |
教室容量 |
||
|
fengmian |
longtext |
4294967295 |
封面 |
||
|
jiaoshiweizhi |
varchar |
200 |
教室位置 |
||
|
shebeixinxi |
longtext |
4294967295 |
设备信息 |
||
|
dengjiriqi |
date |
登记日期 |
|||
|
jiaoshixiangqing |
longtext |
4294967295 |
教室详情 |
表4-14:教师表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
jiaoshizhanghao |
varchar |
200 |
教师账号 |
||
|
jiaoshixingming |
varchar |
200 |
教师姓名 |
||
|
mima |
varchar |
200 |
密码 |
||
|
xingbie |
varchar |
200 |
性别 |
||
|
touxiang |
longtext |
4294967295 |
头像 |
||
|
dianhuahaoma |
varchar |
200 |
电话号码 |
||
|
youxiang |
varchar |
200 |
邮箱 |
表4-15:课程信息评论表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
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-16:配置文件表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
name |
varchar |
100 |
配置参数名称 |
||
|
value |
varchar |
100 |
配置参数值 |
||
|
url |
varchar |
500 |
url |
5 系统详细设计
5.1前台学生模块实现
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到学生选课系统的导航条显示系统首页、课程信息、教室信息、公告等,系统首页界面如图5-1所示:

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

图5-2 学生注册界面
在登录流程中,学生首先在Vue前端界面输入账号和密码。这些信息通过HTTP请求发送到Python后端。后端接收请求,通过与MySQL数据库交互验证学生凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从学生输入到系统验证和响应的全过程。如图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.3后台教师模块实现
教师登录,在登录页面正确输入教师账号和密码、角色后,进入操作系统进行操作;如图5-14所示。

图5-14教师登录界面
教师点击后台管理,然后页面跳转到系统主页面,主要包括对系统首页课程信息、选择课程、教室信息、个人资料等进行操作。教师主页面如图5-15所示:

图5-15教师主界面
6 系统测试
6.1系统测试的目的
在经过长期的测试与修改下,系统能正常运行,已经达到基本的要求,但难免有时会出现一些报错和Bug,如果忽略一些不起眼的小问题有可能会产生连锁反应:数据的报错,数据的无缘被修改以及泄露,甚至会成为不法分子的可乘之机,给开发者和学生造成惨重的代价。综合以上几点,必修要对这个完成的系统进行测试,只有通过一定的测试来解决这些出现的问题。通过不断地进行测试,一步一步的发现系统中的问题,然后对问题进行一次又一次的修改,使该学生选课系统更加完善,最后争取没有漏洞和Bug,成为一个接近完美无暇的学生选课系统。还要在测试修改的过程中吸取经验:自己为什么会犯这种错误、代码的编写哪个逻辑环节出了错误、又有哪些地方是因为自己的粗心大意造成的等等。使系统本身接近完美以及以后的维护更加快捷方便[13]。
对于学生选课系统,要对其进行一个整体的测试。测试根据各个模块的功能,以及各功能之间的相互联系,协同关系来进行操作。尤其在教师、学生和管理员三个的数据库这一地方进行多次测试以及调整。通过一次又一次的系统测试,保证学生选课系统能够在上线面向开放使用后是一个方面、安全、省心的系统。
6.2系统测试方法
系统的测试方法有很多,在对系统进行测试时,应选择最适合并且稳定性良好最好保障的测试方法进行测试。撰写的代码完成后,就要开始着手于对系统进行一系列的测试。本系统代码是在Eclipse编写完成的,完成后部署在Eclipse集成好的Tomcat7上。测试的浏览器使用了Google浏览器进行的。系统测试的具体要求顺序如下:
(1)打开相应的运行代码软件,使用Google浏览器运行该系统页面[14]。
(2)测试整体从三个角度进行测试:登录测试、删除分类测试和修改密码测试。对这些功能进行多次的测试,多用几个不同的测试用例。测试的同时还要分析源代码,对于产生的异常结果和错误,进行分析查找其原因,进行解决。
(3)在测试的过程中,尽量使用Debug来进行测试,这样得到的结果和数据更加准确无误。
(4)还要对系统进行高数据下并行和并发的系统测试[15]。
6.3功能测试
(1)学生登录测试。在登录模块页面,通过输入二个学生名和密码进行测试。其中只有但三次输入的学生名“admin”和密码“admin”是正确的,会发现第三个是登陆成功的提示信息,而第一个和第二个登录失败。第一个登录失败的原因是因为学生名和密码不匹配,数据库中无法找到相应的匹配数据;第二个登录失败的原因是因为该学生名没有注册,数据库中没有相应的记录,所以第一次和第二次的登录会出现登录失败的得结果。如表6-1所示。

(2)删除分类测试。在删除分类模块,找到相对应的删除信息,点击“删除”该信息的接口,删除成功后信息会在数据库中的表中进行删除,然后返回前端页面删除成功的提示框。通过一次又一次的删除操作,发现该系统的删除功能以及后端代码运行正常,多次的删除测试说明该系统的删除分类功能没有问题。如表6-2所示。

(3)修改密码测试。在修改密码模块,通过二个学生的修改数据进行该功能的测试。测试中发现只有第三次的修改密码成功了,第一次和第二次的密码修改出现了问题。问题的原因分别为“密码错误”和“确认密码不一致”的问题。通过多次的修改和测试,发现修改密码这一功能运行正常,没有问题。如表6-3所示。

通过上述一次又一次的测试修改,又加上对系统的白盒测试和黑盒测试等一系列的操作,对系统进行了多次全面具体的测试。该系统的各个功能模块都能正常运行,性能良好,占据CPU的空间也较小。对所有的学生都有很大的帮助,提供了便利,对账户信息有较强的保密性,后台数据库能保持良好的完整性和安全性。无论是前端的页面设计,还是后端的数据库和代码运行,都十分不错,达到了预期的效果。
结 论
经过这几个月的努力,在老师和同学的帮助与指导下,对系统顺利完成。对于该系统的研究和开发虽然没有耗费大量的时间,但为了成功完成该学生选课系统,消耗了大量的经历和汗水去了解学习这方面涉及到的专业知识以及开发环境的应用。
该系统的设计与实现,是经过了很长时间的分析、观察、调研和研究分析并整理资料实施的。学生选课系统采用B/S架构、Python开发语言、Django框架以及MySQL数据库等技术开发与设计。该系统主要分为教师、学生和管理员三个角色。该学生选课系统分为前端和后端两大部分。前端的主要功能为向注册学生展示课程信息、教室信息、公告等,并对一些数据进行记录。后端的主要任务是对数据的一些准备处理的工作,对于管理员的数据属性的添加、维护和修改。每个功能在完成各自任务的同时也相互合作,一起来处理各个任务以及进程。
尽管该系统对学生可以满足一些基本的学生选课的需求,但该系统还存在许多问题和有待完善的地方。主要分为以下两点:
(1)该学生选课系统的适用面比较局限。页面的设置还是过于繁琐,不够简洁。加上社会方面的飞速发展,学生的条件也在发生新的变化。该系统还存在大数据下的并发和并行操作的不稳定性,当一个时间段内或者同一时刻时,过量的学生访问该网站会让网站的服务器出现崩溃的现象,一些操作无法正常的运行。种种原因使得该系统存在一些局限性。
(2)需要人工来处理的数据模块太多,需要减少大量的人工操作。在对学生选课处理的程序中,难免会出现各种各样的错误数据或者是异常数据,一旦这些数据大量积累存在过多时,系统自我调节修复能力有限就不得不需要人工的干预了。但是人工如果经常去进行操作的话,就会造成该系统的运行速度变慢,对其余正确的数据产生干扰,而且有可能对正确数据的损害以及泄露,从而将会减少该系统的稳定性。对于人力和财力都造成了不必要的浪费。
从上述可以看出该学生选课系统还有很多不足之处,在日后要结合具体项目问题进行修改和研究。
参考文献
[1]张洪伟. Tomcat Web开发及整合应用[M]. 清华大学出版社, 2020.
[2]唐汉明,翟振兴,关宝军等.深入浅出MySQL(第2版)[M].北京:人民邮电出版社, 2019:47-49.
[3]Cabral, Sheeri K. MySQL 5.5: Improving on the World's Most Popular Open Source Database[J]. Database Trends and Applications,2020,253:.
[4]李彩霞. MySQL数据库技术应用教程[M]. 电子工业出版社, 2019.
[5]张长春, 张琳琳, 史艳语,等. 基于Python的学生成绩管理系统的设计与实现[J]. 现代计算机, 2020(15):69-72.
[6]蒋丽华,密君英,张亮. 基于Python的学生成绩管理的设计与实现. 电脑知识与技术,2021(14).
[7]陈勇.学生成绩管理系统设计与实现[D].大连理工大学硕士论文,2019.
[8]李薪.管理信息系统的技术研究与设计[D].西安电子科技大学,2020.
[9] Kadir A. Tuntunan Praktis: Belajar Database Menggunakan MySQL[J]. 2020.
[10]周秦源.浅谈我国IT行业中的软件测试[J]. 中国科技信息,2019(14).
[11] Sun Weiqin. Struts: Django based Python Web Design and development. BEIJING: Publishing House of Electronics Industry, 2021:19-421
[12]Chen Gang. jdango from introduction to mastery [ m ] . (2nd edition) . BEIJING: Tsinghua University Press, 2019:17-380
[13] SILBERSCHATZ.A. Computer Science series: concepts of database systems (6th edition)[ m ] . China Machine Press, 2020,
致 谢
学生选课系统圆满的完成,在开发过程中如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。
四年时光转瞬即逝,当开始写这篇论文的时候,我才意识到自己要毕业了,这篇论文是一次自检,也是一次我对自己的“查重”。在这里快乐地学习了四年,足够让我恋恋不舍。很感谢母校为我们学员们提供了一个良好的学习环境。在大学生活中我感受到了家一样的氛围,结交了很多很多同学朋友,认识了大量的优秀老师,这四年的校园生活让我受益匪浅,终身难忘。
感谢我的亲人。即使他们当我因为压力而发脾气时,他们也只是告诉我:“要冷静”。在很多我认为自己撑不过去的时候,是他们的安慰与默默支持让我觉得自己可以。我希望我今后可以继续努力,去成为他们心中的那个我。
还要感谢我的指导老师。她是一位发自内心希望我们这些学生成为优秀的人的老师。我还记得他在课间时间挨个问我们毕业后的想法,推荐我们课外书籍清单,鼓励我们学习课外知识的场景。他又很有责任感,在指导我们完成毕业设计和论文的同时,还给我们讲一些需要注意的事项,真正做到了教书育人。我每一回都因为实际操作中遇到苦难而向老师发消息求助时,老师总是秒回信息,事无巨细地解释清楚,而且同步发到同学群中,对于别的同学来说也是很大的帮助。或许对于一位老师来讲,学生有所成是他们的期望。那我希望这篇论文不是我的最后一篇论文。
感谢我的室友。虽然前几年的生活磕磕绊绊,小矛盾不断,但是最近一年我们都平静了下来。也很庆幸,我们在这段焦虑有压力的日子里几乎没有摩擦,而是相互鼓励,谢谢你们。
最后想大言不惭地感谢自己。“宝剑锋从磨砺出,梅花香自苦寒来”。不能说我有多么努力,不然我也不会报怨没资格,考研差一点了,只能说在经历了灰色的高中,拿着自己惨不忍睹的高考成绩后,我还算是站起来了。没有被挫折完全打倒的自己就是棒的。未来的研究生生活将会努力奋斗,天天进步,更上一层楼!
免费领取项目源码,请点赞❤️关注收藏并私信博主,谢谢!
免费领取项目源码,请点赞❤️关注收藏并私信博主,谢谢!
免费领取项目源码,请点赞❤️关注收藏并私信博主,谢谢!
更多推荐
所有评论(0)