Java上机题及答案3.docx

上传人:b****3 文档编号:5421555 上传时间:2022-12-16 格式:DOCX 页数:51 大小:756.05KB
下载 相关 举报
Java上机题及答案3.docx_第1页
第1页 / 共51页
Java上机题及答案3.docx_第2页
第2页 / 共51页
Java上机题及答案3.docx_第3页
第3页 / 共51页
Java上机题及答案3.docx_第4页
第4页 / 共51页
Java上机题及答案3.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

Java上机题及答案3.docx

《Java上机题及答案3.docx》由会员分享,可在线阅读,更多相关《Java上机题及答案3.docx(51页珍藏版)》请在冰豆网上搜索。

Java上机题及答案3.docx

Java上机题及答案3

上机指导1

本章对Java语言的基础背景知识进行了简要介绍,讲解了JDK(Java开发工具箱)以及开发工具的使用,同时通过几个简单的Java程序说明了JDK的使用。

下面通过上机指导进一步巩固其中相关的知识点。

实验1-1:

运算并显示某一算式的运算结果

实验内容

编程实现运算一个简单的算式1234567972,并在屏幕上输出计算的结果。

运行后结果如图1-36所示。

图1-36实验1-1运行结果

实验目的

通过这个简单的实例让读者了解JDK的使用,以及对Java程序的编译运行过程有一个实际的了解。

实现思路

在1.5节的简单Java程序中,演示了如何通过Java语言编写程序,并编译运行,最终在屏幕上输出“HelloWorld!

”一行文本。

同样,对于其他Java语言编写的程序都可按照其步骤进行编译运行。

本实验只要少量改动该例子,就可以实现在屏幕上显示该算式的结果,得到如图1-36所示的运行结果。

实验1-2:

编写一个JavaApplet在网页中显示两行字符串

实验内容

编写JavaApplet(Java小应用程序),用于在网页中显示两个字符串。

运行后效果如图1-37所示。

图1-37在网页上显示若干字符串

实验目的

通过这个简单的实例让读者了解Java小应用程序的使用,并且对JavaApplet的部署与运行有一个实际的了解。

实现思路

在1.7节的简单Java小应用程序示例中,演示了如何通过Java语言编写Java小应用程序并编译运行,然后将其嵌入到网页中,最终在网页上输出文本。

同样,对于其他Java语言编写的Java小应用程序我们都可按照其步骤进行编译部署并运行。

少量改动该例子代码,就可以实现在网页上显示两个字符串,达到图1-37所示的效果。

实验1-3:

编写JavaApplet实现显示系统当前时间

实验内容

编写一个JavaApplet,在屏幕上显示系统当前时间。

运行后效果如图1-38所示。

图1-38显示当前系统时间

实验目的

通过这个简单的实例让读者了解JavaApplet的实际应用,并进一步巩固本章所学的知识。

实现思路

通过java.util.date包中的一些方法,获取当前系统的时间并显示,代码如下所示:

importjava.applet.*;

importjava.awt.Graphics;

importjava.util.Date;

publicclassExample1_3extendsApplet{//继承Applet超类

publicDated;

publicvoidinit()//Applet的初始化方法

{

d=newDate();

}

publicvoidpaint(Graphicsg){//Applet绘制至屏幕的函数

g.drawString(d.toString(),10,25);

}

}

利用javac命令编译后,将其嵌入网页中,嵌入网页中的代码如下所示:

运行代码,就可以得到如图1-38所示的效果了。

上机指导2

本章对Java的基本语法做了详细的讲解,其中包括Java的基本数据类型、标记符、表达式等。

下面通过上机指导进一步巩固其中相关的知识点。

实验2-1:

不同类型数据间的运算

(一)

实验内容

创建以下4个变量:

charx='h';

intintx=65;

floatfloatx=3.3333f;

doubledoublex=4.444;

编程实现计算charx+intx、floatx–intx、doublex/floatx的结果并在屏幕上显示,获取如图2-28所示的运行结果。

图2-28实验2-1运行结果

实验目的

通过这个简单的实例让读者了解Java语言中的类型自动转换。

实现思路

在2.2.5小节已经介绍了Java语言中基本数据类型值之间自动转换的基本概念,并通过简单的示例进行了演示。

实验2-2:

不同类型数据间的运算

(二)

实验内容

声明3个变量:

doubledx=3.5;

doubledy=2.8;

intz;

编程实现计算z=dx+dy的结果并在屏幕上显示。

运行结果如图2-29所示。

图2-29实验2-2运行结果

实验目的

通过这个简单的实例让读者了解Java语言中的类型强制转换。

实现思路

在2.2.5小节介绍了Java语言中强制类型转换的基本概念,并通过简单的示例进行了演示。

实验2-3:

在屏幕上打印出各种基本类型的数值

实验内容

编程实现输出各种类型的常量数值,包括整型、字节型、短整型、字符型、长整型、单精度型、双精度型、布尔型,运行结果如图2-30所示。

图2-30实验2-3运行结果

实验目的

通过这个简单的实例让读者从实际了解Java语言中的各种基本类型,并对其不同类型的数值有一个深刻的印象。

实现思路

定义若干个Java语言中各种基本类型的数值,并在屏幕上显示出来。

代码如下所示:

classDataTypeDemo

{

publicstaticvoidmain(Stringargv[])

{

inta=1;//声明并初始化整型变量a

byteb=127;//声明并初始化字节型变量b

shortd=200;//声明并初始化短整型变量d

charc='C';//声明并初始字符型变量c

longe=9000000;//声明并初始化长整型变量e

floatf=0.24f;//声明并初始化单精度型变量f

doubleg=1111.111111;//声明并初始化双精度型变量g

booleanbool1=true;//声明并初始化布尔型变量bool1

booleanbool2=false;

System.out.println("Intdataa="+a);//输出整型变量a的值

System.out.println("Bytedatab="+b);//输出字节型变量b的值

System.out.println("Shortdatad="+d);//输出短整型变量d的值

System.out.println("Chardatac="+c);//输出字符型变量c的值

System.out.println("longdatae="+e);//输出长整型变量e的值

System.out.println("floatdataf="+f);//输出单精度型变量f的值

System.out.println("doubledatag="+g);//输出双精度型变量g的值

System.out.println("Booleandatabool1="+bool1);//输出布尔型变量bool1的值

System.out.println("Booleandatabool2="+bool2);//输出布尔型变量bool2的值

}

}

通过javac、java等命令编译并运行程序,运行程序结果如图2-30所示。

上机指导3

本章对Java语言中的控制语句做了详细讲解,其中包括Java的循环语句、Java的跳转语句、Java的选择语句、Java的断言等,本节将利用已讲解的知识进行实践。

实验3-1:

多重for循环绘制图形

实验内容

编程实现运算一个简单的图形绘制,利用符号“*”的个数,实现不同的图形。

实现结果如图3-30所示。

图3-30实验3-1运行结果

实验目的

通过这个简单实例让读者巩固学习for语句的使用。

实现思路

根据绘制图形的规律,发现“*”符号的变化规律,从而利用for循环对其进行绘制。

关键代码如下所示:

inttemp=0;//声明并初始化变量temp,

for(inti=0;i<2*n-1;i++)

{

if(i<=n)

temp=i;

else

temp=2*n-1-i;//计算temp的值

for(intj=0;j

System.out.print("*");//打印每行中的"*"字符

System.out.println();//打印完一行后换行

}

通过javac、java等命令编译并运行程序,运行结果如图3-30所示。

实验3-2:

使用switch语句实现条件分支

实验内容

编程实现运算一个简单的程序,程序可以根据学生的成绩判断学生成绩的等级。

声明一个整形数组保存学生成绩,如:

intstudent[]={95,85,75,65,55}。

程序运行结果如图3-31所示。

图3-31实验3-2运行结果

实验目的

通过这个简单实例让读者利用switch语句来实现条件分支,实现对于不同分数段的成绩,输出不同等级标识。

实现思路

首先定义5个学生,分别对其的成绩进行赋值,并在for循环语句中利用Switch语句分别对每个学生的成绩进行判断。

关键代码如下所示:

intstudent[]={95,85,75,65,55};//声明并初始化一个数组,用存放5个学生成绩

for(inti=0;i<5;i++)//通过循环分别判判断每个学生成绩

{

switch(student[i]/10)//使用switch语句,并将成绩整除10后的值作为比较因子

{

case9:

System.out.println("student"+i+"'sresultisA!

");

//学生成绩整除10后结果为9的,输出等级为"A"

break;

case8:

System.out.println("student"+i+"'sresultisB!

");

//学生成绩整除10后结果为8的,输出等级为"B"

break;

case7:

System.out.println("student"+i+"'sresultisC!

");

//学生成绩整除10后结果为7的,输出等级为"C"

break;

case6:

System.out.println("student"+i+"'sresultisD!

");

//学生成绩整除10后结果为6的,输出等级为"D"

break;

default:

System.out.println("student"+i+"'sresultisF!

");

//学生成绩整除10后结果为1~5的,输出等级为"F"

}

}

通过javac、java等命令编译并运行程序,运行程序结果如图3-31所示。

实验3-3:

使用switch语句实现条件分支测试break功能

实验内容

在实验3-2的基础上进行简单修改,在每个case语句后不加break语句。

运行后效果如图3-32所示。

显然这个运行结果是不符合常规逻辑的。

图3-32实验3-3运行结果

实验目的

通过这个简单实例让读者利用switch语句来实现条件分支,用含有break和不含有break的case语句做比较,测试break的功能。

实现思路

结合实验3-2进行比较设计,实现思路与实验3-2基本相同,不同之处在于:

每个case语句之后没有break语句。

通过比较输出结果的区别,进一步了解break语句的功能。

关键代码如下所示:

intstudent[]={95,85,75,65,55};//声明并初始化一个数组,用存放5个学生成绩

for(inti=0;i<5;i++)//通过循环分别判判断每个学生成绩

{

switch(student[i]/10)//使用switch语句,并将成绩整除10后的值作为比较因子

{

case9:

System.out.println("student"+i+"'sresultisA!

");

//学生成绩整除10后结果为9的,输出等级为"A"

case8:

System.out.println("student"+i+"'sresultisB!

");

//学生成绩整除10后结果为8的,输出等级为"B"

case7:

System.out.println("student"+i+"'sresultisC!

");

//学生成绩整除10后结果为7的,输出等级为"C"

case6:

System.out.println("student"+i+"'sresultisD!

");

//学生成绩整除10后结果为6的,输出等级为"D"

default:

System.out.println("student"+i+"'sresultisF!

");

//学生成绩整除10后结果为1~5的,输出等级为"F"

}

}

通过javac、java等命令编译并运行程序,运行程序结果如图3-32所示。

上机指导4

本章介绍了面向对象的基本思想,并详细介绍了类的定义及其使用,同时介绍了成员变量与方法的继承、方法的重载、final与abstract的类与方法。

实验4-1:

对象引用型成员变量的使用

实验内容

编程实现两个同类对象的比较,两个对象的成员变量intMember都为默认值66,并在屏幕上输出比较的结果。

运行后效果如图4-12所示。

图4-12实验4-1运行结果

实验目的

通过这个简单的实例让读者了解对象引用型成员变量的使用,加深对类、对象的理解。

实现思路

首先利用定义类的成员变量intMember默认值为66,两个对象的intMember成员变量初始值都是66,两个对象是一样的。

第一次比较两个引用返回的是False,因为各自指向不同的对象。

第二次比较两个引用返回的是True,因为在比较前将ref2的值赋给了ref1,这样两个引用指向同一个对象了。

关键代码如下所示:

//声明对象引用并创建对象

Sample6_4ref1=newSample6_4();

Sample6_4ref2=newSample6_4();

//打印对象信息

System.out.println("ref1.intMember="+ref1.intMember+",ref2.intMember="+ref2.intMember);

//对引用变量进行比较

if(ref1==ref2)

{

System.out.println("ref1与ref2指向同一个对象。

");

}

else

{

System.out.println("ref1与ref2不是指向同一个对象。

");

}

ref1=ref2;

if(ref1==ref2)

{

System.out.println("ref1与ref2指向同一个对象。

");

}

else

{

System.out.println("ref1与ref2不是指向同一个对象。

");

}

通过javac、java等命令编译并运行程序,运行程序结果如图4-12所示。

实验4-2:

含有返回值的方法的使用

实验内容

图4-13实验4-2运行结果

编程实现调用带有返回值的方法,并在屏幕上输出调用后的结果。

分别定义返回值为整形、字符型、双精度等的方法,为了简单,方法中可以不做任何操作,直接将已定义的变量值返回。

运行后效果如图4-13所示。

实验目的

在书中简单介绍了方法的使用,而本实验将给读者介绍带有返回值的方法的使用,让读者了解如果调用带有返回值的方法。

实现思路

首先利用定义含有返回值的各种方法,如:

返回值为整型的,返回值为字符型的,返回值为双精度型的。

在主方法里,可以直接调用各种方法,将其返回值直接输出至屏幕。

关键代码如下所示:

//获取整型变量,返回值为int型

publicintgetInt()

{returna;}

//获取字符型变量,返回值为char型

publicchargetChar()

{returnc;}

//获取单精度型变量,返回值为float型

publicfloatgetFloat()

{returnf;}

//获取双精度型变量,返回值为double型

publicdoublegetDouble()

{returnd;}

//获取字符串对象变量,返回值为String型

publicStringgetString()

{returnstr;}

//main方法中可以直接调用这些已经定义的方法。

//定义各种类型的类变量

privateinta=100;

privatecharc='C';

privatefloatf=3.0f;

privatedoubled=4.0;

privateStringstr="Hello";

//将方法的返回值输出

System.out.println(getInt());

System.out.println(getChar());

System.out.println(getFloat());

System.out.println(getDouble());

System.out.println(getString());

通过javac、java等命令编译并运行程序,运行程序结果如图4-13所示。

实验4-3:

使用对象模拟“商店客户折扣卡”功能

实验内容

编程实现一个模拟的用户消费信用卡的示例,在其中用户Customer类具有用户名、地址、卡号、消费额度、可以享受的打折度等多种个人信息;而CustomerDemo类中建立3个消费者,对其分别进行操作,模拟其行为。

运行后效果如图4-14所示。

图4-14实验4-3运行结果

实验目的

在前几节介绍了面向对象的基本概念,包括类、对象、属性以及方法。

在这个基础上,用两个面向对象的简单程序,继续让读者充分体会面向对象编程的方法。

实现思路

简单模拟了一个商店客户折扣卡的功能,自定义Customer类用来保存在某个商店中的客户的折扣卡信息。

在主类CustomerDemo中,创建Customer类的一个数组对象,该数组中包含了三个Customer的对象,用来保存三个不同的消费者各自持有的折扣卡信息。

通过这三个对象,可以根据用户消费的金额来改变用户在本店中所能享受的折扣价格。

关键代码如下所示:

//声明三个消费用户Customer对象

Customercustomer[]=newCustomer[3];

publicCustomerDemo()

{

//创建并初始化所声明的三个Customer对象

customer[0]=newCustomer("c0001","wangxyw","BeiJing","wangxyue@");

customer[1]=newCustomer("c0002","XuQuan","ShangHai","chunticha@");

customer[2]=newCustomer("c0003","XuGuangYang","BeiJing","xugy@");

//customer[0]用户消费2800.00元

customer[0].buy(2800.00);

//设置用户下次购物所能享受的折扣

customer[0].setDiscount();

//customer[1]用户消费1688.00元

customer[1].buy(1688.00);

//设置用户下次购物所能享受的折扣

customer[1].setDiscount();

//customer[2]用户消费980.00元

customer[2].buy(980.00);

//设置用户下次购物所能享受的折扣

customer[2].setDiscount();

//显示所有用户的全部信息

for(inti=0;i

{

System.out.println("customer["+i+"]");

System.out.println("cardID:

"+customer[i].getCardID());

System.out.println("name:

"+customer[i].getName());

System.out.println("cost:

"+customer[i].getCost());

System.out.println("discount:

"+customer[i].getDiscount()*10);

System.out.println("address:

"+customer[i].getAddress());

System.out.println("email:

"+customer[i].getEmail()+"\n");

}

}

classCustomer

{

privateStringcardID;//用于折扣卡卡号

privateStringname;//用户名

privatedoublecost=0;//用户消费金额

privateStringaddress;//用户住址

privateStringemail;//用户email

privatedoublediscount=1;//用户所能享受的折扣

publicCustomer(Stringid,Stringname,Stringadd,Stringemail)

{

cardID=id;

this.name=name;

address=add;

this.email=email;

}

//当用于购买商品后,增加用户消费值

publicvoidbuy(doublecost)

{this.cost+=cost;}

//根据用户的消费额度来改变用户所能享受的折扣

publicvoidsetDiscount()

{

if(cost>2000.00)

discount-=0.1;

elseif(cost>1000.00)

discount-=0.05;

}

//用于获取和设置用户地址的方法

publicStringgetAddress()

{returnaddress;}

publicvoidsetAddress(Stringaddress)

{this.address=addr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1