北京信息科技大学Java语言程序设计类和对象_第1页
北京信息科技大学Java语言程序设计类和对象_第2页
北京信息科技大学Java语言程序设计类和对象_第3页
北京信息科技大学Java语言程序设计类和对象_第4页
北京信息科技大学Java语言程序设计类和对象_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【实验名称】实验2 类和对象 【实验目的】 1、学习和掌握Java创建对象的方法。 2、学习和掌握通过创建对象、使用类的方法。 3、学习和掌握Java类定义的方法。 4、了解类设计的一般原则。 【实验内容】 1、(Java API类的应用)使用java.util.Random类,创建种子是1000的Random对象,然后使用nextInt(100)方法显示0到100之间前50个随机整数。 说明:题目来源编程练习8.4(P238)。请查阅JavaAPI文档,了解java.util.Random的功能和使用方法。 【实验预习】1、 输出0-100之间的50个随机整数。2、 建立种子为1000的ra

2、ndom对象,返回0-100之间的随机整数型值,再输出这些值。3、 技术支持:用了java.util.random类,及循环语句。【附:程序代码】public class RandomProgrampublic static void main(Stringargs)/以1000构造random对象java.util.Random random=new java.util.Random(1000);/输出0-100内的50个随机整型值for(int i=0;i<50;i+)System.out.print(random.nextInt(100)+" ");【实验过程及

3、结果记录】在实验中遇到的问题:忘记写特定种子,这样使用的就是当前时间作为种子构造random对象。2、(使用StackOfIntegers类,显示素数因子)编写一个程序,提示用户输入一个正整数,然后以降序显示它的所有最小因子。例如:如果整数为120,那么显示的最小因子为5、3、2、2、2。使用StackOfIntegers类存储因子(如:2、2、2、3、5),获取之后按倒序显示这些因子。 说明:题目来源编程练习10.5(P296)。StackOfIntegers类实现,参见10.9“堆栈类设计”、类图10-11(P288)。求素数因子算法,参考编程练习4.16(P117)。 【实验预习】1.

4、输出一个正整数的所有素数因子。2. 输入:用scanner输入一个正整数。处理:当改正整数能被2以上整除时,将除数放入栈中,商赋给除数,否则除数加1,循环上述步骤,知道被除数为1停止。输出:将栈中的数一次输出。3:技术支持:创建了StackOfIntegers类,使用了堆栈类设计方法,使用了循环语句,条件语句,输出语句等。【附:程序代码】public class testStacksOfIntegers public static void main(String args) /创建StacksOfIntegers类 StackOfIntegers stack = new StackOfInt

5、egers();/输入一个正整数 Scanner input=new Scanner(System.in); int limit=input.nextInt(); int k,s,i=2; s=limit;/判断除数是否为该整数的素数因子 do k= s%i; if(k=0) s=s/i; stack.push(i); else i+; while(s!=1);/输出栈中的数,即素数因子 while (!stack.empty() System.out.print(stack.pop() + " "); /创建StacksOfIntegers类Public class St

6、ackOfIntegers private int elements; private int size; public static final int DEFAULT_CAPACITY = 16;/构建一个默认容量为16的空栈 public StackOfIntegers() this(DEFAULT_CAPACITY); /构建一个指定容量的空栈 public StackOfIntegers(int capacity) elements = new intcapacity; /将一个整数存储到栈顶 public void push(int value) if (size >= el

7、ements.length) int temp = new intelements.length * 2; System.arraycopy(elements, 0, temp, 0, elements.length); elements = temp; elementssize+ = value; /删除栈顶的整数并返回它 public int pop() return elements-size; /返回栈顶的整数而不从栈中删除该数 public int peek() return elementssize - 1; /如果栈为空则返回true public boolean empty()

8、 return size = 0; /返回栈中元素个数 public int getSize() return size; 【实验过程及结果记录】在实验中遇到的问题:在实验开始时不会使用堆栈类设计方法,经过看书上例题,学会了如何使用。3、(风扇类Fan的应用和实现)根据编程练习8.8(P239)的描述,第一步,请画出风扇Fan类的UML类图。第二步,编写一个测试程序(Fan类应用),创建两个Fan对象,用第一个Fan对象表示“最大速度运转、半径为10、颜色为黄色、处于打开状态”的风扇;用第二个Fan对象表示“中等速度运转、半径为5、颜色为蓝色、处于关闭状态”的风扇;通过调用toString()

9、方法显示这些风扇的属性信息。程序可以TestFan.java中。第三步,实现风扇类Fan,可以编写在Fan.java文件中。第四步,编译运行该程序。【实验预习】1. 通过创建Fan类,输出一个风扇的自身属性2. 构建一个风扇类,构建特殊实例,通过调用其中的方法,显示该实例的属性。3. 技术支持:构建风扇类,使用了构造方法、一般方法,访问器,修改器。使用了输出语句等。4. 实验步骤:画出uml图,构建风扇类,再写出main方法。【UML图】【附:程序代码】public class FanProgram/主方法public static void main(Stringargs)/创建一个Fan对

10、象,其设置为最大风速、半径为10、颜色为yellow、状态为打开。Fan fan1=new Fan();fan1.setSpeed(Fan.FAST);fan1.setRadius(10);fan1.setColor("yellow");fan1.setOn(true);/输出该实例对象的属性System.out.println("fan1"+"n"+fan1.toString();/创建一个对象,其设置为中等风速、半径为5、颜色为blue、状态为关闭。Fan fan2=new Fan(); fan2.setSpeed(Fan.MED

11、IUM);fan2.setRadius(5);fan2.setColor("blue");fan2.setOn(false);/输出该实例对象的属性System.out.println("fan2"+"n"+fan2.toString();/创建一个风扇类Public class Fanfinal static int SLOW=1;final static int MEDIUM=2;final static int FAST=3;private int speed=1;private boolean on=false;private

12、 double radius=5;private String color="blue"/风扇类的无参构造方法Fan()/返回这个风扇类的风速public int getSpeed()return speed;/设置这个风扇的新风速public void setSpeed(int newSpeed)speed=newSpeed;/返回这个风扇的状态public boolean isOn()return on;/设置这个风扇的新的状态public void setOn(boolean newSpeed)on=newSpeed;/返回这个风扇的半径public double g

13、etRadius()return radius;/设置这个风扇的新的半径public void setRadius(double newRadius)radius=newRadius;/返回这个风扇的颜色public String getColor()return color;/设置这个风扇的新的颜色public void setColor(String newColor)color=newColor;/返回描述风扇的字符串public String toString()return "speed "+speed+"n"+"color &quo

14、t;+color+"n"+"radius "+radius+"n"+(on) ? "fan is on" : " fan is off");【实验过程及结果记录】在实验中遇到的问题:在用toString时,使用了选择运算符,简化代码。用if语句,比较长。4.(tax类的应用和实现)根据编程练习10.8(P297)的描述,使用和实现Tax类,计算缴纳的税款额。第一步,画出Tax类的UML图。第二步,编写一个测试程序,使用Tax类,对所给4种纳税人打印2009年的税款表(2009税率表参见表2),可

15、征税收入范围在50,00060,000美元之间,间隔为1000美元。第三步,实现Tax类。第四步,编译、运行该程序。【实验预习】1. 通过创建Tax类,输出一个Tax的自身属性2.构建一个Tax类,构建特殊实例,通过调用其中的方法,计算税款。3.技术支持:构建Tax类,使用了构造方法、一般方法,访问器,修改器。使用了输出语句等。4.实验步骤:画出uml图,构建Tax类,再写出main方法。【UML图】【附:程序代码】public class taxProgram /主方法public static void main(String args) int bracketsFor2009 = 600

16、0, 27950, 67700, 141250, 307050, / Single filer 12000 , 46700, 112850, 171950, 307050, / married filing jointly 6000, 23350, 56425, 85975, 153525, / married filing separately 10000, 37450, 96700, 156600, 307050 / head of household ; double ratesFor2009 = 0.1, 0.15, 0.27, 0.30, 0.35, 0.386; Tax taxFo

17、r2009 = new Tax(0, bracketsFor2009, ratesFor2009, 50000); System.out.println("2002 Tax Table");System.out.println("taxabletSingletMarriedtMarriedtHead of"); System.out.println("IncometSingletJointtSeparateta House"); for (int taxableIncome = 50000; taxableIncome <= 6

18、0000; taxableIncome += 1000) taxFor2009.setTaxableIncome(taxableIncome); taxFor2009.setFilingStatus(0); int taxForStatus0 = (int)taxFor2009.findTax(); taxFor2009.setFilingStatus(1); int taxForStatus1 = (int)taxFor2009.findTax(); taxFor2009.setFilingStatus(2); int taxForStatus2 = (int)taxFor2009.find

19、Tax(); taxFor2009.setFilingStatus(3); int taxForStatus3 = (int)taxFor2009.findTax(); System.out.println(taxableIncome + "t" + taxForStatus0 + "t" + taxForStatus1 + "t" + taxForStatus2 + "t" + taxForStatus3); /创建Tax类Public class Tax public final static int SING

20、LE_FILER = 1; public final static int MARRIED_JOINTLY = 2; public final static int MARRIED_SEPARATELY = 3; public final static int HEAD_OF_HOUSEHOLD = 4; private int filingStatus = SINGLE_FILER; private int brackets = 6000, 27950, 67700, 141250, 307050, / Single filer 12000 , 46700, 112850, 171950,

21、307050, / married filing jointly 6000, 23350, 56425, 85975, 153525, / married filing separately 10000, 37450, 96700, 156600, 307050 / head of household ; private double rates = 0.1, 0.15, 0.27, 0.30, 0.35, 0.386; private double taxableIncome = 100000;/构建一个默认的税款对象public Tax() /构建一个制定纳税人类型,收入及税率的税款对象

22、public Tax(int filingStatus, int brackets, double rates, double taxableIncome) this.filingStatus = filingStatus; this.brackets = brackets; this.rates = rates; this.taxableIncome = taxableIncome; /设置这个对象的收入范围 public void setBrackets(int brackets) this.brackets = brackets; /设置税率 public void setRates(d

23、ouble rates) this.rates = rates; /返回税款对象的收入 public double getTaxableIncome() return taxableIncome; 设置税款对象的收入 public void setTaxableIncome(double taxableIncome) this.taxableIncome = taxableIncome; /返回纳税人所属类型 public int getFilingStatus() return filingStatus; /设置纳税人所属类型 public void setFilingStatus(int filingStatus) this.filingStatus = filingStatus; /计算税款,并返回税款值 public double findTax() double tax = 0; if (taxableIncome <= bracketsfilingStatus0) return tax = taxableIncome * rates0; else tax = bracketsfilingStatus0 * rates0; int i; for (i = 1; i < bracket

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论