java综合实验_SCAU大二上Java综合性实验

packagetest;/***

* @hl_mark

**/

importjava.awt.Graphics;import java.io.*;import java.util.*;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.RowFilter;importjavax.swing.table.DefaultTableModel;importjavax.swing.table.TableModel;importjavax.swing.table.TableRowSorter;public class Test extendsjavax.swing.JFrame {int maxScore , minScore , tot ; doubleaverageScore;int cnt[] = new int[5] ; double percent[] = new double[5] ;

ArrayList studentList= newArrayList();privateObject output;voidupdateDate(){

maxScore= 0 ; minScore = 100; averageScore = 0;for( int i = 0 ; i < 5 ; ++i ) {

cnt[i]= 0;

percent[i]= 0;

}

tot=studentList.size();for( int i = 0 ; i < tot ; ++i ){

Student tmp=(Student)studentList.get(i);int score =tmp.get_score();

averageScore+= (double)score ;if( score > maxScore ) maxScore =score ;if( score < minScore ) minScore =score ;if( score >= 0 && score < 60 ) cnt[4]++;else if( score >=60 && score < 70 ) cnt[3]++;else if( score >=70 && score < 80 ) cnt[2]++;else if( score >=80 && score < 90 ) cnt[1]++;else cnt[0]++;

}

averageScore/=tot;for( int i = 0 ; i < 5 ; ++i ) percent[i] = (double)cnt[i]/tot*100.0;

}publicTest() {

initComponents();

}

@SuppressWarnings("unchecked")//

private voidinitComponents() {

jCheckBoxMenuItem1= newjavax.swing.JCheckBoxMenuItem();

jCheckBoxMenuItem2= newjavax.swing.JCheckBoxMenuItem();

jPanel2= newjavax.swing.JPanel();

jPanel3= newjavax.swing.JPanel();

jMenuBar2= newjavax.swing.JMenuBar();

jMenu2= newjavax.swing.JMenu();

jMenu3= newjavax.swing.JMenu();

jMenu4= newjavax.swing.JMenu();

jMenuBar3= newjavax.swing.JMenuBar();

jMenu5= newjavax.swing.JMenu();

jMenu6= newjavax.swing.JMenu();

jMenuBar4= newjavax.swing.JMenuBar();

jMenu7= newjavax.swing.JMenu();

jMenu8= newjavax.swing.JMenu();

jMenuBar5= newjavax.swing.JMenuBar();

jMenu9= newjavax.swing.JMenu();

jMenu10= newjavax.swing.JMenu();

jMenuBar6= newjavax.swing.JMenuBar();

jMenu11= newjavax.swing.JMenu();

jMenu12= newjavax.swing.JMenu();

jMenuBar7= newjavax.swing.JMenuBar();

jMenu13= newjavax.swing.JMenu();

jMenu14= newjavax.swing.JMenu();

jSeparator3= newjavax.swing.JSeparator();

jLayeredPane1= newjavax.swing.JLayeredPane();

jtfSearch= newjavax.swing.JTextField();

jlbSearch= newjavax.swing.JLabel();

jPanel1= newjavax.swing.JPanel();

jPanel5= newjavax.swing.JPanel();

jlbMaxS= newjavax.swing.JLabel();

jlbMinS= newjavax.swing.JLabel();

jlbAvgS= newjavax.swing.JLabel();

jlbWell= newjavax.swing.JLabel();

jlbGood= newjavax.swing.JLabel();

jlbMiddle= newjavax.swing.JLabel();

jlbPass= newjavax.swing.JLabel();

jlbFail= newjavax.swing.JLabel();

jButton1= newjavax.swing.JButton();

jButton2= newjavax.swing.JButton();

jLabel11= newjavax.swing.JLabel();

jLabel12= newjavax.swing.JLabel();

jLabel13= newjavax.swing.JLabel();

jLabel14= newjavax.swing.JLabel();

jLabel15= newjavax.swing.JLabel();

jTextField7= newjavax.swing.JTextField();

jTextField8= newjavax.swing.JTextField();

jTextField9= newjavax.swing.JTextField();

jTextField10= newjavax.swing.JTextField();

jTextField11= newjavax.swing.JTextField();

jLabel16= newjavax.swing.JLabel();

jLabel17= newjavax.swing.JLabel();

jLabel18= newjavax.swing.JLabel();

jLabel19= newjavax.swing.JLabel();

jLabel20= newjavax.swing.JLabel();

jLabel21= newjavax.swing.JLabel();

jLabel22= newjavax.swing.JLabel();

jLabel23= newjavax.swing.JLabel();

jLabel25= newjavax.swing.JLabel();

jLabel26= newjavax.swing.JLabel();

jLabelM= newjavax.swing.JLabel();

jLabelm= newjavax.swing.JLabel();

jLabela= newjavax.swing.JLabel();

jLabels0= newjavax.swing.JLabel();

jLabels1= newjavax.swing.JLabel();

jLabels3= newjavax.swing.JLabel();

jLabels2= newjavax.swing.JLabel();

jLabels4= newjavax.swing.JLabel();

jLabelp0= newjavax.swing.JLabel();

jLabelp1= newjavax.swing.JLabel();

jLabelp2= newjavax.swing.JLabel();

jLabelp3= newjavax.swing.JLabel();

jLabelp4= newjavax.swing.JLabel();

jSeparator4= newjavax.swing.JSeparator();

jScrollPane2= newjavax.swing.JScrollPane();

jTable1= newjavax.swing.JTable();

jLabelfile= newjavax.swing.JLabel();

jlbScore= newjavax.swing.JLabel();

jlbAnalysis= newjavax.swing.JLabel();

jbSearch= newjavax.swing.JButton();

jMenuBar1= newjavax.swing.JMenuBar();

jMenu1= newjavax.swing.JMenu();

jmOpean0= newjavax.swing.JMenuItem();

jmSave0= newjavax.swing.JMenuItem();

jSeparator1= newjavax.swing.JPopupMenu.Separator();

jmOpean1= newjavax.swing.JMenuItem();

jmSave1= newjavax.swing.JMenuItem();

jSeparator2= newjavax.swing.JPopupMenu.Separator();

jmClear= newjavax.swing.JMenuItem();

jCheckBoxMenuItem1.setSelected(true);

jCheckBoxMenuItem1.setText("jCheckBoxMenuItem1");

jCheckBoxMenuItem2.setSelected(true);

jCheckBoxMenuItem2.setText("jCheckBoxMenuItem2");

javax.swing.GroupLayout jPanel2Layout= newjavax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 100, Short.MAX_VALUE)

);

jPanel2Layout.setVerticalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 22, Short.MAX_VALUE)

);

javax.swing.GroupLayout jPanel3Layout= newjavax.swing.GroupLayout(jPanel3);

jPanel3.setLayout(jPanel3Layout);

jPanel3Layout.setHorizontalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 100, Short.MAX_VALUE)

);

jPanel3Layout.setVerticalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 100, Short.MAX_VALUE)

);

jMenu2.setText("File");

jMenuBar2.add(jMenu2);

jMenu3.setText("Edit");

jMenuBar2.add(jMenu3);

jMenu4.setText("jMenu4");

jMenu5.setText("File");

jMenuBar3.add(jMenu5);

jMenu6.setText("Edit");

jMenuBar3.add(jMenu6);

jMenu7.setText("File");

jMenuBar4.add(jMenu7);

jMenu8.setText("Edit");

jMenuBar4.add(jMenu8);

jMenu9.setText("File");

jMenuBar5.add(jMenu9);

jMenu10.setText("Edit");

jMenuBar5.add(jMenu10);

jMenu11.setText("File");

jMenuBar6.add(jMenu11);

jMenu12.setText("Edit");

jMenuBar6.add(jMenu12);

jMenu13.setText("File");

jMenuBar7.add(jMenu13);

jMenu14.setText("Edit");

jMenuBar7.add(jMenu14);

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setTitle("ScoreAnalysisSystem");

jLayeredPane1.setBackground(new java.awt.Color(204, 204, 255));

jLayeredPane1.setBorder(newjavax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

jtfSearch.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jtfSearchActionPerformed(evt);

}

});

jlbSearch.setText(" 输入学号或姓名或成绩可以自动查询,点击表头列头可以排序");

jlbSearch.setBorder(newjavax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

jPanel1.setBorder(newjavax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

jPanel5.setBorder(newjavax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

jlbMaxS.setText("最高分");

jlbMinS.setText("最低分");

jlbAvgS.setText("平均分");

jlbWell.setText("优秀 ( 90 - 100 )");

jlbGood.setText("良好 ( 80 - 89 )");

jlbMiddle.setText("中等 ( 70 - 79 )");

jlbPass.setText("及格 ( 60 - 69 )");

jlbFail.setText("不及格( 0 - 59 )");

jButton1.setText("显示柱状分析图");

jButton1.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

jButton2.setText("显示饼状分析图");

jButton2.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

}

});

jLabel11.setText("人,占");

jLabel12.setText("人,占");

jLabel13.setText("人,占");

jLabel14.setText("人,占");

jLabel15.setText("人,占");

jTextField7.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jTextField7ActionPerformed(evt);

}

});

jTextField8.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jTextField8ActionPerformed(evt);

}

});

jTextField9.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jTextField9ActionPerformed(evt);

}

});

jTextField10.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jTextField10ActionPerformed(evt);

}

});

jTextField11.setToolTipText("");

jTextField11.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jTextField11ActionPerformed(evt);

}

});

jLabel16.setText(" %");

jLabel17.setText(" %");

jLabel18.setText(" %");

jLabel19.setText(" %");

jLabel20.setText(" %");

jLabel21.setText(" %");

jLabel22.setText(" %");

jLabel23.setText(" %");

jLabel25.setText(" %");

jLabel26.setText(" %");

jLabelM.setBackground(new java.awt.Color(255, 255, 255));

jLabelM.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabelm.setBackground(new java.awt.Color(255, 255, 255));

jLabelm.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabela.setBackground(new java.awt.Color(255, 255, 255));

jLabela.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabels0.setBackground(new java.awt.Color(255, 255, 255));

jLabels0.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabels1.setBackground(new java.awt.Color(255, 255, 255));

jLabels1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabels3.setBackground(new java.awt.Color(255, 255, 255));

jLabels3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabels2.setBackground(new java.awt.Color(255, 255, 255));

jLabels2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabels4.setBackground(new java.awt.Color(255, 255, 255));

jLabels4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabelp0.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabelp1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabelp2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabelp3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabelp4.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

javax.swing.GroupLayout jPanel5Layout= newjavax.swing.GroupLayout(jPanel5);

jPanel5.setLayout(jPanel5Layout);

jPanel5Layout.setHorizontalGroup(

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)

.addComponent(jlbMinS, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jlbMaxS, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jlbGood, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jlbPass, javax.swing.GroupLayout.DEFAULT_SIZE,122, Short.MAX_VALUE)

.addComponent(jlbMiddle, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jlbFail)

.addComponent(jlbAvgS, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabelm, javax.swing.GroupLayout.PREFERRED_SIZE,66, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabelM, javax.swing.GroupLayout.PREFERRED_SIZE,66, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabela, javax.swing.GroupLayout.PREFERRED_SIZE,66, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jlbWell, javax.swing.GroupLayout.PREFERRED_SIZE,122, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jLabels0, javax.swing.GroupLayout.PREFERRED_SIZE,66, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabels1, javax.swing.GroupLayout.PREFERRED_SIZE,66, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabels3, javax.swing.GroupLayout.PREFERRED_SIZE,66, javax.swing.GroupLayout.PREFERRED_SIZE))

.addComponent(jLabels4, javax.swing.GroupLayout.PREFERRED_SIZE,66, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabels2, javax.swing.GroupLayout.PREFERRED_SIZE,66, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)

.addComponent(jLabel14, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabel15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabel11, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE,37, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)

.addComponent(jLabelp1, javax.swing.GroupLayout.DEFAULT_SIZE,37, Short.MAX_VALUE)

.addComponent(jLabelp3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabelp4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabelp2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabelp0, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addGap(18, 18, 18)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE,24, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel25, javax.swing.GroupLayout.PREFERRED_SIZE,24, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel26, javax.swing.GroupLayout.PREFERRED_SIZE,24, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel22, javax.swing.GroupLayout.PREFERRED_SIZE,24, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel21, javax.swing.GroupLayout.PREFERRED_SIZE,24, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE,127, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE,129, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(15, 15, 15)))

.addGap(325, 325, 325)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE,56, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE,22, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jTextField8, javax.swing.GroupLayout.PREFERRED_SIZE,56, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE,22, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE,56, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel18, javax.swing.GroupLayout.PREFERRED_SIZE,22, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE,56, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel19, javax.swing.GroupLayout.PREFERRED_SIZE,22, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE,56, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel20, javax.swing.GroupLayout.PREFERRED_SIZE,22, javax.swing.GroupLayout.PREFERRED_SIZE)))))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

jPanel5Layout.setVerticalGroup(

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addGap(32, 32, 32)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jlbMaxS, javax.swing.GroupLayout.PREFERRED_SIZE,26, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabelM, javax.swing.GroupLayout.PREFERRED_SIZE,26, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(18, 18, 18)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabelm, javax.swing.GroupLayout.PREFERRED_SIZE,26, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jlbMinS, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(18, 18, 18)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jlbAvgS, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabela, javax.swing.GroupLayout.PREFERRED_SIZE,26, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(39, 39, 39)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)

.addComponent(jLabels0, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel16, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE))

.addComponent(jlbWell, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jLabelp0, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabelp1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jlbGood)

.addComponent(jLabel12, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jTextField8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabels1, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel26, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE))))

.addComponent(jLabel22, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jLabels2, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel21, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel14, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabelp2, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addComponent(jlbMiddle, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(11, 11, 11))

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel18, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)

.addComponent(jlbPass, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel25, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel13, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabelp3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addComponent(jLabels3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel19, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel15, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel20, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jlbFail, javax.swing.GroupLayout.DEFAULT_SIZE,24, Short.MAX_VALUE)

.addComponent(jLabel23, javax.swing.GroupLayout.PREFERRED_SIZE,23, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(31, 31, 31))

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jLabels4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGap(32, 32, 32))

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jLabelp4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGap(32, 32, 32)))

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jButton1)

.addComponent(jButton2))))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

jTable1.setModel(newjavax.swing.table.DefaultTableModel(newObject [][] {

{null, null, null},

{null, null, null},

{null, null, null},

{null, null, null}

},newString [] {"学号", "姓名", "成绩"}

) {

Class[] types= newClass [] {

java.lang.String.class, java.lang.String.class, java.lang.Integer.class};public Class getColumnClass(intcolumnIndex) {returntypes [columnIndex];

}

});

jScrollPane2.setViewportView(jTable1);if (jTable1.getColumnModel().getColumnCount() > 0) {

jTable1.getColumnModel().getColumn(0).setHeaderValue("学号");

jTable1.getColumnModel().getColumn(1).setHeaderValue("姓名");

jTable1.getColumnModel().getColumn(2).setHeaderValue("成绩");

}

jLabelfile.setText(" ");

jLabelfile.setBorder(newjavax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

javax.swing.GroupLayout jPanel1Layout= newjavax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(0, 0, 0)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabelfile, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,397, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE,397, Short.MAX_VALUE)))

.addContainerGap())

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(0, 0, Short.MAX_VALUE)

.addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE,50, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(0, 0, Short.MAX_VALUE)))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,false)

.addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jScrollPane2))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabelfile, javax.swing.GroupLayout.PREFERRED_SIZE,37, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(0, 235, Short.MAX_VALUE)

.addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE,10, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(0, 236, Short.MAX_VALUE)))

);

jlbScore.setFont(new java.awt.Font("宋体", 1, 14)); //NOI18N

jlbScore.setText(" 成绩单");

jlbAnalysis.setFont(new java.awt.Font("宋体", 1, 14)); //NOI18N

jlbAnalysis.setText(" 数据分析");

jbSearch.setText("查找");

jbSearch.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jbSearchActionPerformed(evt);

}

});

javax.swing.GroupLayout jLayeredPane1Layout= newjavax.swing.GroupLayout(jLayeredPane1);

jLayeredPane1.setLayout(jLayeredPane1Layout);

jLayeredPane1Layout.setHorizontalGroup(

jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGroup(jLayeredPane1Layout.createSequentialGroup()

.addComponent(jtfSearch, javax.swing.GroupLayout.PREFERRED_SIZE,270, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jbSearch, javax.swing.GroupLayout.PREFERRED_SIZE,61, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jlbSearch, javax.swing.GroupLayout.PREFERRED_SIZE,477, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jLayeredPane1Layout.createSequentialGroup()

.addComponent(jlbScore, javax.swing.GroupLayout.PREFERRED_SIZE,389, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(155, 155, 155)

.addComponent(jlbAnalysis, javax.swing.GroupLayout.PREFERRED_SIZE,372, javax.swing.GroupLayout.PREFERRED_SIZE))

);

jLayeredPane1Layout.setVerticalGroup(

jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(jLayeredPane1Layout.createSequentialGroup()

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jtfSearch, javax.swing.GroupLayout.PREFERRED_SIZE,25, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jbSearch)

.addComponent(jlbSearch))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jlbScore, javax.swing.GroupLayout.PREFERRED_SIZE,32, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jlbAnalysis, javax.swing.GroupLayout.PREFERRED_SIZE,32, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))

);

jLayeredPane1.setLayer(jtfSearch, javax.swing.JLayeredPane.DEFAULT_LAYER);

jLayeredPane1.setLayer(jlbSearch, javax.swing.JLayeredPane.DEFAULT_LAYER);

jLayeredPane1.setLayer(jPanel1, javax.swing.JLayeredPane.DEFAULT_LAYER);

jLayeredPane1.setLayer(jlbScore, javax.swing.JLayeredPane.DEFAULT_LAYER);

jLayeredPane1.setLayer(jlbAnalysis, javax.swing.JLayeredPane.DEFAULT_LAYER);

jLayeredPane1.setLayer(jbSearch, javax.swing.JLayeredPane.DEFAULT_LAYER);

jMenu1.setText("文件");

jmOpean0.setText("打开文本文件成绩");

jmOpean0.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jmOpean0ActionPerformed(evt);

}

});

jMenu1.add(jmOpean0);

jmSave0.setText("另存为文本文件成绩");

jmSave0.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jmSave0ActionPerformed(evt);

}

});

jMenu1.add(jmSave0);

jMenu1.add(jSeparator1);

jmOpean1.setText("打开对象文件成绩");

jmOpean1.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jmOpean1ActionPerformed(evt);

}

});

jMenu1.add(jmOpean1);

jmSave1.setText("另存为对象文件成绩");

jmSave1.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jmSave1ActionPerformed(evt);

}

});

jMenu1.add(jmSave1);

jMenu1.add(jSeparator2);

jmClear.setText("清除数据");

jmClear.addActionListener(newjava.awt.event.ActionListener() {public voidactionPerformed(java.awt.event.ActionEvent evt) {

jmClearActionPerformed(evt);

}

});

jMenu1.add(jmClear);

jMenuBar1.add(jMenu1);

setJMenuBar(jMenuBar1);

javax.swing.GroupLayout layout= newjavax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE,828, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jSeparator3, javax.swing.GroupLayout.DEFAULT_SIZE,1, Short.MAX_VALUE))

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE,10, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLayeredPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

);

pack();

}//

private voidjmOpean1ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:

studentList.clear(); //清空线性表

JFileChooser filechooser = newJFileChooser();if( filechooser.showOpenDialog(null) ==JFileChooser.APPROVE_OPTION ){

File file=filechooser.getSelectedFile();try{

DataInputStream input= newDataInputStream

(newFileInputStream(file) );while(true){

String id= "" ;String name = "" ;int score=0;

String s=input.readUTF();//System.out.println(s);

if( s.length() == 0 ) continue;

StringBuilder sb= newStringBuilder();

sb.append(s);int cnt = 0;for( int i = 0 ; i < sb.length(); ++i ){char op =sb.charAt(i);if( op == ',' ) { cnt++; continue; }if( cnt == 0 ) id +=op;else if( cnt == 1 ) name +=op;else{

score= score * 10 + (op-'0');

}

}

studentList.add(newStudent(id,name,score) );

}

}catch( EOFException ex){

System.out.println("All data read");

}catch(IOException ex) {

ex.printStackTrace();

}

updateDate();//更新最高最低分,百分比

jLabelM.setText(maxScore+"");

jLabelm.setText(minScore+"");

jLabela.setText(averageScore+"");

jLabels0.setText(cnt[0]+"");

jLabels1.setText(cnt[1]+"");

jLabels2.setText(cnt[2]+"");

jLabels3.setText(cnt[3]+"");

jLabels4.setText(cnt[4]+"");

jLabelp0.setText(String.format("%.2f",percent[0]));

jLabelp1.setText(String.format("%.2f",percent[1]));

jLabelp2.setText(String.format("%.2f",percent[2]));

jLabelp3.setText(String.format("%.2f",percent[3]));

jLabelp4.setText(String.format("%.2f",percent[4]));

jLabelfile.setText(file.getAbsolutePath()+",共"+ tot + "人");

DefaultTableModel dtm=(DefaultTableModel) jTable1.getModel();

TableRowSorter sorter =

new TableRowSorter(dtm);this.jTable1.setRowSorter(sorter);while( dtm.getRowCount() != 0 ) { //清空jtable

dtm.removeRow(0);

}for( int i = 0 ; i < studentList.size() ; ++i ) { //studentList写入jTable

Student tmp =(Student)studentList.get(i);

Vector v= newVector();

v.add(tmp.get_id());v.add(tmp.get_name());v.add(tmp.get_score());

dtm.addRow(v);

}

}

}private voidjmClearActionPerformed(java.awt.event.ActionEvent evt) {

DefaultTableModel dtm=(DefaultTableModel) jTable1.getModel();while( dtm.getRowCount() != 0 ) { //清空jtable

dtm.removeRow(0);

}

jLabelM.setText(null);

jLabelm.setText(null);

jLabela.setText(null);

jLabels0.setText(null);

jLabels1.setText(null);

jLabels2.setText(null);

jLabels3.setText(null);

jLabels4.setText(null);

jLabelp0.setText(null);

jLabelp1.setText(null);

jLabelp2.setText(null);

jLabelp3.setText(null);

jLabelp4.setText(null);

jLabelfile.setText(null);

}private voidjtfSearchActionPerformed(java.awt.event.ActionEvent evt) {

String text=jtfSearch.getText();

TableRowSorter sorter =

new TableRowSorter(jTable1.getModel());this.jTable1.setRowSorter(sorter);if( text.trim().length() == 0)

sorter.setRowFilter(null);elsesorter.setRowFilter(RowFilter.regexFilter(text));

}private voidjmOpean0ActionPerformed(java.awt.event.ActionEvent evt) {

studentList.clear();//清空线性表

JFileChooser filechooser = newJFileChooser();if( filechooser.showOpenDialog(null) ==JFileChooser.APPROVE_OPTION ){

File file=filechooser.getSelectedFile();

Scanner input= null;try{

input= new Scanner(file,"UTF-8");

}catch(FileNotFoundException ex) {

Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);

}while( input.hasNext() ) {

String id= "" ;String name = "" ;int score=0;

String s=input.nextLine();if( s.length() == 0 ) continue;

StringBuilder sb= newStringBuilder();

sb.append(s);int cnt = 0;for( int i = 0 ; i < sb.length(); ++i ){char op =sb.charAt(i);if( op == ',' ) { cnt++; continue; }if( cnt == 0 ) id +=op;else if( cnt == 1 ) name +=op;else{

score= score * 10 + (op-'0');

}

}

studentList.add(newStudent(id,name,score) );

}

updateDate();//更新最高最低分,百分比

jLabelM.setText(maxScore+"");

jLabelm.setText(minScore+"");

jLabela.setText(averageScore+"");

jLabels0.setText(cnt[0]+"");

jLabels1.setText(cnt[1]+"");

jLabels2.setText(cnt[2]+"");

jLabels3.setText(cnt[3]+"");

jLabels4.setText(cnt[4]+"");

jLabelp0.setText(String.format("%.2f",percent[0]));

jLabelp1.setText(String.format("%.2f",percent[1]));

jLabelp2.setText(String.format("%.2f",percent[2]));

jLabelp3.setText(String.format("%.2f",percent[3]));

jLabelp4.setText(String.format("%.2f",percent[4]));

jLabelfile.setText(file.getAbsolutePath()+",共"+ tot + "人");//jTextField12 = new JTextField(""+maxcost);

input.close();

DefaultTableModel dtm=(DefaultTableModel) jTable1.getModel();

TableRowSorter sorter =

new TableRowSorter(dtm);this.jTable1.setRowSorter(sorter);while( dtm.getRowCount() != 0 ) { //清空jtable

dtm.removeRow(0);

}for( int i = 0 ; i < studentList.size() ; ++i ) { //studentList写入jTable

Student tmp =(Student)studentList.get(i);

Vector v= newVector();

v.add(tmp.get_id()); v.add(tmp.get_name()); v.add(tmp.get_score());

dtm.addRow(v);

}

}

}private voidjTextField11ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:

}private voidjTextField10ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:

}private voidjTextField9ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:

}private voidjTextField8ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:

}private voidjTextField7ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:

}private voidjButton1ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:

NewJFrame3 frame = newNewJFrame3(cnt);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

frame.setSize(400, 400);

frame.setLocationRelativeTo(null);

}private voidjmSave0ActionPerformed(java.awt.event.ActionEvent evt) {

JFileChooser filechooser= newJFileChooser();if( filechooser.showOpenDialog(null) ==JFileChooser.APPROVE_OPTION ){

File file=filechooser.getSelectedFile();try{

PrintWriter output= newPrintWriter(file);for( int i = 0 ; i < studentList.size() ; ++i ) {

Student tmp=(Student)studentList.get(i);

output.println(tmp.get_id()+","+tmp.get_name()+","+tmp.get_score()+"\n");

}

output.close();

}catch(FileNotFoundException ex) {

Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);

}

}

}private voidjbSearchActionPerformed(java.awt.event.ActionEvent evt) {

String text=jtfSearch.getText();

TableRowSorter sorter =

new TableRowSorter(jTable1.getModel());this.jTable1.setRowSorter(sorter);if( text.trim().length() == 0)

sorter.setRowFilter(null);elsesorter.setRowFilter(RowFilter.regexFilter(text));

}private voidjmSave1ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:

JFileChooser filechooser = newJFileChooser();if( filechooser.showOpenDialog(null) ==JFileChooser.APPROVE_OPTION ){

File file=filechooser.getSelectedFile();try{

DataOutputStream output= newDataOutputStream

(newFileOutputStream(file));for( int i = 0 ; i < studentList.size() ; ++i ) {

Student tmp=(Student)studentList.get(i);

output.writeUTF(tmp.get_String());

}

output.close();

}catch(FileNotFoundException ex) {

Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);

}catch(IOException ex) {

Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);

}

}

}private voidjButton2ActionPerformed(java.awt.event.ActionEvent evt) {//TODO add your handling code here:

NewJFrame5 frame = newNewJFrame5(percent);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

frame.setSize(400, 400);

frame.setLocationRelativeTo(null);

}/***@paramargs the command line arguments*/

public static voidmain(String args[]) {/*Set the Nimbus look and feel*/

//

/*If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details seehttp://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try{for(javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());break;

}

}

}catch(ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Test.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

}catch(InstantiationException ex) {

java.util.logging.Logger.getLogger(Test.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

}catch(IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Test.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

}catch(javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Test.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

}

/*Create and display the form*/java.awt.EventQueue.invokeLater(newRunnable() {public voidrun() {new Test().setVisible(true);

}

});

}//Variables declaration - do not modify

privatejavax.swing.JButton jButton1;privatejavax.swing.JButton jButton2;privatejavax.swing.JCheckBoxMenuItem jCheckBoxMenuItem1;privatejavax.swing.JCheckBoxMenuItem jCheckBoxMenuItem2;privatejavax.swing.JLabel jLabel11;privatejavax.swing.JLabel jLabel12;privatejavax.swing.JLabel jLabel13;privatejavax.swing.JLabel jLabel14;privatejavax.swing.JLabel jLabel15;privatejavax.swing.JLabel jLabel16;privatejavax.swing.JLabel jLabel17;privatejavax.swing.JLabel jLabel18;privatejavax.swing.JLabel jLabel19;privatejavax.swing.JLabel jLabel20;privatejavax.swing.JLabel jLabel21;privatejavax.swing.JLabel jLabel22;privatejavax.swing.JLabel jLabel23;privatejavax.swing.JLabel jLabel25;privatejavax.swing.JLabel jLabel26;privatejavax.swing.JLabel jLabelM;privatejavax.swing.JLabel jLabela;privatejavax.swing.JLabel jLabelfile;privatejavax.swing.JLabel jLabelm;privatejavax.swing.JLabel jLabelp0;privatejavax.swing.JLabel jLabelp1;privatejavax.swing.JLabel jLabelp2;privatejavax.swing.JLabel jLabelp3;privatejavax.swing.JLabel jLabelp4;privatejavax.swing.JLabel jLabels0;privatejavax.swing.JLabel jLabels1;privatejavax.swing.JLabel jLabels2;privatejavax.swing.JLabel jLabels3;privatejavax.swing.JLabel jLabels4;privatejavax.swing.JLayeredPane jLayeredPane1;privatejavax.swing.JMenu jMenu1;privatejavax.swing.JMenu jMenu10;privatejavax.swing.JMenu jMenu11;privatejavax.swing.JMenu jMenu12;privatejavax.swing.JMenu jMenu13;privatejavax.swing.JMenu jMenu14;privatejavax.swing.JMenu jMenu2;privatejavax.swing.JMenu jMenu3;privatejavax.swing.JMenu jMenu4;privatejavax.swing.JMenu jMenu5;privatejavax.swing.JMenu jMenu6;privatejavax.swing.JMenu jMenu7;privatejavax.swing.JMenu jMenu8;privatejavax.swing.JMenu jMenu9;privatejavax.swing.JMenuBar jMenuBar1;privatejavax.swing.JMenuBar jMenuBar2;privatejavax.swing.JMenuBar jMenuBar3;privatejavax.swing.JMenuBar jMenuBar4;privatejavax.swing.JMenuBar jMenuBar5;privatejavax.swing.JMenuBar jMenuBar6;privatejavax.swing.JMenuBar jMenuBar7;privatejavax.swing.JPanel jPanel1;privatejavax.swing.JPanel jPanel2;privatejavax.swing.JPanel jPanel3;privatejavax.swing.JPanel jPanel5;privatejavax.swing.JScrollPane jScrollPane2;privatejavax.swing.JPopupMenu.Separator jSeparator1;privatejavax.swing.JPopupMenu.Separator jSeparator2;privatejavax.swing.JSeparator jSeparator3;privatejavax.swing.JSeparator jSeparator4;privatejavax.swing.JTable jTable1;privatejavax.swing.JTextField jTextField10;privatejavax.swing.JTextField jTextField11;privatejavax.swing.JTextField jTextField7;privatejavax.swing.JTextField jTextField8;privatejavax.swing.JTextField jTextField9;privatejavax.swing.JButton jbSearch;privatejavax.swing.JLabel jlbAnalysis;privatejavax.swing.JLabel jlbAvgS;privatejavax.swing.JLabel jlbFail;privatejavax.swing.JLabel jlbGood;privatejavax.swing.JLabel jlbMaxS;privatejavax.swing.JLabel jlbMiddle;privatejavax.swing.JLabel jlbMinS;privatejavax.swing.JLabel jlbPass;privatejavax.swing.JLabel jlbScore;privatejavax.swing.JLabel jlbSearch;privatejavax.swing.JLabel jlbWell;privatejavax.swing.JMenuItem jmClear;privatejavax.swing.JMenuItem jmOpean0;privatejavax.swing.JMenuItem jmOpean1;privatejavax.swing.JMenuItem jmSave0;privatejavax.swing.JMenuItem jmSave1;privatejavax.swing.JTextField jtfSearch;//End of variables declaration

}

简要的需求分析: 已经提供的数据:   <1> 班级学生名单:学生的学号和姓名已经分别存储在以学生所在班级命名的文本文件中,每行存储一个学生的学号和姓名,中间用一个空格分隔。例如:2010级网络工程1班.txt文件中存放该班学生名单。内容为:   201030720102 陈纯   201030720103 陈娟娟   201030720104 陈伟健   201030720105 陈伊纯   ……   <2> 开设课程保存在名为:course.txt的文本文件中,每行存放一门课程的名称,如:   面向对象程序设计   操作系统   数据库系统      实现以下功能,所有功能以图形用户界面完成。   <1> 新建课程考试成绩单,功能描述如下: 程序界面显示已经开设的课程(从course.txt中读取),用户选择本次输入的课程。 用户选择为哪个班输入成绩(即选择相应班的名单文件)。如果该班的成绩已经输入(已经存在对应成绩单文件),则提示无需输入。 程序提供界面为该班的每个学生输入考试成绩。 输入的成绩单以对象文件格式存储到文件中,文件命名为:班级-课程名.dat。例如:2010级网络工程1班-面向对象程序设计.dat。   <2> 打开课程考试成绩单,功能描述如下: 用户选择打开的成绩单文件,程序打开并读取成绩单文件内容,并显示在界面中。   <3> 修改课程考试成绩单,功能描述如下: 打开某班某课程的成绩单后,可以选择修改其中某个或某几个考试成绩,并保存。   <4> 课程考试成绩分析,功能描述如下: 即打开某班某课程的成绩单后,点击成绩分析按钮或菜单,显示如下分析内容: 最高分:XX分,最低分:XX分,平均分:XX分 不及格(分数<60):XX人,占XX.XX% 及格(60<=分数<70):XX人,占XX.XX% 中等(70<=分数<80):XX人,占XX.XX% 良好(80<=分数<90):XX人,占XX.XX% 优秀(90<=分数<100):XX人,占XX.XX%   <5> 成绩图形分析,功能描述如下:    显示考试成绩分布的饼图和柱形图。 想用上饼状图和柱状图请看: http://www.open-open.com/lib/view/open1365997415828.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值