Java源代码,开发一个简易信息管理软件,要求需求定义清晰,源代码符合规范,设计良好的图形用户界面,方便用户的操作。示例,班级成绩管理系统,管理一个班30人的思政、高数、英语、体育四科的成绩,主要功能有:学生信息管理,各门课成绩管理,成绩统计与排序等。 模式:包含需求分析、详细设计、编码、测试等内容。
时间: 2023-07-10 09:31:37 浏览: 66
好的,这里是一个班级成绩管理系统的Java源代码,实现了学生信息管理、各门课成绩管理、成绩统计与排序等功能。代码中包含了基本的程序设计、面向对象程序设计和GUI程序设计知识点,代码规范、结构清晰,希望对你有所帮助。
```java
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class ScoreManagement extends Application {
// 存储学生信息的ObservableList
private ObservableList<Student> studentData = FXCollections.observableArrayList();
// 存储思政成绩的ObservableList
private ObservableList<Score> sxData = FXCollections.observableArrayList();
// 存储高数成绩的ObservableList
private ObservableList<Score> gsData = FXCollections.observableArrayList();
// 存储英语成绩的ObservableList
private ObservableList<Score> yyData = FXCollections.observableArrayList();
// 存储体育成绩的ObservableList
private ObservableList<Score> tyData = FXCollections.observableArrayList();
// 主界面
private Stage primaryStage;
// 思政成绩界面
private Stage sxStage;
// 高数成绩界面
private Stage gsStage;
// 英语成绩界面
private Stage yyStage;
// 体育成绩界面
private Stage tyStage;
// 各门课程的成绩统计界面
private Stage statStage;
// 思政成绩表格
private TableView<Score> sxTable = new TableView<>();
// 高数成绩表格
private TableView<Score> gsTable = new TableView<>();
// 英语成绩表格
private TableView<Score> yyTable = new TableView<>();
// 体育成绩表格
private TableView<Score> tyTable = new TableView<>();
// 各门课程的成绩统计表格
private TableView<ScoreStat> statTable = new TableView<>();
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
// 初始化学生信息
for (int i = 1; i <= 30; i++) {
studentData.add(new Student("学生" + i, "202100" + String.format("%02d", i), "男", "2000-01-01", "12345678901"));
}
// 初始化思政成绩
for (int i = 0; i < 30; i++) {
sxData.add(new Score(studentData.get(i), "思政", Math.round(Math.random() * 100)));
}
// 初始化高数成绩
for (int i = 0; i < 30; i++) {
gsData.add(new Score(studentData.get(i), "高数", Math.round(Math.random() * 100)));
}
// 初始化英语成绩
for (int i = 0; i < 30; i++) {
yyData.add(new Score(studentData.get(i), "英语", Math.round(Math.random() * 100)));
}
// 初始化体育成绩
for (int i = 0; i < 30; i++) {
tyData.add(new Score(studentData.get(i), "体育", Math.round(Math.random() * 100)));
}
// 创建主界面
createMainStage();
// 创建思政成绩界面
createSxStage();
// 创建高数成绩界面
createGsStage();
// 创建英语成绩界面
createYyStage();
// 创建体育成绩界面
createTyStage();
// 创建各门课程的成绩统计界面
createStatStage();
}
// 创建主界面
private void createMainStage() {
// 创建学生信息表格
TableView<Student> studentTable = new TableView<>();
studentTable.setItems(studentData);
TableColumn<Student, String> nameCol = new TableColumn<>("姓名");
nameCol.setCellValueFactory(cellData -> cellData.getValue().nameProperty());
TableColumn<Student, String> idCol = new TableColumn<>("学号");
idCol.setCellValueFactory(cellData -> cellData.getValue().idProperty());
TableColumn<Student, String> genderCol = new TableColumn<>("性别");
genderCol.setCellValueFactory(cellData -> cellData.getValue().genderProperty());
TableColumn<Student, String> birthCol = new TableColumn<>("出生日期");
birthCol.setCellValueFactory(cellData -> cellData.getValue().birthProperty());
TableColumn<Student, String> phoneCol = new TableColumn<>("联系方式");
phoneCol.setCellValueFactory(cellData -> cellData.getValue().phoneProperty());
studentTable.getColumns().addAll(nameCol, idCol, genderCol, birthCol, phoneCol);
// 创建思政成绩按钮
Button sxBtn = new Button("思政成绩");
sxBtn.setOnAction(event -> sxStage.show());
// 创建高数成绩按钮
Button gsBtn = new Button("高数成绩");
gsBtn.setOnAction(event -> gsStage.show());
// 创建英语成绩按钮
Button yyBtn = new Button("英语成绩");
yyBtn.setOnAction(event -> yyStage.show());
// 创建体育成绩按钮
Button tyBtn = new Button("体育成绩");
tyBtn.setOnAction(event -> tyStage.show());
// 创建成绩统计按钮
Button statBtn = new Button("成绩统计");
statBtn.setOnAction(event -> statStage.show());
// 创建主界面布局
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(25, 25, 25, 25));
grid.add(new Label("学生信息"), 0, 0);
grid.add(studentTable, 0, 1);
grid.add(sxBtn, 1, 0);
grid.add(gsBtn, 2, 0);
grid.add(yyBtn, 3, 0);
grid.add(tyBtn, 4, 0);
grid.add(statBtn, 5, 0);
// 创建主界面
Scene scene = new Scene(grid, 800, 600);
primaryStage.setTitle("班级成绩管理系统");
primaryStage.setScene(scene);
primaryStage.show();
}
// 创建思政成绩界面
private void createSxStage() {
// 创建思政成绩表格
sxTable.setItems(sxData);
TableColumn<Score, String> nameCol = new TableColumn<>("姓名");
nameCol.setCellValueFactory(cellData -> cellData.getValue().studentProperty().getValue().nameProperty());
TableColumn<Score, String> idCol = new TableColumn<>("学号");
idCol.setCellValueFactory(cellData -> cellData.getValue().studentProperty().getValue().idProperty());
TableColumn<Score, Integer> scoreCol = new TableColumn<>("成绩");
scoreCol.setCellValueFactory(cellData -> cellData.getValue().scoreProperty().asObject());
sxTable.getColumns().addAll(nameCol, idCol, scoreCol);
// 创建思政成绩界面布局
GridPane grid = new GridPane();