目录
成绩系统的总体设计
(1)成绩系统环境要求
1.搭建java开发环境并配置JDK、安装Intellij IDEA、Navicat、mysql等工具。
2.搭建本地服务器tomcat和web后台网站,用于连接网络和前后端数据交互。
(2)成绩系统功能及模块图
学生成绩管理系统具体前端实现和功能为:
一、前端:1.HTML主页面:显示系统背景、显示系统增删改查的各个功能按键。2.登录页面:输入账号密码进入系统;同时也可注册账号。
二、后端:1.逻辑层:实体层、dao层、service层、用户类实现后端基本功能;web层中包含servlet技术,用于向前端发送请求;测试类通过引入junit.jar包进行单元测试。2.数据库:存储学生个人信息和成绩信息,管理员账号与密码。
3.severlet:接受前端传入数据,与数据库中数据作匹配服务器管理系统,实现前端功能。
成绩管理系统整体的功能结构图如图2-1所示:

图2-1 窗口化图形界面
学生成绩管理系统的详细设计
(1)成绩管理系统总体功能展示如图2-2所示:

图2-2 总体功能展示图
后端实现
我主要负责设计实体类、dao层、service层、测试类的实现以及数据库的创建和连接,代码如下:
(1)实体类
package indi.huishi.pojo;
public class Student {
private String no;
private String name;
private Float score;
private Integer className;
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Float getScore() {
return score;
}
public void setScore(Float score) {
this.score = score;
}
public Integer getClassName() {
return className;
}
public void setClassName(Integer className) {
this.className = className;
}
public Student(String no, String name, Float score, Integer className) {
this.no = no;
this.name = name;
this.score = score;
this.className = className;
}
public Student() {
}
@Override
public String toString() {
return "Student{" +
"no='" + no + '\'' +
", name='" + name + '\'' +
", score=" + score +
", className=" + className +
'}';
}
}
package indi.huishi.pojo;
public class User {
private Integer id;
private String username;
private String password;
private String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", email='" + email + '\'' +
'}';
}
public User(Integer id, String username, String password, String email) {
this.id = id;
this.username = username;
this.password = password;
this.email = email;
}
public User() {
}
}
(2)Dao层
package indi.huishi.dao;
import indi.huishi.pojo.Student;
import java.util.List;
import java.util.Map;
public interface StudentDao {
int addStu(Student student);
int updateStu(Student student);
int deleteStu(String no);
Student queryByName(String name);
Student queryByNo(String no);
List<Student> sort();
List<Map<String,Object>> statistics();
}
package indi.huishi.dao;
import indi.huishi.pojo.User;
public interface UserDao {
public User queryUserByUsername(String username);
public User queryUserByUsernameAndPassword(String username, String password);
public int saveUser(User user);
}
(3)Service层
package indi.huishi.service;
import indi.huishi.pojo.Student;
import java.util.List;
import java.util.Map;
public interface StudentService {
public int add(Student student);
public int update(Student student);
public int delete(String no);
public Student queryNo(String no);
public Student queryName(String name);
public List<Student> sort();
public List<Map<String,Object>> statistics();
}
package indi.huishi.service;
import indi.huishi.pojo.User;
public interface UserService {
public void registerUser(User user);
public User login(User user);
public boolean existsUsername(String username);
}
(4)测试类
package indi.huishi.test;
import indi.huishi.utils.JdbcUtils;
import org.junit.Test;
import java.sql.Connection;
public class JdbcUtilsTest {
@Test
public void testJdbc() throws Exception {
for(int i=0; i<20; i++){
Connection connection = JdbcUtils.getConnection();
System.out.println(connection);
JdbcUtils.close(connection);
}
System.out.println("开始");
}
}
package indi.huishi.test;
import indi.huishi.dao.StudentDao;
import indi.huishi.dao.impl.StudentDaoImpl;
import indi.huishi.pojo.Student;
import org.junit.Test;
import java.util.List;
import java.util.Map;
import static java.lang.System.out;
public class StudentDaoTest {
StudentDao studentDao = new StudentDaoImpl();
@Test
public void test(){
Student student = new
Student("101","zxy",Float.parseFloat("88"),190611);
int res = studentDao.addStu(student);
out.println(res);
}
@Test
public void testStatistics(){
List<Map<String,Object>> statistics = studentDao.statistics();
out.println(statistics);
}
}
package indi.huishi.test;
import indi.huishi.dao.UserDao;
import indi.huishi.dao.impl.UserDaoImpl;
import indi.huishi.pojo.User;
import org.junit.Test;
public class UserDaoTest {
UserDao userDao = new UserDaoImpl();
@Test
public void queryUserByUsername(){
User user = userDao.queryUserByUsername("hyh");
System.out.println(user.toString());
if(user==null){
System.out.println("用户名不存在");
}else{
System.out.println("用户名已经存在");
}
}
@Test
public void queryUserByUsernameAndPassword(){
User user = userDao.queryUserByUsernameAndPassword("hyh","123");
System.out.println(user.toString());
if(user==null){
System.out.println("用户名密码不正确");
}else{
System.out.println("查询成功");
}
}
@Test
public void saveUser(){
User user = new User(4,"indi/huishi","1230","1230");
int result = userDao.saveUser(user);
System.out.println(result==1?"添加成功":"添加失败");
}
}
package indi.huishi.test;
import indi.huishi.pojo.User;
import indi.huishi.service.UserService;
import indi.huishi.service.impl.UserServiceImpl;
import org.junit.Test;
public class UserServiceTest {
UserService userService = new UserServiceImpl();
@Test
public void registerUser(){
userService.registerUser(new User(2, "lwt","123456","1234"));
}
@Test
public void login(){
User user1 = userService.login(new User(2,"lwt","123456","1234"));
System.out.println(user1.toString());
}
}
部分效果图展示



源码
链接:
提取码:hs85
(编辑:威海站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|