理工类的java实验报告.docx

上传人:b****7 文档编号:10807764 上传时间:2023-02-23 格式:DOCX 页数:61 大小:53.44KB
下载 相关 举报
理工类的java实验报告.docx_第1页
第1页 / 共61页
理工类的java实验报告.docx_第2页
第2页 / 共61页
理工类的java实验报告.docx_第3页
第3页 / 共61页
理工类的java实验报告.docx_第4页
第4页 / 共61页
理工类的java实验报告.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

理工类的java实验报告.docx

《理工类的java实验报告.docx》由会员分享,可在线阅读,更多相关《理工类的java实验报告.docx(61页珍藏版)》请在冰豆网上搜索。

理工类的java实验报告.docx

理工类的java实验报告

 

学生实验报告

(理工类)

 

课程名称:

Java实验专业班级:

13软件工程2班

学生学号:

1305104061学生姓名:

葛石

所属院部:

软件工程指导教师:

陈圣国

2014——2015学年第1学期

 

金陵科技学院教务处制

实验报告书写要求

实验报告原则上要求学生手写,要求书写工整。

若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。

纸张一律采用A4的纸张。

实验报告书写说明

实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。

各院部可根据学科特点和实验具体要求增加项目。

填写注意事项

(1)细致观察,及时、准确、如实记录。

(2)准确说明,层次清晰。

(3)尽量采用专用术语来说明事物。

 

(4)外文、符号、公式要准确,应使用统一规定的名词和符号。

(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。

实验报告批改说明

实验报告的批改要及时、认真、仔细,一律用红色笔批改。

实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。

实验报告装订要求

实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

 

实验项目名称:

Java编程基础实验学时:

2

同组学生姓名:

实验地点:

A205

实验日期:

实验成绩:

批改教师:

批改时间:

一、实验目的

(1)熟练掌握JDK编写调试Java应用程序及Java小程序的方法。

(2)熟练掌握Java应用程序及小程序的结构。

(3)了解Java语言的特点,基本语句、运算符及表达式的使用方法。

(4)熟练掌握常见数据类型的使用。

(5)熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法。

二、实验要求

(1)调试程序要记录调试过程中出现的问题及解决办法;

(2)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;

(3)做完实验后给出本实验的实验报告。

三、实验设备、环境

奔腾以上计算机,Windows2000、J2SDK、IE浏览器

三、实验过程

(1)输入并用JDK编译运行下面的程序

classHelloWorld{

publicstaticvoidmain(String[]args){

System.out.println(“Hello,world”);

}

}

(2)2-18

publicclass素数判断

{

publicstaticvoidmain(String[]args)

{

//自动生成的方法存根

intmymin=1;

intmymax=100;

inti,j;

for(i=mymin;i<=mymax;i++)

{

if(i==1)

{continue;}

for(j=2;j<=i;j++)

{

if((i%j)==0)

{

break;

}

}

if(j==i)

{

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

}

}

}

}

(3)2-19

publicclass等腰杨辉三角

{

publicstaticvoidmain(String[]args)

{

intn=9,j,i,k;

inta[]=newint[n+1];

a[0]=a[1]=1;

for(i=0;i

System.out.print("");

System.out.println(a[0]);

for(i=0;i<10*n;i++)

System.out.print("");

System.out.println(a[0]+""+a[1]);

for(i=1;i

{

a[i+1]=a[i];

for(j=i;j>0;j--)

{

a[j]=a[j-1]+a[j];

}

for(k=0;k<(10*n-i*2);k++)

System.out.print("");

for(j=0;j

{

System.out.print(a[j]+"");

}

System.out.println();

}

}

}

(4)2-28

publicclass判断回文字符串

{

publicstaticbooleanpdhw(Strings)

{

inti;

chara,b;

for(i=0;i

{

a=s.charAt(i);

b=s.charAt(s.length()-i-1);

if(a!

=b)

{

returnfalse;

}

}

returntrue;

}

publicstaticvoidmain(String[]args)

{

Stringa="321321123123";

if(pdhw(a))

System.out.println("yse!

");

else

System.out.println("no!

");

}

}

(5)2-32

publicclassMyDouble

{

//返回实数字符串表示的浮点数值

publicstaticdoubleparseDouble(Strings)

{

inti=0,sign=s.charAt(0)=='-'?

-1:

1;//sign记住符号位

if(s.charAt(0)=='+'||s.charAt(0)=='-')//跳过符号位

i++;

doublevalue=0,power=0.1;//power表示底数为10的幂

while(i='0'&&s.charAt(i)<='9'))//获得整数部分值

value=value*10+s.charAt(i++)-'0';

if(i

{

i++;

while(i='0'&&s.charAt(i)<='9')//获得小数部分值

{

value+=(s.charAt(i)-'0')*power;

i++;

power*=0.1;

}

}

value*=sign;

if(i

{

i++;

power=(s.charAt(i)=='-')?

0.1:

10;//阶码的符号位决定指数的正负及其运算

if(s.charAt(i)=='+'||s.charAt(i)=='-')

i++;

intexp=0;

while(i='0'&&s.charAt(i)<='9')

exp=exp*10+s.charAt(i++)-'0';//获得指数的绝对值

for(intj=0;j

value*=power;

}

returnvalue;

}

publicdoubletoDouble(Strings)//返回实数字符串表示的浮点数值

{

intj=s.indexOf('.'),k=s.indexOf('E');//寻找小数点和E

if(k==-1)

k=s.indexOf('e');

if(j==-1&&k==-1)

returnInteger.parseInt(s);//s中没有小数和阶码部分,获得整数值返回

inti=0,sign=s.charAt(0)=='-'?

-1:

1;//sign记住符号位

if(s.charAt(0)=='+'||s.charAt(0)=='-')//跳过符号位

i++;

doublevalue=0,power=0.1;//power表示底数为10的幂

if(j!

=-1)//s中有小数部分

{value=Integer.parseInt(s.substring(i,j));//获得正整数部分值

j++;//跳过小数点

while(j='0'&&s.charAt(j)<='9')//获得小数部分值

{value+=(s.charAt(j)-'0')*power;

j++;

power*=0.1;

}

}

value*=sign;

if(k!

=-1)//处理阶码

{if(j==-1)//s中没有小数部分

value=Integer.parseInt(s.substring(0,k));//获得整数部分值

k++;

power=(s.charAt(k)=='-')?

0.1:

10;//阶码的符号位决定指数的正负及其运算

if(s.charAt(k)=='+'||s.charAt(k)=='-')

k++;

intexp=Integer.parseInt(s.substring(k));//获得指数部分的正整数值

for(j=0;j

value*=power;

}

returnvalue;

}

}

 

四、实验结果与分析

(1)比较Java语言与C的程序结构

Java是一种面向对象的程序设计语言而C语言则是一种面向过程的程序设计语言

(2)Java语言中的数组与C语言中的数组相比有什么不同,它的优点是什么?

c的数组名是指向该数组首地址的指针,而JAVA的数组名,是一个引用而已。

(3)比较Java各种流程控制语句的特点,它们的适用场合

if语句是java中的条件分支语句,它能让程序在两个不同的路径中执行。

if语句的执行过程如下:

如果条件为真,就执行语句1(statement1),否则就执行语句2(statement2)(如果它存在),不存在两条语句都执行的情况。

在使用if语句时,利用花括号是很方便的,甚至当有每条子句中仅有一条语句时也如此。

嵌套(nested)的if语句是指另一条if或else的目标,当使用嵌套if语句时要记住,else语句总是对应着和此else在同一个块内的最近的if语句,而且该if语句没有和其它else语句相关联。

Switch语句是java的多路分支语句。

它提供了一种简单的方法,使程序根据表达式的值来执行不同的程序部分,是一个比if—else—if语句更好的选择。

表达式expresson必须是byte,shout,int,或char类型,在case语句中指定的每个值value必须是和表达式兼容的类型(枚举值也可用于控制switch),将在以后讨论,每case值必须是惟一的字面量(即它必须是一个常量,而不是一个变量),不允许重复使用case值。

Switch语句的执行过程如下:

表达式的值与case语句中的每个字面量值相比,如果发现一个与之相匹配的,则执行该case语句后的代码,如果不存在匹配表达式值的常量,那么执行default语句,当然,default语句是可选的,如果没有相匹配的case语句,也没有default语句,则什么也不执行。

有3个重要的特征需要注意:

1、switch语句与if语句不同之处在于:

switch语句仅能测试相等的情况,而if语句能够计算任何类型的布尔表达式,也就是switch语句仅能查找表达式值与某个case常量是否匹配。

2、在任何一个switch语句中不能有两个相同的case常量,当然嵌套的是可以的。

3、switch语句比一组嵌套的if语句更高效。

while循环是java的最基本的循环语句,当控制条件为真时,它重复执行一条语句或一个语句块。

当有时我们希望至少执行一次while循环时,即使表达式在开始时就为假也如此,即在循环的末尾而不是循环的开始处测试终止表达式,java提供了这样的循环:

do—while.do—while循环至少执行它的循环体一次,因为它的条件表达式在循环的结尾。

for循环的执行过程是:

当循环第一次开始时,执行循环的初始化部分(initialization)。

这是一个设置循环控制变量值的表达式,其中的循环控制变量作为控制循环的计数器使用(即初始化只执行一次)。

接下来,计算条件(condition)的值,这必须是一个布尔表达式,它通常依据一个目标值来测试循环控制变量。

如果表达式为真,那么执行循环体,如果为假,则循环终止。

接下来,执行循环的迭代(iteration)部分。

这通常是一个表达式,该表达式可增加或减小循环控制变量。

然后迭代循环:

首先计算条件表达式,执行循环体,然后在每次传递时执行迭代表达式,重复该过程,直到控制表达式为假。

控制for循环的变量通常只用于该循环,而不在程序其他地方使用,,当for语句结束时,该变量的作用域也就结束了,(即变量的作用域限定在for循环内),在for循环外,该变量就不存在了,如果我们要两个或更多的变量控制for循环,java允许在for循环的初始部分和迭代部分包括多条语句,每条语句用逗号分开.

 

实验项目名称:

类与对象实验学时:

2

同组学生姓名:

实验地点:

A205

实验日期:

实验成绩:

批改教师:

批改时间:

一、实验目的

(1)熟练掌握Java语言类定义的基本语法

(2)熟练掌握类数据成员的访问控制,对象建立的方法

(3)熟练掌握类构造函数的定义,类方法的访问控制重载

(4)掌握静态成员的特点

(5)了解Java语言的垃圾回收机制。

(6)熟练掌握类继承的基本、语法包和接口的使用,掌握protected成员的特点,了解抽象方法和抽象类。

二、实验要求

(1)调试程序要记录调试过程中出现的问题及解决办法;

(2)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;

(3)做完实验后给出本实验的实验报告。

三、实验设备、环境

奔腾以上计算机,Windows2000、J2SDK、IE浏览器

四、实验步骤及内容

(1)3-32完善例3.2的日期类MyDate。

publicvoidset(intyear,intmonth,intday)

{//3-32.1

if(year>=0&&month>=1&&month<=12&&day>0&&day<=31)

{

if(month==2&&day<=29)

if(MyDate.isLeapYear(year)&&day<=28)

{

this.year=year;

this.month=month;

this.day=day;

}

}

}

publicbooleanequals(MyDated)

{//3-32.2.4

returnthis==d||d!

=null&&this.year==d.year&&this.month==d.month&&this.day==d.day;

}

publicvoidgetweek()

{//3-32.2.1

inttotal=this.year-1980+(this.year-1980+3)/4;

for(inti=this.month-1;i>0;i--)

{

total+=daysofMonth(this.year,i);

}

total+=this.day;

intweek=1;

week=(week+total)%7;

System.out.printf(this.year+"年"+this.month+"月"+this.day+"日星期");

switch(week)

{

case0:

System.out.println("日");

case1:

System.out.println("一");

case2:

System.out.println("二");

case3:

System.out.println("三");

case4:

System.out.println("四");

case5:

System.out.println("五");

case6:

System.out.println("六");

}

}

publicStringtoWeek()

{

inttotal=this.year-1980+(this.year-1980+3)/4;

for(inti=this.month-1;i>0;i--)

{

total+=daysofMonth(this.year,i);

}

total+=this.day;

intweek=1;

week=(week+total)%7;

switch(week)

{

case0:

returnnewString(this.year+"年"+this.month+"月"+this.day+"日星期日");

case1:

returnnewString(this.year+"年"+this.month+"月"+this.day+"日星期一");

case2:

returnnewString(this.year+"年"+this.month+"月"+this.day+"日星期二");

case3:

returnnewString(this.year+"年"+this.month+"月"+this.day+"日星期三");

case4:

returnnewString(this.year+"年"+this.month+"月"+this.day+"日星期四");

case5:

returnnewString(this.year+"年"+this.month+"月"+this.day+"日星期五");

case6:

returnnewString(this.year+"年"+this.month+"月"+this.day+"日星期六");

}

return"error!

";

}

publicbooleanbefore(MyDated)

{

if(d.getYear()>this.year)

{

returnfalse;

}

if(d.getYear()==this.year)

{

if(d.getMonth()>this.month)

returnfalse;

else

{

if(d.getMonth()==this.month)

{

returnd.getDay()<=this.day;

}

}

}

returntrue;

}

publicintdaysBetween(MyDated)

{

inttotal=this.year-d.year+(this.year-d.year+3)/4;

for(inti=this.month-1;i>0;i--)

{

total+=daysofMonth(this.year,i);

}

total+=this.day;

returntotal;

}

(2)3-34设计一个复数类,成员包括实部和虚部,成员方法包括复数加法、减法、比较、转换成字符串等运算或操作。

publicclassComplex

{

privateintreal,imaginary;

publicComplex(Strings)

{

inti,k=1;

chara;

Strings2;

for(i=0;i

{

a=s.charAt(i);

if(a=='+')

{

break;

}

if(a>='0'&&a<='9')

{

s2=String.valueOf(a);

this.real=Integer.parseInt(s2)*k;

k*=10;

}

k=1;

for(;i

{

a=s.charAt(i);

if(a=='i')

{

break;

}

if(a>='0'&&a<='9')

{

s2=String.valueOf(a);

this.imaginary=Integer.parseInt(s2)*k;

k*=10;

}

}

}

}

publicComplex()

{

this.real=0;

this.imaginary=0;

}

publicComplex(intr,inti)

{

this.real=r;

this.imaginary=i;

}

publicComplexplus(Complexn)

{

returnnewComplex(n.real+this.real,n.imaginary+this.imaginary);

}

publicComplexsub(Complexn)

{

returnnewComplex(n.real-this.real,n.imaginary-this.imaginary);

}

publicbooleanCompare(Complexn)

{

if(this.real==n.real&&this.imaginary==n.imaginary)

returntrue;

returnfalse;

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

当前位置:首页 > 工作范文 > 行政公文

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

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