Java 成绩分析绘图_(java)编写一个学生成绩分析程序

该博客展示了如何使用Java编程实现一个学生成绩分析程序,包括从文件读取学生数据,对成绩进行排序,查找不及格人数等功能。通过自定义比较器对学生总分进行排序,并输出详细信息。
摘要由CSDN通过智能技术生成

展开全部

//学生类

public class Student {

private String NO;

private String name;

private int math;

private int physics;

private int english;

private int total = 0;

public Student(String NO, String name, int math, int physics, int english) {

e5a48de588b662616964757a686964616f31333431353839this.NO = NO;

this.name = name;

this.math = math;

this.physics = physics;

this.english = english;

total = math + physics + english;

}

public String getNO() {

return NO;

}

public void setNO(String nO) {

NO = nO;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getMath() {

return math;

}

public void setMath(int math) {

this.math = math;

}

public int getPhysics() {

return physics;

}

public void setPhysics(int physics) {

this.physics = physics;

}

public int getEnglish() {

return english;

}

public void setEnglish(int english) {

this.english = english;

}

public int getTotal() {

return total;

}

public void setTotal(int total) {

this.total = total;

}

@Override

public String toString() {

return "[学号=" + NO + ", 姓名=" + name + ", 数学成绩=" + math + ", 物理成绩=" + physics + ", 英语="

+ english + ", 总分=" + total + "]";

}

}

//排序

public static class CompareStudent implements Comparator{

@Override

public int compare(Student o1, Student o2) {

return o1.getTotal() 

}

}

public class Test {

public static void main(String[] args) {

String filename = "res/student.txt";

System.out.println("读取" + filename + "文件的数据");

List result = readStudnetInfoFromFile(filename);

//排序

result.sort(new CompareStudent());

System.out.println("排序输出");

for (Student student : result) {

System.out.println(student);

}

System.out.println();

//不及格

System.out.println("数学不及格");

int nums = 0;

for (Student student : result) {

if(student.getMath() 

System.out.println(student.getName() + " 数学成绩不及格");

nums ++;

}

}

System.out.println("数学不及格总共有" + nums + "人");

}

//从文件中读取数据

private static List readStudnetInfoFromFile(String filename) {

File file = new File(filename);

if (!file.exists()) {

return null;

}

List result = new ArrayList<>();

BufferedReader br = null;

FileReader fr = null;

try {

fr = new FileReader(file);

br = new BufferedReader(fr);

String line = null;

while ((line = br.readLine()) != null) {

String[] infos = line.split("_");

Student stu = new Student(infos[0], infos[1], Integer.parseInt(infos[2]), Integer.parseInt(infos[3]),

Integer.parseInt(infos[4]));

result.add(stu);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (br != null) {

br.close();

}

if(fr != null) {

fr.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

return result;

}

//数据文件  注意文件路径

1_张三_60_70_80

2_李四_58_58_73

3_王二_63_75_85

4_莉莉_46_75_88

5_小明_85_76_56

好的,我可以告诉你如何用Java编写一个简单的绘图程序。 首先,你需要创建一个Java应用程序,然后创建一个绘图面板类(例如 MyPanel),该类继承自 JPanel,并覆盖 paintComponent 方法。 在 paintComponent 方法中,你需要使用 Java 2D API 中的绘图方法来绘制形。例如,你可以使用 Graphics2D 对象的 drawLine 方法来绘制直线,使用 drawRect 和 fillRect 方法来绘制矩形等。 下面是一个简单的示例代码: ``` java import javax.swing.*; import java.awt.*; public class MyPanel extends JPanel { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; // 绘制一条直线 g2d.drawLine(10, 10, 100, 100); // 绘制一个矩形 g2d.drawRect(50, 50, 100, 100); // 绘制一个填充的矩形 g2d.fillRect(200, 50, 100, 100); } public static void main(String[] args) { JFrame frame = new JFrame("My Drawing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new MyPanel()); frame.setSize(400, 300); frame.setVisible(true); } } ``` 在这个例子中,我们创建了一个 MyPanel 类,覆盖了 paintComponent 方法来绘制一条直线和两个矩形。然后,在 main 方法中创建了一个 JFrame,并将 MyPanel 添加到 JFrame 中显示。当我们运行这个程序时,我们将会看到一条直线和两个矩形出现在窗口中。 当然,这只是一个简单的示例,你可以使用 Java 2D API 中的其他绘图方法来绘制更复杂的形,也可以添加更多的组件和交互来实现更丰富的绘图程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值