1、2. System.out.println(sum(1, 100); /* * 计算a到b的累加结果 * param a * param b * return */ private static int sum(int a, int b) int sum = 0; int i = a; while (i = b) sum += i; i+; return sum;3.import java.util.Scanner; public static void main(String args) throws java.io.IOException int k, n; Scanner scanner
2、 = new Scanner(System.in);请输入k: k = scanner.nextInt();请输入n: n = scanner.nextInt();计算结果为: + calc(k, n); scanner.close(); * 求a到b的累乘结果 private static int factorial(int a, int b) int ret = 1; for (int i = a; i = b; i+) ret *= i; return ret; * 计算组合数C(n, k) * param k * param n private static int calc(int
3、k, int n) return factorial(n-k+1, n) / factorial(1, k);四、实验小结(主要写一些实验中出现的问题,应注意的事项,以及实验体会)主要注意jdk的环境变量的配置,以及javac和java命令的使用。另外,从控制台获取键盘输入,可以使用类Scanner,将其import进来就可以使用了。(注:实验环境为Ubuntu11.04 + jdk1.7.0_10)实验二 JAVA数组结构(1) 进一步理解数组、数组元素等基本概念;(2) 熟练掌握各类数组的定义方法;(3) 熟练掌握操作各类数组的基本方法;(4) 掌握Eclipse开发工具。1编程采用冒泡法
4、实现对数组元素由小到大排序。从键盘输入任意大小的10个整数,采用冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。要求输出排序前的数据情况和排序后的数据情况,同时统计排序过程中发生数据交换的次数。2.计算矩阵对角线元素之和 三、 实验过程1.编程如下: System.out.print(请输入10个数: int array = new int10; for (int i = 0; 10; arrayi = scanner.nextInt(); print(array);交换了 + sort(array) + 次 public static int sort(int array) in
5、t count = 0; array.length; for (int j = i + 1; j arrayj) int t = arrayi; arrayi = arrayj; arrayj = t; count+; return count; public static void print(int array) i b ? a : b); return (m c ? m : c); Staff staff = new Staff(张三, 1001 staff.setSalary(5000); staff.printInfo(); Manager manager = new Manager
6、(李四1002 manager.setSalary(8000); manager.setAward(10000); manager.printInfo();Staff.javapublic class Staff protected String name; protected String id; protected float salary; public Staff(String name, String id) this.name = name; this.id = id; public String getId() return id; public String getName()
7、 return name; public void setSalary(float salary) this.salary = salary; public float getSalary() return salary; public void printInfo() + name + 员工号: + id + 工资: + salary);Manager.javapublic class Manager extends Staff protected float award; public Manager(String name, String id) super(name, id); pub
8、lic float getAward() return award; public void setAward(float award) this.award = award; super.printInfo(); 奖金: + award);四、实验小结继承可以使得代码被复用,还可以很好的体现类之间的逻辑关系;多态则可以使对象拥有其独特的方法实现。另外注意封装性,管理好成员的可见性,通过相应方法来读取和访问,有利于数据安全和权限控制。实验四 抽象类和接口的使用(1) 熟悉抽象类和接口的概念;(2) 掌握抽象类和接口的定义方法;(3) 掌握抽象类和接口的使用方法。2. 设计一个人员类,其中包含一
9、个方法pay,代表人员的工资支出。再从人员类派生出助教类、讲师类、副教授类和教授类。其中:工资支出=基本工资+授课时数*每课时兼课金 将人员类定义为抽象类,方法pay为抽象方法,设计程序实现多态性。 将方法pay定义在接口中,设计程序实现多态性。 Staff staff = new Assistant(); System.out.println(staff + 工资支出为: + staff.pay(); staff = new Lecturer(); staff = new AssociateProfessor(); staff = new Professor();/* * 人员类public
10、 abstract class Staff public abstract int pay(); * 助教类class Assistant extends Staff public int pay() return 2000 + 10 * 50; public String toString() return 助教; * 讲师类class Lecturer extends Staff return 3000 + 10 * 80;讲师 * 副教授class AssociateProfessor extends Staff return 4000 + 10 * 100;副教授 * 教授类class
11、 Professor extends Staff return 5000 + 10 * 150;教授抽象类和接口都用于实现多态性,但是抽象类中除了抽象方法,还可以包括成员变量以及一般成员方法;而接口只能包括公有抽象方法和静态常量。另外,实现多态性的时候,抽象类用于被继承,且只能单继承;而接口用于被实现,一个类可以实现多个接口。实验五 异常抛出和捕获(1) 掌握异常的概念、异常的抛出、异常的处理的方法;(2) 学会在程序中用自定义异常处理实际问题;(3) 学会在程序中自己抛出异常和处理异常。 编写一个程序:完成在银行的存款和取款操作。在定义银行类时,若取钱数大于余额则作为异常处理。设计思路:1.
12、 产生异常的条件是余额少于取额,因此是否抛出异常要先判断该条件。产生异常的方法应该在取钱方法中。2. 处理异常安排在调用取钱方法的时候,因此取钱方法要抛出异常,由上一级调用方法捕获并处理。3. 要定义自己的异常。编程如下: Bank bank = new Bank(); bank.deposit(100); try bank.withdraw(200); catch (NoEnoughMoneyException e) System.out.println(NoEnoughMoney, + e.getMessage();NoEnoughMoneyException.javapublic cla
13、ss NoEnoughMoneyException extends Exception public NoEnoughMoneyException(final String message) super(message);Bank.javapublic class Bank float money = 0; public void deposit(float value) money += value; public void withdraw(float value) throws NoEnoughMoneyException if (money value) throw new NoEno
14、ughMoneyException(current money is + money); else money -= value; public float query() return money;一个程序难免会遇到异常,Java中可以用throw抛出异常,用trycatchfinaly来处理异常。而且除了Java定义的异常类,还可以自己定义一些异常类。实验六 JAVA实用包(1) 掌握String类的使用;(2) 掌握StringBuffer类的使用;(3) 掌握StringTokenizer类的使用;(4) 掌握Vector类的使用。 显示一个窗口,在窗口的一个JTextField中输入
15、要进行语言符号化的语句,按回车键后,程序首先将语句转化成大写,然后将语言符号化的结果显示在窗口JTextArea中。提示:1. 将语句转化成大写可使用String类中的toUpperCase()方法。2. 部分程序段import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class StringTokenizeTest extends JFrame private JLabel promptLabel; private JTextField inputField; priv
16、ate JTextArea outputArea;StringTokenizeTest.java private JLabel promptLabel = new JLabel(); private JTextField inputField = new JTextField(); private JTextArea outputArea = new JTextArea(); private JLabel authorLabel = new JLabel(); new StringTokenizeTest(); public StringTokenizeTest() setTitle(Stri
17、ngTokenizeTest setBounds(500, 300, 300, 220); setDefaultCloseOperation(EXIT_ON_CLOSE); init(); setVisible(true); private void init() setLayout(null); promptLabel.setText(输入: promptLabel.setBounds(10, 10, 50, 30); authorLabel.setText(by 1040501211 陈嘉生 authorLabel.setBounds(10, 150, 200, 30); inputField.setBounds(70, 10, 200, 30); inputField.addActionListener(new ActionListener() Override public void actionPerformed(ActionEvent e) stringTokenize(); ); outputArea.setBounds(10, 50, 280, 100); add(promptLabel); add(input
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1