1、第二次 1. 上机运行以下程序,写出程序运行结果。 public class UsePhoneCard { public static void main(String args[]) { PhoneCard myCard = new PhoneCard(12345678,1234,50.0,"300"); System.out.println(myCard.toString()); } } class PhoneCard { long cardNumber; private int password; double balance;
2、 String connectNumber; boolean connected; PhoneCard(long cn, int pw, double b,String s) { cardNumber = cn; password = pw; if ( b > 0 ) balance = b; else System.exit(1); connectNumber = s; connected = false; } boolean performConnection(long cn,int
3、 pw) { if(cn == cardNumber && pw == password ) { connected = true; return true; } else { connected = false; return false; } } double getBalance() { if(connected) return balance; else return -1; } void performDial()
4、{ if(connected) balance -= 0.5; } public String toString() { String s = "电话卡接入号码:"+connectNumber +"\n电话卡卡号:"+cardNumber +"\n电话卡密码:"+password +"\n剩余金额:"+balance; if(connected) return (s + "\n电话已接通。"); else return (s + "\n电话未接通。"); } } 运行结果:
5、 电话卡接入号码:300 电话卡卡号:12345678 电话卡密码:1234 剩余金额:50.0 电话未接通。 2. 上机运行以下程序,写出程序运行结果。 public class TestStatic { public static void main(String args[]) { PhoneCard200 my200_1 = new PhoneCard200(); PhoneCard200 my200_2 = new PhoneCard200(); System.out.println("第一张200卡的卡号:"+my200_1.cardN
6、umber); System.out.println("第二张200卡的卡号:"+my200_2.cardNumber); } } class PhoneCard200 { static long nextCardNumber; static String connectNumber = "200"; static double additoryFee; long cardNumber ; int password; boolean connected; double balance; static { nextCardN
7、umber = 2001800001; } PhoneCard200() { cardNumber = nextCardNumber++; } } 运行结果: 第一张200卡的卡号:2001800001 第二张200卡的卡号:2001800002 3. 上机运行以下程序,写出程序运行结果。 public class TestAbstract { public static void main(String args[]) { PhoneCard200 my200 = new PhoneCard200(50.0); IC_Card
8、myIC = new IC_Card(50.0); System.out.println("200卡可以拨打 "+my200.TimeLeft()+" 次电话。"); System.out.println("IC 卡可以拨打 "+myIC.TimeLeft()+" 次电话。"); } } abstract class PhoneCard { double balance; abstract void performDial(); double TimeLeft() { double current = balance; int times = 0;
9、 do { performDial(); times++; }while(balance>=0); balance = current; return times-1; } } class PhoneCard200 extends PhoneCard { static long nextCardNumber; static final String connectNumber = "200"; static double additoryFee; long cardNumber ; int passwor
10、d; boolean connected; static { nextCardNumber = 2001800001; additoryFee = 0.1; } PhoneCard200(double ib) { cardNumber = nextCardNumber++; balance = ib; } void performDial() { balance -= 0.5+additoryFee; } } class IC_Card extends PhoneCard { IC_Card(double ib)
11、 { balance = ib; } void performDial() { balance -= 0.9; } } 运行结果: 200卡可以拨打 83.0 次电话。 IC 卡可以拨打 55.0 次电话。 4. 以下程序的功能是比较三个整数并输出其中的最大值,请将程序补充完整。 import java.applet.*; import java.awt.*; import java.awt.event.*; public class FindMax extends Applet implements ActionListener
12、 { Label result; TextField in1,in2,in3; Button btn; int a=0,b=0,c=0,max; public void init() { result = new Label("请先输入三个待比较的整数"); in1 = new TextField(5); in2 = new TextField(5); in3 = new TextField(5); btn = new Button("比较"); add(in1); add(in2); add(in3);
13、add(btn); add(result); btn.addActionListener(this); } public void actionPerformed(ActionEvent e) { a = Integer.parseInt(in1.getText()); b = Integer.parseInt(in2.getText()); c = Integer.parseInt(in3.getText()); //请填入语句 result.setText("三数中最大值是:"+ max ); } } 运行结果:
14、 if(a>b) {if(a>c) max = a; else max = c; } else if(b>c) max = b; else max = c; 5. 阅读以下程序,写出程序功能。 import java.applet.*; import java.awt.*; import java.awt.event.*; public class UseArithmetic extends Applet implements ActionList
15、ener { Label prompt; TextField input1,input2; Button btn; int a=0,b=1; public void init() { prompt = new Label("请输入两个整型数据:"); input1 = new TextField(5); input2 = new TextField(5); btn = new Button("计算"); add(prompt); add(input1); add(input2); add(btn);
16、 btn.addActionListener(this); } public void paint(Graphics g) { g.drawString(a + " + " + b + " = " + (a+b),10,50); g.drawString(a + " - " + b + " = " + (a-b),10,70); g.drawString(a + " * " + b + " = " + (a*b),10,90); g.drawString(a + " / " + b + " = " + (a/b),10,110); g.drawString(a + " % " + b + " = " + (a%b),10,130); } public void actionPerformed(ActionEvent e) { a = Integer.parseInt(input1.getText()); b = Integer.parseInt(input2.getText()); repaint(); } } 运行结果: 输入两个整数,输出两个整数的加,减,乘、除和求余数的结果。






