java实验报告.docx
《java实验报告.docx》由会员分享,可在线阅读,更多相关《java实验报告.docx(8页珍藏版)》请在冰豆网上搜索。
java实验报告
课程名称:
Java程序设计成绩评定:
实验项目名称:
实验1:
Java程序环境与调试 指导教师:
阳西述
学生姓名:
沈丽桃学号:
10403080118专业班级:
10教技1班
实验项目类型:
基础实验地点:
科A301实验时间:
2012年3月9日
一、实验目的与要求:
1.掌握标识符的定义规则
2.认识Java的数据类型以及掌握各种变量的声明方法,掌握不同数值类型间的赋值问题;
3.熟悉运算符的作用、优先级和结合方向;
4.认识Java的表达式,理解表达式的构成、类型;
5.学会Java一般输出、格式输出的应用.
二、实验环境:
(硬件环境、软件环境)
1.硬件环境:
奔ⅣPC。
2.软件环境:
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;
System.out.println("f="+f);
替换下面的代码段到上述程序,分析结果。
inta=10;
charc='a';
a=c+a;
System.out.printf("c=%c",a);
声明一个布尔类型的变量,其初值为真。
替换下面的代码段到上述程序,分析现象。
Variablev=newVariable();
System.out.println("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("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
System.out.println("h="+h);
System.out.println("i="+i);
System.out.println("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;
System.out.println("Theobject'spositionafter"+fallingTime+"secondsis"+finalPosition+"m.");
}
运行此程序,输出运行结果。
4、有四个整数分别用a、b、c、d表示,请使用条件运算符找出其中最大值。
5、运行下面的程序,写出运行结果,解释每种格式的含义。
importjava.util.Calendar;
publicclassCommandParameter{
publicstaticvoidmain(String[]args){
longn=461012;
System.out.printf("%d%n",n);
System.out.printf("%08d%n",n);
System.out.printf("%+8d%n",n);
System.out.printf("%,8d%n",n);
System.out.printf("%+,8d%n%n",n);
doublepi=Math.PI;
System.out.printf("%f%n",pi);
System.out.printf("%.3f%n",pi);
System.out.printf("%10.3f%n",pi);
System.out.printf("%-10.3f%n",pi);
Calendarc=Calendar.getInstance();
System.out.printf("%tB%te,%tY%n",c,c,c);
System.out.printf("%tl:
%tM%tp%n",c,c,c);
System.out.printf("%tD%n",c);
}
}
具体操作步骤及程序代码为:
1.publicclassVariable{
publicstaticvoidmain(String[]args){
inta=20;
System.out.println("a="+a);
}
}
程序运行的结果:
a=20
修改后的部分程序及运行结果:
chara=’a’;
System.out.println(“a=”+a);
程序运行的结果:
a=a
chara=100;
System.out.println(“a=”+a);
程序运行的结果为:
a=d
chara=65536;
System.out.println(“a=”+a);
编译不能通过:
B.java:
3:
可能损失精度
找到:
int
需要:
char
chara=65536;
^
1错误
编译出错的原因是:
字符型数据的初始值超出了其取值范围(0~FFFF)。
floata=10.0f;
System.out.println(“a=”+a);
程序运行的结果是:
a=10.0
doublea=10.0;
System.out.println(“a=”+a);
程序运行的结果为:
a=10.0
floatf=10.0f;
doubled=100.0d;
f=d;
System.out.println("f="+f);
编译不能通过:
E.java:
5:
可能损失精度
找到:
double
需要:
float
f=d;
^
1错误
编译出错的原因:
不能将一个占8个字节的double变量赋给只占4个字节的变量。
inta=10;
charc='a';
a=c+a;
System.out.printf("c=%c",a);
程序运行结果为:
c=k
结果分析:
a是整型数据,a=a+c是将a值与字符型数据c的ASCII值的和赋给a,而由于程序输出的格式是字符型数据,所以a值有转化成其对应的字符输出。
publicclassBoolean{
publicstaticvoidmain(String[]args){
booleantruth=true;
System.out.println("truth="+truth);
}
}
Variablev=newVariable();
System.out.println("v="+v);
程序输出的结果为:
v=Variable@c17164
2.编译出错:
ArithmaticOp.java:
22:
非法字符:
\65373
}
^
ArithmaticOp.java:
22:
进行语法解析时已到达文件结尾
}
^
ArithmaticOp.java:
23:
进行语法解析时已到达文件结尾
3错误
3.程序运行结果为:
Theobject'spositionafter10.0secondsis0.0m.
4.publicclassFindMax{
publicstaticvoidmain(String[]args){
inta=34;
intb=42;
intc=14;
intd=78;
intmax=((a>b?
a:
b)>c?
(a>b?
a:
b):
c)>d?
((a>b?
a:
b)>c?
(a>b?
a:
b):
c):
d;
System.out.println("themaxis"+max);
}
}
程序运行结果为:
themaxis78
5.程序运行结果为:
461012
00461012
+461012
461,012
+461,012
3.141593
3.142
3.142
3.142
三月9,2012
5:
32下午
03/09/12
%d:
十进制整数%n:
换行%08d:
八位十进制整数若不够则左边补0
%+8d:
八位十进制整数前面加“+”,若位数不够左补空格
%,8d:
八位十进制整数,每三位间用“,”隔开,若位数不够左补空格
%f:
十进制数,小数点后有六位
%.3f:
十进制数,保留三位小数
%10.3f:
十位十进制数,三位小数,若不够左补空格
%-10.3f:
十位十进制数,三位小数,若不够右补空格
%tB:
日期月份%te日期日%tY:
日期年份
%tl:
时间时%tM:
时间分%tp:
时间上/下午
%tD:
日期(月/日/年)
四、实验体会(实验中碰到的问题及解决方法等)
学会了在dos环境下对java程序进行编译运行,基本上没什么问题,但还存在一些小错误,像java程序的名称与定义的类名不一致导致编译不能通过,刚开始找不到java文件,对那几个基本的命令的使用还不熟悉,但通过这次试验这个问题已经得到解决。
另外,第2题看似没问题,但是编译出错,我几经编译都通不过,不知道是什么原因。
这次试验没有太难的程序,所以问题不多,在写程序的同时巩固了java程序的书写,它的类、标识符、变量等的命名规则,对多种格式控制符有了大致的了解。