《《java编程语言原理与范例》课后实验源代码》由会员分享,可在线阅读,更多相关《《java编程语言原理与范例》课后实验源代码(50页珍藏版)》请在金锄头文库上搜索。
1、第一章 实验一 package ch01; import java.text.SimpleDateFormat; import java.util.Date;class Timer extends Thread private SimpleDateFormat sdf = new SimpleDateFormat(“yyyy 年 MM 月 dd 日 HH:mm:ss“);public void run() while (true) System.out.print(“r 现在时间是:“);Date now = new Date();System.out.print(sdf.format(now。
2、);try sleep(1000); catch (InterruptedException e) e.printStackTrace(); public class Clock public static void main(String args) Timer timer = new Timer();timer.start(); 实验二 package ch01; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Random;import javax.swing.J。
3、Button; import javax.swing.JFrame;public class MagicButton extends MouseAdapter JFrame win;JButton button = new JButton(“你点不到我“);Random rand = new Random();void initUI() win = new JFrame();win.setLayout(null);button.setSize(100, 40);button.addMouseListener(this);win.add(button);win.setSize(400, 300)。
4、;win.setResizable(false);win.setLocationRelativeTo(null);win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);win.setVisible(true);public static void main(String args) MagicButton demo = new MagicButton();demo.initUI();public void mouseEntered(MouseEvent e) int mouseX = button.getX() + e.getX();int mo。
5、useY = button.getY() + e.getY();while (true) int buttonX = rand.nextInt(win.getWidth() - button.getWidth();int buttonY = rand.nextInt(win.getHeight() - button.getHeight();button.setLocation(buttonX, buttonY);if (!button.getBounds().contains(mouseX, mouseY) break; 第二章 实验一 /* 2. 交换两个变量的值(不允许使用中间变量) 。*。
6、/ package ch03;public class Exp2_2 public static void main(String args) int a = 2, b = 3; int s = a * b; a = s / a; b = s / a; System.out.println(“a=“ + a + “, b=“ + b); 实验二 /* 3. 逆序输出一个 7 位整数,如 8639427 输出为 7249368(不允许使用循环语句) 。*/ package ch03;public class Exp2_3 public static void main(String args) 。
7、long a = 8639427; System.out.print(a % 10); System.out.print(a / 10 % 10); System.out.print(a / 100 % 10); System.out.print(a / 1000 % 10); System.out.print(a / 10000 % 10); System.out.print(a / 100000 % 10); System.out.print(a / 1000000 % 10); 实验三 /* 4. 对于 int 型变量 a,以最快的速度计算 34a 的值。*/ package ch03;。
8、public class Exp2_4 public static void main(String args) int a = 3; int b = (a b ? a : b) c ? (a b ? a : b) : c; System.out.println(“max=“ + max); 第三章 实验一 /* 2. 使用循环结构逆序输出任意位数的整数。*/ package ch04;import java.util.Scanner;public class Exp3_2 public static void main(String args) Scanner s = new Scanner。
9、(System.in); System.out.println(“输入整数:“); long n = s.nextLong(); while (n 0) System.out.print(n % 10); n /= 10; 实验二 /* 3. 输出以下由数字组成的菱形(要求将输出行数存放于变量中以便随时更改) 。1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1 */ package ch04;import java.util.Scanner;public class Exp3_3 public static void main(String a。
10、rgs) int rows; Scanner s = new Scanner(System.in); System.out.print(“输入行数:“); rows = s.nextInt();for (int i = -rows / 2; i ai) min = ai; return min; int findLastLocation(int a, int x) for (int i = a.length - 1; i = 0; i-) if (ai = x) return i; return -1; boolean isAsc(int a) for (int i = 0; i ai + 1。
11、) return false; return true; void reverse(int a) for (int i = 0; i x) return i; return i; void insert(int i, int x) for (int j = a.length - 2; j = i; j-) aj + 1 = aj; ai = x; public static void main(String args) Exp4_2 t = new Exp4_2(); t.print(false);System.out.print(“输入要插入的数:“); Scanner s = new Sc。
12、anner(System.in); int x = s.nextInt();int i = t.findInsertLocation(x); if (i = -1) System.out.println(x + “ 在数组中已经存在,放弃插入!“); else t.insert(i, x); t.print(true); 实验三 /* 3. 找出阶数不小于 8 的方阵的鞍点值及位置(鞍点值在该行上最大、该列上最小) ,若无 鞍点则提示。*/ package ch05;import java.util.ArrayList; import java.util.List; import java.u。
13、til.Random; import java.util.Scanner;/* 鞍点对象类*/ class AnDian private int row; / 鞍点所在行下标 private int col; / 鞍点所在列下标 private int value; / 鞍点值/ 完全构造方法 public AnDian(int row, int col, int value) this.row = row; this.col = col; this.value = value; / getters and setters public int getRow() return row; pub。
14、lic void setRow(int row) this.row = row; public int getCol() return col; public void setCol(int col) this.col = col; public int getValue() return value; public void setValue(int value) this.value = value; /* 测试类(整体上是若干个并列的 2 重循环,时间复杂度较 3 重循环低)*/ public class Exp4_3 int a; / 矩阵 int maxOfRows; / 存放每行的最大值 int minOfCols; / 存放每列的最小值 final int LIMIT = 3; / 矩阵元素值的上限(为测试方便此处写死,也可在运行时由用户 输入)/ 初始化矩阵 void initArray() Scanner scanner = new Scanner(System.in);。