用Java代码写一个学生成绩管理系统 要求1:带有图形界面。(20%) 要求2:登录时输入用户名密码。(20%) 要求3:能够录入、查询、修改、删除课程。(20%) 要求4:能够录入、查询、修改、删除学生某个课程的成绩。(20%) 要求5:能够持久化。(20%)
时间: 2023-08-11 11:06:05 浏览: 30
由于学生成绩管理系统需要考虑到很多细节,下面提供一个简单的实现思路,仅供参考:
要求1:使用JavaFX实现GUI界面,可以使用FXML来设计UI界面,使用Controller来处理用户交互事件,使用Model来处理业务逻辑。
要求2:使用JDBC连接数据库,将用户名密码存储在数据库中,登录时从数据库中查询用户信息进行验证。
要求3:使用JDBC连接数据库,实现课程信息的增删改查操作,可以使用TableView来显示课程列表,使用Dialog来实现添加、修改、删除操作。以下是一个简单的示例代码:
```java
// 添加课程信息
public void addCourse(String courseName, int credit) {
String sql = "INSERT INTO course (name, credit) VALUES (?, ?)";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setString(1, courseName);
statement.setInt(2, credit);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 查询课程信息
public List<Course> queryCourses() {
List<Course> courses = new ArrayList<>();
String sql = "SELECT * FROM course";
try (Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql)) {
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int credit = resultSet.getInt("credit");
Course course = new Course(id, name, credit);
courses.add(course);
}
} catch (SQLException e) {
e.printStackTrace();
}
return courses;
}
// 修改课程信息
public void updateCourse(int courseId, String courseName, int credit) {
String sql = "UPDATE course SET name = ?, credit = ? WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setString(1, courseName);
statement.setInt(2, credit);
statement.setInt(3, courseId);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 删除课程信息
public void deleteCourse(int courseId) {
String sql = "DELETE FROM course WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, courseId);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
```
要求4:使用JDBC连接数据库,实现学生成绩的增删改查操作,可以使用TableView来显示学生成绩列表,使用Dialog来实现添加、修改、删除操作。以下是一个简单的示例代码:
```java
// 添加学生成绩
public void addScore(int studentId, int courseId, int score) {
String sql = "INSERT INTO score (student_id, course_id, score) VALUES (?, ?, ?)";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, studentId);
statement.setInt(2, courseId);
statement.setInt(3, score);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 查询学生成绩
public List<Score> queryScores(int studentId) {
List<Score> scores = new ArrayList<>();
String sql = "SELECT * FROM score WHERE student_id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, studentId);
try (ResultSet resultSet = statement.executeQuery()) {
while (resultSet.next()) {
int id = resultSet.getInt("id");
int courseId = resultSet.getInt("course_id");
int score = resultSet.getInt("score");
Score s = new Score(id, studentId, courseId, score);
scores.add(s);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return scores;
}
// 修改学生成绩
public void updateScore(int scoreId, int score) {
String sql = "UPDATE score SET score = ? WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, score);
statement.setInt(2, scoreId);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 删除学生成绩
public void deleteScore(int scoreId) {
String sql = "DELETE FROM score WHERE id = ?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, scoreId);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
```
要求5:使用JDBC连接数据库,将数据存储在数据库中,实现数据的持久化。可以使用H2、MySQL、Oracle等数据库,根据实际需求选择合适的数据库。
需要注意的是,以上代码仅是一个简单的示例,实际开发中需要考虑更多的细节和异常情况。