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();

相关推荐

最新推荐

recommend-type

java通过JFrame做一个登录系统的界面完整代码示例

主要介绍了java通过JFrame做一个登录系统的界面完整代码示例,具有一定借鉴价值,需要的朋友可以参考下。
recommend-type

JDK的Parser来解析Java源代码详解

主要介绍了JDK的Parser来解析Java源代码的相关资料,需要的朋友可以参考下
recommend-type

源代码安全管理制度、代码流程访问制度

1.1.为有效控制管理源代码的完整性,确保其不被非授权获取、复制、传播和更改,明确源代码控制管理流程,特制定此管理制度。 .... 2.2.我们研发的产品软件运行所必须的第三方软件、控件和其它支撑库等文件也必须及时...
recommend-type

java图形用户界面实现菜单功能

主要为大家详细介绍了java图形用户界面实现菜单功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

java实现一个简单的网络爬虫代码示例

主要介绍了java实现一个简单的网络爬虫代码示例,还是挺不错的,这里分享给大家,需要的朋友可以参考下。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB图像处理算法宝典:从理论到实战

![MATLAB图像处理算法宝典:从理论到实战](https://img-blog.csdnimg.cn/20200717112736401.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1emhhbzk5MDE=,size_16,color_FFFFFF,t_70) # 1. MATLAB图像处理基础理论 MATLAB图像处理是一种利用MATLAB编程语言进行图像处理的强大工具。它提供了丰富的函数和工具箱,用于图像获取、增强、分
recommend-type

matlab中1/x的非线性规划

在MATLAB中,可以使用非线性规划函数(`fmincon`)来优化一个包含1/x的非线性目标函数。下面是一个简单的例子: ```matlab % 定义目标函数 fun = @(x) 1/x; % 定义约束函数(这里没有约束) nonlcon = []; % 定义初始点 x0 = 1; % 定义优化选项 options = optimoptions('fmincon', 'Display', 'iter'); % 进行非线性规划 [x, fval] = fmincon(fun, x0, [], [], [], [], [], [], nonlcon, options); ``` 在
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。