目录
1、项目概述 3
1.1 项目的目的和意义 3
1.2 现状分析 3
2、主要业务流程分析 3
3、需求分析 3
4、系统功能设计 3
5、系统UI设计 3
6、系统数据库设计 3
7、系统体系结构设计 4
8、统一接口设计 4
9、其它需要说明的设计要点 4
10、详细设计与成果 4
11、项目体会 4
2、主要业务流程分析
成绩管理系统可以输入课程和成绩数据,并可以完成添加、修改、删除等查询,并根据各种条件基本满足师生的需要。成绩管理系统主要包括学生的基本信息、年龄、电话等方面的信息,内容比较简单。成绩管理系统主要用于学生成绩信息的输入,具有课程注册、成绩查询、学生信息注册等功能。一般来说,它具有编辑、查询、学生成绩管理等功能。
学生端登陆该系统后,进入个人信息页面可以查看自己的个人信息,进入课程管理页面可以对已选课程的课程成绩查询,显示其学号、科目名称和成绩,进入课程论坛页面可以进入现有话题查看和跟帖,也可以创建新的讨论话题。
教师端登录系统后可以进入个人信息页面可以查看自己的个人信息,还可以先选择已开放课程,之后进行成绩录入、成绩修改、成绩查询、成绩分析、删除课程的操作,也可以增加新开放的课程。成绩录入先选择需要录入的人数,再添加其学号与成绩。成绩修改先输入需要修改的成绩的学生学号进行查询,然后输入其姓名,科目,任课教师,成绩,然后提交修改。成绩查询可查询已选此门课程的学生的学号、姓名和成绩。成绩分析可以选择分数比例分析图查看饼状统计图,或者选择分段人数分析图查看条状统计图。删除课程就会删除此门开放课程。本文转载自http://www.biyezuopin.vip/onews.asp?id=15280
3、需求分析
功能需求:
(1)成绩管理系统可以提供一个完善的登陆界面,使学生或教师都可以通过此窗口登陆。
(2)成绩管理系统可以提供完善的学生信息和课程信息管理界面,学生或管理员可以查看和管理学生信息与课程信息。
(3)成绩管理系统可以提供完善的课程信息管理界面,教师或管理员可以查看和管理课程信息,进行成绩录入、成绩修改、成绩查询、成绩分析。
(4)成绩管理系统有一个后端管理页面,可以作为管理员登陆查看与修改学生信息,教师信息,课程信息和论坛信息。
非功能需求:
(1)登陆时采用的用户名 和密码都采用MD5算法保护,再存入数据库存储。
(2)该系统能够在android4.0.13以上版本的安卓系统上正常运行。
package org.shop.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.shop.pojo.Student;
import org.shop.pojo.Teacher;
import org.shop.service.StudentService;
import org.shop.service.TeacherService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import net.sf.json.JSONObject;
import tool.Md5;
@Controller
public class LoginController {
@Autowired
private StudentService ss;
@Autowired
private TeacherService ts;
//Android
@RequestMapping(value="login")
public void doLogin(HttpServletRequest request,HttpServletResponse response)
{
response.setContentType("text/html;charset=utf-8");
try {
request.setCharacterEncoding("utf-8");
} catch (UnsupportedEncodingException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
response.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String password = request.getParameter("password");
//System.out.println(id+" "+password);
long num = Long.parseLong(id);
long stuMin = 1000000000L;
long stuMax = 9999999999L;
//老师的登录
if(num>=10000000&&num<=99999999)
{
//System.out.println("进入老师");
List teachers = new ArrayList<>();
try{
teachers = ts.queryById(id);
}catch(Exception e)
{
e.printStackTrace();
}
boolean flag = false;
if(teachers.isEmpty())
{
flag =false;
// System.out.println("没有查到数据");
}
else{
Teacher teacher = teachers.get(0);
// System.out.println(teacher.toString());
if(teacher.getPassword().equals(password))
{
flag = true;
}
}
JSONObject object = new JSONObject();
if(flag)
{
object.put("status",true);
object.put("msg","login success");
}else{
object.put("status",false);
object.put("msg","login fail!");
}
try{
PrintWriter write = response.getWriter();
write.print(object);
}catch(IOException e){
e.printStackTrace();
}
return ;
}
//学生的登录
else if(num>=stuMin&&num=10000000&&num<=99999999)
{
System.out.println("进入老师");
List teachers = ts.queryById(id);
JSONObject object = new JSONObject();
if(teachers.isEmpty())
{
object.put("status", false);
object.put("msg", "No such teacher of this id!");
}
else if(teachers.size()>=2){
object.put("status", false);
object.put("msg", "Too many teachers of the same id!");
}
else{
Teacher teacher = teachers.get(0);
System.out.println("pw"+password);
ts.modifyTeacher(id, password, teacher.getName(), teacher.getPhonenum());
object.put("status", true);
object.put("msg", "The teacher's password is modified successfully!");
}
PrintWriter writer;
try {
writer = response.getWriter();
writer.print(object);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ;
}
//学生的登录
else if(num>=stuMin&&num 
























