Java开发一个学生成绩管理系统【附代码】
目录
- 成绩系统的总体设计
-
- 学生成绩管理系统的详细设计
- 后端实现
- 部分效果图展示
- 源码
成绩系统的总体设计
(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() {}@Overridepublic 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 = newStudent("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/18yJygTEMutRBHvxslL8VsA
提取码:sxk9