1、3, 此程序给出了“按照学号排序”“按照平均成绩排序”“按照英语成绩排序”“按照数学成绩排序”“按照专业成绩排序”等五个排序方法。4, 此程序在查询的同时又能同时显示出三科成绩的饼图分布,饼图上标出了四个成绩段的人数和百分比。更加方便直观的体现出了单科的成绩分布。5, 程序有一个增加的功能。能够将所有同学的信息用三维柱状图的形式全部呈现出来,能够进行纵向、横向两种比较方式。方便人性化的进行成绩的比较。三、系统的UML类图(一)用况图(二)类之间的图student类sort类(三)数据流程图四、功能调试1,主界面2,新建学生信息3,查询成绩页面4,修改成绩5,删除成绩第二种方法6, 打印文件内容
2、7, 三科的排序8, 平均成绩排序:9,三科的饼图分布10,所有同学的成绩三维柱状图分析五、具体代码1,主界面代码(Grade.java)public class Grade / 定义主框架 private JFrame frame = new JFrame(学生成绩管理系统); / 定义菜单栏 private JMenuBar Bar = new JMenuBar(); / 定义菜单 private JMenu JMedit = new JMenu(编辑 private JMenu JMcount = new JMenu(统计 private JMenu JMhelp = new JMenu
3、(数据 / 定义菜单项 private JMenuItem JMIcreate = new JMenuItem(新建 private JMenuItem JMImodify = new JMenuItem(修改 private JMenuItem JMIsearch = new JMenuItem(寻找 private JMenuItem JMIdelete = new JMenuItem(删除 private JMenuItem JMIall = new JMenuItem(成绩排序 private JMenuItem JMIgraphics = new JMenuItem(图形统计 pri
4、vate JMenuItem JMIhelp = new JMenuItem(文件信息/ 定义文本标签 private JLabel text = new JLabel(); private JLabel text1 = new JLabel(); private JLabel text2 = new JLabel(); private JLabel text3 = new JLabel(); private JLabel text4 = new JLabel(); / 定义面板 private Container con = frame.getContentPane(); / 定义输入框对象
5、 / private StudentManager inputinfo =null; / 定义查询框架对象 private Search search = null; private Create create = null; private Delete delete = null; private Modify modify = null; private Datasort sort = null; private BarCharts ss = null; / 定义总分统计对象 / private AllgradeCount all = null; / 定义个人统计对象 / private
6、 SignalCount signal = null; / 构造函数 public Grade() / 把菜单栏加入框架 frame.setJMenuBar(Bar); / 把菜单加入菜单栏 Bar.add(JMedit); Bar.add(JMcount); Bar.add(JMhelp); / 把菜单项加入菜单 JMedit.add(JMIcreate); JMedit.addSeparator(); JMedit.add(JMIsearch); JMedit.add(JMImodify); JMedit.add(JMIdelete); / 第一个下拉菜单 JMcount.add(JMIa
7、ll); JMcount.addSeparator(); JMcount.add(JMIgraphics); / 第二个下拉 JMhelp.add(JMIhelp); / 第三个 / 设置文本界面 text.setText(=基于TXT文件的Java学生管理系统= text1.setText(1.增添、删除、修改学生基本信息;并计算每门课的平均成绩; text2.setText(2.统计优秀、良好、中等、及格、不及格的百分比,并以图呈现 text3.setText(3.按学号查询学生及成绩,并按照不同的成绩分数排序。 text4.setText(=制作者,计算机09-3,王继重= / 设置欢迎
8、界面 con.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 10); con.add(text); con.add(text1); con.add(text2); con.add(text3); con.add(text4); / 设置框架 frame.setLocation(200, 200); frame.setSize(400, 300); frame.setVisible(true); frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);/ 增加监听器 JMIcreate.addAction
9、Listener(new ActionListener() public void actionPerformed(ActionEvent arg0) / TODO 自动生成方法存根 create = new Create(); ); JMIsearch.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) search = new Search(); ); JMImodify.addActionListener(new ActionListener() public void
10、actionPerformed(ActionEvent arg0) modify = new Modify(); JMIdelete.addActionListener(new ActionListener() delete = new Delete(); JMIall.addActionListener(new ActionListener() sort = new Datasort(); JMIgraphics.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) ss= n
11、ew BarCharts(成绩分布柱状图 JMIhelp.addActionListener(new ActionListener() / JOptionPane.showMessageDialog(null, 计算机09-3 王继重 Outfile a = new Outfile(); public static void main(String args) Grade a = new Grade();2,新建用户的代码public class Create extends JFrame /* * 当前容器 */ Container currentContainer = this; * 存储
12、的文件名 String fileName = new String(data.txt * 显示标题文本 JLabel titleLabel = new JLabel(添加成绩界面 * 标题面板 JPanel titlePanel = new JPanel(); * 显示姓名文本 JLabel nameLabel = new JLabel(学生姓名 * 显示成绩文本 JLabel scoreLabel = new JLabel(学生学号 JLabel score1Label = new JLabel(英语成绩 JLabel score2Label = new JLabel(数学成绩 JLabel
13、 score3Label = new JLabel(专业成绩 * 姓名文本框 JTextField nameTextField = new JTextField(15); * 成绩文本框 JTextField scoreTextField = new JTextField(15); JTextField score1TextField = new JTextField(15); JTextField score2TextField = new JTextField(15); JTextField score3TextField = new JTextField(15); * 输入面板 JPan
14、el inputPanel = new JPanel(); * 添加按钮 JButton insertBtn = new JButton( * 管理面板 JPanel managePanel = new JPanel(); * 按钮监听器 ButtonActionListener btnAction = new ButtonActionListener(); * 构造器:初始化窗体 public Create() this.setSize(280, 300); this.setLocation(300, 300); this.setResizable(false); this.setDefau
15、ltCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setTitle(java学生成绩管理系统 /* * 将窗体划分为上中下三个块 */ this.setLayout(new BorderLayout(); this.add(titlePanel, North this.add(inputPanel, Center this.add(managePanel, South * 第一块用来放标题面板 = = titlePanel.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 10); titlePanel.
16、add(titleLabel); titleLabel.setFont(new Font(黑体, Font.PLAIN, 16); * 第二块放输入面板 inputPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 10); inputPanel.add(nameLabel);/ 姓名 inputPanel.add(nameTextField); inputPanel.add(scoreLabel);/ 成绩 inputPanel.add(scoreTextField);/ ? inputPanel.add(score1Label);/
17、成绩1 inputPanel.add(score1TextField); inputPanel.add(score2Label);/ 成绩2 inputPanel.add(score2TextField); inputPanel.add(score3Label);/ 成绩3 inputPanel.add(score3TextField); * 第三块是管理面板 managePanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 10); managePanel.add(insertBtn); * 为按钮注册按钮监听器 insertBtn.add
18、ActionListener(btnAction); * 显示窗体 this.setVisible(true); * 按钮监听类 class ButtonActionListener implements ActionListener public void actionPerformed(ActionEvent e) /* * 检查是否输入了姓名 */ String name = nameTextField.getText().trim(); if (name.length() = 0) JOptionPane.showMessageDialog(currentContainer, 输入的姓
19、名为空!, 操作失败, JOptionPane.ERROR_MESSAGE); return; * 是否要求查询 int score = 0; int score1 = 0; int score2 = 0; int score3 = 0; * 检查是否输入了成绩,输入不同的成绩 try score = Integer.parseInt(scoreTextField.getText().trim(); catch (Exception e1) 输入的成绩不是数字! score1 = Integer.parseInt(score1TextField.getText().trim(); score2
20、 = Integer.parseInt(score2TextField.getText().trim(); score3 = Integer.parseInt(score3TextField.getText().trim(); * 是否要求录入 if (e.getSource() = insertBtn) boolean flag = insert(name, score, score1, score2, score3); / 执行方法,进行录入操作 if (flag) JOptionPane.showMessageDialog(currentContainer, 录入成功! scoreTex
21、tField.setText( / 清空成绩框 score1TextField.setText( score2TextField.setText( score3TextField.setText( else JOptionPane.showMessageDialog(currentContainer, 录入过程中出现了异常,请联络技术人员!, 录入失败 JOptionPane.ERROR_MESSAGE); * 插入新记录 * * param name * 姓名 * param score * 成绩 public boolean insert(String name, int score, i
22、nt score1, int score2, int score3) try * 写入文件 Writer out = new FileWriter(fileName, true); out.write(name + : + score + + score1 + + score2 + + score3 + rn out.close(); return true; catch (IOException e) e.printStackTrace(); return false; * 入口方法 * param args public static void main(String args) new Create();3,修改类public class Modify extends JFrame 修改成绩界面
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1