Java开发一个学生成绩管理系统【附代码】

发布于:2023-07-04 ⋅ 阅读:(102) ⋅ 点赞:(0)

成绩系统的总体设计

(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 {

    /**
     * 注册用户
     *
     * @param user
     */
    public void registerUser(User user);

    /**
     * 登录
     * @param user
     * @return
     */
    public User login(User user);

    /**
     * 用户名是否已经存在
     * @param username
     * @return
     */
    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(null,"lwt","123456","lwt123456@qq.com"));
        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());
    }

}

部分效果图展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源码

链接:https://pan.baidu.com/s/138SIml8vSOxCmAU-bFmK4A
提取码:hs85

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到