Java实现的 ACCESS 学生成绩管理系统功能与图表分析

版权申诉
5星 · 超过95%的资源 1 下载量 157 浏览量 更新于2024-10-28 收藏 1.82MB RAR 举报
资源摘要信息:"学生成绩管理系统是一个使用Java编程语言和Microsoft Access数据库开发的应用程序,旨在帮助教师和管理员高效地管理和分析学生的学习成绩。该系统允许用户输入学生、学科、老师和成绩信息,并能够处理考试成绩单。系统提供了数据可视化功能,可以通过饼图和柱状图展示分析结果。该系统的数据存储在Microsoft Access数据库中,方便非技术人员进行数据维护和更新。 系统的主要功能包括: 1. 输入功能:允许用户添加或修改学生的个人信息、课程信息、教师信息以及学生的成绩。 2. 数据处理:系统可以处理大量的学生考试成绩单数据,并对这些数据进行管理和分析。 3. 数据可视化:系统使用饼图和柱状图等图表工具来直观地展示班级、课程、考试日期、考试人数以及每个学生的成绩分析结果。 4. 数据存储:所有的数据都存储在Microsoft Access数据库中,便于数据的保存和后续查询。 技术实现方面,该系统后缀名为.rar,实则是一个含有Java类文件的压缩包。将其后缀名改为.jar后,即可通过双击运行,无需额外的解压操作。这说明该系统已经通过某种打包工具进行了打包,形成了一个可执行的Java归档文件。 文件名称列表揭示了系统中包含的主要Java类文件,这些文件负责系统的不同功能模块。例如: - Execute.class:系统的主要执行类,负责启动应用程序和执行核心操作。 - Student.class:与学生信息管理相关的类,负责处理学生信息的输入和存储。 - Conn.class:用于数据库连接的类,负责建立和管理与Microsoft Access数据库的连接。 - SchoolClass.class:可能涉及班级信息管理的类,负责处理班级信息和相关的逻辑。 - FirstJFreeChart.class:图形库JFreeChart的实现类,用于生成图表,如饼图和柱状图。 系统的实现涉及多个技术点,包括但不限于Java编程基础、Java图形用户界面(GUI)设计、数据库操作、数据可视化等。这些知识点是构建类似学生成绩管理系统的基础,对于开发类似的应用程序至关重要。开发者需要掌握Java编程语言,熟悉Access数据库操作,以及能够利用JFreeChart等图形库生成数据图表。通过这些技术的综合运用,可以实现一个功能完整、用户友好、数据安全的学生成绩管理系统。"

把这段代码的PCA换成LDA:LR_grid = LogisticRegression(max_iter=1000, random_state=42) LR_grid_search = GridSearchCV(LR_grid, param_grid=param_grid, cv=cvx ,scoring=scoring,n_jobs=10,verbose=0) LR_grid_search.fit(pca_X_train, train_y) estimators = [ ('lr', LR_grid_search.best_estimator_), ('svc', svc_grid_search.best_estimator_), ] clf = StackingClassifier(estimators=estimators, final_estimator=LinearSVC(C=5, random_state=42),n_jobs=10,verbose=1) clf.fit(pca_X_train, train_y) estimators = [ ('lr', LR_grid_search.best_estimator_), ('svc', svc_grid_search.best_estimator_), ] param_grid = {'final_estimator':[LogisticRegression(C=0.00001),LogisticRegression(C=0.0001), LogisticRegression(C=0.001),LogisticRegression(C=0.01), LogisticRegression(C=0.1),LogisticRegression(C=1), LogisticRegression(C=10),LogisticRegression(C=100), LogisticRegression(C=1000)]} Stacking_grid =StackingClassifier(estimators=estimators,) Stacking_grid_search = GridSearchCV(Stacking_grid, param_grid=param_grid, cv=cvx, scoring=scoring,n_jobs=10,verbose=0) Stacking_grid_search.fit(pca_X_train, train_y) Stacking_grid_search.best_estimator_ train_pre_y = cross_val_predict(Stacking_grid_search.best_estimator_, pca_X_train,train_y, cv=cvx) train_res1=get_measures_gridloo(train_y,train_pre_y) test_pre_y = Stacking_grid_search.predict(pca_X_test) test_res1=get_measures_gridloo(test_y,test_pre_y) best_pca_train_aucs.append(train_res1.loc[:,"AUC"]) best_pca_test_aucs.append(test_res1.loc[:,"AUC"]) best_pca_train_scores.append(train_res1) best_pca_test_scores.append(test_res1) train_aucs.append(np.max(best_pca_train_aucs)) test_aucs.append(best_pca_test_aucs[np.argmax(best_pca_train_aucs)].item()) train_scores.append(best_pca_train_scores[np.argmax(best_pca_train_aucs)]) test_scores.append(best_pca_test_scores[np.argmax(best_pca_train_aucs)]) pca_comp.append(n_components[np.argmax(best_pca_train_aucs)]) print("n_components:") print(n_components[np.argmax(best_pca_train_aucs)])

2023-07-22 上传

修改和补充下列代码得到十折交叉验证的平均每一折auc值和平均每一折aoc曲线,平均每一折分类报告以及平均每一折混淆矩阵 min_max_scaler = MinMaxScaler() X_train1, X_test1 = x[train_id], x[test_id] y_train1, y_test1 = y[train_id], y[test_id] # apply the same scaler to both sets of data X_train1 = min_max_scaler.fit_transform(X_train1) X_test1 = min_max_scaler.transform(X_test1) X_train1 = np.array(X_train1) X_test1 = np.array(X_test1) config = get_config() tree = gcForest(config) tree.fit(X_train1, y_train1) y_pred11 = tree.predict(X_test1) y_pred1.append(y_pred11 X_train.append(X_train1) X_test.append(X_test1) y_test.append(y_test1) y_train.append(y_train1) X_train_fuzzy1, X_test_fuzzy1 = X_fuzzy[train_id], X_fuzzy[test_id] y_train_fuzzy1, y_test_fuzzy1 = y_sampled[train_id], y_sampled[test_id] X_train_fuzzy1 = min_max_scaler.fit_transform(X_train_fuzzy1) X_test_fuzzy1 = min_max_scaler.transform(X_test_fuzzy1) X_train_fuzzy1 = np.array(X_train_fuzzy1) X_test_fuzzy1 = np.array(X_test_fuzzy1) config = get_config() tree = gcForest(config) tree.fit(X_train_fuzzy1, y_train_fuzzy1) y_predd = tree.predict(X_test_fuzzy1) y_pred.append(y_predd) X_test_fuzzy.append(X_test_fuzzy1) y_test_fuzzy.append(y_test_fuzzy1)y_pred = to_categorical(np.concatenate(y_pred), num_classes=3) y_pred1 = to_categorical(np.concatenate(y_pred1), num_classes=3) y_test = to_categorical(np.concatenate(y_test), num_classes=3) y_test_fuzzy = to_categorical(np.concatenate(y_test_fuzzy), num_classes=3) print(y_pred.shape) print(y_pred1.shape) print(y_test.shape) print(y_test_fuzzy.shape) # 深度森林 report1 = classification_report(y_test, y_prprint("DF",report1) report = classification_report(y_test_fuzzy, y_pred) print("DF-F",report) mse = mean_squared_error(y_test, y_pred1) rmse = math.sqrt(mse) print('深度森林RMSE:', rmse) print('深度森林Accuracy:', accuracy_score(y_test, y_pred1)) mse = mean_squared_error(y_test_fuzzy, y_pred) rmse = math.sqrt(mse) print('F深度森林RMSE:', rmse) print('F深度森林Accuracy:', accuracy_score(y_test_fuzzy, y_pred)) mse = mean_squared_error(y_test, y_pred) rmse = math.sqrt(mse)

2023-06-02 上传