基于JSP实现的学生成绩管理系统
1 引言
1,1 任务简介
多用户管理:用户分管理员,学生
网页界面设计:利用HTML和CSS实现客户端前台设计
类间关系的设计
基于JSP实现的学生成绩管理系统
1 引言
1.1 任务简介
-
多用户管理:用户分管理员,学生
-
网页界面设计:利用HTML和CSS实现客户端前台设计
-
类间关系的设计、数据库表格设计
-
数据库数据的增(录入)、删、改、查等基本功能
-
JSP中Requests Response内置对象的使用;
-
数据库表格结构的生成(SQL脚本)
-
前台JS校验设计
-
DOM技术实现
-
其他扩展功能
-
开发环境与技术:IDEA、Java 语言、JDK 1.7、MySQL 6.0
1.2 需求分析
本学生成绩管理系统分为管理员登录,学生登录,其中管理员可以实现增加学生成绩信息,删除学生成绩信息,修改学生成绩信息,查找学生成绩信息,按照学生GPA进行排名,其中学生可以实现登录查询成绩功能,能否成功登录取决于数据库中是否有该学生。
2可行性分析
2.1 社会可行性分析
成绩是每一个大学生都会接触到的东西,不仅学生为之心动,为了管理学生的成绩,如果不用计算机来实现,老师们也会感觉很头疼麻烦,开发学生成绩管理系统后,让学生的成绩管理变的更加方便,学生也可以实现自助查询成绩功能,老师们也可以对学生成绩进行排名等。
2.2 经济可行性分析
该系统的开发调查主要是需要软件,这些软件都是免费的。主要的花销在于服务器的维护,除此之外没有其他的花销。
2.3 法律可行性分析
系统开发及维护所使用工具和技术及数据信息不违反法律。
3系统设计
3.1 系统功能设计
学生成绩管理系统具备以下功能:管理员学生分权限登录,增加学生成绩信息,删除学生成绩信息,修改学生成绩信息,查询学生成绩,按照学生GPA进行排名。
-
分权限登录
:系统分为管理员和学生用户两个权限,因为管理员就一个,所以账号秘密固定,但是学生有很多,所以在学生登录的过程中要对数据库中的学生进行查询,如果存在,而且密码正确,才能成功登录
-
增加学生成绩
:该功能可以将学生的姓名,学号,一系列成绩,登录密码等信息录入系
统
-
删除学生成绩
:该功能可以将学生的信息全部列举出来,然后选择想要删除的学生的信
息
-
修改学生成绩
:该功能可以将学生的所有信息全部列举出来,然后再选择想要修改的学生的信息,然后弹出一个修改框,再做仔细的修改
-
查询学生成绩信息
:该功能可以在输入学号后显示出学生的各项成绩信息
-
按照学生GPA进行排名
:该功能可以将所有学生按照GPA进行排名,并显示出来
3.2 算法流程设计
根据需求分析,将本系统分为以下模块,模块图如下:
4 关键技术及代码实现
4.1 基本功能
4.1.1 Web前端设计与实现
4.1.1.1 HTML关键技术及应用
include file技术
```html
学生成绩管理系统
<%@ include file="include_head_JSP2.jsp"%>
```
Bootstrap 框架技术
```html
<%@page contentType= "text/html; charset=UTF-8" language= "java" errorPage=""%> <!DOCTYPE html>
```
4.1.1.2 CSS关键技术及应用
Bootstrap.css技术
大量运用Boostrap前段框架中的CSS样式,美化登录界面,表格,按钮。
响应式表格:
```html
```
美化按钮:
```html
返回
```
### 4.1.1.3 JS校验设计及应用
**登录界面的校验**
```javascript
```
**往数据库写⼊数据的检验 **
```javascript
function checkform()
{
//验证输⼊数据的合法性
if (form1.id.value==””)
{
alert(” 学号不能为空。”);
return false;
}
if (isNaN(form1.id.value))
{
alert(” 学号只能为数字”);
return false;
}
if (form1.name.value==””)
{
alert(” 姓名不能为空。”);
return false;
}
if (form1.cppstring.value==””)
{
alert(”C++ 成绩不能为空。”);
return false;
}
if (isNaN(form1.cppstring.value))
{
alert(”C++ 成绩只能为数字”);
return false;
}
else
{
var num=parseFloat(form1.cppstring.value);
if (num<0||num>100)
{
alert(”C++ 成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.cirstring.value==””)
{
alert(” 电路成绩不能为空。”);
return false;
}
if (isNaN(form1.cirstring.value))
{
alert(” 电路成绩只能为数字”);
return false;
}
else
{
var num=parseFloat(form1.cirstring.value);
if (num<0||num>100)
{
alert(” 电路成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.Ewritestring.value==””)
{
alert(” 英语读写成绩不能为空。”);
return false;
}
if (isNaN(form1.Ewritestring.value))
{
alert(” 英语读写成绩只能为数字”);
return false;
}
else
{
var num=parseFloat(form1.Ewritestring.value);
if (num<0||num>100)
{
alert(” 英语读写成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.Elistenstring.value==””)
{
alert(” 英语听说成绩不能为空。”);
return false;
}
if (isNaN(form1.Elistenstring.value))
{
alert(” 英语听说成绩只能为数字”);
return false;
}
else
{
var num=parseFloat(form1.Elistenstring.value);
if (num<0||num>100)
{
alert(” 英语听说成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.physicsstring.value==””)
{
alert(” ⼤学物理成绩不能为空。”);
return false;
}
if (isNaN(form1.physicsstring.value))
{
alert(” ⼤学物理成绩只能为数字”);
return false;
}
else
{
var num=parseFloat(form1.physicstring.value);
if (num<0||num>100)
{
alert(” ⼤学物理成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.prostring.value==””)
{
alert(” 概率论成绩不能为空。”);
return false;
}
if (isNaN(form1.prostring.value))
{
alert(” 概率论成绩只能为数字”);
return false;
}
else
{
var num=parseFloat(form1.prostring.value);
if (num<0||num>100)
{
alert(” 概率论成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.hisstring.value==””)
{
alert(” 近代史成绩不能为空。”);
return false;
}
if (isNaN(form1.hisstring.value))
{
alert(” 近代史成绩只能为数字”);
return false;
}
else {
var num=parseFloat(form1.hisstring.value);
if (num<0||num>100)
{
alert(” 近代史成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.xingzhengstring.value==””)
{
alert(” 形势与政策成绩不能为空。”);
return false;
}
if(isNaN(form1.xingzhengstring.value))
{
alert(” 形势与政策成绩只能为数字”);
return false;
}
else
{
var num=parseFloat(form1.xingzhengstring.value);
if (num<0||num>100)
{
alert(” 形势与政策成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.pestring.value==””)
{
alert(” 体育成绩不能为空。”);
return false;
}
if (isNaN(form1.pestring.value))
{
alert(” 体育成绩只能为数字”);
return false;
}
else
{
var num=parseFloat(form1.pestring.value);
if (num<0||num>100)
{
alert(” 体育成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.discretestring.value==””)
{
alert(” 离散数学成绩不能为空。”);
return false;
}
if (isNaN(form1.discretestring.value))
{
alert(” 离散数学成绩只能为数字”);
return false;
}
else
{
var num=parseFloat(form1.discretestring.value);
if (num<0||num>100)
{
alert(” 离散数学成绩必须在 0-100 之间!”);
return false;
}
}
if (form1.rank.value==””)
{
alert(” 查询密码成绩不能为空。”);
return false;
}
if (form1.rank.value.length<1||form1.rank.value.length>20)
{
alert(” 密码超出了范围(1 ~ 20)”);
return false;
}
}
```
#### 4.1.1.4 DOM 关键技术及应用
DOM 实际上是以面向对象方式描述的文档模型。DOM 定义了表⽰和修改⽂档所需的对象、这些对象的⾏为和属性以及这些对象之间的关系。可以把 DOM 认为是页面上数据和结构的一个树形表示,不过页面当然可能并不是以这种树的方式具体实现。 通过 JavaScript,您可以重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的项目。 例如使用 Dom 技术来进⾏ Js 校验:
```javascript
```
### 4.1.2 Web 后台设计及实现
本学生管理系统后台设计使用了 Java 脚本,Java servlet 过滤器,以及 Java 数据库技术等。
#### 4.1.2.1 数据库设计及 SQL 脚本生成
**数据库脚本**
```sql
CREATE TABLE ‘grade‘ (
‘id‘ varchar(30) NOT NULL,
‘name‘ varchar(30) NOT NULL,
‘cpp‘ varchar(30) NOT NULL,
‘circuit‘ varchar(30) NOT NULL,
‘Ewrite‘ varchar(30) NOT NULL,
‘Elisten‘ varchar(30) NOT NULL,
‘physics‘ varchar(30) NOT NULL,
‘probability‘ varchar(30) NOT NULL,
‘history‘ varchar(30) NOT NULL,
‘xingzheng‘ varchar(30) NOT NULL,
‘pe‘ varchar(30) NOT NULL,
‘discrete‘ varchar(30) NOT NULL,
‘overall‘ varchar(30) DEFAULT ’0’,
‘gpa‘ varchar(30) DEFAULT ’0’,
‘rank‘ varchar(30) DEFAULT ’0’
)
```
#### 4.1.2.2 增删改查功能实现
**增加学生成绩信息**
```java
String idstring=ChangeEncoding(request.getParameter(”id”).trim());
String namestring=ChangeEncoding(request.getParameter(”name”).trim());
String cppstring=request.getParameter(”cppstring”);
String cirstring=request.getParameter(”cirstring”);
String Ewritestring=request.getParameter(”Ewritestring”);
String Elistenstring=request.getParameter(”Elistenstring”);
String physicsstring=request.getParameter(”physicsstring”);
String prostring=request.getParameter(”prostring”);
String hisstring=request.getParameter(”hisstring”);
String xingzhengstring=request.getParameter(”xingzhengstring”);
String pestring=request.getParameter(”pestring”);
String discretestring=request.getParameter(”discretestring”);
String overallstring=getOvarall(cppstring,cirstring,Ewritestring,Elistenstring, physicsstring,prostring,hisstring,xingzhengstring,pestring,discretestring); String gpastring=getGPA(cppstring,cirstring,Ewritestring,Elistenstring, physicsstring,prostring,hisstring,xingzhengstring,pestring,discretestring); String rankstring=request.getParameter(”rank”);
//构造 SQL 语句
Stringsql=”insertintograde(id,name,cpp,circuit,Ewrite,Elisten,physics,probability,history,xingzheng”+”,pe,discrete,overall,gpa,rank)”+”VALUES(’”+idstring+”’,’”+namestring+”’,’”+cppstring+”’,’”+cirstring+”’,’”+Ewritestring+”’,’”+Elistenstring+”’,’”+physicsstring+”’,’”+prostring+”’,’”+hisstring+”’,’”+xingzhengstring+”’,’”+pestring+”’,’”+discretestring+”’,’”+overallstring+”’,’”+gpastring+”’,’”+rankstring+”’)”;
String DBDRIVER = ”org.gjt.mm.mysql.Driver” ;
// 定义 MySQL 数据库的连接地址
String DBURL = ”jdbc:mysql://localhost:3306/student”;
// MySQL 数据库的连接⽤户名
String DBUSER = ”root” ;
// MySQL 数据库的连接密码
String DBPASS = ”xzk520521”;
try {
Class.forName(DBDRIVER).newInstance();
}
catch (ClassNotFoundException e) {
out.print(” 错误”); e.printStackTrace();
}
try {
Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASS);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
out.print(”
”);
out.println(”
”+” 向数据库增加学⽣信息”+”
”);
out.println(”
”+” 该学⽣信息数据已经成功添加到数据库。”+”
”);
out.print(”
”);
stmt.close();
conn.close();
}
catch(SQLException e) {
out.print(” 错误”);
e.printStackTrace();
}
```
**删除学生成绩**
```java
String DBDRIVER = ”org.gjt.mm.mysql.Driver” ;
// 定义 MySQL 数据库的连接地址
String DBURL = ”jdbc:mysql://localhost:3306/student”;
// MySQL 数据库的连接⽤户名
String DBUSER = ”root” ;
// MySQL 数据库的连接密码
String DBPASS = ”xzk520521”;
String id=codeToString(request.getParameter(”id”).trim());
//构造 SQL 语句
String sql=”delete from grade where id=’”+id+”’”;
try {
Class.forName(DBDRIVER).newInstance();
}
catch (ClassNotFoundException e) {
out.print(” 错误”);
e.printStackTrace();
}
try{
Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASS);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
out.print(”
”);
out.println(”
”+” 向数据库删除学⽣信息数据”+”
”);
out.println(”
”+”学号为:”+id+”的学⽣数据信息已经被成功删除。”+”
”);
out.print(”
”);
stmt.close();
conn.close();
}
catch(SQLException e) {
out.print(” 错误”);
e.printStackTrace();
}
```
**查找学生成绩信息**
```java
String DBDRIVER = ”org.gjt.mm.mysql.Driver” ;
// 定义 MySQL 数据库的连接地址
String DBURL = ”jdbc:mysql://localhost:3306/student” ;
// MySQL 数据库的连接⽤户名
String DBUSER = ”root” ;
// MySQL 数据库的连接密码
String DBPASS = ”xzk520521”;
String id=request.getParameter(”id”);
String sql=”select * from grade where id=’”+id+”’”;
//设置查询 SQL 语句
try {
Class.forName(DBDRIVER).newInstance();
}
catch (ClassNotFoundException e) {
out.print(” 错误”);
e.printStackTrace();
}
try {
Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASS);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
if(!rs.next()) {
out.print(”
”);
out.println(”
”+”该学⽣尚未录⼊系统,请前去录⼊!”+”
”);
}
else{
dec.idField.setText(rs.getString(”id”));
dec.nameField.setText(rs.getString(”name”));
dec.cppField.setText(rs.getString(”cpp”));
dec.cirField.setText(rs.getString(”circuit”));
dec.EwriteField.setText(rs.getString(”Ewrite”));
dec.ElistenField.setText(rs.getString(”Elisten”));
dec.phyField.setText(rs.getString(”physics”));
dec.proField.setText(rs.getString(”probability”));
dec.historyField.setText(rs.getString(”history”));
dec.xingzhengField.setText(rs.getString(”xingzheng”));
dec.peField.setText(rs.getString(”pe”));
dec.discreteField.setText(rs.getString(”discrete”));
dec.overallField.setText(rs.getString(”overall”));
dec.gpaField.setText(rs.getString(”gpa”));
}
rs.close();
stmt.close();
conn.close();
}
catch (SQLException e) {
e.printStackTrace();
}
```
**修改学生成绩信息**
```java
String idstring=ChangeEncoding(request.getParameter(”id”).trim());
String namestring=ChangeEncoding(request.getParameter(”name”).trim());
String cppstring=request.getParameter(”cpp”);
String cirstring=request.getParameter(”circuit”);
String Ewritestring=request.getParameter(”Ewrite”);
String Elistenstring=request.getParameter(”Elisten”);
String physicsstring=request.getParameter(”physics”);
String prostring=request.getParameter(”probability”);
String hisstring=request.getParameter(”history”);
String xingzhengstring=request.getParameter(”xingzheng”);
String pestring=request.getParameter(”pe”);
String discretestring=request.getParameter(”discrete”);
Stringoverallstring=getOvarall(cppstring,cirstring,Ewritestring,Elistenstring,physicsstring,prostring,hisstring,xingzhengstring,pestring,discretestring);
Stringgpastring=getGPA(cppstring,cirstring,Ewritestring,Elistenstring,physicsstring,prostring,hisstring,xingzhengstring,pestring,discretestring);
String rankstring=request.getParameter(”rank”);
String DBDRIVER = ”org.gjt.mm.mysql.Driver” ;
// 定义 MySQL 数据库的连接地址
String DBURL = ”jdbc:mysql://localhost:3306/student” ;
// MySQL 数据库的连接⽤户名
String DBUSER = ”root” ;
// MySQL 数据库的连接密码
String DBPASS = ”xzk520521”;
String id=ChangeEncoding(request.getParameter(”id”).trim());
//构造 SQL 语句
Stringsql=”updategradesetid=’”+idstring+”’,name=’”+namestring+”’,cpp=’”+cppstring+”’,circuit=’”+cirstring+”’,Ewrite=’”+Ewritestring+”’,Elisten=’”+Elistenstring+”’,physics=’”+physicsstring+”’,probability=’”+prostring+”’,history=’”+hisstring+ ”’,xingzheng=’”+xingzhengstring+”’,pe=’”+pestring+”’,discrete=’”+discretestring+”’,overall=’”+overallstring+”’,gpa=’”+ gpastring+”’,rank=’”+ rankstring+”’where id=’”+id+”’”;
try {
Class.forName(DBDRIVER).newInstance();
}
catch (ClassNotFoundException e) {
out.print(” 错误”);
e.printStackTrace();
}
try {
Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASS);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
out.print(”
”);
out.println(”
”+” 向数据库修改学⽣信息数据”+”
”); out.println(”
”+”学号为:”+id+”的学⽣数据信息已经被成功修改。”+”
”);
out.print(”
”);
stmt.close();
conn.close();
}
catch(SQLException e) {
out.print(” 错误”);
e.printStackTrace();
}
```
**显⽰——按照学⽣的 GPA 进⾏排名并打印**
```javascript
<% String DBDRIVER = ”org.gjt.mm.mysql.Driver” ;
// 定义 MySQL 数据库的连接地址
String DBURL = ”jdbc:mysql://localhost:3306/student” ;
// MySQL 数据库的连接⽤户名
String DBUSER = ”root” ;
// MySQL 数据库的连接密码
String DBPASS = ”xzk520521”;
int realrank=1;
String sql=”select * from grade ORDER BY gpa DESC”;
//设置查询 SQL 语句
try {
Class.forName(DBDRIVER).newInstance();
}
catch (ClassNotFoundException e) {
out.print(” 错误”);
e.printStackTrace();
}
try {
Connection conn=DriverManager.getConnection(DBURL, DBUSER, DBPASS);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
%>
学⽣成绩 GPA 排名表
学号
|
姓名
|
C++ 成绩
|
电路成绩
|
英语读写
|
英语听说
|
⼤学物理
|
概率论
|
近代史
|
形势与政策
|
体育
|
离散数学
|
总分
|
GPA
|
排名
|
<%
while (rs.next()){
//获取学⽣数据表中的记录
%>
<%=rs.getString(”id”)%>
|
<%=rs.getString(”name”)%>
|
<%=rs.getString(”cpp”)%>
|
<%=rs.getString(”circuit”)%>
|
<%=rs.getString(”Ewrite”)%>
|
<%=rs.getString(”Elisten”)%>
|
<%=rs.getString(”physics”)%>
|
<%=rs.getString(”probability”)%>
|
<%=rs.getString(”history”)%>
|
<%=rs.getString(”xingzheng”)%>
|
<%=rs.getString(”pe”)%>
|
<%=rs.getString(”discrete”)%>
|
<%=rs.getString(”overall”)%>
|
<%=rs.getString(”gpa”)%>
|
<%=realrank++%>
|
<%
}
rs.close();
stmt.close();
conn.close();
}
catch (SQLException e){
e.printStackTrace();
}
%>
```
### 4.1.3 Java-Serviet设计与实现
Java-Serviet技术主要用于过滤器的实现,过滤器就是不能再未登录的情况下直接用URL 地址访问操作界面,用Java-Serviet技术实现如下:
**userLoginCheckFilter.java**
```java
package mywebapp;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class userLoginCheckFilter implements Filter {
public static final Stringloginpage = ”index.jsp”;
public void destroy(){
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;
String currentURL = request.getRequestURI();
String ctxPath = request.getContextPath();
//除掉项⽬名称时访问页⾯当前路径
String targetURL = currentURL.substring(ctxPath.length());
System.out.println(targetURL);
List
info = new ArrayList
();
HttpSession session = request.getSession(false);
//对当前页⾯进⾏判断,如果当前页⾯不为登录页⾯
if(!((”/index.jsp”.equals(targetURL)) ||
(”/selectLogin.jsp”.equals(targetURL)) ||
(”/studentLogin.jsp”.equals(targetURL)))){
//在不为登陆页⾯时,再进⾏判断,如果不是登陆页⾯也没有 session 则跳转到登录页⾯
if(session == null || session.getAttribute(”admin”) == null){
info.add(”You are not logged in!”);
request.setAttribute(”info”,info);
request.getRequestDispatcher(loginpage).forward(request,response);
return;
}
else{
//这⾥表⽰正确,会去寻找下⼀个链,如果不存在,则进⾏正常的页⾯跳转
filterChain.doFilter(request, response);
return;
}
}
else{
//这⾥表⽰如果当前页⾯是登陆页⾯,跳转到登陆页⾯
try{
filterChain.doFilter(request, response);
}
catch (Exception e){
throw e;
}
return;
}
}
public void init(FilterConfig filterConfig)throws ServletException{
}
}
```
**web.xml ⽂件 **
```xml
userLoginCheckFilter
mywebapp.userLoginCheckFilter
userLoginCheckFilter
*.jsp
```
### 4.1.4 JSP内置对象的使用
本成绩管理系统用了4种JSP内置对象,分别是Request、Response、Out、Session。下面分别列出:
#### 4.1.4.1 Request
```java
String idstring=ChangeEncoding(request.getParameter(”id”).trim());
String namestring=ChangeEncoding(request.getParameter(”name”).trim());
String cppstring=request.getParameter(”cpp”);
String cirstring=request.getParameter(”circuit”);
String Ewritestring=request.getParameter(”Ewrite”);
String Elistenstring=request.getParameter(”Elisten”);
String physicsstring=request.getParameter(”physics”);
String prostring=request.getParameter(”probability”);
String hisstring=request.getParameter(”history”);
String xingzhengstring=request.getParameter(”xingzheng”);
String pestring=request.getParameter(”pe”);
String discretestring=request.getParameter(”discrete”);
```
#### 4.1.4.2 Response
```java
response.sendRedirect(”teacharMenu.jsp”);
```
#### 4.1.4.3 Out
```java
out.print(”
”);
out.println(”
”+” 管理员⽤户或密码错误”+”
”);
```
#### 4.1.4.4 Session
```java
session.setAttribute(”teacherName”,name); session.setAttribute(”teacherPassword”,password);
String user=(String)session.getAttribute(”teacherName”);
String pwd=(String)session.getAttribute(”teacherPassword”);
```
### 4.1.5 多用户管理设计与实现
首先进入系统时出现选择用户,如果选择管理员需要知道管理员账号密码,如果选择学生, 需要该学生的学号在数据库中而且密码正确。
# 5 系统演示
**登录**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c0b30c8c4dff7f7e84cd1937522d4232.writebug)
**增加**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/664fdfe98147163226c93a66305c560a.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/8b7efb3a1581e1e25854763219094e79.writebug)
**删除**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/002cfe3166fe6e8ecf4a0e82dc846cd9.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/91d624d17083de43d91ad5ae073acd53.writebug)
**查找**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/697db44107bf3f405b47089b61e77177.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/1e5b0e76459b957605f1c37ff143a1c9.writebug)
**修改**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/b33f7498faf204211740152cd2699cbd.writebug)
**排名**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/d4cf3aaa29cdf0da9445c618b4788835.writebug)
# 6 总结
## 6.1 系统缺陷与不足
- 系统运用的查找算法都是暴力算法,如果面对很多数据的话,系统运行会缓慢,可以运用二分查找算法或者改变存储的数据结构进行优化
- 系统编码不够灵活,编码转换方面容易产生乱码
## 6.2 系统可扩展功能
- 增加选课功能
- 增加多个管理员功能
- 增加学生自助修改密码功能
- 增加一系列功能做成教务系统
参考文献
- 基于B/S结构的学生成绩管理系统的设计与实现(吉林大学·印明阳)
- 基于SSH技术的中学学生成绩信息管理系统的设计与实现(电子科技大学·徐国华)
- 基于JSP的高中学生事务管理系统的设计与实现(电子科技大学·陈梅)
- 学生管理信息系统的设计与实现(华南理工大学·刘珂)
- 基于J2EE的高校学生基本信息分布式系统的设计(中国海洋大学·冯川)
- 高职院校学生成绩管理系统的设计与实现(湖北工业大学·倪玲玲)
- 基于Struts的hibernate的课程及成绩管理系统的设计与实现(吉林大学·李晶)
- 基于Internet的学生信息管理系统——学生成绩管理系统(电子科技大学·游应德)
- 基于SSH技术的中学学生成绩信息管理系统的设计与实现(电子科技大学·徐国华)
- 基于JSP技术的毕业生信息管理系统的设计与实现(吉林大学·孙佳帝)
- 基于Struts的hibernate的课程及成绩管理系统的设计与实现(吉林大学·李晶)
- 基于J2EE的学生信息管理系统(电子科技大学·钟海琴)
- 基于WEB的教务管理成绩查询系统的设计与实现(西北大学·王安福)
- 基于J2EE的成绩管理信息系统设计与实现(电子科技大学·曹丹凤)
- 基于B/S架构的网上学分制管理系统的设计与实现(中国海洋大学·李玉臣)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计货栈
,原文地址:https://bishedaima.com/yuanma/35208.html