java上机作业题以及部分答案Word格式文档下载.docx
《java上机作业题以及部分答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java上机作业题以及部分答案Word格式文档下载.docx(58页珍藏版)》请在冰豆网上搜索。
第12题编程:
求n个实数中的最大数(10分)
请编写程序:
输入n个实数(double型),求这n个实数中的最大数,然后输出该数.
n
n个用空格分隔开的实数。
输出一个实数。
样例输入
4
2.9208.19.4
样例输出
20.0
intn=sc.nextInt();
double[]b=newdouble[n];
for(inti=0;
n;
b[i]=sc.nextDouble();
doublemax=b[0];
for(intk=0;
k<
k++)
if(b[k]>
max)
max=b[k];
System.out.println(max);
第13题编程:
求n个整数之积(10分)编译通过结果不对
输入n个整数(int型),求这n个整数之积,然后输出该数.
其中:
1<
=n<
=15,每个整数的绝对值<
=12。
n个用空格分隔开的整数。
输出一个积(整数)。
2189
144
int[]b=newint[n];
b[i]=sc.nextInt();
intm=1;
m*=b[k];
System.out.println(m);
第14题编程:
n个整数的逆序输出(10分)
对输入的n个整数进行逆序并输出.
逆序(n个用一个空格分隔开的整数)。
3
132
231
注意:
231中间只有一个空格,尾部1的后面一个空格
for(inti=n-1;
i>
=0;
i--)//逆序输出
System.out.print(b[i]+"
"
);
第15题填写代码.Point类例子
(1)(10分)
下面程序是Point类的基本操作例子.
请将下面程序的【代码】替换为Java程序代码,使程序运行正确。
文件Main.java
importjava.util.Scanner;
publicstaticvoidmain(Stringargs[]){
//TODOAuto-generatedmethodstub
Scannerin=newScanner(System.in);
intn=in.nextInt();
Pointpt=newPoint(1,n);
//创建对象
System.out.println("
pt.x="
+pt.x);
//取
pt.x=5;
//修改
pt.move(3,3);
//移动
pt.y="
+pt.y);
Pointpt2=newPoint();
//声明对象并new
pt2.x="
+pt2.x);
pt2=newPoint(9,2);
classPoint{
intx,y;
//成员变量,属性
publicPoint(){//无参构造方法
x=0;
y=0;
publicPoint(intix,intiy){//有参构造方法
x=ix;
y=iy;
publicvoidmove(intix,intiy){//方法
x+=ix;
//x=x+ix
y+=iy;
第16题填写代码.类的基本操作简单例子(10分)
下面程序是类的基本操作简单例子.
publicstaticvoidmain(Stringargs[]){
教学活动从教室开始"
//命令行窗口输出"
Teacherzhang=newTeacher();
Studentjiang=newStudent();
//创建对象
zhang.introduceSelf();
jiang.introduceSelf();
//调用它的方法
classTeacher{
voidintroduceSelf(){
我是李老师"
classStudent{
我是学生,名字是:
奖励"
第17题填写代码.关于Point类的操作
(2)(10分)
下面程序构造一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,包括:
取得点的坐标值,对点的坐标进行赋值,编写应用程序生成该类的对象并对其进行操作。
publicstaticvoidmain(String[]args){
PointPoint1=newPoint(3,4);
System.out.println("
Point1:
+"
("
+
Point1.x+"
"
+Point1.y+"
)"
PointPoint2=Point1.getPoint();
Point2:
Point2.x+"
+Point2.y+"
PointPoint3=newPoint(5,6);
Point1.setPoint(Point3);
publicPoint(intx,inty){
this.x=x;
this.y=y;
publicPointgetPoint(){
PointtempPoint=newPoint(x,y);
returntempPoint;
publicvoidsetPoint(Pointpoint){
this.x=point.x;
this.y=point.y;
}
第18题填写代码.关于Point类的操作(3)(10分)
Pointorigin=newPoint(10,10);
origin.getPoint();
origin.setPoint(20,20);
privateintx;
privateinty;
publicPoint(intx,inty){
publicvoidsetPoint(intx1,inty1){
x=x1;
y=y1;
publicvoidgetPoint(){
Pointx:
"
+x+"
y:
+y);
第19题编写.计算某日是星期几(10分)
下面程序计算某日是星期几。
此题的上机步骤是:
1)建立一个Java项目,名称可以按题号取名;
2)建立一个类,类的名称为Main。
这一点非常重要;
3)按要求编写代码;
4)提交代码,注意题号要一致。
输入:
以空格分隔的日期,形式为YYYYMMDD
输出:
星期=n,这里n是数字
TheMainclassisend.
样例输入:
1990212
样例输出:
星期=1
懒得写了
第22题编写部分代码.按面向对象要求编程在Employee加入身份证(10分)结果不对(工资有问题?
?
下面程序在Employee类中加入身份证信息,但类Employee中部分代码缺失.请编写程序代码,使程序运行正确。
具体要求,修改Employee中5个参数的构造器为6个参数的构造器;
缺少一个名称为getID()的方法.需要加入.
Scannerreader=newScanner(System.in);
Stringname=reader.nextLine();
StringID=reader.nextLine();
intsalary=reader.nextInt();
intyear=reader.nextInt();
intmonth=reader.nextInt();
intday=reader.nextInt();
Employeee=newEmployee(name,ID,salary,year,month,day);
e.raiseSalary(6);
姓名:
+e.getName()+"
身份证:
+e.getID()+"
工资:
+e.getSalary());
TheMainclassisend."
classEmployee{
privateStringname;
//私有域,姓名
privateStringID;
//私有域,身份证
privatedoublesalary;
//私有域,工资
privateDatehireDay;
//私有域,录用日期
//构造方法
publicEmployee(Stringn,Stringi,doubles,intyear,intmonth,intday)
{
name=n;
//参数,(局部)变量
ID=i;
salary=s;
//参数,(局部)变量
GregorianCalendarcalendar=newGregorianCalendar(year,month-1,day);
//GregorianCalendaruses0forJanuary(1月份是0)
hireDay=calendar.getTime();
publicStringgetName(){
returnname;
publicStringgetID(){
returnID;
publicdoublegetSalary(){
returnsalary;
publicDategetHireDay(){
returnhireDay;
//"
涨工资"
计算
publicvoidraiseSalary(doublebyPercent)
{
doubleraise=salary*byPercent/100;
salary+=raise;
姓名
身份证
工资
xxx身份证:
yyyyy工资:
d
这里xxx和yyyyy是字符串,d是double数
Romeo
430502************
50000
2014711
Romeo身份证:
430502199807101121工资:
52500.0
第23题代码填空.通过类完成加法运算(10分)
下列Java应用程序是用户从键盘输入个人信息,然后程序将个人信息输出。
请按程序实现要求,将下面程序的【代码】替换为Java程序代码。
System.out.println(Plus.add(5));
//显示5+2的结果
Scannerreader=newScanner(System.in);
doubley=reader.nextDouble();
System.out.println(Plus.add(y));
//显示1+y的结果
PlusaPlus=newPlus(3,4);
System.out.println(aPlus.add());
//显示3+4的结果
classPlus{
staticinta=1,b=2;
//域
intx,y;
publicPlus(){
x=0;
y=0;
publicPlus(intx,inty){
publicstaticintadd(intx){
return(x+b);
publicintadd(){
return(x+y);
publicstaticdoubleadd(doubley){
return(a+y);
publicstaticintadd(intx,inty){
return(x+y);
第24题填写代码,以Point类为例的类继承(10分)
以下程序是有关类继承的例子,请将下面程序的【代码】替换为Java程序代码,使程序运行正确。
importjava.util.Scanner;
publicintx,y;
//域(成员属性)
//无参构造器(方法)
publicPoint(){
//有参构造器(方法)
publicPoint(intx,inty){
//成员方法
protectedvoidmove(intix,intiy){
classSonextendsPoint{
privateintx,y;
//隐藏父亲的x,y
//无参
publicSon(){
this.x=0;
this.y=0;
//有参
publicSon(intx,inty){
this.x=x;
this.y=y;
publicintgetX(){
returnx;
publicintgetY(){
returny;
classSon1extendsPoint{
publicSon1(){
//this.x=0;
//this.y=0;
super();
//调用父类的构造器(方法)Point()
publicSon1(intx,inty){
//this.x=x;
//this.y=y;
super(x,y);
//调用父类的构造器(方法)Point(intx,inty)
publicvoidmove(intix,intiy){
super.move(ix,iy);
//调用父类的move(...)
/**
*@paramargs
*/
Pointpt=newPoint();
//声明对象变量,创建(实例化)
pt.x=1;
//pt中x赋值1
+pt.x+"
\npt.y="
+pt.y);
Sonson=newSon(1,2);
Son1son1=newSon1();
son1.x=1;
son1.move(2,3);
//继承
son1.x="
+son1.x+"
\nson1.y="
+son1.y);
son.move(2,3);
son.x="
+son.getX());
//显示son中x的值
这一点非常重要;
3)填代码;
第25题填写代码,以Employee类为例的静态域和静态方法(10分)
以下程序是有关静态域和静态方法的例子,请将下面程序的【代码】替换为Java程序代码,使程序运行正确。
publicclassMain
publicstaticvoidmain(String[]args)
Employee[]staff=newEmployee[3];
staff[0]=newEmployee("
Tom"
40000);
staff[1]=newEmployee("
Dick"
60000);
staff[2]=newEmployee("
Harry"
65000);
Scannerreader=newScanner(System.in);
for(Employeee:
staff)
intn=reader.nextInt();
e.setId(n);
name="
+e.getName()+"
id="
+e.getId()+"
salary="
+e.getSalary());
intn=Employee.getNextId();
//callsstaticmethod
Nextavailableid="
+n);
classEmployee
privatestaticintnextId=1;
priva