java实验报告完结版汇总.docx

上传人:b****6 文档编号:7983990 上传时间:2023-01-27 格式:DOCX 页数:19 大小:276.09KB
下载 相关 举报
java实验报告完结版汇总.docx_第1页
第1页 / 共19页
java实验报告完结版汇总.docx_第2页
第2页 / 共19页
java实验报告完结版汇总.docx_第3页
第3页 / 共19页
java实验报告完结版汇总.docx_第4页
第4页 / 共19页
java实验报告完结版汇总.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

java实验报告完结版汇总.docx

《java实验报告完结版汇总.docx》由会员分享,可在线阅读,更多相关《java实验报告完结版汇总.docx(19页珍藏版)》请在冰豆网上搜索。

java实验报告完结版汇总.docx

java实验报告完结版汇总

 

本科实验报告

 

课程名称:

Java语言程序设计

实验地点:

软件学院209

学院:

软件学院班级:

1426班

姓名:

李鹏学号:

2014006281

指导教师:

相洁

成绩:

 

2016年1月13日

实验1Java语言基础

一、实验目的

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

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

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

二、实验内容

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

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

(1)关键算法

思路:

编写一个判断水仙花数的函数,然后对函数调用,是则返回true,反之返回false

publicstaticbooleanIsShuixianhuashu(intnum,inta[]){

inttemp=num;;

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

a[i]=temp%10;

temp=temp/10;

}

temp=a[2]*a[2]*a[2]+a[1]*a[1]*a[1]+a[0]*a[0]*a[0];

if(temp==num)

returntrue;

else

returnfalse;

}

以下程序为main()函数中的关键程序

for(num=100;num<1000;num++)

if(Is(num,a))

System.out.println(num+"="+a[2]+"^3+"+a[1]+"^3+"+a[0]+"^3");

(2)运行结果

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

(1)关键算法

思路:

编写一个判断素数的函数,然后对函数调用,是素数返回true,反之返回false

publicstaticbooleanIsPrime(intx){

if(x<2)returnfalse;

for(inti=2;i

if(x%i==0)

returnfalse;

returntrue;

}

main()函数里面的主要函数

intoutTime=0;

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

if(IsPrime(i)){//调用判断素数的函数

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

++outTime;

if(outTime%5==0)//五个一行

System.out.println();

}

}

(2)运行结果

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

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

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

(1)关键算法

思路:

1.(i%4==0&&i%100!

=0)||(i%400==0),若满足该条件则为闰年;

2.输出一次,计数器outTime++,如果outTime%5==0则换行。

intoutTime=0;

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

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

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

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

outTime++;

if(outTime%5==0)

System.out.println();

}

}

(2)运行结果

三、实验体会

经过第一个实验以后对java编程语言有了一定认识,java语法大多与C/C++相同,编程思路也基本相同,主要还是在于算法。

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

一、实验目的

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

二、实验内容

1.创建一个复数类Complex,要求如下利用浮点变量表示此类的私有数据。

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

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

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

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

(1)关键代码

复数类Complex:

classComplex{

privatefloatRealPart=0f;

privatefloatImaginaryPart=0f;

//构造方法

publicComplex(){

}

publicComplex(floatreal,floatimaginary){

this.RealPart=real;

this.ImaginaryPart=imaginary;

}

//实现加法

publicComplexComplexAdd(Complexc){

ComplexnewComplex=newComplex();

newComplex.RealPart=this.RealPart+c.RealPart;

newComplex.ImaginaryPart=this.ImaginaryPart+c.ImaginaryPart;

returnnewComplex;

}

//实现减法

publicComplexComplexSub(Complexc){

ComplexnewComplex=newComplex();

newComplex.RealPart=this.RealPart-c.RealPart;

newComplex.ImaginaryPart=this.ImaginaryPart-c.ImaginaryPart;

returnnewComplex;

}

//实现乘法

publicComplexComplexMul(Complexc){

ComplexnewComplex=newComplex();

newComplex.RealPart=(this.RealPart*c.RealPart)

-(this.ImaginaryPart*c.ImaginaryPart);

newComplex.ImaginaryPart=(this.RealPart*c.ImaginaryPart)

+(this.ImaginaryPart*c.RealPart);

returnnewComplex;

}

//按格式打印复数的实部和虚部

publicvoidPrint(){

Stringstr="("+this.RealPart+","+this.ImaginaryPart+")";

System.out.println(str);

}

}

main()函数程序关键程序

//实例化

Complexc1=newComplex(1f,2f);

Complexc2=newComplex(3f,4f);

Complexc3=newComplex();

...

c3=c1.ComplexAdd(c2);//c1+c2

System.out.print("c1+c2=");

c3.Print();

c3=c1.ComplexSub(c2);//c1-c2

System.out.print("c1-c2=");

c3.Print();

c3=c1.ComplexMul(c2);//c1*c2

System.out.print("c1*c2=");

c3.Print();

(2)运行结果

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

(1)关键代码

packagemymaths;

importjava.util.Scanner;

interfaceSeekMM{

abstractpublicintMaxNumber(inta,intb);

abstractpublicintMinNumber(inta,intb);

}

classSeekMaxMinimplementsSeekMM{

publicintMaxNumber(inta,intb){

returna>b?

a:

b;

}

publicintMinNumber(inta,intb){

returna

a:

b;

}

}

Main()中的部分代码:

Scannersr=newScanner(System.in);

System.out.print("输入三个int型数据:

");

...

sr.close();

inttempMax=seek.MaxNumber(seek.MaxNumber(x,y),z);

inttempMin=seek.MinNumber(seek.MinNumber(x,y),z);

(2)运行结果

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

(1)关键代码

菜单显示:

publicstaticvoidshowMeau(){

System.out.println("/********操作菜单********/");

System.out.println("\t1.存款\n\t2.取款\n\t3.查询余额\n\t4.退卡");

}

main()函数的部分程序:

Accountcustomer=newAccount("李鹏","2014006281","123456");//建立一个示例账户

...

if(strName.equals(customer.getid())&&strPass.equals(customer.getpassword())){

System.out.println("登陆成功!

");

while(true){

showMeau();

System.out.print("请输入你的操作序号:

");

choose=sc.nextInt();

switch(choose){

case1:

System.out.print("请输入存款金额:

");

money=sc.nextDouble();

customer.deposit(money);

break;

case2:

System.out.print("请输入取款金额:

");

money=sc.nextDouble();

customer.withdraw(money);

break;

case3:

customer.getbalance();

break;

case4:

sc.close();

System.out.println("退卡成功...");

break;

default:

System.out.println("输入有误!

");

}

if(choose==4)

break;

}

}

else{

System.out.println("密码或账号错误!

");

sc.close();

}

银行账号Account类:

classAccount{

privateStringname;

privateStringid;

privateStringpassword;

privatedoublebalance;

publicAccount(){}

publicAccount(Stringname,Stringid,Stringpassword){

this.name=name;

this.id=id;

this.password=password;

this.balance=0;

}

//(存)deposit;

publicvoiddeposit(doublemoney){

this.balance+=money;

System.out.println("交易成功!

");

}

//(取)withdraw;

publicvoidwithdraw(doublemoney){

if(this.balance

System.out.println("对不起,您的余额不足.");

else{

this.balance-=money;

System.out.println("交易成功!

");

}

}

//(查询)getbalance;

publicvoidgetbalance(){

System.out.println("当前余额为:

"+this.balance+"元");

}

//获取用户名

publicStringgetname(){returnthis.name;}

//获取id

publicStringgetid(){returnthis.id;}

//获取密码

publicStringgetpassword(){returnthis.password;}

}

(2)运行结果

三、实验体会

该部分的实验内容相对简单,与C/C++的整体思路基本没有区别,在语法上面稍有不同。

整体来说这部分的内容相对容易一些。

实验3数组和字符串编程

一、实验目的

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

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

二、实验内容

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

(1)关键算法

思路:

在public类中定义函数,通过调用函数对数组操作

publicfinalstaticintN=10;

//输入函数

publicstaticvoidinput(doublearray[]){

System.out.println("请键入"+array.length+"个数字用(空格隔开):

");

Scannercin=newScanner(System.in);

for(inti=0;i

array[i]=cin.nextDouble();

cin.close();

}

//输出函数

publicstaticvoidoutput(doublearray[]){

for(inti=0;i

System.out.print(array[i]+"");

System.out.println();

}

//冒泡排序函数(<)

publicstaticvoidorder(doublearray[]){

doubletemp;

System.out.println("由小到大排序结果:

");

for(inti=1;i

for(intj=0;j

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

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

}

}

main()中的部分代码:

double[]input_array=newdouble[N];

input(input_array);

order(input_array);

output(input_array);

System.out.println("Main()执行完毕...");

(2)运行结果

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

(单词用空格隔开)

(1)关键算法

思路:

编写计算单词数量的函数:

从字符串中依次取出一个字符,该字符非字母和下一个是字母,则单词数量+1;最后判断第一个字符是字母则不再+1,若第一个是字母,则单词数量+1。

//计算单词数量的函数

publicstaticintTotalWord(Stringstr){

charthischar,nextchar;

intwordnum=0;

for(inti=0;i

thischar=str.charAt(i);

naxtchar=str.charAt(i+1);

if((!

((thischar>='A'&&thischar<='Z')||(thischar>='a'&&thischar<='z')))&&((nextchar>='A'&&nextchar<='Z')||(nextchar>='a'&&nextchar<='z'))){

wordnum++;

}

returnwordnum;

}

main()函数关键程序:

System.out.println("Wordnumber:

"+TotalWord(strEnglish));

(2)运行结果

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

(1)关键算法

finalintN=3;

int[][]array=newint[N][N];

System.out.println("一个随机3*3矩阵:

");

for(inti=0;i

for(intj=0;j

array[i][j]=(int)(1+Math.random()*100);//随机数1~100

System.out.print(array[i][j]+"\t");

if(i==j)//主对角线

sum1+=array[i][j];

elseif((i+j)==(N-1))//次对角线

sum2+=array[i][j];

}

System.out.println();

}

(2)运行结果

三、实验体会

通过对java的数组和字符串的应用,java在数组和字符串的处理功能上很强大,利用这些可以解决很多问题,不必自己再重新编写某些函数。

实验4图形用户界面编程

一、实验目的

掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。

二、实验内容

1.试设计一窗口,内含一个按钮。

开始运行时,按钮显示“ClickMe”字样,当按钮按下时,按钮显示为“ClickMeAgain”字样,再按一次,则按钮显示“ClickMe”字样,依次循环。

(1)关键算法

思路:

利用JButton类中的方法getText()获得按钮的内容字符串,然后利用类String中的方法equals(Stringstr)判断是否和要求字符串相等,如果不相等替换。

classclickDlgextendsJFrame{

JButtonbtn;

JPaneljp;

clickDlg(){

btn=newJButton("ClickMe");

jp=newJPanel();

}

publicvoidload(){

btn.addActionListener(newlsr());

jp.add(btn);

this.add(jp,BorderLayout.CENTER);

this.setTitle("ClickButton");

this.setBounds(100,100,300,80);

this.setVisible(true);

}

classlsrimplementsActionListener{

publicvoidactionPerformed(ActionEvente){

Stringstr=btn.getText();

if(str.equals("ClickMe"))

btn.setText("ClickMeAgain");

else

btn.setText("ClickMe");

}

}

}

(2)运行结果

2.完成图6-1所示的GUI布局管理,不需要实现功能。

(删除)

(1)关键算法

(2)运行结果

三、实验体会

通过对该实验的代码编写之后,学习到了GUI设计,java界面编程的初步知识,明显提升的对该部分内容的兴趣。

在编写代码的过程中,发现图形界面的编程过程并没有想象的容易,因为所有的组件都要靠敲代码来实现,所以要界面的整个美观性相对差一点。

实验5输入与输出

一、实验目的

1.掌握Java两种基本输入/输出流类的使用。

2.掌握Java文件类型的使用。

3.掌握文件的输入、输出方法。

二、实验内容

1.编写程序,利用Java字符流文件输入/输出类,实现将源程序复制到另一个文件中。

(1)关键

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

当前位置:首页 > 解决方案 > 学习计划

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

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