实验2 Java语言基础.docx

上传人:b****6 文档编号:4717562 上传时间:2022-12-07 格式:DOCX 页数:27 大小:424.23KB
下载 相关 举报
实验2 Java语言基础.docx_第1页
第1页 / 共27页
实验2 Java语言基础.docx_第2页
第2页 / 共27页
实验2 Java语言基础.docx_第3页
第3页 / 共27页
实验2 Java语言基础.docx_第4页
第4页 / 共27页
实验2 Java语言基础.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

实验2 Java语言基础.docx

《实验2 Java语言基础.docx》由会员分享,可在线阅读,更多相关《实验2 Java语言基础.docx(27页珍藏版)》请在冰豆网上搜索。

实验2 Java语言基础.docx

实验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)")

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

当前位置:首页 > 高中教育 > 理化生

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

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