JAVA实验报告材料.docx

上传人:b****2 文档编号:24276205 上传时间:2023-05-26 格式:DOCX 页数:66 大小:2.15MB
下载 相关 举报
JAVA实验报告材料.docx_第1页
第1页 / 共66页
JAVA实验报告材料.docx_第2页
第2页 / 共66页
JAVA实验报告材料.docx_第3页
第3页 / 共66页
JAVA实验报告材料.docx_第4页
第4页 / 共66页
JAVA实验报告材料.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

JAVA实验报告材料.docx

《JAVA实验报告材料.docx》由会员分享,可在线阅读,更多相关《JAVA实验报告材料.docx(66页珍藏版)》请在冰豆网上搜索。

JAVA实验报告材料.docx

JAVA实验报告材料

 

实验1Java语言基础

一、实验目的和要求

1.实验目的

通过实验,掌握Java语言程序设计的基本方法。

学会Java语言中标示符的命名、运算符和表达式的应用。

熟练地掌握Java程序流程控制语句的应用。

2.实验内容

1.编写应用程序,计算100(含100)以内所有偶数的和。

2.“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。

编写程序,求所有的水仙花数。

3.编写一个程序,求1-100间的素数。

4.有一函数:

x(x<1)

Y=3x-2(1≤x<10)

4x(x≥10)

写一程序,给定x值,输出y值。

5.使用for循环语句,编写程序输出以下图案。

☆☆☆

☆☆☆☆☆

☆☆☆☆☆☆☆

☆☆☆☆☆

☆☆☆

6.编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。

判断年是否为闰年的条件是:

①若年号可以被4整除,而不能被100整除,则是闰年;②若年号可以被400整除,也是闰年。

二、源代码

1.packageaddsum;

publicclassaddsum{

publicstaticvoidmain(Strings[])

{

intsum=0;

for(inti=0;i<=100;i=i+2)

sum=sum+i;

System.out.println(sum);

}

}

2.packageaddsum;

publicclassshuixianhua{

publicstaticvoidmain(String[]args){

inti,j,k;

for(i=1;i<=9;i++){

for(j=0;j<=9;j++){

for(k=0;k<=9;k++){

if((i*100+j*10+k)==(i*i*i+j*j*j+k

*k*k))

System.out.println(i*100+j*10+k+"="+i+"*"

+i+"*"+i+"+"+j+"*"+j+"*"+j+"+"+k+"+"+k+"+"+k);

}

}

}

}

}

3.packageaddsum;

publicclassprime{

publicstaticvoidmain(String[]args){

System.out.println("100内的素数为:

");

loop:

for(inti=2;i<100;i++){

for(intj=2;j

if(i%j==0){

continueloop;

}

}

System.out.print(""+i);

}

}

}

4.packageaddsum;

importjava.util.Scanner;

publicclassquestion4{

publicstaticvoidmain(String[]args){

doublex,y;

System.out.print("请输入x:

");

do{

Scanners=newScanner(System.in);

x=s.nextDouble();

if(x<1)

y=x;

elseif(x>=1&&x<10)

y=3*x-2;

else

y=4*x;

System.out.println("x="+x+","+"y="+y);

}

while(true);

}

}

5.packageaddsum;

publicclassquestion5{

publicstaticvoidmain(Stringargs[]){

for(intr=1;r<=4;r++)

{for(intspace=4-r;space>0;space--)

System.out.print(""+""+"");

for(intstar=1;star<=2*r-1;star++)

System.out.print('☆');

System.out.print('\n');

}

for(intr=3;r>=1;r--)

{for(intspace=4-r;space>0;space--)

System.out.print(""+""+"");

for(intstar=1;star<=2*r-1;star++)

System.out.print('☆');

System.out.print('\n');

}

}

}

6.packageaddsum;

publicclassquestion6{

publicstaticvoidmain(String[]args){

for(inti=1900;i<=2100;i++)

{

if((i%4==0)&&(i%400==0)&&(i%100!

=0))

{

System.out.println(i+"年是闰年");

}

if((i%4==0)&&(i%100!

=0))

{

System.out.println(i+"年是闰年");

}

}

}

}

三、主要仪器设备

Eclipe

四、运行结果

1.

2.

3.

4.

5.6.

五、讨论、心得

试验中遇到的问题及体会在实验过程中,整体都比较完整,基本没遇到什么太大调试问题,算法设计也比较清楚,结果相对比较满意。

体会:

经过实验使我对本章的知识有了更深一步的理解,也学会了将C语言运用到java语言中的学习方法,对知识做了进一步的巩固,同时也发现各种语言之间总有相同的模块,这也使我对以后各程序设计语言及各专业课的学习奠定基础,创造了条件

实验2数组和字符串编程

一、实验目的和要求

1.通过实验,掌握Java语言中数组、字符串程序设计的基本方法。

2.较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。

二、实验内容和原理

1.编写一个程序,在控制台输入10个数,按大小顺序输出。

2.求一个3*3矩阵对角线元素之和。

3.输入一段字符串,统计其中有多少个单词。

(单词用空格隔开)

三、主要仪器设备

Eclipe

四、源代码

1.packageshiyan2;

importjava.util.Arrays;

importjava.util.Scanner;

publicclassquestion1{

publicstaticvoidmain(String[]args){

int[]num=newint[10];

Scannerinput=newScanner(System.in);

System.out.println("请输入数字:

");

for(inti=0;i<10;i++){

num[i]=input.nextInt();

}

Arrays.sort(num);

System.out.println("从小到大输出:

");

for(intindex=0;index

System.out.println(num[index]);

}

}

}

2.packageshiyan2;

importjava.util.*;

publicclassquestion2{

publicstaticvoidmain(String[]args){

Scannerin=newScanner(System.in);

System.out.println("请输入一个3*3矩阵:

");

intsum=0;

int[][]a=newint[3][3];

for(inti=0;i<3;i++)

{

for(intj=0;j<3;j++)

{

a[i][j]=in.nextInt();

if(i==j)

sum+=a[i][j];

}

System.out.print("\n");

}

System.out.println("对角线和为"+sum);

}

}

3.packageshiyan2;

importjava.util.Scanner;

publicclassquestion3{

publicstaticvoidmain(String[]args){

Scannerinput=newScanner(System.in);

System.out.print("请输入:

");

Stringsentence=input.nextLine();//将输入的句子转化为单词数组

String[]words=sentence.split("");//单词数组的长度就是单词数

System.out.println("共有"+words.length+"个单词.");

}

}

5、运行结果

1.2.3.

六、讨论、心得

在实验过程中的确遇到过很多问题,不像前几章那样较容易实现各功能,比如在做实验一时开始的时候各个计算的相关算法确实不容易想,后来在与同学进行探讨后才勉强实现实验要求,题中的算法还相对比较容易实现.

经过这次实验我发现自己在知识方面还有很多的不足,在平时的练习中也不懂得扩展与举一反三,导致这次的实验做得马马虎虎,除此之外也体会到了面向对象程序设计相对于过程化程序设计的优越性,总之,语言是一门技巧,要想能熟练掌握,必须多加练习。

实验3Java面向对象程序设计

一、实验目的和要求

掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。

二、实验内容和原理

1.创建一个复数类complex,以附属进行数学运算、复数具有如下格式:

RealPart+ImaginaryRart*I,其中,I为-1的平方根。

要求如下:

利用浮点变量表示此类的私有数据。

提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。

提供两复数加、减、乘的运算方法。

按格式(a,b)打印复数。

其中a为实部,b为虚部。

2.创建银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。

3.编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。

4.编程实现以下简单超市管理,具体要求如下:

实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;

定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。

main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作

提示:

①超市货架可以使用商品数组,数组大小100表明存放100个商品。

②注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。

三、主要仪器设备

Eclipe

四、源代码

1.packageshiyan3;

importjava.util.Scanner;

publicclassquestion1{

publicstaticvoidmain(String[]args){

Complexa=newComplex(3,5);

Complexb=newComplex(7,2);

System.out.println(a.toString()+"和"+b.toString()+"相加的结果为"+plexAdd(b).toString());

System.out.println(a.toString()+"差"+b.toString()+"相减的结果为"+plexJian(b).toString());

}

}

classComplex{

intrealPart;

intimaginPart;

publicComplex(){

realPart=0;

imaginPart=0;}

publicComplex(intr,inti){

realPart=r;

imaginPart=i;}

publicComplexcomplexAdd(Complexb){

returnnewComplex(realPart+b.realPart,imaginPart+b.imaginPart);}

publicComplexcomplexJian(Complexb){

returnnewComplex(realPart-b.realPart,imaginPart-b.imaginPart);}

publicStringtoString(){

Stringsr="("+realPart+","+imaginPart+")";

returnsr;}

}

2.packageshiyan3;

importjava.util.Scanner;

publicclassquestion2{

publicstaticvoidmain(String[]args){

doublebalance=0;

doubledeposit=0;

doublewithdraw=0;

for(;;){

System.out.println("请输入数字:

\t1.存钱\t2.取钱\t3.查询余额\n");

Scannerinput=newScanner(System.in);

Stringnum=input.next();

doubles1=0,s2=0;

if(num.equals("1")){

System.out.println("输入存入金额:

");

deposit=input.nextDouble();

System.out.println("存钱数目为:

"+deposit);

s1+=deposit;

}

if(num.equals("2")){

System.out.println("输入取钱金额:

");

withdraw=input.nextDouble();

System.out.println("取走金额为:

"+withdraw);

s2+=withdraw;

}

if(true|num.equals("3")){

balance+=s1-s2;

System.out.println("账户余额为:

"+balance);

}

}

}

}

3.packageshiyan3;

publicclassquestion3{

publicIntegermaxNum(inta,intb){

if(a>b){

returna;

}else{

returnb;

}

}

publicIntegerminNum(inta,intb){

if(a>b){

returnb;

}else{

returna;

}

}

publicstaticvoidmain(String[]args){

inta=6,b=2,c=10;

question3s=newquestion3();

inttemp=s.maxNum(a,b);

inttemp1=s.maxNum(temp,c);

System.out.println("TheMaxNumis"+temp1);

inttemp2=s.minNum(a,b);

inttemp3=s.minNum(temp2,c);

System.out.println("TheMinNumis"+temp3);

}

}

5、运行结果

 

实验4Java异常处理

一、实验目的和要求

掌握异常的概念,以及如何定义、抛出和捕获处理异常。

二、实验内容和原理

(1)做实验之前要求思考以下问题,作为预习内容;

错误和异常有何区别?

查看Java异常类的关系图。

异常是如何抛出、捕获和处理的?

Java捕获和处理异常的结构式怎样的?

Try语句如何嵌套?

Trow语句有何作用?

Finally程序快的作用是什么?

1.

(1)错误与异常的区别:

错误:

指在程序编译时如果程序进入死循环,或递归无法结束,或内存溢出。

错误只能在编程阶段解决,只能依靠其他程序干预,否则会一直处于非正常状态。

异常:

指运算时除数为0,或操作数超过范围,或打开一个文件时发现文件并不存在,或欲装入的类文件丢失,或网络连接中断等。

(2)java提供了一种利用简单易行的方法检查和处理运行时产生的错误的异常处理机制,它是通过面向对象的方法来处理异常的。

在java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。

生成的异常对象将

传递给java运行时系统,这一异常的产生和提交过程成为抛弃异常。

当java运行时系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。

找到能够处理这类异常的方法后,运行时系统把当前异常对象交给这个方法进行处理,这一过程称为捕获异常。

(3)根据程序对错误与异常的处理方式,可以将java中的异常分为Error类,RuntimeException

类和Exception类。

其中Error类包括的是一些严重的程序不能处理的系统错误类,如内存溢出,虚拟机错误,栈溢出等。

这类错误一般主要与硬件有关,与程序本身无关,通常由系统进行处理,程序本身无需去捕获和处理。

程序运行过程中,可能出现RuntimeException类的异常数量相当大,对于运行时的异常类,如数组越界,算术异常等,应通过程序尽量避免而不是去捕获它。

(4)为了避免程序运行时可能出现的错误,将程序代码放在

try程序块中,紧跟在try语句后面包括一个catch语句,用来指定需要捕获的异常类型。

在程序中发生异常时,程序员可以抛出(throw)一个自定义异常类的实例,将其放到异常列中去,并激活java的异常处理机制。

当抛出一个异常时,程序的执行就不再是线性的,这样就有可能导致方法的执行中断。

在java语言中,使用finally语句来解决此类问题。

Finally语句创建一个代码块,在try/catch语句执行后执行,不管是否抛出一个异常,系统都将执行finally

语句的程序代码。

(2)运行下面的程序,理解异常的抛出、捕获与处理。

Importjava.io.*;

publicclassvoidmain(Stringargs[]){

publicstaticvoidmain(Stringargs[]){

for(inti=0;i<4;i++){

intk;

try{

switch(i){

case0:

//dividedbyzero

intzero=0;

k=911//zero

break;

case1:

//nullpointer

intb[]=null;

k=b[0];

break;

case2;//arrayindexoutofbound

intc[]=newint[2];

k=c[9];

break;

case3:

//stringindexoutofbound

charch="abc".charAt(99);

break;

}

}catch(Exceptione){

System.out.println("\nTestcase#"+i+"\n");

System.out.println(e);

}

}

}

}

(3)在实验三中的超市、商品类中创建一个自定义异常类。

要求:

在定义商品类时,若销售商品数量大于余额则作为异常处理提示:

产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。

确定产生异常的方法,应该在sale方法中产生异常InsufficientFundsException。

处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。

要定义好自己的异常。

3.packageshiyan4;

importjava.io.*;

classAccount{

publicStringaccount;

publicdoublebalance=0;

publicAccount(Stringaccount,doublebalance){

this.account=account;

this.balance=balance;

}

publicvoiddeposit(doublemoney){

this.balance+=money;

}

publicdoublegetbalance(){

returnthis.balance;

}

publicdoublewithdrawl(doublemoney)throwsInsufficientFundsException{

if(money>this.balance){

thrownewInsufficientFundsException();

}

this.balance-=money;

}

publicvoidprocess(booleansave,doublemoney){

if(save){

System.out.println("你的余额为:

"+balance)

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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