今天把项目的ui界面的基本雏形完善了,所有控件都已经部署完毕了,具体功能等到后续来实现
在界面中进行页面的转换需要用到Toggle控件离开进行页面的调控
private void initialize() {
ToggleGroup toggleGroup = new ToggleGroup();
SendHomework.setToggleGroup(toggleGroup);
CreateClass.setToggleGroup(toggleGroup);
SignIn.setToggleGroup(toggleGroup);
Random.setToggleGroup(toggleGroup);
SendInformation.setToggleGroup(toggleGroup);
// 初始化显示第一个视图
loadView("/com/example/FXML/Teacher/CreatClass.fxml");
// 添加监听器来处理按钮切换
toggleGroup.selectedToggleProperty().addListener((obs, oldToggle, newToggle) -> {
if (newToggle != null) {
String fxmlFile = "";
if (newToggle.equals(SendHomework)) {
fxmlFile = "/com/example/FXML/Teacher/SendHomework.fxml";
} else if (newToggle.equals(CreateClass)) {
fxmlFile = "/com/example/FXML/Teacher/CreatClass.fxml";
} else if (newToggle.equals(SignIn)) {
fxmlFile = "/com/example/FXML/Teacher/SignIn.fxml";
} else if (newToggle.equals(Random)) {
fxmlFile = "/com/example/FXML/Teacher/Random.fxml";
} else if (newToggle.equals(SendInformation)) {
fxmlFile = "/com/example/FXML/Teacher/SendInformation.fxml";
}
if (!fxmlFile.isEmpty()) {
loadView(fxmlFile);
}
}
});
进行页面的转换
然后在界面挑用方法的时候要注意需要有一个总控制类来拿到你所有命名的控制类才能进行调用
今天做了两道算法练习,主要方法都是运用二分查找进行精度计算
砍树问题,直接用二分,注意进行排序和mid值的比较
#define _CRT_SECURE_NO_WARNINGS 1
#include<bits/stdc++.h>
using namespace std;
int n, m, a[10000001];
int main()
{
cin >> n >> m;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
sort(a, a + n, greater<int>());
int l = 0, r = 100000000;
while (l <= r)
{
int mid = l + (r - l) / 2;
long long tot = 0;
for (int i = 0; i < n ; i++)
{
if (a[i] > mid)
{
tot += a[i] - mid;
}
else break;
}
if (tot > m)
{
l = mid + 1;
}
else if (tot < m)
{
r = mid - 1;
}
else
{
cout << mid << endl;
return 0;
}
}
cout << r << endl;
return 0;
}