21xrx.com
2024-11-05 19:38:41 Tuesday
登录
文章检索 我的文章 写文章
Java课程设计实验报告 - 学生成绩管理系统
2023-06-17 00:04:38 深夜i     --     --
Java语言 学生成绩管理系统 表现层 业务逻辑层 数据访问层 设计思路 主要功

本报告旨在介绍一个基于Java语言开发的学生成绩管理系统。该系统可以实现学生的信息录入、成绩的管理、统计及分析等功能。下面将详细介绍该系统的设计思路、主要功能及实现代码。

1. 系统设计

本系统采用三层架构:表现层、业务逻辑层和数据访问层。其中,表现层主要负责用户界面的展示;业务逻辑层主要负责数据的处理和业务流程的控制;数据访问层主要负责与数据库的交互。架构图如下所示:

![系统架构图](system_architecture.png)

2. 主要功能

- 学生信息录入

- 学生成绩录入

- 学生成绩查询

- 学生成绩统计

- 学生信息修改

- 学生成绩修改

- 学生信息删除

- 学生成绩删除

3. 实现代码

1)学生信息录入


public void addStudent(Student student) {

  Connection conn = null;

  PreparedStatement ps = null;

  try {

    conn = DBUtil.getConnection();

    String sql = "insert into student(name, age, gender, grade) values (?, ?, ?, ?)";

    ps = conn.prepareStatement(sql);

    ps.setString(1, student.getName());

    ps.setInt(2, student.getAge());

    ps.setString(3, student.getGender());

    ps.setInt(4, student.getGrade());

    ps.executeUpdate();

  } catch (SQLException e) {

    e.printStackTrace();

  } finally {

    DBUtil.close(conn, ps, null);

  }

}

2)学生成绩录入


public void addScore(Score score) {

  Connection conn = null;

  PreparedStatement ps = null;

  try {

    conn = DBUtil.getConnection();

    String sql = "insert into score(student_id, course_id, score) values (?, ?, ?)";

    ps = conn.prepareStatement(sql);

    ps.setInt(1, score.getStudentId());

    ps.setInt(2, score.getCourseId());

    ps.setInt(3, score.getScore());

    ps.executeUpdate();

  } catch (SQLException e) {

    e.printStackTrace();

  } finally {

    DBUtil.close(conn, ps, null);

  }

}

3)学生成绩查询


public List getScoresByStudentId(int studentId) {

  Connection conn = null;

  PreparedStatement ps = null;

  ResultSet rs = null;

  List scores = new ArrayList<>();

  try {

    conn = DBUtil.getConnection();

    String sql = "select * from score where student_id=?";

    ps = conn.prepareStatement(sql);

    ps.setInt(1, studentId);

    rs = ps.executeQuery();

    while (rs.next()) {

      Score score = new Score();

      score.setId(rs.getInt("id"));

      score.setStudentId(rs.getInt("student_id"));

      score.setCourseId(rs.getInt("course_id"));

      score.setScore(rs.getInt("score"));

      scores.add(score);

    }

  } catch (SQLException e) {

    e.printStackTrace();

  } finally {

    DBUtil.close(conn, ps, rs);

  }

  return scores;

}

4)学生成绩统计


public Map getAvgScoresByCourse() {

  Connection conn = null;

  PreparedStatement ps = null;

  ResultSet rs = null;

  Map avgScores = new HashMap<>();

  try {

    conn = DBUtil.getConnection();

    String sql = "select c.name, avg(s.score) as avg_score from course c left join score s on c.id=s.course_id group by c.name order by avg_score";

    ps = conn.prepareStatement(sql);

    rs = ps.executeQuery();

    while (rs.next()) {

      String name = rs.getString("name");

      float avgScore = rs.getFloat("avg_score");

      avgScores.put(name, avgScore);

    }

  } catch (SQLException e) {

    e.printStackTrace();

  } finally {

    DBUtil.close(conn, ps, rs);

  }

  return avgScores;

}

4. 关键词

Java语言、学生成绩管理系统、表现层、业务逻辑层、数据访问层、设计思路、主要功能、实现代码、学生信息录入、成绩的管理、统计及分析

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复