实验2 Java语言基础.docx
- 文档编号:4717562
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:27
- 大小:424.23KB
实验2 Java语言基础.docx
《实验2 Java语言基础.docx》由会员分享,可在线阅读,更多相关《实验2 Java语言基础.docx(27页珍藏版)》请在冰豆网上搜索。
实验2Java语言基础
实验报告
姓名
学号
专业班级
软件工程一班
课程名称
Java实验
实验日期
成绩
指导教师
批改日期
实验名称
实验2Java语言基础
一、实验目的
1、了解Java的数据类型;
2、掌握各种变量的声明方式;
3、理解运算符的优先级;
4、掌握Java基本数据类型、运算符与表达式、数组的使用方法;
5、理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法;
6、通过以上内容,掌握Java语言的编程规则。
二、实验要求
1、编写一个声明Java不同数据类型变量的程序;
2、编写一个使用运算符、表达式、变量的程序;
3、编写表达式语句、复合语句的程序;
4、编写使用不同选择结构的程序;
5、编写使用不同循环结构结构的程序。
三、实验内容
(一)声明不同数据类型的变量
1、编写声明不同数据类型变量的程序文件SimpleTypes.java,源代码如下:
publicclassSimpleTypes{
publicstaticvoidmain(String[]args){
byteb=0x55;
shorts=0x55ff;
inti=1000000;
longl=0xfffl;
charc='c';
floatf=0.23f;
doubled=0.7E-3;
booleanbool=true;
Stringstr="这是字符串数据类型";
System.out.println("字节型变量b="+b);
System.out.println("短整型变量s="+s);
System.out.println("整型变量i="+i);
System.out.println("长整型变量l="+l);
System.out.println("字符型变量c="+c);
System.out.println("浮点型变量f="+f);
System.out.println("双精度变量d="+d);
System.out.println("布尔型变量bool="+bool);
System.out.println("字符串类对象str="+str);
}
}
2、编译并运行该程序,结果如图1所示。
图1
(二)了解各种类型的取值范围和变量的使用范围
1、使用System.out.printf方法把所有基本数据类型的最大值最小值表示出来。
如int类型的取值范围System.out.printf("int\t数值范围:
%d~%d\n",Integer.MAX_VALUE,Integer.MIN_VALUE);
源代码如下:
publicclassMaxAndMin{
publicstaticvoidmain(String[]args){
System.out.printf("byte型数值范围:
%d~%d\n",Byte.MIN_VALUE,Byte.MAX_VALUE);
System.out.printf("int型数值范围:
%d~%d\n",Integer.MIN_VALUE,Integer.MAX_VALUE);
System.out.printf("short型数值范围:
%d~%d\n",Short.MIN_VALUE,Short.MAX_VALUE);
System.out.printf("long型数值范围:
%d~%d\n",Long.MIN_VALUE,Long.MAX_VALUE);
System.out.printf("float型数值范围:
%e~%e\n",Float.MIN_VALUE,Float.MAX_VALUE);
System.out.printf("double型数值范围:
%e~%e\n",Double.MIN_VALUE,Double.MAX_VALUE);
System.out.printf("char型数值范围:
%x~%x\n",Character.MIN_CODE_POINT,
Character.MAX_CODE_POINT);
}
}
图2
2、Scope.java文件,通过本程序了解变量的使用范围,源代码如下:
//Scope.java
//Java中变量的作用域
publicclassScope{
publicstaticvoidmain(String[]args){
intx=25;
System.out.println("x="+x);//只有x有效
{
inty=36;
System.out.println("x="+x);
System.out.println("y="+y);//x,y均有效
}
System.out.println("x="+x);
System.out.println("y="+y);//只有x有效,y“outofscope”
}
}
2、编译Scope.java
此时会出现错误提示如图3所示。
因为变量y在方法块中声明,在方法块之外它是不存在的,所
以编译时会出错。
图3
3、修改上面的程序。
publicclassScope{
publicstaticvoidmain(String[]args){
intx=25;
System.out.println("x="+x);//只有x有效
{
inty=36;
System.out.println("x="+x);
System.out.println("y="+y);//x,y均有效
}
inty=22;
System.out.println("x="+x);
System.out.println("y="+y);//只有x有效,y“outofscope”
}
}
4、成功运行该程序。
图4
思考:
Scope.java程序说明了什么问题?
变量均有生命周期和相应的作用域。
(三)使用关系运算符和逻辑运算符
1、建立使用关系运算符RealtionOp.java和逻辑运算符LogicOp.java的程序文件,源代码如下:
//RelationOp.java
//Java中关系运算符的使用
publicclassRelationOp{
publicstaticvoidmain(String[]args){
inta=9;
intb=6;
intc=6;
booleand=a>b;//true
booleane=a
booleanf=b==c;//true
booleang=b!
=c;//false
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("f="+f);
System.out.println("g="+g);
}
}
图5
//LogicOp.java
//Java中逻辑运算符的使用
publicclassLogicOp{
publicstaticvoidmain(String[]args){
inta=9;
intb=6;
intc=6;
booleand,e,f,g;
d=!
(a>b);//false
e=(a>b)&&(a>c);//true
f=(b==c)||(a
g=(b==c)&&(a
booleanh=b>=c;//true
booleani=b<=c;//true
booleanj=a==b;//false
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);
}
}
2、编译并运行该程序。
图6
(四)使用表达式语句与复合语句
1.建立包含表达式语句程序,源代码如下。
publicclassLX2_5{
publicstaticvoidmain(String[]args){
intk,i=3,j=4;
k=20*8/4+i+j*i;
System.out.println("表达式(20*8/4+i+j*i)="+k);
}
}
2.建立包含复合语句程序,源代码如下。
publicclassLX2_6{
publicstaticvoidmain(String[]args){
intk,i=3,j=4;
k=i+j;
System.out.println("在复合块外的输出k="+k);
{
floatf;
f=j+4.5F;
i++;
System.out.println("在复合块内的输出f="+f);
System.out.println("在复合块内的输出k="+k);
}
System.out.println("在复合块外的输出i="+i);
}
}
3.编译并运行上述两个源程序,结果如下图:
图7
图8
4.将变量i在块内定义会怎样?
改变其他变量的位置看看会发生什么变化。
答:
会出现在块外无定义的语法错误。
思考:
指出程序的复合结构以及变量的使用范围。
(五)使用选择语句
1.使用if...else语句
(1)程序功能:
使用if...else语句构造多分支,判断某一年是否为闰年。
闰年的条件是符
合下面二者之一:
能被4整除,但不能被100整除;能被4整除,又能被100整除。
(2)编写源程序文件,代码如下:
importjava.util.*;
publicclassTest1{
//编写程序
publicstaticvoidtest(intyear){
if(year%400==0||(year%4==0&&year%100!
=0))
System.out.println(year+"是闰年!
");
else
System.out.println(year+"不是闰年!
");
}
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
intyear;
for(inti=0;i<4;i++){
System.out.print("请输入测试年份:
");
year=input.nextInt();
test(year);
}
}
}
(3)编译运行程序,其结果如图所示。
图9
2.使用switch语句
(1)程序功能:
在不同温度时显示不同的解释说明。
温度c<10度,显示某某℃有点冷。
要多穿衣服
10≤c<25度,显示某某℃正合适。
出去玩吧。
25≤c<35度,显示某某℃℃有点热。
c≥35,显示某某℃太热了!
开空调。
上面的某某用变量c的值替换
(2)程序源代码如下。
importjava.util.*;
publicclassLX2_8{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.println("请输入当前的温度:
");
doublec=input.nextDouble();
switch(c<10?
1:
c<25?
2:
c<35?
3:
4){
case1:
System.out.println("\t"+c+"℃有点冷。
要多穿衣服。
");
break;
case2:
System.out.println("\t"+c+"℃正合适。
出去玩吧");
break;
case3:
System.out.println("\t"+c+"℃有点热。
");
break;
default:
System.out.println("\t"+c+"℃太热了。
开空调!
");
}
}
}
(3)编译运行程序,其结果如下图所示:
图10
(六)使用循环语句
1.for循环语句练习
(1)程序功能:
按5度的增量打印出一个从摄氏温度到华氏温度的转换表。
(2)程序源代码如下。
publicclassLX2_9{
publicstaticvoidmain(String[]args){
inth,c;
System.out.println("摄氏温度\t华氏温度");
for(c=0;c<=40;c+=5){
h=c*9/5+32;
System.out.println("\t"+c+"\t\t"+h);
}
}
}
(3)编译并运行程序,其结果如图
图11
2.while循环语句练习
(1)程序功能:
运行程序后从键盘输入数字1/2/3后,可显示抽奖得到的奖品;如果输入其它数
字或字符显示“没有奖品给你!
”。
(2)程序源代码如下:
importjava.io.*;
publicclassLX2_10{
publicstaticvoidmain(String[]args)throwsIOException{
charch;
System.out.println("按1/2/3数字键可得大奖!
");
System.out.println("按空格键后回车可退出循环操作。
");
while((ch=(char)System.in.read())!
=''){
System.in.skip
(2);//跳回回车键
switch(ch){
case'1':
System.out.println("恭喜你得大奖,一辆汽车!
");
break;
case'2':
System.out.println("不错呀,你得了一台笔记本电脑!
");
break;
case'3':
System.out.println("没有白来,你得了一台冰箱!
");
break;
default:
System.out.println("真不幸,你没有奖品!
下次再来吧。
");
}
}
}
}
(3)编译源程序。
(4)在命令提示符窗口运行程序,然后分别按1、2、3、r结果如图10所示。
图12
3.do…while循环语句练习
(1)程序功能:
求1+2+…+100之和,并将求和表达式与所求的和显示出来。
(2)程序源代码如下。
publicclassSum100{
publicstaticvoidmain(String[]args){
inttemp=0;
for(inti=1;i<=100;i++)
temp+=i;
System.out.println("1+2+3+...+100="+temp);
}
}
(3)编译并运行程序,结果如图所示。
图13
作业题:
题2.11
参考代码1:
importjava.util.*;
publicclassSalary{
publicstaticvoidmain(String[]args){
//输入必要数据
Scannerinput=newScanner(System.in);
System.out.print("Enteremployee\'sname:
");
StringemployeeName=input.next();
System.out.print("Enternumberofhoursworkedinaweek:
");
doublehoursWorked=input.nextDouble();
System.out.print("Enterhourlypayrate:
");
doublepayRate=input.nextDouble();
System.out.print("Enterfederaltaxwithholdingrate:
");
doublefRate=input.nextDouble();
System.out.print("Enterstatetaxwithholdingrate:
");
doublesRate=input.nextDouble();
//数据处理
doublegrossPay=hoursWorked*payRate;
doublefCost=grossPay*fRate;
doublesCost=grossPay*sRate;
doubletotalCost=fCost+sCost;
doublenetPay=grossPay-totalCost;
//输出打印信息
System.out.println("EmployeeName:
\t"+employeeName);
System.out.println("HoursWorked:
\t"+hoursWorked);
System.out.println("PayRate:
\t$"+payRate);
System.out.println("GrossPay:
\t$"+grossPay);
System.out.println("Deductions:
");
System.out.printf("\tFederalWithholding(%.1f%%):
\t$%.1f\n",fRate*100,fCost);
System.out.printf("\tStateWithholding(%.1f%%):
\t$%.2f\n",sRate*100,sCost);
System.out.printf("\tTotalDeduction:
\t$%.2f\n",totalCost);
System.out.printf("NetPay:
\t$%.2f",netPay);
}
}
运行结果:
图14
参考代码2:
importjavax.swing.*;
publicclassSalaryDialog{
publicstaticvoidmain(String[]args){
//输入必要数据
StringemployeeName=JOptionPane.showInputDialog(null,"Enteremployee\'sname:
");
StringhoursWorkedString=JOptionPane.showInputDialog(null,"Enternumberofhoursworkedinaweek:
");
doublehoursWorked=Double.parseDouble(hoursWorkedString);
StringpayRateString=JOptionPane.showInputDialog(null,"Enterhourlypayrate:
");
doublepayRate=Double.parseDouble(payRateString);
StringfRateString=JOptionPane.showInputDialog(null,"Enterfederaltaxwithholdingrate:
");
doublefRate=Double.parseDouble(fRateString);
StringsRateString=JOptionPane.showInputDialog(null,"Enterstatetaxwithholdingrate:
");
doublesRate=Double.parseDouble(sRateString);
//数据处理
doublegrossPay=hoursWorked*payRate;
doublefCost=grossPay*fRate;
doublesCost=grossPay*sRate;
doubletotalCost=fCost+sCost;
doublenetPay=grossPay-totalCost;
//输出打印信息
JOptionPane.showMessageDialog(null,"EmpoyeeName:
\t"+employeeName+
"\nHoursWorked:
\t"+hoursWorked+
"\nPayRate:
\t$"+payRate+"\nGrossPay:
\t$"+grossPay+
"\nDeductions:
\n\tFederalWithholding:
\t$"+fCost+
"\n\tStateWithholding:
\t$"+sCost+
"\n\tTotalDeduction:
\t$"+totalCost+"\nNetPay:
\t$"+netPay);
}
}
运行结果:
图15
图16
图17
图18
图19
图20
题2.18
参考代码:
publicclassPrintTable{
publicstaticvoidmain(String[]arg){
System.out.println("\ta\tb\tpow(a.b)")
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验2 Java语言基础 实验 Java 语言 基础