《Java程序设计》课程期末机考 卷B参考答案 (200x一200x学年第x学期) 专业 年级本口专科☑A卷和B卷☑C卷 1.(25分)参考程序 import iava io.lOException ReaRdnTpSrinergs0throwsIOException buf=new BufferedReader(new InputStreamReader(System.in)); System..outprintn("1输入一个长整数,回车后求该数的二进制表示。", System.out.printn("2输入quit,回车后退出程序运行。" while(true){ x=Long.parseLong(str): printBinary(x): i的2进制数表示为nm if1<)&)=0 System.out.print( 1" else a器 2、(25分)参考程序: public static void main(String args[)throws IOException
1 《Java 程序设计》课程 期末机考 卷 B 参考答案 (200x—200x 学年 第 x 学期) ______专业______年级 本□ 专科 A 卷□ B 卷 C 卷□ 1.(25 分)参考程序: import java.io.IOException; import java.io.BufferedReader; import java.io.InputStreamReader; public class Test1 { public static void main(String args[]) throws IOException{ BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in)); String str; long x; System.out.println("1.输入一个长整数,回车后求该数的二进制表示。"); System.out.println("2.输入 quit,回车后退出程序运行。"); while(true) { System.out.print("Input:"); str=buf.readLine(); if(str.equals("quit")) break; x=Long.parseLong(str); printBinary(x); } } static void printBinary(long i) { System.out.print("\t"+i + "的 2 进制数表示为:\n"); System.out.print("\t"); for(int j = 63; j >=0; j--) if(((1 << j) & i) != 0) System.out.print("1"); else System.out.print("0"); System.out.println();//换行 } } 2、(25 分)参考程序: import java.io.*; public class Test2 { public static void main(String args[])throws IOException{
est2.java"). ewr String str. while((str=in.re dLine())!=null) bw.write(i +str); eO; in.close() Ir.c fw.close0 3、(25分)参考程序 import java.awt.event.*; mport javax.swing.* public class Test3 extends JPanel implements MouseListener cm0ee20y/板宽高 MOUSE CLICK=1: public Test3( setBackg und(Color.white) addMouseListener(this): public void paint(Graphicsg) Color(Color red) g.fillOval(xPos-50.yPos-50.100.10O): public Dimension getPreferredSize({/设置面板显示大小 return new Dimension(width,height); V第50-75行的5个方法是MouseListener接口中的方法 public void mousePressed(MouseEvent e) oublic void mouseReleased(MouseEvent e) public void mouseClicked(MouseEvent e)
2 ///////////// FileReader fr=new FileReader("..//src//Test2.java"); BufferedReader in = new BufferedReader(fr); //////////// FileWriter fw=new FileWriter("1.txt"); BufferedWriter bw=new BufferedWriter(fw); //////////// String str; int i=1; while((str=in.readLine())!=null) { bw.write(i+": "+str); bw.newLine(); i++; } bw.flush(); //////////// in.close(); fr.close(); bw.close(); fw.close(); } } 3、(25 分)参考程序: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test3 extends JPanel implements MouseListener{ int width=300,height=200;//面板宽高 static int xPos,yPos;//鼠标位置 final static int MOUSE_CLICK=1; int state; public Test3() { setBackground(Color.white); addMouseListener(this); } public void paint( Graphics g ) { super.paint(g); if(state==MOUSE_CLICK){ g.setColor(Color.red); g.fillOval(xPos-50,yPos-50,100,100); } } public Dimension getPreferredSize() {//设置面板显示大小 return new Dimension(width, height); } ////////////////第 50~75 行的 5 个方法是 MouseListener 接口中的方法 public void mousePressed(MouseEvent e){ } public void mouseReleased(MouseEvent e){ } public void mouseClicked(MouseEvent e){
sate=MOUSE_CLICK,/得到鼠标状态-释放 xPos=C.gctX0:∥得到鼠标释放时的x坐标 yPos心gY(O,∥得到鼠标释放时的y坐标 repaint(); 刷新面板显示 public void mouseEntered(MouseEvente) public void mouseExited(MouseEvent e) public static void main(String args){ frame=new JFrame("第3题"方 e=frame.getContentPanc(). conteadd(panel BorderLayout.CENTER) frame(true) 4、(25分)参考程序 import java aw t event*」 or import java util. mport java io. public class Test4 extends JFrame JTextarea text public Test4(String str)(//(5) super(stry con=this ContentPane( comtyout(wBorder enme22茶e3 oOLD20 con.add(new JScrollPane(text).BorderLayout CENTER) IMenu myMenu=buildmenuo 棠单条 nuBar menuBar=new JMe uBar)月 建菜单条 泰加到 单条 setSize(600,400) setVisible(true) public Integer[]myArray(){W(5分) Integer Num d-nev Random(); int x:
3 state=MOUSE_CLICK; //得到鼠标状态---释放 xPos=e.getX(); //得到鼠标释放时的 x 坐标 yPos=e.getY(); //得到鼠标释放时的 y 坐标 repaint(); //刷新面板显示 } public void mouseEntered(MouseEvent e){ } public void mouseExited(MouseEvent e){ } public static void main (String[] args) { JFrame frame=new JFrame("第 3 题"); Container contentPane=frame.getContentPane(); Test3 panel=new Test3(); contentPane.add(panel,BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } } 4、(25 分)参考程序: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.io.*; public class Test4 extends JFrame{ JTextArea text; public Test4(String str) {//(5 分) super(str); Container con=this.getContentPane(); con.setLayout(new BorderLayout()); text=new JTextArea(20,20); text.setFont(new Font("楷体_gb2312",Font.BOLD,20)); con.add(new JScrollPane(text),BorderLayout.CENTER); JMenu myMenu=buildMenu(); //菜单条 JMenuBar menuBar = new JMenuBar(); //创建菜单条 setJMenuBar(menuBar);//设置窗口具有菜单条 menuBar.add(myMenu); //菜单添加到菜单条 setSize(600,400); setVisible(true); } public Integer[] myArray( ) {//(5 分) Random rd=new Random(); Vector allNum =new Vector(); Integer result[]=new Integer[7]; int x;
Integer(i+-I)月 for(inti0,ik7,it+)川 allNum.remove(x): )allINum.get(x). privMenu buildMenu) Menu fileMenu-C2置t快进选:AL工s /单项"New JMenultem fileNews=new JMenultem("New,/菜单项 fileNew.setMnemonic(KeyEvent.VK_N): fileNew.addActionListener(new ActionListener(O{∥菜单项事件处理 Performed(ActionEvente){/清空文本区 ext("" et7Num ,JMenultem("Get7Num",∥菜单项 get7Num.setMnemonic(KevEvent.VK G get7Num.addActionListener(new ActionListener(){/菜单项事件处理 public void actionPerformed(ActionEvente){W设置文本区字体大小 myint=my Array)方 for(int i=0.i<myint.length;i++) s+=myint i.toString()+\t" text.append(s+System.getProperty("line separator")): "Save JMenultem fileSave-new JMenultem("Save")∥菜单项 nemonic(KeyEvent VK_S): stener()/单项事件处理 )设置文本区字体大小 saveText(): eMeve) /菜单项"Exit" JMenultem fileExit=-new JMenultem("Exit"),∥单项 stener(){/菜单项事件处理 publi 设 文本区字体大小
4 for(int i=0;i<36;i++){ allNum.add(new Integer(i+1)); } for(int i=0;i<7;i++){ x=rd.nextInt(36-i); result[i]=(Integer)allNum.get(x); allNum.remove(x); } return result; } private JMenu buildMenu(){ //菜单 JMenu fileMenu = new JMenu("File"); //菜单 fileMenu.setMnemonic(KeyEvent.VK_F); //设置快捷键:ALT+'F' //菜单项 "New" JMenuItem fileNew= new JMenuItem("New"); //菜单项 fileNew.setMnemonic(KeyEvent.VK_N); fileNew.addActionListener(new ActionListener(){//菜单项事件处理 public void actionPerformed(ActionEvent e) {//清空文本区 text.setText(""); } }); fileMenu.add(fileNew); //生成 36 选 7 的一组数 JMenuItem get7Num= new JMenuItem("Get7Num"); //菜单项 get7Num.setMnemonic(KeyEvent.VK_G); get7Num.addActionListener(new ActionListener(){//菜单项事件处理 public void actionPerformed(ActionEvent e) {//设置文本区字体大小 Integer[] myint=myArray( ); String s=""; for(int i=0;i<myint.length;i++){ s+=myint[i].toString()+"\t"; } text.append(s+System.getProperty("line.separator")); } }); fileMenu.add(get7Num); //菜单项 "Save" JMenuItem fileSave= new JMenuItem("Save"); //菜单项 fileSave.setMnemonic(KeyEvent.VK_S); fileSave.addActionListener(new ActionListener(){//菜单项事件处理 public void actionPerformed(ActionEvent e) {//设置文本区字体大小 saveText(); } }); fileMenu.add(fileSave); //菜单项 "Exit" JMenuItem fileExit= new JMenuItem("Exit"); //菜单项 fileExit.setMnemonic(KeyEvent.VK_X); fileExit.addActionListener(new ActionListener(){//菜单项事件处理 public void actionPerformed(ActionEvent e) {//设置文本区字体大小 System.exit(0); } }); fileMenu.add(fileExit);
return fileMenu. 保存文本文件 7示对话框 FileWriter fw=new FileWriter(ile),/I创建字符文件流对象 BufferedWriter bufw=-new BufferedWriter(fw/接上字符缓冲流 String s=text.get Text()/∥得到文本区中的文本 bufw.write(s,O,s.length())/写到缓冲区,缓冲区满后自动写入文件 bufw.flush()/.清 爱冲流 bufw.close(),∥关闭流 ee.printStack Trace(): else if(result==filechooser.CANCEL_OPTION) JOptionPane..showMessageDialog(nulL,"没有保存文件)方 public static void main(String[]args) new Tes4"第4题")
5 return fileMenu; } //保存文本文件 private void saveText() { JFileChooser filechooser=new JFileChooser(); int result=filechooser.showSaveDialog(this); //显示对话框 if(result==filechooser.APPROVE_OPTION){ File file=filechooser.getSelectedFile(); try{ FileWriter fw = new FileWriter(file);//创建字符文件流对象 BufferedWriter bufw=new BufferedWriter(fw);//接上字符缓冲流 String s=text.getText();//得到文本区中的文本 bufw.write(s,0,s.length());//写到缓冲区,缓冲区满后自动写入文件 bufw.flush();//清空缓冲流 bufw.close();//关闭流 } catch(IOException ee){ ee.printStackTrace(); } } else if(result==filechooser.CANCEL_OPTION){ JOptionPane.showMessageDialog(null, "没有保存文件"); } } public static void main (String[] args) { new Test4("第 4 题"); } }