java实现简易的学籍管理系统
作者:chengqiuming 发布时间:2023-07-21 07:47:26
标签:java,学籍,管理系统
本文实例为大家分享了java实现简易的学籍管理系统的具体代码,供大家参考,具体内容如下
一、 代码
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class TestStudentManager {
private int rows = 0;
private String[][] unit = new String[rows][5];
private String[] name = {"姓名", "语文", "数学", "外语", "总分"};
public JTable table;
public static void main( String[] args ) {
new TestStudentManager();
}
TestStudentManager() {
JFrame frame = new JFrame("模拟学生管理系统");
table = new JTable(unit, name);
JPanel southPanel = new JPanel();
southPanel.add(new JLabel("添加学生数"));
JButton calc = new JButton("计算成绩");
JButton save = new JButton("保存学生信息");
JTextField input = new JTextField(5);
southPanel.add(input);
southPanel.add(calc);
southPanel.add(save);
frame.add(new JLabel("欢迎访问学生管理系统"), BorderLayout.NORTH);
frame.add(southPanel, BorderLayout.SOUTH);
frame.add(new JScrollPane(table), BorderLayout.CENTER);
frame.setSize(400, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
input.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
rows = Integer.valueOf(input.getText());
unit = new String[rows][5];
table = new JTable(unit, name);
System.out.println("xx");
frame.getContentPane().removeAll();
frame.add(new JScrollPane(table), BorderLayout.CENTER);
frame.add(southPanel, BorderLayout.SOUTH);
frame.add(new JLabel("欢迎访问学生管理系统"), BorderLayout.NORTH);
frame.validate();
table.setRowHeight(25);
}
});
calc.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
for (int i = 0; i < rows; i++) {
double sum = 0;
boolean flag = true;
for (int j = 1; j <= 3; j++) {
try {
sum += Double.valueOf(unit[i][j].toString());
} catch (Exception ee) {
flag = false;
table.repaint();
}
if (flag) {
unit[i][4] = "" + sum;
table.repaint();
}
}
}
}
});
save.addActionListener(new ActionListener() {
public void actionPerformed( ActionEvent e ) {
try {
write();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
}
void write() throws IOException {
File f = new File("学生信息.txt");
FileWriter fw = new FileWriter(f);
for (int i = 0; i < 5; i++) {
fw.write(name[i] + "\t");
}
fw.write("\r\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < 5; j++) {
fw.write(unit[i][j] + "\t");
}
fw.write("\r\n");
}
fw.close();
JOptionPane.showMessageDialog(null, "保存成功,存放至:学生信息.txt");
}
}
二、运行
来源:https://blog.csdn.net/chengqiuming/article/details/97171547


猜你喜欢
- Java发红包案例,供大家参考,具体内容如下首先我们需要分析这个代码的架构是什么,需要什么类组成等。我们需要建立4个类,这4个类分别是用户类
- 简介:本篇博客主要包括recyclerview添加多种布局以及添加头布局和尾布局,还有item点击事件思路:主要重写Recyclerview
- 一、说明Boost.MPI 提供了 MPI 标准(消息传递接口)的接口。该标准简化了并发执行任务的程序的开发。您可以使用线程或通过共享内存或
- 这篇文章主要介绍了SpringBoot路径映射实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 本文主要介绍了Java实现雪花算法(snowflake),分享给大家,具体如下:简单描述最高位是符号位,始终为0,不可用。41位的时间序列,
- 定义: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。听
- 前言前阵子有同学反馈Flutter中的http请求无法通过fiddler抓包,作者喜欢使用Charles抓包工具,于是抽时间写了个小demo
- 效果图:完全代码(下方有详细解读) private void textBox1_TextChanged(object sender, Eve
- 上篇说完了如何接入微信公众号,本文说一下微信公众号的最基本功能:普通消息的接收和回复。说到普通消息,那么什么是微信公众号所定义的普通消息呢,
- 发现要坚持写博客真的是一件很困难的事情,各种原因都会导致顾不上博客。本来打算写自己动手实现orm,看看时间,还是先实现一个动态sql,下次有
- 单例模式单例模式顾名思义就是单一的实例,涉及到一个单一的类,该类负责创建自己的对象,同时确保只有一个对象被创建,并且提供一种可以访问这个对象
- 一、在spring的应用中我们存在两种过滤的用法,一种是 * 、另外一种当然是过滤器。我们这里介绍过滤器在springboot的用法,在sp
- 1.引言在实习期间,感受到在vs code上编程的优势(实习期间主要写的lua脚本),因此想把C++和python的开发也迁移到vs cod
- 程序如下: public static string 英汉(string english,翻译结果 一个或多个) { string 英汉辞典
- BitmapFactory.Options的使用是在加载图片时,就从图片的加载和使用说起 怎样获取图片的大小?首先我们把这个图片转
- 字符串每隔4位加空格今天弄了个银行卡识别功能,回显的时候想要将银行卡号每四位加一个空格,这样核对卡号会方便很多,这里记录一下1.正则表达式实
- 1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Threa
- 该文章中使用了较多的 委托delegate和Lambda表达式,如果你并不熟悉这些,请查看我的文章《委托与匿名委托》、《匿名委托与Lambd
- 这篇文章主要介绍了如何基于Java实现对象List排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- Stream.Read 方法当在派生类中重写时,从当前流读取字节序列,并将此流中的位置提升读取的字节数。语法:public abstract