您现在的位置:首页 > 复习资料 > 上机实践 > 正文

北大自考JAVA语言程序设计上机实践真题(2010年)

2014-11-06 09:58:20  来源:北京自考热线
题目要求:
(1) 在程序界面由上至下依次设按钮A、文本A、按钮B、文本B、按钮C
(2) 按按钮A后,读取外部文件"input.txt",将其显示在文本区A中
(3) 按按钮B后,找出文本A中的各英文单词(注意剔除其中的标点),将其按照字典序降序排序后在文本B中逐行输出
(4) 按按钮C后,将文本区B中的内容写入外部文件"output.txt"
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
 
public class Example {
 
    private JButton btnA;
    private JTextArea txtAreaA;
    private JScrollPane jspA;
    private JButton btnB;
    private JTextArea txtAreaB;
    private JScrollPane jspB;
    private JButton btnC;
 
    public Example(){
       JFrame frame = new JFrame("2011.06.10 Exam");
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setLocationRelativeTo(null);
       frame.setSize(400, 300);
      
       JPanel pan = new JPanel();
       BoxLayout b = new BoxLayout(pan, BoxLayout.Y_AXIS);
       pan.setLayout(b);
 
       btnA = new JButton("Button A");
       btnA.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
              FileInputStream fis = null;
              InputStreamReader isr = null;
              try{
                  String path = System.getProperty("user.dir");
                  path = path+"/input.txt";
                  //String path = "c://input.txt";
                  File file = new File(path);
                  fis = new FileInputStream(file);
                  isr = new InputStreamReader(fis);
                  StringBuilder textA = new StringBuilder();
                  int v ;
                  while(true){
                     v = isr.read();
                     if(v==-1){
                         break;
                     }
                     textA.append((char)v);
                  }
                  txtAreaA.setText(textA.toString());
              }catch (Exception ee) {
                  ee.printStackTrace();
              }finally{
                  try{
                     if(null!=isr)isr.close();
                  }catch(Exception ee){
                     ee.printStackTrace();
                  }
                  try{
                     if(null!=fis)fis.close();
                  }catch(Exception ee){
                     ee.printStackTrace();
                  }
              }
           }
       });
       txtAreaA = new JTextArea();
       jspA = new JScrollPane();
       jspA.add(txtAreaA);
       jspA.setViewportView(txtAreaA);
       btnB = new JButton("Button B");
       btnB.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
              String text = txtAreaA.getText();
              String strArr[] = text.split("[^\\w]");
              List<String> strList = new ArrayList<String>();
              String s;
              for(int i=0;i<strArr.length;i++){
                  s = strArr[i];
                  if(!"".equals(s)){
                     strList.add(s.replace("\n", ""));
                  }
              }
              Collections.sort(strList);
              StringBuilder strText = new StringBuilder();
              for(int j=strList.size()-1;j>=0;j--){
                  strText.append(strList.get(j)).append("\n");
              }
              txtAreaB.setText(strText.toString());
           }
       });
       txtAreaB = new JTextArea();
       jspB = new JScrollPane();
       jspB.add(txtAreaB);
       jspB.setViewportView(txtAreaB);
       btnC = new JButton("Button C");
       btnC.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
              String textB = txtAreaB.getText();
              textB = textB.replace("\n", "\r");
              FileOutputStream fos = null;
              OutputStreamWriter osw = null;
              try{
                  String path = System.getProperty("user.dir");
                  path = path+"/output.txt";
                  //String path = "c://output.txt";
                  File file = new File(path);
                  fos = new FileOutputStream(file);
                  osw = new OutputStreamWriter(fos);
                  osw.write(textB);
              }catch (Exception ee) {
                  ee.printStackTrace();
              }finally{
                  try{
                     if(null!=osw)osw.close();
                  }catch(Exception ee){
                     ee.printStackTrace();
                  }
                  try{
                     if(null!=fos)fos.close();
                  }catch(Exception ee){
                     ee.printStackTrace();
                  }
              }
              JOptionPane.showMessageDialog(null,"write output.txt over");
           }
       });
       pan.add(btnA);
       pan.add(jspA);
       pan.add(btnB);
       pan.add(jspB);
       pan.add(btnC);
 
       frame.add(pan);
       frame.setVisible(true);
    }
 
    /**
     * @param args
     */
    public static void main(String[] args) {
       new Example();
    }
 
}