学生课程与成绩管理系统

核心提示本项目涉及的内容过多,将分为三篇文章进行展示,第一篇文章整体介绍这个项目的情况,包括项目的功能和相关技术,还提供了项目中使用到的数据类型和路由信息等;第二篇文章重点介绍学生路由信息相关内容;第三篇则重点介绍成绩路由相关内容。每一个人在学习计

这个项目涉及内容太多,所以分三篇展示。第一篇文章从整体上介绍了项目,包括其功能和相关技术,以及项目中使用的数据类型和路由信息。第二篇文章关注学生的路由信息。第三章重点介绍了绩效路径的相关内容。

大家在学习计算机编程的过程中,基本上都开发过一个XX管理系统的软件。比如刚学完C语言编程,我一般会写一个基于文件的学生成绩管理系统;学习完网络TCP/IC相关技术后,会创建一个客户端和服务器程序,也可以实现学生成绩管理系统的网络版。这个项目不能跳出软件管理系统的范畴。它实现了一个Web版的学生成绩管理系统,是一个Web API服务器项目。它接收客户端提供的学生成绩信息。客户端的消息请求数据都是JSON格式的,web服务器也将消息编码成JSON格式,然后发送给客户端程序。服务器实现了一个Web API接口,向外部提供管理学生及其成绩的数据。

提供一个基于web API的Web服务器,使用HTTP协议进行访问。该项目设计了两类数据:一类是用于表示学生信息的数据,另一类是用于表示学生各学科考试成绩的数据。学生的属性信息详见下表1。

表1

分数表记录了每个学生在每个科目上的分数。为了简化起见,我们将学生与分数的关系限定为1:1,即一个学生信息对应一个分数信息。本项目不涉及多次考试、多学期考试等信息。评分表中记录的内容见表2:

表2

在表2中,第二行表示每个分值对应的一个学号值,也就是通过这个学号,我们可以在学生表中找到对应的学生信息,这两个表中的信息可以用来构造显示学生考试成绩的整体情况。

整个服务器应用提供的Web API的功能也可以分为两类:一类API用于处理学生的信息,另一类API用于处理考试成绩的信息。

本项目的应用程序运行在节点平台上,使用Express Web框架开发。Node作为一种与Javascript编程语言一起运行的后端技术,极大地方便了Javascript开发者向后端技术的转移,整个Javascript生态也极其完善。作为Express Node平台上的开发框架,使用简单,响应客户端速度快,整个应用足够健壮,很受开发者欢迎。除此之外,很多其他的框架都是由这个框架派生出来的,所以熟悉Express framework之后,对学习Node Web开发技术很有帮助。

在这个项目中,express generator用于构建整个应用程序的框架。在开发过程中,快递路由技术、方法处理器、路径参数、消息体分析等。被使用。这些内容在Web应用开发中经常用到,下面会重点介绍。

项目的目录结构保持了express生成器构建的层次结构。为了存储数据,添加了一个新的目录存储来存储数据。这个目录目前只包含一个文件store.js,如图1所示。在文件store.js中创建一个内存数据库,每个Web请求交互都会使用这个文件中的数据,或者保存或者读取数据。

图1

一个新的路由文件students.js被添加到routes目录中。大部分代码都位于这个文件中,它定义了学生信息和分数信息的路由以及它们的处理器。定义的路由信息见表3。

表3

表3只给出了相应的路由信息及其相应的含义,但没有描述请求中需要的其他参数。比如创建学生信息时,这些信息都在消息体中,所以在处理相关操作时需要读取消息体的内容。下面的文章将逐一介绍上面表3中列出的路线。

学生信息和成绩信息的路线在students.js文件中定义,通过使用require语句将学生的路线引入app.js文件,如下图2所示。

图2

之后,您可以通过studentsRouter变量访问这个路由器。这个路由器是Express.js的标准中间件,我们通过。使用方法,如下面图3的代码所示:

图3中第22行的代码显示,相应的路由器中间件挂在路径/students上,这个路由器中定义的路由用于为挂载点构建一次路径。

在讨论细节之前,首先展示这些信息是如何存储在服务器端的。我们使用store.js构建内存数据库。实际上,它是一个保存两个属性值的对象:一个名为students数组,保存所有学生信息数据;另一个名称是scores数组,它存储所有的分数信息数据。根据客户端发送的请求类型,对这两个数据进行相应的添加、删除、检查和计算。

本文为Web API服务器开发了第一篇文章。本项目分为三个部分,第二部分重点研究学生信息的路由处理逻辑。

 
友情链接
鄂ICP备19019357号-22