java实验报告软件学院太原理工.docx

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

java实验报告软件学院太原理工.docx

《java实验报告软件学院太原理工.docx》由会员分享,可在线阅读,更多相关《java实验报告软件学院太原理工.docx(27页珍藏版)》请在冰点文库上搜索。

java实验报告软件学院太原理工.docx

java实验报告软件学院太原理工

本科实验报告

 

课程名称:

Java语言程序设计

实验项目:

Java语言基础编程和面向对象设计

实验地点:

专业班级:

学号:

学生姓名:

指导教师:

年月日

实验名称

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

主要仪器设备

台式或笔记本计算机

实验记录(可分栏或加页)

1.

packagecom.sy1_1;

publicclasssy1_1{

publicstaticvoidmain(Stringargs[])

{

intsum=0;

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

sum=sum+i;

System.out.println(sum);

}

}

2

packagecom.sy1_2;

publicclasssy1_2{

publicstaticvoidmain(String[]args){

inti,a,b,c;

System.out.println("满足条件的水仙花数有:

");

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

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

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

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

}

}

}

3.

packagecom.sy1_3;

publicclasssy1_3{

publicstaticvoidmain(Stringargs[])

{

System.out.println("1-100之内的素数有:

");

inti,j,k=0;

for(i=1;i<=100;i++)

{

for(j=2;j

{

if(i%j==0)break;

}

if(j>=i)

{

System.out.print(i);

System.out.printf("");

k++;

if(k==10){

k=0;

System.out.println();

}

}

}

}

}

4.packagecom.sy1_4;

importjava.util.Scanner;

publicclasssy1_4{

publicstaticvoidmain(Stringargs[]){

doublex=0.0,y=0.0;

Scannerscanner=newScanner(System.in);

System.out.println("请输入X的值:

");

x=scanner.nextDouble();

scanner.close();

if(x<1)

y=x;

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

y=x*3-2;

else

y=4*x;

System.out.println(""+y);

}

}

5.packagecom.sy1_5;

publicclasssy1_5{

publicstaticvoidmain(Stringargs[]){

inti,j;

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

{

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

{

System.out.print("");

}

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

System.out.print("☆");

}

System.out.println("");

}

for(i=4;i>=1;i--)

{

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

{

System.out.print("");

}

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

System.out.print("☆");

}

System.out.println("");

}

}

}

6.packagecom.sy1_6;

publicclasssy1_6{

publicstaticvoidmain(Stringargs[]){

inti;

System.out.println("闰年有:

");

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

{if(i%400==0)

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

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

=0))

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

}

}

}

遇到的问题和解决方法

在做第二个实验时,我遇到的问题是:

不知道如何判断1/n!

>=10-4,最初我是通过计算器算出其n值,但这样做使程序失去其意义,通过请教同学,我改进了我的程序,使其可以通过一个判断判断其是否小于10-4.

在做第三个实验时,我是通过“+”运算符连接3个字符串的,还可以通过concat(StringstringName2)方法连接;在连接多个字符串时,我是逐个连接的,而参照习题解析,可以创建字符串数组,通过for语句实现其循环连接,相比之下,我的方法略显笨拙。

在做第四个实验时,我遇到的难点是如何控制空格排版成杨辉三角形的格式,通过观察杨辉三角形和不断地上机尝试,最终成功的运行处杨辉三角形。

 

心得体会

通过实验,我了解了Scanner类及其简单的方法;通过杨辉三角形实验和求阶乘实验,我重新复习及能更熟练地使用循环语句;通过字符串实验,我熟练地掌握了String类方法,了解了String类常用方法及其应用。

 

实验名称

实验二数组和字符串编程

实验目的和要求

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

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

实验内容

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

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

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

(单词用空格隔开)

主要仪器设备

台式或笔记本计算机

实验记录(可分栏或加页)

1.packagecom.sy2_1;

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.util.ArrayList;

importjava.util.Arrays;

publicclasssy2_1{

publicstaticvoidmain(String[]args)throwsIOException{

Stringi;

intj;

ArrayListlist=newArrayList();

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

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

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

");

i=br.readLine();

list.add(i);

}

int[]m=construct(list);

System.out.println("按大小排序的结果为");

for(intn=0;n

System.out.print(m[n]+"");

}

}

publicstaticint[]construct(ArrayListlist){

int[]m=newint[list.size()];

try

{

for(inti=0;i

m[i]=Integer.parseInt((String)list.get(i));

}

 

}

catch(Exceptione)

{System.out.println("由于您输入了非数字,无法进行排序,程序终止!

");

System.exit

(1);

}

returnm;

}

}

2.

packagecom.sy2_2;

importjava.io.*;

publicclasssy2_2

{

publicstaticvoidmain(Stringargs[])throwsIOException

{

intarray[][]=newint[3][3];

intsum;

System.out.println("请依次输入3×3矩阵的元素");

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

{

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

{

System.out.println("请输入第"+(i+1)+(j+1)+"个位置的元素:

");

BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));

array[i][j]=Integer.parseInt(in.readLine());

}

}

sum=array[0][0]+array[1][1]+array[2][2];

System.out.println("这个矩阵的对角线元素之和为:

"+sum);

}

}

3.

packagecom.sy2_3;

importjava.util.Scanner;

publicclasssy2_3{

publicstaticvoidmain(String[]args){

System.out.println("请输入字符串(请用一个空格分隔):

");

Scannersca=newScanner(System.in);

Strings1=sca.nextLine();

String[]split=s1.split("");

System.out.println("长度为:

"+split.length);

}

}

遇到的问题和解决方法

在做实验时,我遇到的问题是无论是字体还是字体颜色,他们只能改变一次,我通过自己的不断尝试与阅读自己的程序最终找到问题所在,程序中if判断语句的位置不正确,通过改变判断语句的位置,最终我是实现了程序。

 

心得体会

通过实验1,我又重新复习了方法重载,方法重载要求方法中的参数类型或个数不同;通过实验2,我掌握了异常类及异常的捕获、抛出和抛弃,了解了如何定义一个异常类及如何使用;通过实验3,我了解了Applet小程序,了解了如何创建及实现一个小程序,了解了如何添加按钮与如何处理事件,掌握了如何使用java.awt包提供的用来设计GUI的组件类及其方法。

实验名称

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

实验目的和要求

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

实验内容

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

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

要求如下:

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

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

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

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

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

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

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

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

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

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

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

提示:

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

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

主要仪器设备

台式或笔记本计算机

实验记录(可分栏或加页)

1.

packagecom.sy3_1;

importjava.util.Scanner;

publicclasssy3_1{

privateintrealPart;

privateintimagPart;

publicintgetRealPart(){

returnrealPart;

}

publicvoidsetRealPart(intrealPart){

this.realPart=realPart;

}

publicintgetImagPart(){

returnimagPart;

}

publicvoidsetImagPart(intimagPart){

this.imagPart=imagPart;

}

publicsy3_1plus(sy3_1c){

intreal=this.realPart+c.realPart;

intimag=this.imagPart+c.imagPart;

sy3_1result=newsy3_1();

result.setRealPart(real);

result.setImagPart(imag);

returnresult;

}

publicsy3_1minus(sy3_1c){

intreal=this.realPart-c.realPart;

intimag=this.imagPart-c.imagPart;

sy3_1result=newsy3_1();

result.setRealPart(real);

result.setImagPart(imag);

returnresult;

}

publicsy3_1cheng(sy3_1c){

intreal=(this.realPart*c.realPart)-(this.imagPart*c.imagPart);

intimag=(this.imagPart*c.realPart)+(this.realPart*c.imagPart);

sy3_1result=newsy3_1();

result.setRealPart(real);

result.setImagPart(imag);

returnresult;

}

publicStringformat(){

if(this.imagPart<0){

returnthis.realPart+(this.imagPart+"i");

}else{

returnthis.realPart+"+"+this.imagPart+"i";

}

}

publicstaticvoidmain(String[]args){

System.out.println("请输入第一个复数(格式:

a+bi):

");

Scannerin=newScanner(System.in);

Stringcomplex1=in.nextLine();

System.out.println("请输入第二个复数(格式:

a+bi):

");

Stringcomplex2=in.nextLine();

sy3_1c1=newsy3_1();

sy3_1c2=newsy3_1();

String[]c1Arr=complex1.split("\\+");

intreal1=Integer.parseInt(c1Arr[0]);

intimag1=Integer.parseInt(c1Arr[1].substring(0,1));

c1.setRealPart(real1);

c1.setImagPart(imag1);

String[]c2Arr=complex2.split("\\+");

intreal2=Integer.parseInt(c2Arr[0]);

intimag2=Integer.parseInt(c2Arr[1].substring(0,1));

c2.setRealPart(real2);

c2.setImagPart(imag2);

System.out.println("和为:

"+c1.plus(c2).format());

System.out.println("差为:

"+c1.minus(c2).format());

System.out.println("积为:

"+c1.cheng(c2).format());

}

}

遇到的问题和解决方法

验3时,我遇到的问题是,图形颜色填充不正确,我是先写g.drawLine(30,25,350,30);然后在写的g.setColor(Color.green);导致颜色填充不正确,通过查阅课本,发现这两句代码的顺序写反了,应先设置画笔颜色,在进行图形绘制。

 

心得体会

通过实验,我掌握了事件、事件的监听及事件的处理,事件可通过实现接口和继承事件适配器类来监听和处理事件。

通过实验1,我了解了鼠标事件及其应用。

通过实验2,我了解了点击事件及其应用。

通过实验3,我学习了java.awt.Graphics类中绘制简单图形的方法。

 

实验名称

实验四Java异常处理

实验目的和要求

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

实验内容

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

1 错误和异常有何区别?

查看Java异常类的关系图。

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

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

4 Try语句如何嵌套?

Trow语句有何作用?

Finally程序快的作用是什么?

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

Importjava.io.*;

publicclassvoidmain(Stringargs[]){

publicstaicvoidmain(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)在实验三中的超市、商品类中创建一个自定义异常类。

要求:

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

提示:

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

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

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

4 要定义好自己的异常。

主要仪器设备

台式或笔记本计算机

实验记录(可分栏或加页)

packagecom.sy4_2;

importjava.io.*;

@SuppressWarnings("unused")

publicclasssy4_2{

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];

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

当前位置:首页 > 农林牧渔 > 林学

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

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