java实验报告完结版_第1页
java实验报告完结版_第2页
java实验报告完结版_第3页
java实验报告完结版_第4页
java实验报告完结版_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科实验报告课程名称:Java语言程序设计实验地点:软件学院209学院:软件学院班级:1426班姓名:李鹏学号:2014006281指导教师:相洁成绩:2016年1月13日

实验1Java语言基础实验目的通过实验,掌握Java语言程序设计的基本方法。学会Java语言中标示符的命名、运算符和表达式的应用。熟练地掌握Java程序流程控制语句的应用。实验内容“水仙花数”是指一个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)运行结果 编写一个程序,求1-100间的素数。(1)关键算法思路:编写一个判断素数的函数,然后对函数调用,是素数返回true,反之返回false publicstaticbooleanIsPrime(intx){ if(x<2)returnfalse; for(inti=2;i<x;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)运行结果 编写程序,输出从公元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面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。实验内容创建一个复数类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)运行结果 编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在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<b?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)运行结果 创建银行账号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){ =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<money) System.out.println("对不起,您的余额不足."); else{ this.balance-=money; System.out.println("交易成功!"); } } //(查询)getbalance; publicvoidgetbalance(){ System.out.println("当前余额为:"+this.balance+"元"); } //获取用户名 publicStringgetname(){return;} //获取id publicStringgetid(){returnthis.id;} //获取密码 publicStringgetpassword(){returnthis.password;} }(2)运行结果实验体会 该部分的实验内容相对简单,与C/C++的整体思路基本没有区别,在语法上面稍有不同。整体来说这部分的内容相对容易一些。

实验3数组和字符串编程实验目的通过实验,掌握Java语言中数组、字符串程序设计的基本方法。较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。实验内容编写一个程序,在控制台输入10个数,按大小顺序输出。关键算法思路:在public类中定义函数,通过调用函数对数组操作 publicfinalstaticintN=10;//输入函数 publicstaticvoidinput(doublearray[]){ System.out.println("请键入"+array.length+"个数字用(空格隔开):"); Scannercin=newScanner(System.in); for(inti=0;i<array.length;i++) array[i]=cin.nextDouble(); cin.close(); } //输出函数 publicstaticvoidoutput(doublearray[]){ for(inti=0;i<array.length;i++) System.out.print(array[i]+""); System.out.println(); } //冒泡排序函数(<) publicstaticvoidorder(doublearray[]){ doubletemp; System.out.println("由小到大排序结果:"); for(inti=1;i<array.length;i++) for(intj=0;j<array.length-i;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()执行完毕...");运行结果输入一段字符串,统计其中有多少个单词。(单词用空格隔开)(1)关键算法思路:编写计算单词数量的函数:从字符串中依次取出一个字符,该字符非字母和下一个是字母,则单词数量+1;最后判断第一个字符是字母则不再+1,若第一个是字母,则单词数量+1。 //计算单词数量的函数 publicstaticintTotalWord(Stringstr){ charthischar,nextchar; intwordnum=0; for(inti=0;i<str.length()-1;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矩阵对角元素之和。(1)关键算法 finalintN=3;int[][]array=newint[N][N]; System.out.println("一个随机3*3矩阵:"); for(inti=0;i<N;i++){ for(intj=0;j<N;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图形用户界面编程实验目的掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。实验内容试设计一窗口,内含一个按钮。开始运行时,按钮显示“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)运行结果完成图6-1所示的GUI布局管理,不需要实现功能。(删除)(1)关键算法(2)运行结果实验体会 通过对该实验的代码编写之后,学习到了GUI设计,java界面编程的初步知识,明显提升的对该部分内容的兴趣。 在编写代码的过程中,发现图形界面的编程过程并没有想象的容易,因为所有的组件都要靠敲代码来实现,所以要界面的整个美观性相对差一点。

实验5输入与输出实验目的掌握Java两种基本输入/输出流类的使用。掌握Java文件类型的使用。掌握文件的输入、输出方法。实验内容编写程序,利用Java字符流文件输入/输出类,实现将源程序复制到另一个文件中。(1)关键算法 packageExperiment7; importjava.io.*; publicclasscopyfile{ publicstaticvoidmain(String[]args)throwsIOException{ Stringfilepath="E:/JavaProjects/Experiment/src/Experiment7/copyfile.java"; if((newFile(filepath).exists())){ BufferedReaderbr=newBufferedReader(newFileReader(filepath)); Stringfilepathwrite="E:/J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论