java实验报告Word下载.docx
《java实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《java实验报告Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
WindowsXP操作系统,JDK6.0。
三、实验内容:
(原理、操作步骤、程序代码等)
任务:
1.编写一个JAVA程序,对不同类型进行变量的定义并输出相应的值。
编辑如下程序代码:
publicclassVariable{
publicstaticvoidmain(String[]args){
inta=20;
System.out.println("
a="
+a);
}
}
写出程序运行的结果:
按下列顺序修改上述程序:
定义一个字符型变量,并定义其初值为'
a'
,然后输出该变量的值;
定义一个字符型变量,并定义其初值为100,然后输出该变量的值;
定义一个字符型变量,并定义其初值为65536,然后输出该变量的值,如果有错误,试说明原因;
定义一个单精度类型的变量,并定义其初值为10.0,然后输出该变量的值;
定义一个双精度类型的变量,并定义其初值为10.0,然后输出该变量的值。
分别写出以上修改后的代码片段,以及运行结果。
替换下面的代码段到上述程序,分析现象。
floatf=10.0f;
doubled=100.0d;
f=d;
f="
+f);
替换下面的代码段到上述程序,分析结果。
inta=10;
charc='
;
a=c+a;
System.out.printf("
c=%c"
a);
声明一个布尔类型的变量,其初值为真。
Variablev=newVariable();
v="
+v);
2、运行下面的程序,写出运行结果
publicclassArithmaticOp{
publicstaticvoidmain(Stringargs[]){
inta=5+4,b=a*2,c=b/4;
intd=b-c;
inte=-d;
intf=e%4;
doubleg=18.4,h=g%4;
inti=3;
intj=i++;
intk=++i;
System.out.println("
b="
+b);
c="
+c);
d="
+d);
e="
+e);
g="
+g);
h="
+h);
i="
+i);
j="
+j+"
\nk="
+k);
}
3、创建一个类名为GravityCalculator的类,在该类中写上以下代码,
publicstaticvoidmain(String[]arguments){
doublegravity=9.81;
//重力速度,单位m/s^2
doubleinitialVelocity=0.0;
doublefallingTime=10.0;
doubleinitialPosition=0.0;
doublefinalPosition=0.0;
Theobject'
spositionafter"
+fallingTime+"
secondsis"
+finalPosition+"
m."
);
运行此程序,输出运行结果。
4、有四个整数分别用a、b、c、d表示,请使用条件运算符找出其中最大值。
5、运行下面的程序,写出运行结果,解释每种格式的含义。
importjava.util.Calendar;
publicclassCommandParameter{
longn=461012;
System.out.printf("
%d%n"
n);
System.out.printf("
%08d%n"
System.out.printf("
%+8d%n"
%,8d%n"
%+,8d%n%n"
doublepi=Math.PI;
%f%n"
pi);
%.3f%n"
%10.3f%n"
%-10.3f%n"
Calendarc=Calendar.getInstance();
%tB%te,%tY%n"
c,c,c);
%tl:
%tM%tp%n"
%tD%n"
c);
具体操作步骤及程序代码为:
1.publicclassVariable{
publicstaticvoidmain(String[]args){
inta=20;
System.out.println("
}
程序运行的结果:
a=20
修改后的部分程序及运行结果:
chara=’a’;
System.out.println(“a=”+a);
a=a
chara=100;
程序运行的结果为:
a=d
chara=65536;
编译不能通过:
B.java:
3:
可能损失精度
找到:
int
需要:
char
chara=65536;
^
1错误
编译出错的原因是:
字符型数据的初始值超出了其取值范围(0~FFFF)。
floata=10.0f;
程序运行的结果是:
a=10.0
doublea=10.0;
floatf=10.0f;
doubled=100.0d;
f=d;
E.java:
5:
double
float
f=d;
编译出错的原因:
不能将一个占8个字节的double变量赋给只占4个字节的变量。
inta=10;
charc='
a=c+a;
程序运行结果为:
c=k
结果分析:
a是整型数据,a=a+c是将a值与字符型数据c的ASCII值的和赋给a,而由于程序输出的格式是字符型数据,所以a值有转化成其对应的字符输出。
publicclassBoolean{
booleantruth=true;
truth="
+truth);
Variablev=newVariable();
程序输出的结果为:
v=Variable@c17164
2.编译出错:
ArithmaticOp.java:
22:
非法字符:
\65373
^
ArithmaticOp.java:
进行语法解析时已到达文件结尾
23:
3错误
3.程序运行结果为:
spositionafter10.0secondsis0.0m.
4.publicclassFindMax{
publicstaticvoidmain(String[]args){
inta=34;
intb=42;
intc=14;
intd=78;
intmax=((a>
b?
a:
b)>
c?
(a>
b):
c)>
d?
((a>
c):
d;
themaxis"
+max);
程序运行结果为:
themaxis78
5.程序运行结果为:
461012
00461012
+461012
461,012
+461,012
3.141593
3.142
3.142
三月9,2012
32下午
03/09/12
%d:
十进制整数%n:
换行%08d:
八位十进制整数若不够则左边补0
%+8d:
八位十进制整数前面加“+”,若位数不够左补空格
%,8d:
八位十进制整数,每三位间用“,”隔开,若位数不够左补空格
%f:
十进制数,小数点后有六位
%.3f:
十进制数,保留三位小数
%10.3f:
十位十进制数,三位小数,若不够左补空格
%-10.3f:
十位十进制数,三位小数,若不够右补空格
%tB:
日期月份%te日期日%tY:
日期年份
时间时%tM:
时间分%tp:
时间上/下午
%tD:
日期(月/日/年)
四、实验体会(实验中碰到的问题及解决方法等)
学会了在dos环境下对java程序进行编译运行,基本上没什么问题,但还存在一些小错误,像java程序的名称与定义的类名不一致导致编译不能通过,刚开始找不到java文件,对那几个基本的命令的使用还不熟悉,但通过这次试验这个问题已经得到解决。
另外,第2题看似没问题,但是编译出错,我几经编译都通不过,不知道是什么原因。
这次试验没有太难的程序,所以问题不多,在写程序的同时巩固了java程序的书写,它的类、标识符、变量等的命名规则,对多种格式控制符有了大致的了解。