您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 北京信息科技大学Java语言程序设计-类和对象
【实验名称】实验2类和对象【实验目的】1、学习和掌握Java创建对象的方法。2、学习和掌握通过创建对象、使用类的方法。3、学习和掌握Java类定义的方法。4、了解类设计的一般原则。【实验内容】1、(JavaAPI类的应用)使用java.util.Random类,创建种子是1000的Random对象,然后使用nextInt(100)方法显示0到100之间前50个随机整数。说明:⑴题目来源编程练习8.4(P238)。⑵请查阅JavaAPI文档,了解java.util.Random的功能和使用方法。【实验预习】1、输出0-100之间的50个随机整数。2、建立种子为1000的random对象,返回0-100之间的随机整数型值,再输出这些值。3、技术支持:用了java.util.random类,及循环语句。【附:程序代码】publicclassRandomProgram{publicstaticvoidmain(String[]args){//以1000构造random对象java.util.Randomrandom=newjava.util.Random(1000);//输出0-100内的50个随机整型值for(inti=0;i50;i++)System.out.print(random.nextInt(100)+);}}【实验过程及结果记录】在实验中遇到的问题:忘记写特定种子,这样使用的就是当前时间作为种子构造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.输出一个正整数的所有素数因子。2.输入:用scanner输入一个正整数。处理:当改正整数能被2以上整除时,将除数放入栈中,商赋给除数,否则除数加1,循环上述步骤,知道被除数为1停止。输出:将栈中的数一次输出。3:技术支持:创建了StackOfIntegers类,使用了堆栈类设计方法,使用了循环语句,条件语句,输出语句等。【附:程序代码】publicclasstestStacksOfIntegers{publicstaticvoidmain(String[]args){//创建StacksOfIntegers类StackOfIntegersstack=newStackOfIntegers();//输入一个正整数Scannerinput=newScanner(System.in);intlimit=input.nextInt();intk,s,i=2;s=limit;//判断除数是否为该整数的素数因子do{k=s%i;if(k==0){s=s/i;stack.push(i);}elsei++;}while(s!=1);//输出栈中的数,即素数因子while(!stack.empty())System.out.print(stack.pop()+);}}//创建StacksOfIntegers类PublicclassStackOfIntegers{privateint[]elements;privateintsize;publicstaticfinalintDEFAULT_CAPACITY=16;//构建一个默认容量为16的空栈publicStackOfIntegers(){this(DEFAULT_CAPACITY);}//构建一个指定容量的空栈publicStackOfIntegers(intcapacity){elements=newint[capacity];}//将一个整数存储到栈顶publicvoidpush(intvalue){if(size=elements.length){int[]temp=newint[elements.length*2];System.arraycopy(elements,0,temp,0,elements.length);elements=temp;}elements[size++]=value;}//删除栈顶的整数并返回它publicintpop(){returnelements[--size];}//返回栈顶的整数而不从栈中删除该数publicintpeek(){returnelements[size-1];}//如果栈为空则返回truepublicbooleanempty(){returnsize==0;}//返回栈中元素个数publicintgetSize(){returnsize;}}【实验过程及结果记录】在实验中遇到的问题:在实验开始时不会使用堆栈类设计方法,经过看书上例题,学会了如何使用。3、(风扇类Fan的应用和实现)根据编程练习8.8(P239)的描述,第一步,请画出风扇Fan类的UML类图。第二步,编写一个测试程序(Fan类应用),⑴创建两个Fan对象,⑵用第一个Fan对象表示“最大速度运转、半径为10、颜色为黄色、处于打开状态”的风扇;⑶用第二个Fan对象表示“中等速度运转、半径为5、颜色为蓝色、处于关闭状态”的风扇;⑷通过调用toString()方法显示这些风扇的属性信息。程序可以TestFan.java中。第三步,实现风扇类Fan,可以编写在Fan.java文件中。第四步,编译运行该程序。【实验预习】1.通过创建Fan类,输出一个风扇的自身属性2.构建一个风扇类,构建特殊实例,通过调用其中的方法,显示该实例的属性。3.技术支持:构建风扇类,使用了构造方法、一般方法,访问器,修改器。使用了输出语句等。4.实验步骤:画出uml图,构建风扇类,再写出main方法。【UML图】【附:程序代码】publicclassFanProgram{//主方法publicstaticvoidmain(String[]args){//创建一个Fan对象,其设置为最大风速、半径为10、颜色为yellow、状态为打开。Fanfan1=newFan();fan1.setSpeed(Fan.FAST);fan1.setRadius(10);fan1.setColor(yellow);fan1.setOn(true);//输出该实例对象的属性System.out.println(fan1+\n+fan1.toString());//创建一个对象,其设置为中等风速、半径为5、颜色为blue、状态为关闭。Fanfan2=newFan();fan2.setSpeed(Fan.MEDIUM);fan2.setRadius(5);fan2.setColor(blue);fan2.setOn(false);//输出该实例对象的属性System.out.println(fan2+\n+fan2.toString());}}//创建一个风扇类PublicclassFan{finalstaticintSLOW=1;finalstaticintMEDIUM=2;finalstaticintFAST=3;privateintspeed=1;privatebooleanon=false;privatedoubleradius=5;privateStringcolor=blue;//风扇类的无参构造方法Fan(){}//返回这个风扇类的风速publicintgetSpeed(){returnspeed;}//设置这个风扇的新风速publicvoidsetSpeed(intnewSpeed){speed=newSpeed;}//返回这个风扇的状态publicbooleanisOn(){returnon;}//设置这个风扇的新的状态publicvoidsetOn(booleannewSpeed){on=newSpeed;}//返回这个风扇的半径publicdoublegetRadius(){returnradius;}//设置这个风扇的新的半径publicvoidsetRadius(doublenewRadius){radius=newRadius;}//返回这个风扇的颜色publicStringgetColor(){returncolor;}//设置这个风扇的新的颜色publicvoidsetColor(StringnewColor){color=newColor;}//返回描述风扇的字符串publicStringtoString(){returnspeed+speed+\n+color+color+\n+radius+radius+\n+((on)?fanison:fanisoff);}}【实验过程及结果记录】在实验中遇到的问题:在用toString时,使用了选择运算符,简化代码。用if语句,比较长。4.(tax类的应用和实现)根据编程练习10.8(P297)的描述,使用和实现Tax类,计算缴纳的税款额。第一步,画出Tax类的UML图。第二步,编写一个测试程序,使用Tax类,对所给4种纳税人打印2009年的税款表(2009税率表参见表2),可征税收入范围在50,000~60,000美元之间,间隔为1000美元。第三步,实现Tax类。第四步,编译、运行该程序。【实验预习】1.通过创建Tax类,输出一个Tax的自身属性2.构建一个Tax类,构建特殊实例,通过调用其中的方法,计算税款。3.技术支持:构建Tax类,使用了构造方法、一般方法,访问器,修改器。使用了输出语句等。4.实验步骤:画出uml图,构建Tax类,再写出main方法。【UML图】【附:程序代码】publicclasstaxProgram{//主方法publicstaticvoidmain(String[]args){int[][]bracketsFor2009={{6000,27950,67700,141250,307050},//Singlefiler{12000,46700,112850,171950,307050},//marriedfilingjointly{6000,23350,56425,85975,153525},//marriedfilingseparately{10000,37450,96700,156600,307050}//headofhousehold};double[]ratesFor2009={0.1,0.15,0.27,0.30,0.35,0.386};TaxtaxFor2009=newTax(0,bracketsFor2009,ratesFor2009,50000);System.out.println(2002TaxTable);System.out.println(taxable\tSingle\tMarried\tMarried\tHeadof);System.out.println(Income\tSingle\tJoint\tSeparate\taHouse);for(inttaxableIncome=50000;taxableIncome=60000;taxableIncome+=1000){taxFor2009.setTaxableIncome(taxableIncome);taxFor2009.setFilingStatus(0);inttaxForStatus0=(int)taxFor2009.findTax();taxFor2009.setFilingStatus(1);inttaxForStatus1=(int)taxFor2009.findTax();taxFor2009.setFilingStatus(2);inttaxForStatus2=(int)taxFor2009.f
本文标题:北京信息科技大学Java语言程序设计-类和对象
链接地址:https://www.777doc.com/doc-4841393 .html