期末复习JAVA题.docx
- 文档编号:16122061
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:73
- 大小:32.04KB
期末复习JAVA题.docx
《期末复习JAVA题.docx》由会员分享,可在线阅读,更多相关《期末复习JAVA题.docx(73页珍藏版)》请在冰点文库上搜索。
期末复习JAVA题
1.分解质因数
packaged2;
importjava.util.Scanner;
publicclassZys{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.print("请输入一个数:
");
inta=sc.nextInt();
intn=2;
System.out.println(a+"=");
while(a>=n){
if(a%n==0){
System.out.print(n+"*");
a=a/n;
}
if(a%n!
=0){
n++;
}
}
}
}
2.判断是否是回文数
ackagec2;
importjava.util.Scanner;
publicclasshuiwenshu{
publicstaticvoidmain(String[]args){
//System.out.println("请输入一个数");
Scannera=newScanner(System.in);
System.out.println("请输入一个数");
Stringb=a.nextLine();
booleanc=false;
for(inti=0;i if(b.charAt(i)! =b.charAt(b.length()-i-1)){ c=false; } else c=true; if(c==true) System.out.println("是回文数"); }else{ System.out.println("不是回文数") } } } 3.数组逆序输出 publicclasssz{ publicstaticvoidmain(String[]args){ inta[]={1,2,3,4,5,6,7,8,9,0}; for(inti=9;i>=0;i--){ System.out.println(a[i]); } } } 4.水仙花数 publicclasssxh{ publicstaticvoidmain(String[]args){ inta,b,c; for(inti=100;i<=999;i++){ a=i/10%10; b=i%10; c=i/100; if(i==a*a*a+b*b*b+c*c*c) System.out.println(i); } } } 5.素数 publicclassSushu{ publicstaticvoidmain(String[]args){ for(inti=100;i<=200;i++){ booleanb=false; for(intj=2;j<=Math.sqrt(i);j++){ if(i%j==0){ b=true;break; } else {b=false;} } if(b==false) System.out.println(i); } } } 6.最大公约数和最小公倍数 importjava.util.Scanner; publicclassSz{ publicstaticvoidmain(String[]args){ inta,b,m; Scanners=newScanner(System.in); System.out.print("键入一个整数: "); a=s.nextInt(); System.out.print("再键入一个整数: "); b=s.nextInt(); deffcd=newdeff(); m=cd.deff(a,b); intn=a*b/m; System.out.println("最大公约数: "+m); System.out.println("最小公倍数: "+n); } } classdeff{ publicintdeff(intx,inty){ intt; if(x t=x; x=y; y=t; } while(y! =0){ if(x==y) returnx; else{ intk=x%y; x=y; y=k; } } returnx; } } 1、题目: 一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如6=1+2+3.编程 找出1000以的所有完数。 publicclassshishu{ publicstaticvoidmain(String[]args){ inti; for(i=2;i<=1000;i++){ intsum=0; for(intj=1;j<=i/2;j++){ if(i%j==0){ //System.out.println(j); sum=sum+j; } } if(sum==i){ System.out.println(i); } } } } 2.假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性: 、工号以及工资。 经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。 请使用继承的思想设计出员工类和经理类。 要求类中提供必要的方法进行属性访问。 publicclassmanagerextendsyg{ protectedintaward; publicstaticvoidmain(String[]args){ yga=newyg(); a.setdata("晓晓","01234",5000); a.print(); managerb=newmanager(); b.setdata("黄洋洋","01235",6000); b.award=20000; b.print(); System.out.println("奖金"+b.award);; } } classyg{ protectedStringname; protectedStringnum; protectedintsalary; voidsetdata(Stringxm,Stringgh,intgz){ name=xm; num=gh; salary=gz; } publicvoidprint(){ System.out.println(": "+name); System.out.println("工号"+num); System.out.println("工资"+salary); } } 3.以点类作为基类,从点派生出圆,从圆派生圆柱,设计成员函数输出它们的面积和体积。 packagethird; publicclassCircleextendspoint{ protectedintr; Circle(intr,intx,inty){ super(x,y); this.r=r; } publicdoublearea(){ return3.14*r*r; } packagethird; publicclassCylinerextendsCircle{ protectedinth; Cyliner(inth,intx,inty,intr){ super(x,y,r); this.h=h; } publicdoublevolume(){ returnarea()*h; } publicstaticvoidmain(String[]args){ Circlea=newCircle(2,2,4); Cylinerb=newCyliner(2,2,3,4); System.out.println("圆的面积是: "+a.area()); System.out.println("圆的体积是: "+b.volume()); } } } publicclasspoint{ protectedintx; protectedinty; point(){ this.x=0; this.y=0; } point(intx,inty){ this.x=x; this.y=y; } } 4.定义一个抽象基类Shape,它包含三个抽象方法center()、diameter()、getArea(),从Shape类派生出Square和Circle类,这两个类都用center()计算对象的中心坐标,diameter()计算对象的外界圆直径,getArea()方法计算对象的面积。 编写编写应用程序使用Rectangle类和Circle类。 packageW1; publicabstractclassShape { abstractvoidcenter(); abstractvoiddiameter(); abstractvoidgetArea(); } packageW1; publicclassSquareextendsShape{ Override voidcenter(){ } Override voiddiameter(){ } Override voidgetArea(){ } } packageW1; publicclassCircleextendsShape{ Override voidcenter(){ } Override voiddiameter(){ } Override voidgetArea(){ } } packageW1; publicclassRectangleextendsSquare{ } packageW1; publicclassTest{ publicstaticvoidmain(String[]args) { Circlec=newCircle(); Squarer=newRectangle(); c.center(); c.diameter(); c.getArea(); r.center(); r.diameter(); r.getArea(); } } 实现一个名为Person的类和它的子类Employee, Manager是Employee的子类,设计一个接口Add用于涨工资,普通员工一次能涨10%,经理能涨20%。 具体要求如下: (1)Person类中的属性有: name(String类型),地址address(String类型)并写出该类的构造方法; (2)Employee类中的属性有: 工号ID(String型),工资wage(double类型),工龄(int型),写出该类的构造方法; (3)Manager类中的属性有: 级别level(String类型),写出该类的构造方法; publicclassperson{ privateStringname; privateStringaddress; publicperson(Stringname2,Stringaddress2){ } publicvoidPerson(Stringn,Stringa){ this.setName(n); this.setAddress(a); } publicvoidsetName(Stringn){ this.name=n; } publicvoidsetAddress(Stringa){ this.address=a; } privateStringgetName(){ returnthis.name; } privateStringgetAddress(){ returnthis.address; } } lassEmpolyeeextendsperson{ privateintemployeeNo; privatedoublepay; privateintage; publicEmpolyee(Stringname,Stringaddress,intempolyeeNO, doublepay,intage){ super(name,address); this.setEmployeeNo(empolyeeNO); this.setPay(pay); this.setAge(age); } publicvoidsetEmployeeNo(inte){ this.employeeNo=e; } publicvoidsetPay(doublep){ this.pay=p; } publicvoidsetAge(inta){ this.age=a; } publicintgetEmployeeNo(){ returnthis.employeeNo; } publicdoublegetPay(){ returnthis.pay; } publicintgetAge(){ returnthis.age; } } classManagerextendsEmpolyee{ privateintlevel; publicManager(Stringname,Stringaddress,intempolyeeNO,doublepay, intage,intlevel){ super(name,address,empolyeeNO,pay,age); this.setLevel(level); } publicvoidsetLevel(intl){ this.level=l; } publicintgetLevel(){ returnthis.level; } publicvoidprintInfo(){ System.out.println(": "+this.getName()+",工号: "+this.getEmployeeNo()+",工龄: "+this.getAge()+",级别: "+this.getLevel()+",地址: "+this.getAddress()); System.out.println("原工资: "+this.getPay()); System.out.println("涨工资后的工资: "+newAdd().addPay(this.getLevel(), this.getPay())); } privateStringgetAddress(){ returnnull; } privateStringgetName(){ returnnull; } } classAdd{ publicdoubleaddPay(intlevel,doublepay){ if(level==0){ pay=(1+0.1)*pay; } elseif(level==1){ pay=(1+0.2)*pay; } else{ System.out.println("级别只能为0或1,0表示普通员工,1则表示经理,操作无效! "); } returnpay; } } publicclassExtendsDemo{ publicstaticvoidmain(String[]args){ Managerm1=newManager("三","路",0001,2000,10,0); Managerm2=newManager("四","长江路",0002,3000,15,1); m1.printInfo(); System.out.println("************************************************"); m2.printInfo(); } } 编写一个测试类,产生一个员工和一个经理并输出其具有的信息。 1.定义一个接口Assaultable(可攻击的),该接口有一个抽象方法attack()。 2.定义一个接口Mobile(可移动的),该接口有一个抽象方法move()。 3.定义一个抽象类Weapon,实现Assaultable接口和Mobile接口,但并没有给出具体的实现方法。 4.定义3个类: Tank,Flighter,WarShip都继承自Weapon,分别用不同的方式实现Weapon类中的抽象方法。 5.写一个类Army,代表一支军队,这个类有一个属性是Weapon数组w(用来存储该军队所拥有的所有武器);该类还提供一个构造方法,在构造方法里通过传一个int类型的参数来限定该类所能拥有的最大武器数量,并用这一大小来初始化数组w。 该类还提供一个方法addWeapon(Weaponwa),表示把参数wa所代表的武器加入到数组w中。 在这个类中还定义两个方法attackAll()和moveAll(),让w数组中的所有武器攻击和移动。 6.写一个主方法去测试以上程序。 classArmy{ privateWeapon[]w=null; privateintsize=0; privateArmy(){ } publicArmy(inti){ w=newWeapon[i]; } publicvoidaddWeapon(Weaponweapon){ if(size>=w.length){ System.out.println("军队装备足够了! "); return; }else{ w[size]=weapon; size++; } } publicvoidattacAll(){ for(Weaponwea: w){ if(wea! =null){ wea.attack(); } } } publicvoidmoveAll(){ for(Weaponwea: w){ if(wea! =null){ wea.move(); } } } } packageA1; classFlighterextendsWeapon{ publicvoidattack(){ System.out.println("Flighterattacks"); } publicvoidmove(){ System.out.println("Flightermoves"); } } publicclassNotSimple{ publicstaticvoidmain(String[]args){ Armya=newArmy(3); a.addWeapon(newTank()); a.addWeapon(newFlighter()); a.addWeapon(newWarShip()); a.attacAll(); a.moveAll(); } } interfaceAssaultable{ abstractpublicvoidattack(); } interfaceMobile{ abstractpublicvoidmove(); } abstractclassWeaponimplementsAssaultable,Mobile{ } classTankextendsWeapon{ publicvoidattack(){ System.out.println("Tankattacks"); } publicvoidmove(){ System.out.println("Tankmoves"); } } packageA1; classWarShipextendsWeapon{ publicvoidattack(){ System.out.println("WarShipattacks"); } publicvoidmove(){ System.out.println("WarShipmoves"); } } classArmy{ privateWeapon[]w=null; privateintsize=0; privateArmy(){ } publicArmy(inti){ w=newWeapon[i]; } publicvoidaddWeapon(Weaponweapon){ if(size>=w.length){ System.out.println("军队装备足够了! "); return; }else{ w[size]=weapon; size++; } } publicvoidattacAll(){ for(Weaponwea: w){ if(wea!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末 复习 JAVA