湖北汽车工业学院 Java高级编程课程设计_第1页
湖北汽车工业学院 Java高级编程课程设计_第2页
湖北汽车工业学院 Java高级编程课程设计_第3页
湖北汽车工业学院 Java高级编程课程设计_第4页
湖北汽车工业学院 Java高级编程课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

仅供学习交流使用

期光曲车工此学院

Oava高级编程课程设计》报告

课题名称:学生成绩管理系统

专业:计算机科学与技术

班级:______________

学号:_______________

姓名:__________________

指导教师:____________________

年月日——年月日

课设报告书写要求

1、严禁抄袭。请根据组内分工完成各自的课设报告,如有抄袭(30%以上,抄

袭者与被抄袭者)一律为不及格。

2、篇幅不少于10页(不包括代码,总结不少于1页)。

3、请按照实训报告内容框架进行书写,字体采用宋体、小四号字,正文采用1.5

倍行距,要求排版整齐。

4、报告文件名为:学号一姓名.docx,例如:20070230103一张三.docx,统一交给

各班班长。

5、实训内容:系统实现部分结合文字描述放核心代码即可,每段代码前都应有

文字描述,不能都是代码。

一、实训项目概述

1.实训题目

学生成绩管理系统

2.项目背景

在现代教育体系中,学生成绩管理是一个重要环节,它不仅涉及到学生的成绩记

录和查询,还包括教师的成绩录入、管理者的数据分析等功能。随着信息技术的

发展,传统的手工和纸质记录方式已不能满足高效、准确、安全的管理需求。因

此,设计一个高效的学生成绩管理系统,不仅能提高管理效率,还能为教育决策

提供数据支持。

3.项目目的

本项目旨在设计并实现一个学生成绩管理系统,该系统应能满足不同用户角色

(学生、教师、管理员)的需求,提供成绩录入、查询、修改等功能u通过此项

日,旨在加深对Java高级编程的理解,提升数据库设计、前端界面设计和后端

逻辑开发的综合应用能力。

4.功能需求

(I)用户认证

目的与需求:为保证系统的安全性和数据的私密性,系统应提供一个稳定可

靠的用户登录认证机制。

实现细节:

用户登录时需输入用户名和密码。系统应对输入信息进行验证,确保只有授

权用户可以访问。

支持不同角色的用户登录:学生、教师和管理员。每种角色将看到不同的界

面和功能。

密码安全性:密码在数据库中应进行加密处理,确保用户信息的安全。

登录失败策略:提供一定的登录尝试次数,超过限制后暂时锁定账户,增强

系统安全性。

(2)成绩录入和管理

目的与需求:教师需要有一个方便、高效的方式来录入和管理学生成绩。

实现细节:

教师能够为每位学生录入和更新成绩信息。成绩包括但不限于平时成绩、期

中考试成绩和期末考试成绩。

权限控制:只有授课教师或管理员有权修改成绩,避免未授权访问。

数据验证:在成绩录入时,系统应自动验证数据的有效性,如成绩范围和格

式。

成绩修改日志:记录每次成绩的修改记录,包括修改人、修改时间和修改内

容,便于追踪和审计。

(3)成绩查询

目的与需求:学生可以查看自己的成绩,教师可以查询不同课程的所有学生

成绩。

实现细节:

学生在登录后可以查看自己的所有课程成绩。

教师可以查看自己教授课程的学生名单及其成绩。

提供成绩的详细视图,包括各种类型的成绩和总评成绩。

支持成绩的搜索、过滤和排序功能,便于用户快速找到所需信息。

(4)界面友好性

目的与需求:系统应提供清嘶、直观且响应迅速的用户界面。

实现细节:

界面设计应简洁明了,操作流程直观,方便月户快速上手。

适应不同设备和屏幕尺寸,提高系统的可用性。

对于常用功能,如成绩查询,提供快速访问路径。

界面元素和布局应考虑到用户体验,确保信息的清晰展示和易用性。界面友

好性:系统应提供直观、易用的用户界面。

二、开发工具及相关技术

1.集成开发环境(IDE)

IntelliJIDEA:作为当前最流行的Java开发IDE之一,IntelliJIDEA提供了强大

的代码辅助功能、智能代码完成、即时代码分析、重构工具等。特别适合用于复

杂项目如本系统的开发。

2.构建工具

Maven:ApacheMaven是一个强大的项目管理工.具,它基于项目对象模型(POM)

的概念。Maven可以帮助我们管理项目的构建、报告和文档,从而简化构建过程。

3.后端框架和技术

SpringBoot:SpringBoot使得创建基于Spring的应用更加快速和简便。它简化

了基于Spring的应用开发,特别是微服务架构。

SpringMVC:作为Spring框架的一部分,SpringMVC框架支持仓犍分层的、模

型-视图-控制器(MVC)架构的Web应用。

MyBatis:MyBatis是•个半ORM(对象关系映射)框架,提供了与数据库交互

的接口,能够将数据库中的数据映射到Java对象。

4.前端技术

HTML/CSS/JavaScript:这些基本的前端技术用于设计和实现用户界面。

Thymeleaf:Thymeleaf是一个现代的服务器端Java模板引擎,特别适用于Web

环境,与Spring框架紧密集成,适用于生成动态HTML内容。

5.数据库技术

MySQL:MySQL是一个流行的开源关系数据库系统,用于存储和管理学生成绩

和相关数据。

H2Database:对于测试环境,使用H2这一轻量级的Java数据库,它支持以嵌

入式和服务器模式运行。

6.版本控制

Git:Git是当前最流行的分布式版本控制系统,对于协同开发和源代码的版本管

理至关重要。

7.测试工具

JUnit:JUnit是Java的单元测试框架,用于编写可重复测试来确保代码的稳定性。

Selenium:Selenium提供了一套工具,用于Web应用程序的自动化测试。

8.代码质量管理

SonarQube:SonarQube是一个用于代码质量管理的平台,它可以检测代码中的

错误、漏洞、代码异味,并提供代码质量报告。

9.持续集成和持续部署(CVCD)

Jenkins:Jenkins是一人开源的自动化服务器,可以用来自动化软件开发的各种

任务,如构建、测试和部署。

Docker:Docker是一个开源的应用容器引擎,可以用于自动化软件部署。

10.项目协作工具

Jira:Jira是一个项目和问题跟踪工具,可以用于管理敏捷软件开发过程。

Confluence:Confluence是一个专业的知识管理和团队协作匚具,通常与Jira配

合使用。

三、实训内容

我负责的是后端开发。

后端开发部分:

1.项目结构概述:

Java源代码(src/main/java)

demo/bean:包含JavaBean,映射数据库表。

demo/config:配置类,包括数据库配置、Web安全配置等。

demo/controller:控制器类,处理请求并返回响应。

demo/interceptor:拦截器代码,用于权限检查、日志记录等。

demo/mapper:MyBatis的Mapper接口,定义数据库交互方法。

demo/service:业务逻辑层,处理具体业务需求。

DemoApplication和Servletinitializer:主启动类和Servlet初始化类。

资源文件(src/main/resources)

perties和application.yml:SpringBool酉口置。

mybatis目录:MyBatis配置文件和映射文件(XML),定义SQL语句和结果映

射。

2.在学生成绩管理系统斗।,bean包中的各个类(Admin,Classes,MyError,Rank,

Resultss,Student,Teacher):

1.Admin

作用:代表系统管理员,负责整个系统的管理和维护。

属性:管理员ID、密码等。

方法:管理员登录验证等。

2.Classes

作用:代表学校中的班级。

属性:班级ID、班级名称、班级描述等。

方法:获取班级信息、编辑班级信息等。

3.MyError

作用:用于表示系统中的错误或异常情况。

属性:错误代码、错误消息等。

方法:根据不同的错误类型返回相应的错误信息。

4.Rank

作用:用于表示学生的排名或成绩等级。

属性:学生ID、科目、分数、排名等。

方法:计算排名、更新排名等。

5.Resultss

作用:存储学生的具体成绩信息。

属性:学生ID、课程ID、成绩等。

方法:录入成绩、查询成绩等。

6.Student

作用:代表一个学生。

属性:学生ID、姓名、性别、出生日期、所在班级等。

方法:获取学生信息、更新学生信息等。

7.Teacher

作用:代表一位教师。

属性:教师ID、姓名、专业、授课课程等。

方法:获取教师信息、更新教师信息等。

这些类被用于与数据库进行交互,以及在不同层次之间传输数据。在Java中,

这些类通常与数据库中的表直接对应,通过ORM(对象关系映射)框架如

Hibernate或MyBatis实现数据的持久化。

2.Config2.配置

MyMvcConfig等配置类。

作用:用于配置SpringMVC和其他应用相关的设置。

实现:Java配置类,使汨向^^行加曲沁口注解标记,可以定义视图解析器、拦截

器等。

4.Controller

包括AdminControllcr,CommonControllcr,StudcntControllcr,TcachcrControllcr等。

作用:处理用户请求,调用相应的服务逻辑,返回响应。

实现:使用©Controller注解的类,包含用@RequestMapping

注解的方法来处理请求。

5.Interceptor

LoginHandlerlnterceptor等拦截器。

作用:在请求处理之前或之后执行特定操作,如身份验证。

实现:实现Handlcrlntcrccptor接口,重写prcHandlc(),postHandlc(),

afterCompletion。等方法。

6.Mapper

包括AdminMapper,ClassMapper,ResultMapper,StudentMapper,TeacherMapper

等。

作用:提供与数据库交互的接口,通常用于MyBatis。

实现:接口,使用MyBatis注解($11©Select)或XML映射文件定义SQL语句。

7.Service

在service/iinpl中实现的服务类,如AdiniiiServiue,ClassSeivice,ResullssSeivice,

StudentService,TeacherServiceo

作用:包含业务逻辑,服务于Controller。

实现:服务类实现服务接口,使用©Service注解.通常包含对Mapper的调用。

8.ApplicationEntryPoint

DemoApplication和Servletlnitializero

作用:应用程序的入口点。

实现:

DemoApplication:使用@SpringBootApplication注解的主类,包含main方法启动

SpringBoot应用。

Servletinitializer:用于部署到Servlet容器的初始化类,扩展

SpringBootServletlnitializero

开发任务:

1.实体类开发(dcmo/bcan):

分析数据库表结构,为每个表创建相应的JavaBeano

确保JavaBean与表结构一致,包括数据类型和字段名称。

2.配置类开发(demo/config):

实现数据库连接配置,确保应用能够与数据库正确交互。

开发Web安全配置,如用户认证和权限管理。

3.控制器开发(demo/controller):

实现API端点,处理前端请求。

集成业务逻辑和数据访问,确保正确的数据流和错误处理。

4.拦截器开发(demo/interccptor):

实现请求拦截,如身份验证和授权。

开发日志记录机制,记录关键操作和异常。

5.数据访问层开发(demo/mapper):

定义数据库操作接口,与MyBatis映射器集成。

编写SQL语句,实现CRUD操作。

6.业务逻辑层开发(demo/service):

实现具体的业务逻辑,如成绩计算、数据校验。

集成数据访问层,提供服务给控制器。

数据库开发:

1.数据库表结构

I),admin...........................................................................................................................................................................................

2).class..........................................................................................................................................................................................

3).result.........................................................................................................................................................................................

4).student.......................................................................................................................................................................................

5).subject.......................................................................................................................................................................................

6).teacher.......................................................................................................................................................................................

1).admin

序号字段说明数据类型长度自增主键允许空默认值

1admin_id管理员idvarchar50XXNULL

2adminnam管理员名称varchar50XXXNULL

e

3admin_pas管理员密码varchar255XXXNULL

s

2).class

序号字段说明数据类型长度自增主键允许空默认值

1class_id班级idvarchar50XXNULL

2class_nam班级名称varchar255XXNULL

e

3).result

序号字段说明数据类型长度自增主键允许空默认值

1resid成绩idintJJXNULL

2stu_id学生idvarchar255XXXNULL

3sub_name课程名称varchar255XXXNULL

4resnum成绩intXXXNULL

5resterm学期varchar255XXXNULL

4).student

序号字段说明数据类型长度自增主键允许空默认值

1stu_id学生idvarchar255XJXNULL

2stuname学生姓名varchar50XXXNULL

3stu_pass学生密码varchar255XXX123

4stu_class学生班级varchar100XXXNULL

5stu_sex学生性别intXXXNULL

6stutele学生电话号码varchar255XXJNULL

5).subject

序号字段说明数据类型长度自增主键允许空默认值

1sub_id班级idvarchar50XXNULL

2sub_name班级名称varchar255XXXNULL

3subterm学期varchar50XXXNULL

6).teacher

序号字段说明数据类型长度自增主键允许空默认值

1tea_id教师idvarchar255XJXNULL

2teaname教师姓名varchar50XXXNULL

3tea_pass教师密码varchar255XXX123

4tea_sex教师性别varchar50XXXNULL

5tea_tele教师电话号码varchar255XXJNULL

2.数据库脚本(sql)

编写SQL脚本,包括数据库创建、表结构定义、初始数据填充。

确保脚本的健壮性和兼容性。

MyBatis映射文件

在src/main/resources/mybatis中定义映射关系和SQL语句。

确保映射文件与JavaBean和数据库表结构一致。

其他相关文件

pom.xml:定义项目构建配置、数据库依赖、后端构建配置。

系统测试:

1.单元测试

为后端代码编写单元测试,包括服务层和数据访问层。

使用JUnit框架,确保代码的可靠性和稳定性。

2.集成测试

测试后端组件与数据库的集成,确保数据流正确。

检查SQL语句和业务逻辑的准确性。

3.功能测试:

测试系统的各项功能,如用户认证、成绩录入、查询等。

确保用户界面的请求得到正确处理和响应。

4.性能测试:

测试系统在不同负载下的性能。

优化数据库查询和应用性能。

5.安全测试:

检查系统的安全性,如SQL注入、权限越界。

确保用户数据的安全和隐私保护。

程序运行结果:

(1)管理员可以添加学生:

20188874227378

姓名

王3

me

计■勤»1*与收木册

ttM

•密。文

1M06B,%乂

(2)管理员可以修改指定学生的信息:

2O18M74MJ78

ns

土皿

M

计■机M寸与情本对R

•*Oft

182068396M

(3)管理员可以删除指定学生的信息:

n«z»flnm3

»uizn)iH4o•MU3HIWVWVM1T4Mn1S3"B

»uins)uui9nV)计awg琼京“IX1MW77TSO3EI1

R”1FJ11U2wiou>HimUTWTiMR1"37mD

20181miliuj•inU3计丽gm本f

20188174227378王a121男ia206a承“

XU001111112MV3计*n中Hfi松寰女19734$69t$8B

■由上一。4567・

F-ffl东由

凭n.w

maim

W0011111UM

215)

归QXW^QMS

J■机弁学与慢求UR

W001111112M2~母mHimuvMftTAM

管理员在添加错误的学生信息时会报错:

iMAA"

W*AMfe

W*

计,机H学与财珊

ttM

逆・人瞰诂q用

老师可以添加指定学生的成绩:

启winAae20200111111234

a・殳零行

aw肉

tM

1^20201

MWT

2W0011HH2M%ie-jwo-1□□

■耍£-ffi■T-5

X,®g©*,5・心・

迎001111112乂

3

90

I20202i1

Q/VZwkt电»中7好&a81”1112乂

,面照竹¥436a

xt*^Aae

ML\,号

X程6«愫

¥♦

W001111112MWWAW2O-2WM

as上一资

bCM®9的•XW®Q©

老师可以删除指定学生的成绩:

・录个人

■W入学叼

AT-IMW1T

20XI01111112J4BWfiW90»2WM□□

当老师添加错误学生信息时会报错:

数期集论

W22-1-2

老师可以查看全年级成绩排行:

<-->00

X.

息Eg®

X.TlSMWlf

上三

1®K1W8itmwnMHItamee

R・■金尊・mn行上1®

a)%IS«Mwtturjmwtsr

启模•的

±上:itBKM*10ts»Wa?CTMa-X

三88M

2OU177U111^itBFJRmutmAK;蹲ifBFWTUtx

±上.

2OUia<3IO2W99:tiMwm酊BWfittsa2gVS第

e6n

2OM177^11W±上:XIMW6&3

xntiMsxueslsItttrMkTStt88

±上:a

2ouinyiiu4门MW0%l»W2xtBrjBltBtt87

xwiKMt±±-76计muw.I5»W'HitmwrMM

三€M6

xntiyjwMrMM5咯乃KWA«i巾itmwrfM酎

±上:n

汴叫皿&uawiHJ%

!.上

M)ii17nJ11US44n力■tw%a6itmrjmM87

上"

2OU17n311V»ifBFJBta76BWW海

K)UWKtf71ifBKWt>7BWAKi87it»rwiww

2OU17n311W2itSKJW73;ITlIlWfM87

三BWSK85

itBtnmnB»Wi91lt.gm87

2OSSJKC4?计w皿乃xtmrjIAMt〃

aOWHUKWn,rj*rw87

老师可以根据班级查看成绩排行:

<-->00kXjKMtWeCVk'Vw4KMe比。〜*ET&»KM断k^N4mr计丽,'假改那

1^20201

计*w学与陵木3”KIMtff«IO7«aiR

IMHSejttt

1ua20!416»310372100•WWttoowoIW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论