java实验报告.docx

上传人:b****4 文档编号:5034813 上传时间:2023-05-07 格式:DOCX 页数:28 大小:52.72KB
下载 相关 举报
java实验报告.docx_第1页
第1页 / 共28页
java实验报告.docx_第2页
第2页 / 共28页
java实验报告.docx_第3页
第3页 / 共28页
java实验报告.docx_第4页
第4页 / 共28页
java实验报告.docx_第5页
第5页 / 共28页
java实验报告.docx_第6页
第6页 / 共28页
java实验报告.docx_第7页
第7页 / 共28页
java实验报告.docx_第8页
第8页 / 共28页
java实验报告.docx_第9页
第9页 / 共28页
java实验报告.docx_第10页
第10页 / 共28页
java实验报告.docx_第11页
第11页 / 共28页
java实验报告.docx_第12页
第12页 / 共28页
java实验报告.docx_第13页
第13页 / 共28页
java实验报告.docx_第14页
第14页 / 共28页
java实验报告.docx_第15页
第15页 / 共28页
java实验报告.docx_第16页
第16页 / 共28页
java实验报告.docx_第17页
第17页 / 共28页
java实验报告.docx_第18页
第18页 / 共28页
java实验报告.docx_第19页
第19页 / 共28页
java实验报告.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java实验报告.docx

《java实验报告.docx》由会员分享,可在线阅读,更多相关《java实验报告.docx(28页珍藏版)》请在冰点文库上搜索。

java实验报告.docx

java实验报告

实验报告□实践报告□

课程名称:

Java语言程序设计

实验、实践名称:

Java语言基础、数组和字符串编程、Java面向对象程序设计、Java异常处理多线程编程、图形用户界面编程

实验、实践地点:

致向楼301

专业班级:

软件1531学号:

****************************

******

2017年1月8日

实验一Java语言基础

一、实验目的和要求

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

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

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

二、实验内容

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整除,也是闰年。

三、主要仪器设备

使用的计算机惠普:

硬件配置Win7、软件环境eclipse

四、实验代码

1.publicclassa1{

publicstaticvoidmain(String[]args){

inti,sum=0;

for(i=0;i<=100;i++){

if(i%2==0)

sum+=i;}

Syst

}}

2.publicclassa2{

publicstaticvoidmain(String[]args){

inti,a,b,c;

for(i=100;i<=999;i++){

a=i%10;

b=(i-a)%100/10;

c=(i-b*10-a)/100;

if(i==a*a*a+b*b*b+c*c*c){

}}}}

3.publicclassa3{publicstaticvoidmain(String[]args){

publicclassa4{publicstaticvoidmain(String[]args){

inti,j;

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

for(j=1;j<=((-1)*i+4);j++)

for(j=1;j<=(2*i-1);j++)

☆");

for(i=3;i>=1;i--){

for(j=1;j<=((-1)*i+4);j++)

for(j=1;j<=(2*i-1);j++)

☆");

5.import.*;

publicclassa5{

publicstaticvoidmain(String[]args){

Scannerx=newScanner;

inti=();

();}}

6.packageshiyan;

publicclassa6{

publicstaticvoidmain(String[]args){

inti,j=0;

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

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

=0)||(i%400==0)){

j++;

if(j%5==0)

else{

五、实验结果

1.

2.

3.

4.

5.

6.

六、讨论、心得

初步掌握了Eclipse集成开发环境。

掌握Java基本数据类型、运算符与表达式、数组的使用方法,语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。

、对JAVA程序设计有初步的了解

实验二数组和字符串编程

一、实验目的和要求

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

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

二、实验内容

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

(2)求一个3*3矩阵对角元素之和。

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

(单词用空格隔开)

三、主要仪器设备

使用的计算机惠普:

硬件配置Win7、软件环境eclipse

四、实验代码

1、packagea1;

import.*;

publicclassa1{

publicstaticvoidmain(String[]args)throwsIOException{

intcount=10,k;

doubledata[]=newdouble[count];

Scannersr=newScanner;

for(k=0;k

data[k]=();

}

();

for(k=0;k

Sys

double[]dataCopy=newdouble[count+1];

doubletemp=0;

(data,0,dataCopy,1,;

for(k=1;k

for(intj=1;j<=count-k;j++){

if(dataCopy[j]>dataCopy[j+1]){

temp=dataCopy[j];

dataCopy[j]=dataCopy[j+1];

dataCopy[j+1]=temp;

}

}

for(intj=1;j<;j++){

2、

packagea1;

import.*;

publicclassa2{

publicstaticvoidmain(String[]args)throwsIOException{

doublea[][];intsum=0;

a=newdouble[3][3];

Scannersr=newScanner;

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

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

a[i][j]=();

}

();

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

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

if(i==j)

sum+=a[i][j];}}

3、

packagea1;

import.*;

publicclassa3{

publicstaticvoidmain(String[]args){

Scannersr=newScanner;

Stringword=newString();

word=();

String[]words=("");

intnum=;

();}}

五、实验结果

1.

.

2.

3.

六、实验心得

通过本次实验掌握数组的声明、分配空间及初始化;理解多维数组(重点掌握二维);掌握String类的特点及常用方法的使用;掌握StringBuffer类的特点及常用方法的使用;掌握String类和StringBuffer类的区别;掌握equal方法与==的区别;但是本次练习中,我也出现了一些错误,是由于知识上的失误和不小心犯下的低级错误,但是我努力改正。

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

一、实验目的和要求

掌握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个商品。

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

三、主要仪器设备

使用的计算机惠普:

硬件配置Win7、软件环境eclipse

四、实验代码

1.packagea1;

publicclassComplex{

floatRealPart;

floatImaginaryRart;

publicComplex(){}

publicComplex(floatR,floatI){

RealPart=R;

ImaginaryRart=I;

}

publicstaticComplexadd(Complexa,Complexb){

Complexc=newComplex();

=+;

=+;

returnc;

}

publicComplexminus(Complexa,Complexb){

Complexc=newComplex();

==returnc;

}

publicComplexmultiply(Complexa,Complexb){

Complexc=newComplex();

=*=*+*;;

returnc;

}

publicvoidprint(){

}

publicstaticvoidmain(String[]args){

Complexa=newComplex(1f,3f);

Complexb=newComplex(3f,4f);

Complexc=newComplex();

c=add(a,b);

();

}}

2.packageshiyan;

import.*;

classAccount{

privatedoublebalance;

Account(){

balance=5000;

}

publicvoiddeposit(doublen){

balance=balance+n;

}

publicvoidwithdraw(doublen){

balance=balance-n;

}

publicvoidgetbalance(){

}

publicstaticvoidmain(String[]args){

Accountc=newAccount();

();

Scannersc=newScanner;

doublei=();

(i);

();

doublex=();

(x);();

();

}

}

3.

packagemymaths;

publicinterfaceMyinterface{

intmax(inta,intb,intc);

intmin(inta,intb,intc);

}

classZzrimplementsMyinterface{

publicintmax(inta,intb,intc){inttemp;

if(a

temp=b;

elsetemp=a;

if(temp>c)returntemp;

elsereturnc;}

publicintmin(inta,intb,intc){

inttemp;

if(a

temp=a;

elsetemp=b;

if(temp>c)returnc;

elsereturntemp;

}}

packagemymaths;

publicclassinterfaceTest{

publicstaticvoidmain(String[]args){

intx,y;

Zzrc=newZzr();

x=(3,5,8);

y=(6,8,9);

}}

4.packagea1;

classBase{

publicstaticGoods[]All=newGoods[2];howMe();

2.

3.

4.

六、讨论、心得

本次实验让我了解到想用程序解决实际问题时,最好写出三种代码:

伪代码、产品代码、测试代码,这样才能快速的写出代码,并且实用性强。

希望以后能通过实验了解更多运用java解决实际问题的方法,学好Java。

实验四Java异常处理

一、实验目的和要求

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

二、实验内容

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

① 错误和异常有何区别查看Java异常类的关系图。

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

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

④ Try语句如何嵌套Trow语句有何作用Finally程序快的作用是什么

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

Import.*;

publicclassvoidmain(Stringargs[]){

publicstaicvoidmain(Stringargs[]){

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

intk;

try{

switch(i){

case0:

harAt(99);

break;

}

}catch(Exceptione){

}

}

}

}

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

要求:

在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。

提示:

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

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

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

④ 要定义好自己的异常。

三、主要仪器设备

使用的计算机惠普:

硬件配置Win7、软件环境eclipse

四、实验代码

.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语句的程序代码。

3.packageshiyan;

publicclassa1{

publicstaticvoidmain(Stringargs[]){

try{

Shopsh=newShop(100);

(200);

}catch(InsufficientFundsExceptione){

}

}

}

classShop{

intnum;

Shop(intnum){

=num;

}

publicvoiddeposite(intdAmount){

num+=dAmount;

}

publicvoidsale(intdAmount)throwsInsufficientFundsException{

if(num

thrownewInsufficientFundsException();

num=num-dAmount;

}

}

classInsufficientFundsExceptionextendsException{

privatestaticfinallongserialVersionUID=1L;

InsufficientFundsException(){

super("商品销售数量大于库存额!

");

}

}

五、实验结果

2.

3.

六、讨论、心得

通过本次实验,熟悉掌握了Java的异常机制,try{}catch(){}finally{}的执行过程。

通过new一个数组,从而通过数组的下标取出内容,当下标不合法时就会出现数组下标越界异常。

通过catch捕获异常,并对异常作出处理。

再通过将一个字符串的大写字母转换成小写字母,练习String的常用方法。

同时了解了字符串的使用。

 

这仅仅是简单异常的处理,必须更进一步对异常熟悉。

还有对字符串的其他方法进行练习并熟悉掌握。

还需要在课下多多练习,熟悉它们。

实验五多线程编程

一、实验目的和要求

(1)现成的概念、线程的生命周期。

(2)多线程的编程:

扩展Thread类与使用Runnable接口。

(3)使用多线程机制实现动画

二、实验内容

1.运行下面的程序,理解用创建Thread子类的方法实现多线程。

;

classS09_01_ThreadextendsThread{

intpauseTime;

Stringname;

publicS09_01_Thread(intx,Stringn){

pauseTime=x;

name=n;

}

publicvoidrun(){

while(true){

try{

(pauseTime);

}

}

staticpublicvoidmain(Stringsrgs[]){

S09_01_Threadtp1=newS09_01_Thread(1000,"Fast");

();

S09_01_Threadtp2=newS09_01_Thread(3000,"Slow");

();

}

}

2.运行下面的程序,理解用实现Runnable接口的方法实现多线程。

;

classS09_02_ThreadimplementsRunnable{

intpauseTime;

Stringname;

publicS09_02_Thread(intx,Stringn){

pauseTime=x;

name=n;

}

publicvoidrun(){

while(true){

try{

(pauseTime);

}

}

staticpublicvoidmain(Stringsrgs[]){

Threadt1=newThread(newS09_02_Thread(1000,"Fast"));

();

Threadt2=newThread(newS09_02_Thread(3000,"Slow"));

();

}

}

3.创建简单的程序,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。

三、主要仪器设备

使用的计算机惠普:

硬件配置Win7、软件环境eclipse

四、实验代码

3.packagemymaths;

import

publicclassXianchengextendsThread{

publicstaticvoidmain(String[]args){

Xianchengt1=new

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2