一、开发环境与技术

学生选课系统的编码实现需要搭建一定的环境和使用相应的技术,接下来的内容就是对学生选课系统用到的技术和工具进行介绍。

1 MYSQL数据库

描述:本课题所开发的应用程序在数据操作方面具有不可预知性和经常变动的特点,无法直接将数据写在文档里,这样不仅不安全,也无法实现应用程序的功能。为实现应用程序所需的数据存储功能,必须选择专业的数据库存储软件。尽管应用程序功能不算复杂,市面上任何一个关系型数据库软件都可以实现。然而,考虑到学习进度和操作习惯,Oracle数据库安装包大且功能冗余,消耗大量电脑资源;SQL Server数据库安装时易与其他软件冲突,解决安装问题需重装操作系统,浪费时间。相比之下,MySQL数据库安装包小、安装速度快、操作简单,出现问题易于解决,不影响其他软件运行,资源消耗少,功能完全符合设计需求,因此选择MySQL数据库作为应用软件开发所需的数据库。

2 JSP技术

描述:在动态网站兴起之初,Java推出了Servlet作为输出动态网站的技术标准,但未受程序员青睐。随后PHP语言问世,通过区分动态代码块和静态代码块,提高了书写效率和可读性,吸引了大量Java程序员和初级程序员。为维护Java语言在高级编程语言中的地位,Sun公司联合Apache基金会研发了JSP技术,它吸取了PHP在页面书写上的优点,同时依托Java EE的庞大后台,实现了通过Java组件实现的功能。JSP页面可以直接引用这些组件,使JSP更加强壮和丰富,保证了Java技术的可持续发展,并在动态网站开发领域站稳了脚跟。JSP技术允许PHP开发人员快速转移到JSP进行开发,实现了几乎无成本的转换。

3 SpringBoot框架

描述:SpringBoot继承了Spring框架的人气和底层设计财富,实现了开箱即用,集成了许多Java初学者或刚入门的程序开发人员所需的一些常用功能。虽然Spring好用,但在配置上容易出错,且出错后难以查找问题。SpringBoot不仅是对Spring的升级,更彻底颠覆了Spring的配置理念,采用XML解释型语言作为配置描述,使应用开发变得更加简单明了。

二、 系统设计

3 数据库设计

开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合,存储在一起的这些数据也是按照一定的组织方式进行的。目前,数据库能够服务于多种应用程序,则是源于它存储方式最佳,具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务,但它与程序之间也可以保持较高的独立性。总而言之,数据库经历了很长一段时间的发展,从最初的不为人知,到现在的人尽皆知,其相关技术也越发成熟,同时也拥有着坚实的理论基础。

3.1 数据库概念设计

这部分内容需要借助数据库关系图来完成,也需要使用专门绘制数据库关系图的工具,比如Visio工具就可以设计E-R图(数据库关系图)。设计数据库,也需要按照设计的流程进行,首先还是要根据需求完成实体的确定,分析实体具有的特征,还有对实体间的关联关系进行确定。最后才是使用E-R模型的表示方法,绘制本系统的E-R图。不管是使用亿图软件,还是Visio工具,对于E-R模型的表示符号都一样,通常矩形代表实体,实体间存在的关系用菱形符号表示,实体的属性也就是实体的特征用符号椭圆表示。最后使用直线将矩形,菱形和椭圆等符号连接起来。接下来就开始对本系统的E-R图进行绘制。

(1)下图是课程实体和其具备的属性。

课程实体属性图

(2)下图是教师实体和其具备的属性。

教师实体属性图

(3)下图是学生实体和其具备的属性。

学生实体属性图

  1. 下图是成绩实体和其具备的属性。

成绩实体属性图

  1. 下图为上述各实体间相互之间的关系。

实体间关系E-R图

3.2 数据库物理设计

本数据库是关系型数据库,因此对二维表的结构设计也比较关键。毕竟二维表格模型就是关系型数据库中的关系模型。而一些常用的关系模型中的概念也需要了解,才可以对关系模型进行设计。下面就简单介绍关系,元组,属性,域,关键字等常用概念的含义。

  • 关系:关系就是数据库中的一张数据表,每张数据表都有命名,也就是每个关系也有名字,那就是数据表名;
  • 元组:元组就是数据表中的一行记录;
  • 属性:属性就是数据表中的字段,也就是数据表中的一列;
  • :域就是对数据表中属性的取值进行限定;
  • 关键字:关键字就是数据表中的主键;

在了解了表结构设计的常用概念后,接下来就需要使用前面绘制的E-R模型完成表结构的设计工作,并在数据库中创建数据表,并为各个数据表进行命名。以下就对设计的结果通过表格形式进行展示。

表1 教师信息表

字段 类型 默认 注释
id (主键) bigint(20) 主键
addtime timestamp CURRENT_TIMESTAMP 创建时间
jiaoshizhanghao varchar(200) 教师账号
mima varchar(200) 密码
jiaoshixingming varchar(200) 教师姓名
nianling int(11) 年龄
zhicheng varchar(200) NULL 职称
xingbie varchar(200) NULL 性别
shouji varchar(200) 手机
zhaopian varchar(200) NULL 照片

表2 课程信息表

字段 类型 默认 注释
id (主键) bigint(20) 主键
addtime timestamp CURRENT_TIMESTAMP 创建时间
kechengmingcheng varchar(200) NULL 课程名称
kechengfenlei varchar(200) NULL 课程分类
kaikeshijian datetime NULL 开课时间
jieshushijian datetime NULL 结束时间
kechengxuefen float NULL 课程学分
kechengneirong longtext NULL 课程内容
fengmian varchar(200) NULL 封面
jiaoshizhanghao varchar(200) NULL 教师账号
jiaoshixingming varchar(200) NULL 教师姓名
clicktime datetime NULL 最近点击时间
clicknum int(11) 0 点击次数

表3 专业信息表

字段 类型 默认 注释
id (主键) bigint(20) 主键
addtime timestamp CURRENT_TIMESTAMP 创建时间
zhuanyemingcheng varchar(200) NULL 专业名称

表4 管理员信息表

字段 类型 默认 注释
id (主键) bigint(20) 主键
username varchar(100) 用户名
password varchar(100) 密码
role varchar(100) 管理员 角色
addtime timestamp CURRENT_TIMESTAMP 新增时间

表5 学生信息表

字段 类型 默认 注释
id (主键) bigint(20) 主键
addtime timestamp CURRENT_TIMESTAMP 创建时间
xuehao varchar(200) 学号
mima varchar(200) 密码
xingming varchar(200) 姓名
nianling int(11) 年龄
zhuanye varchar(200) NULL 专业
xingbie varchar(200) NULL 性别
shouji varchar(200) 手机
zhaopian varchar(200) NULL 照片

表6 学生成绩信息表

字段 类型 默认 注释
id (主键) bigint(20) 主键
addtime timestamp CURRENT_TIMESTAMP 创建时间
kechengmingcheng varchar(200) NULL 课程名称
xuehao varchar(200) NULL 学号
xingming varchar(200) NULL 姓名
chengji int(11) NULL 成绩
shifouhege varchar(200) NULL 是否合格
pingyu longtext NULL 评语
jiaoshizhanghao varchar(200) NULL 教师账号
jiaoshixingming varchar(200) NULL 教师姓名

表7 学生选课信息表

字段 类型 默认 注释
id (主键) bigint(20) 主键
addtime timestamp CURRENT_TIMESTAMP 创建时间
kechengmingcheng varchar(200) NULL 课程名称
shifouxuanze varchar(200) NULL 是否选择
xuanzeshijian datetime NULL 选择时间
jiaoshizhanghao varchar(200) NULL 教师账号
jiaoshixingming varchar(200) NULL 教师姓名
xuehao varchar(200) NULL 学号
xingming varchar(200) NULL 姓名
sfsh varchar(200) 是否审核
shhf longtext NULL 审核回复

三、系统实现

进入到这个环节,也就可以及时检查出前面设计的需求是否可靠了。一个设计良好的方案在运用于系统实现中,是会帮助系统编制人员节省时间,并提升开发效率的。所以在系统的编程阶段,也就是系统实现阶段,对于一些不合理的设计需求,也是可以及时发现。因为设计的方案是完全指导系统的编码过程的。

1 管理员功能实现

1.1 教师管理

管理员进入指定功能操作区之后可以管理教师。其页面见下图。教师的资料需要管理员负责管理,包括修改,新增,删除等操作。

教师管理页面

1.2 学生管理

管理员进入指定功能操作区之后可以管理学生信息。其页面见下图。学生是本系统的一个角色,其相关信息需要管理员添加,修改,删除等。

学生管理页面

1.3 专业信息管理

管理员进入指定功能操作区之后可以管理专业信息。其页面见下图。管理员在本页面修改专业名称,删除指定的专业信息,管理员提交专业名称可以查询专业信息。

专业信息管理页面

2 教师功能实现

2.1 课程查询

教师进入指定功能操作区之后可以查询课程。其页面见下图。课程信息是管理员负责增删改查,教师只需要查询课程,查看课程详情。

课程查询页面

2.2 学生选课管理

教师进入指定功能操作区之后可以管理学生选课信息。其页面见下图。学生参与课程选课,教师负责审核,并在课程学习结束之后,为学生学习的课程进行打分。

学生选课管理页面

2.3 学生成绩管理

教师进入指定功能操作区之后可以管理学生成绩信息。其页面见下图。教师修改学生成绩的分数等信息,可以删除学生成绩信息。

学生成绩管理页面

3 学生功能实现

3.1 课程信息管理

学生进入指定功能操作区之后可以管理课程信息。其页面见下图。学生查看课程的学分,开课时间与结束时间,课程名称等信息,学生点击课程信息右侧的学生选课按钮,可以选择该课程。

课程信息管理页面

3.2 学生选课查询

学生进入指定功能操作区之后可以查询学生选课信息。其页面见下图。学生提供教师姓名,或者是提供课程名称可以查询学生选择的课程信息,查询出来的选课信息可以显示学生已选的课程的审核情况。

学生选课查询页面

3.3 学生成绩查询

学生进入指定功能操作区之后可以查询学生成绩。其页面见下图。学生查询已选课程的成绩信息,查看成绩详情,包括分数,是否合格,教师姓名等信息。

学生成绩查询页面

源码+论文+PPT答辩+开题报告下载>>

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐