实验报告课程名称Java程序设计实验项目实验一类和对象系别_________计算机_________专业/班级_______计算机类/1402______姓名_____李馨雪________实验日期______2015.10.10______成绩_______________________指导教师一、实验题目:实验一类和对象二、实验内容:(1)用类描述计算机中CPU的速度和硬盘的容量。
要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。
1)PC类与CPU类和HardDisk类关联的UML图如图所示。
其中,CPU类要求getSpeed()返回speed的值,setSpeed(int m)方法将参数m的值赋值给speed。
HardDisk类要求getAmount()返回amount的值,setAmount(int m)方法将参数m的值赋值给amount。
PC类要求setCPU(CPU c)将参数c的值赋值给cpu,要求setHardDisk(HardDisk h)方法将参数h的值赋值给HD,要求show()方法能显示cpu的速度和硬盘的容量。
2)主类Test的要求main()方法中创建一个CPU对象cpu,其speed设置为2200;main()方法中创建一个HardDisk对象disk,其amount设置为200;main()方法中创建一个PC对象pc,pc调用setCPU方法,实参是cpu;调用setHardDisk方法,实参是disk;调用show方法。
(2)设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声,要求如下:1)编写接口Animal,有2个抽象方法cry()和getAnimaName();2)编写模拟器类Simulator,该类有一个playSound(Animal animal)方法,其形参是Animal类型,可以调用实现Animal接口的类所重写的cry()方法播放具体动物的声音,调用重写方法显示动物种类的名称;3)编写实现Animal接口的Dog类和Cat类。
具体的UML图如下所示:4)编写主类Application,其main方法中至少包含如下代码:Simulator si=new Simulator();si.playSound(new Dog());si.playSound(new Cat());(3)选作:贷款计算问题 贷款时月还款的计算公式如下:,创建程序,从屏幕上输入年利率、贷款额、贷款年数,输出月还款额以及总的还款额。
其中要求:1) 创建贷款类来模拟贷款的属性和行为,如具有年利率、贷款年限、贷款额等属性,以及计算月利率、计算月还款额、总还款额等行为。
2) 创建实际的应用类(包含main 方法),生成贷款类的实例对象,并调用相关方法来显示月还款额和总的还款额。
三、程序清单及结果:(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果)1)程序清单及注释public class CPU {int speed ;void setSpeed(int m ){ speed = m ; Simulator playSound(Animal): voidDog cry(): void Cat cry(): void<<interface>> Animal cry(): void getAnimaName(): String}int getSpeed(){return speed;}}public class HardDisk {int amount;void setAmount(int m){amount = m;}int getAmount(){return amount;}}public class PC {CPU cpu;HardDisk HD;void setCPU(CPU c){cpu = c;}void setHardDisk(HardDisk h){HD = h;}void show(){System.out.println("Speed="+cpu.getSpeed()+" Amount="+HD.getAmount());}}public class Test {public static void main(String[] args){CPU cpu = new CPU();cpu.setSpeed(2200);HardDisk disk = new HardDisk();disk.setAmount(200);PC pc = new PC();pc.setCPU(cpu);pc.setHardDisk(disk);pc.show();}}public interface Animal {abstract void cry();abstract String getAnimaName();}public class Dog implements Animal{public void cry(){System.out.println("run dog's cry.");}public String getAnimaName() {return"Dog";}}public class Cat implements Animal{public void cry() {System.out.println("run cat's cry.");}public String getAnimaName() {return"Cat";}}public class Simulator {void playSound(Animal animal){animal.cry();System.out.println(animal.getAnimaName());}}public class Application {public static void main(String[] args) {Simulator si = new Simulator();si.playSound(new Dog());si.playSound(new Cat());}}public class Loan {float annualInterestRate;int mortgage;int loanyear;float getMonthlyInterestRate(){return annualInterestRate / 12;}double getMonthlyPayment(){return mortgage * getMonthlyInterestRate() / (1 - Math.pow((1 / (1 + getMonthlyInterestRate())), mortgage * 12));}double getSumPayment(){return getMonthlyPayment() * loanyear * 12;}}import java.util.Scanner;public class Application {public static void main(String[] args) {Loan loan = new Loan();Scanner sc = new Scanner(System.in);System.out.print("please input number of loan account:");loan.mortgage = sc.nextInt();System.out.print("please input number of loan years:");loan.loanyear = sc.nextInt();System.out.print("please input annual interest rate:");loan.annualInterestRate = sc.nextFloat();System.out.println("monthly payment =");System.out.printf("%.2f\n", loan.getMonthlyPayment());System.out.println("summary payment =");System.out.printf("%.2f", loan.getSumPayment());}}2)程序运行结果Speed=2200 Amount=200run dog's cry.Dogrun cat's cry.Catplease input number of loan account:100please input number of loan years:1please input annual interest rate:1.2monthly payment =10.00summary payment =120.00四、程序调试报告及总结(调试中遇到的问题及解决方法,并说明实验过程中对Java知识点的认识及收获等)……1.熟悉了文本编辑在编程java中的使用学会了终端调试2.进一步明白了java与c的区别和联系3.熟悉了接口和类的区别4.学会了怎么用类和串口5.学会了在类里头用方法。