考试分数分布统计程序
2010-02-18 21:13
232 查看
//2007年04月30日晚用记事本抄写自某java教材。
//考试分数分布统计程序 import java.awt.event.*; import java.awt.*; import javax.swing.*; @SuppressWarnings("serial") public class Score extends JFrame { private JPanel inputPanel = new JPanel(); private PiePanel piePanel = new PiePanel(); private JLabel labelRed = new JLabel("不及格(60以下)"); private JLabel labelYellow = new JLabel("优秀(100-90)"); private JLabel labelGreen = new JLabel("良好(89-75)"); private JLabel labelBlue = new JLabel("中等(74-60)"); private JLabel labelName = new JLabel("学号:"); private JLabel labelScore = new JLabel("分数:"); private JTextField inputName = new JTextField(10); private JTextField inputScore = new JTextField(10); private JTextArea textArea = new JTextArea(20, 16); private JScrollPane scrollPane = new JScrollPane(textArea); private JButton inputButton = new JButton("输入"); private int ia = 0, ib = 0, ic = 0, id = 0; public Score() { initComponents();// 初始化GUI组件 } private void initComponents() { setSize(400, 300);// 设置框架大小 setTitle("分数统计"); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); inputPanel.add(labelName); inputPanel.add(inputName); inputPanel.add(labelScore); inputPanel.add(inputScore); inputPanel.add(inputButton); inputButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { inputData(inputName.getText(), Double.parseDouble(inputScore .getText())); } }); labelYellow.setForeground(Color.YELLOW); labelGreen.setForeground(Color.GREEN); labelBlue.setForeground(Color.BLUE); labelRed.setForeground(Color.RED); piePanel.add(labelYellow); piePanel.add(labelGreen); piePanel.add(labelBlue); piePanel.add(labelRed); piePanel.setBackground(Color.GRAY); getContentPane().add(inputPanel, "North"); getContentPane().add(scrollPane, "West"); getContentPane().add(piePanel, "Center"); textArea.append("姓名/t分数/n"); } private void inputData(String name, double score) { textArea.append(name + ":/t " + score + "/n"); if (score >= 90) { ia++; } else if ((score >= 75)) { ib++; } else if ((score >= 60)) { ic++; } else { id++; } int sum = (ia + ib + ic + id);// 输入的人数汇总 piePanel.a = 360 * ia / sum; piePanel.b = 360 * ib / sum; piePanel.c = 360 * ic / sum; piePanel.d = 360 * id / sum; piePanel.repaint(); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Score().setVisible(true); } }); } } @SuppressWarnings("serial") class PiePanel extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.YELLOW); g.fillArc(x, y, w, w, 0, a);// 绘制饼图的“优秀”弧段 g.setColor(Color.GREEN); g.fillArc(x, y, w, w, a, b);// 绘制饼图的“良好”弧段 g.setColor(Color.BLUE); g.fillArc(x, y, w, w, a + b, c);// 绘制饼图的“中等”弧段 g.setColor(Color.red); g.fillArc(x, y, w, w, a + b + c, d);// 绘制饼图的“不及格”弧段 } int a = 90, b = 90, c = 90, d = 90;// 初始化均匀分布 int x = 20, y = 50, w = 160; }
相关文章推荐
- JavaScript 编程解决考试分数统计问题
- 考试分数统计指标
- 简单统计分数的程序
- 简单统计分数的程序
- 编写一个程序,读入个数不确定的(<=100个)考试分数,并且判断有多少个分数是大于或等于平均分,多少个分数是低于平均分的。输入一个负数表示输入的结束。假设成绩的最高分为10分。
- 简单统计分数的程序
- 利用Flash制作的分数统计程序
- 为老师统计分数做一个减少老师压力的程序
- 统计和输出实验 8 数组2 一次考试中的最高分、最低分、平均分,以及在90~100、 80~89、 70~79、 60~69和60分以下各分数段的人数。程序代码如下
- 使用结构、数组、循环和DataGridView写的分数统计小程序
- javascript脚本编程解决考试分数统计问题
- 大学英语六级考试分数分布
- 实验8 统计和输出一次考试中的最高分、最低分、平均分,以及在90~100、 80~89、 70~79、 60~69和60分以下各分数段的人数。程序代码如下(可复制):
- 程序在内存中的分布
- 7-8 点赞(20 分) 微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v5.4(单科及格与总分及格)
- 编写程序从键盘上输入一些字母和数字,统计显示其中的数字字符的个数和非数字字符个数。
- C++ 统计程序运行耗时的几种方法的总结
- 数据统计 程序中可能出现的错误