java语言程序设计实验报告_第1页
java语言程序设计实验报告_第2页
java语言程序设计实验报告_第3页
java语言程序设计实验报告_第4页
java语言程序设计实验报告_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

本科试验汇报课程名称:java语言程序设计试验地点:试验楼专业班级:物联网1301班学号:002056学生姓名:指导教师:试验成绩:年5月24日试验1Java语言基础一.试验目标经过试验,掌握Java语言程序设计基本方法。学会Java语言中标示符命名、运算符和表示式应用。熟练地掌握Java程序流程控制语句应用。二.试验内容编写应用程序,计算100(含100)以内全部偶数和。编写一个程序,求1-100间素数。三、主要仪器设备电脑、eclipse四.试验步骤及结果(1)计算100(含100)以内全部偶数和packagejava1;publicclasstest1{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstubintsum=0; for(inti=0;i<=50;i++){ sum=sum+2*i; } System.out.println("100以内全部偶数和"+sum); }}(2)1-100间素数packagejava1;publicclasstest2{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub System.out.print("2");for(inti=2;i<=100;i++){ for(intj=2;j<i;j++) { if(i%j==0){ break; } if(j==i-1){ System.out.print(i+""); } } } } }五、试验结果与分析(1)计算100(含100)以内全部偶数和(2)1-100间素数六、讨论、心得1.经过试验,学会了愈加好利用学过java语言;2.经过编写程序,愈加深刻了解每种方法基本思想,巩固了学习知识;3.经过试验,填补了自己不足,在学习他人经验下,丰富自己已经有知识,提升编程能力;4.学会修改程序。试验2数组和字符串编程一.试验目标经过试验,掌握Java语言中数组、字符串程序设计基本方法。较熟练地掌握Java程序数组应用、字符串处理操作方法应用。二.试验内容编写一个程序,在控制台输入10个数,按大小次序输出。求一个3*3矩阵对角元素之和。输入一段字符串,统计其中有多少个单词。(单词用空格隔开)三、主要仪器设备电脑、eclipse四.试验步骤及结果(1)按大小输出packagejava1;importjava.util.Arrays;importjava.util.Scanner;publicclassfour{ publicstaticvoidmain(String[]args){ int[]x=newint[10]; System.out.print("请输入十个整数:"); Scannersc=newScanner(System.in); for(inti=0;i<10;i++) { x[i]=sc.nextInt(); } inttemp; intLen=x.length; for(inti=0;i<Len-1;i++) { for(intj=0;j<Len-1-i;j++) { if(x[j]<x[j+1]) { temp=x[j];x[j]=x[j+1];x[j+1]=temp; } } }System.out.print("排序好数为:"); for(inti=0;i<Len;i++) { System.out.print(x[i]+"\t"); } System.out.println(); } }(2)矩阵对角元素之和packagejava1;publicclassfive{ publicstaticvoidmain(String[]args){ int[][]nums={{1,2,3},{4,5,6},{7,8,9}}; intsum=0; for(inti=0;i<3;i++){ for(intj=0;j<3;j++){ if(i==j){ sum+=nums[i][j]; } } } System.out.println("矩阵对角元素之和为:"+sum); }}(3)统计其中有多少个单词packagejava1;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclasssix{ publicstaticvoidmain(String[]args)throwsIOException{ booleancontiGo=true; System.out.println("请输入一句话"); Stringstr; BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in)); str=buf.readLine(); String[]strs=str.split("[,]");//split字符串分割 System.out.println(strs.length+"个单词!"); }}五、试验结果与分析(1)按大小输出(2)矩阵对角元素之和(3)统计其中有多少个单词六、讨论、心得1.经过编写程序过程,愈加深入了解贪心算法思想;2.经过编写程序,填补学习中不足;3.学会一步一步阅读程序,一步一步修改程序,直至程序正确性得到确保。试验3Java面向对象程序设计一.试验目标掌握Java面向对象程序设计中类、继承、包和接口概念与应用,能熟练应用方法、类、组员变量等元素。二.试验内容创建一个复数类complex,以隶属进行数学运算、复数具备以下格式:RealPart+ImaginaryRart*I,其中,I为-1平方根。要求以下:利用浮点变量表示这类私有数据。提供两个结构方法,一个用于这类申明对象初始化;一个为默认无参结构方法。提供两复数加、减、乘运算方法。按格式(a,b)打印复数。其中a为实部,b为虚部。创建银行账号Account类,实现存款(balance)存(deposit)、取(withdraw)和查询(getbalance)等功效。编程实现以下简单超市管理,详细要求以下:实现描述超市类Suppermacket类,具备货架属性,统计系统中现有商品,定义盘点商品函数check(盘点各类商品数量,并输出盘点结果),查询商品函数query,并显示查询结果;定义商品类Goods,具备商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提醒)、Add(商品上架操作)和ShowMe(显示商品信息)。main函数,测试以上所要求各种功效,即能够依照菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架操作提醒:①超市货架能够使用商品数组,数组大小100表明存放100个商品。②注意实现商品查询多态性,要求能够依照商品名称或产地或价格查询商品数量。三、主要仪器设备电脑、eclipse四.试验步骤及结果(1)复数类packagehello;importjava.util.Scanner;publicclasscomplex{ private doublerealPart; private doubleimaginaryPart;publiccomplex(){ this.realPart=0.0; this.imaginaryPart=0.0; }publiccomplex(doublea,doubleb){ this.realPart=a;this.imaginaryPart=b;}publiccomplexadd(complexaComNum){if(aComNum==null){ System.err.println("对象不能够为null!"); returnnewcomplex(); } returnnew complex( this.realPart+aComNum.getRealPart(), this.imaginaryPart+aComNum.getImaginaryPart());}publiccomplexdecrease(complexaComNum){if(aComNum==null){System.err.println("对象不能够为null!");returnnewcomplex();}returnnewcomplex(this.realPart-aComNum.getRealPart(),this.imaginaryPart-aComNum.getImaginaryPart());}publiccomplexmultiply(complexaComNum){if(aComNum==null){System.err.println("对象不能够为null!");returnnewcomplex();}doublenewReal=this.realPart*aComNum.realPart-this.imaginaryPart*aComNum.imaginaryPart;doublenewImaginary=this.realPart*aComNum.imaginaryPart+this.imaginaryPart*aComNum.realPart;complexresult=newcomplex(newReal,newImaginary);returnresult;}publiccomplexdivide(complexaComNum){if(aComNum==null){System.err.println("对象不能够为null!");returnnewcomplex();}if((aComNum.getRealPart()==0)&&(aComNum.getImaginaryPart()==0)){System.err.println("除数不能够为0!");returnnewcomplex();}doubletemp=aComNum.getRealPart()*aComNum.getRealPart()+aComNum.getImaginaryPart()*aComNum.getImaginaryPart();doublecrealpart=(this.realPart*aComNum.getRealPart()+this.imaginaryPart*aComNum.getImaginaryPart())/temp;doublecimaginaryPart=(this.imaginaryPart*aComNum.getRealPart()-this.realPart*aComNum.getImaginaryPart())/temp;returnnewcomplex(crealpart,cimaginaryPart);}publicStringtoString(){returnthis.realPart+"+"+this.imaginaryPart+"i";}publicbooleanequals(Objectobj){if(obj==null){returnfalse;}if(objinstanceofcomplex){complexb=(complex)obj;if((this.realPart==b.getRealPart())&&(this.imaginaryPart==b.getImaginaryPart())){returntrue;}else{returnfalse;}}else{returnfalse;}}publicinthashCode(){returnthis.toString().hashCode();}publicObjectclone(){try{complexnewObject=(complex)super.clone();newObject.setRealPart(this.realPart);newObject.setImaginaryPart(this.imaginaryPart);returnnewObject;}catch(CloneNotSupportedExceptione){e.printStackTrace();returnnull;}}publicdoublegetImaginaryPart(){returnimaginaryPart;}publicvoidsetImaginaryPart(doubleimaginaryPart){this.imaginaryPart=imaginaryPart;}publicdoublegetRealPart(){returnrealPart;}publicvoidsetRealPart(doublerealPart){this.realPart=realPart;}publicstaticvoidmain(String[]args)throwsCloneNotSupportedException{ intx,y,m,n; System.out.println("请输入a实部"); Scannerscan1=newScanner(System.in); x=scan1.nextInt(); System.out.println("请输入a虚部"); Scannerscan2=newScanner(System.in); y=scan2.nextInt(); System.out.println("请输入b实部"); Scannerscan3=newScanner(System.in); m=scan3.nextInt(); System.out.println("请输入b虚部"); Scannerscan4=newScanner(System.in); n=scan4.nextInt();complexa=newcomplex(x,y);complexb=newcomplex(m,n);System.out.println("complexa:"+a.toString());System.out.println("complexb:"+b.toString());System.out.println("(a+b)="+a.add(b).toString());System.out.println("(a-b)="+a.decrease(b).toString());System.out.println("(a*b)="+a.multiply(b).toString());}}(2)银行类packagehello;importjava.util.Scanner;publicclassAccount{ privatelongbalance=0; publicAccount(){ } publicvoiddeposite(intdAmount){ balance=balance+dAmount; System.out.println("存款为"+dAmount); }//存款 publicvoidwithdrawal(intdAmount){ balance=balance-dAmount; if(balance>0){ System.out.println("余额为"+balance); } if(balance<0){ System.out.println("余额不足请重新输入"); System.out.println("请输入要取钱"); } }//取款 publicvoidcheck(){ System.out.println("余额为"+balance); }//查询 publicstaticvoidmain(String[]args){ Accountbank1=newAccount(); intx,y,m; System.out.println("请输入要存钱"); Scannerscan=newScanner(System.in); x=scan.nextInt(); bank1.deposite(x); bank1.check(); System.out.println("请输入要取钱"); Scannerscan1=newScanner(System.in); y=scan1.nextInt(); bank1.withdrawal(y); System.out.println("请输入要取钱"); Scannerscan2=newScanner(System.in); m=scan2.nextInt(); bank1.withdrawal(m); } }(3)超市类packagehello;importjava.util.Scanner;publicclassscholarship{ publicstaticvoidmain(String[]args){ System.out.println("请输入商品种类数"); Scannersc=newScanner(System.in); intx; x=sc.nextInt(); ints[]=newint[x]; System.out.println("请输入商品信息"); for(inti=0;i<x;i++){ Scannersc1=newScanner(System.in); Stringn; n=sc1.nextLine(); String[]aa=n.trim().split(""); Stringname=aa[0]; Stringprice=aa[1]; StringProducer=aa[2]; Stringnumber=aa[3]; Goodss3; suppermackets0; s3=newGoods(); s3.setInfo(name,price,Producer,number); intx1,y; System.out.println("请输入要添加商品数量"); Scannerscan1=newScanner(System.in); x1=scan1.nextInt(); s3.Add(x1); s3.ShowMe(); } } }classGoods{publicStringname;publicintprice;publicStringProducer;publicintnumber; publicvoidsetInfo(Stringname,Stringprice,StringProducer,Stringnumber){ =name; this.number=Integer.parseInt(number); this.Producer=Producer; this.price=Integer.parseInt(price); } publicvoidSale(){ }//销售商品,余额不足时给予提醒 publicvoidAdd(intx){ number=number+x; System.out.println("商品数量为"+number); }//商品上架操作 publicvoidShowMe(){ System.out.println("商品名称为"+name); System.out.println("商品价格为"+price); System.out.println("商品产地为"+Producer); System.out.println("商品数量为"+number); }//显示商品信息 }classsuppermacket{ publicStringname; publicStringProducer; publicintnumber; publicvoidsetInfo1(Stringname,StringProducer,Stringnumber){ =name; this.number=Integer.parseInt(number); this.Producer=Producer; } publicsuppermacket(Stringname,Stringlocation){ } publicvoidcheck(){ System.out.println("商品数量为"+number); }//盘点各类商品数量,并输出盘点结果 publicvoidquery(){ System.out.println("商品数量为"+number); System.out.println("商品位置为"+Producer); }//查询商品函数query,并显示查询结果 }五、试验结果与分析(1)复数类(2)银行类(2)超市类六、讨论、心得1.精度要求写正确;还应学会单步调试,以此来判断哪里语句写错了。2.要注意输出格式最好美观整齐。3.经过试验,填补了自己不足,在学习他人经验下,丰富自己已经有知识,提升编程能力;4.学会修改程序。试验4Java异常处理一.试验目标掌握异常概念,以及怎样定义、抛出和捕捉处理异常。二.试验内容在试验三中超市、商品类中创建一个自定义异常类。要求:在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。提醒:产生异常条件是某类商品销售数量大于库存额,所以是否抛出异常要先判断该条件。确定产生异常方法,应该在sale方法中产生异常InsufficientFundsException。处理异常安排在调用sale时候,所以sale方法要申明异常,由上级方法捕捉并处理。要定义好自己异常。三、主要仪器设备电脑、eclipse四.试验步骤及结果importjava.util.*;publicclasstestgoods{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Suppermacketm=newSuppermacket(); Goodsg1=newGoods("biscuit",5,10,"山西"); Goodsg2=newGoods("bread",6,20,"陕西"); Goodsg3=newGoods("milk",6,15,"河北"); m.e[0]=g1; m.e[1]=g2; m.e[2]=g3; g1.Sale(4); g2.ShowMe(g1); m.Add(3,"chips",8,25,"北京"); System.out.println("请输入要删除商品名字:"); Scannersc=newScanner(System.in); Stringstr=sc.nextLine(); m.Delete(str); m.check(); m.query(0); }}classSuppermacket{ Goods[]e=newGoods[4]; intn=e.length; publicvoidAdd(inti,StringName,doublePrice,intNumber,StringProducer){ Goodsgd=newGoods(Name,Price,Number,Producer); System.out.println("添加成功!"); e[i]=gd; System.out.println("商品名字:"+e[i].Name+"商品价格:"+e[i].Price+"商品数量:"+e[i].Number+"商品生产地:"+e[i].Producer); } publicvoidDelete(Stringstring){ for(inti=0;i<n;i++){ if(e[i].Name.equals(string)==true){ for(intj=0;j<n-1;j++){ e[j]=e[j+1]; } n--; } } System.out.println("删除成功!"); } publicvoidcheck(){ System.out.println("商品数量:"+n); } publicvoidquery(inti){ System.out.println("商品名字:"+e[i].Name+"商品价格:"+e[i].Price+"商品数量:"+e[i].Number+"商品生产地:"+e[i].Producer); }}classGoods{ publicStringName; publicdoublePrice; publicintNumber; publicStringProducer; publicGoods(){ Name=null; Price=0; Number=0; Producer=null; } publicGoods(StringName,doublePrice,intNumber,StringProducer){ this.Name=Name; this.Price=Price; this.Number=Number; this.Producer=Producer; } publicStringgetname(){ returnName; } publicvoidSale(doublePrice){ if(Price<this.Price){ System.out.println("余额不足!"); InsufficientFundsExceptionproblem=newInsufficientFundsException(); try{ System.out.print("请输入销售数量:"); Scannersc=newScanner(System.in); Stringstr=sc.nextLine(); intn=Integer.parseInt(str); if(n>this.Number){ throwproblem; } }catch(InsufficientFundsExceptione){ System.out.println(e.toString()); } } } publicvoidShowMe(Goodse){ System.out.println("商品名字:"+e.Name+"商品价格:"+e.Price+"商品数量:"+e.Number+"商品生产地:"+e.Producer); }} classInsufficientFundsExceptionextendsException{ InsufficientFundsException(){ super("库存不足!"); }}五、试验结果与分析六、讨论、心得1.精度要求写正确;还应学会单步调试,以此来判断哪里语句写错了2.在编程时,要注意程序语句规范问题,并适当添加注解以增强程序可读性。3.写算法时要头脑清醒,有耐心。试验5多线程编程一.试验目标(1)现成概念、线程生命周期。(2)多线程编程:扩展Thread类与使用Runnable接口。(3)使用多线程机制实现动画二.试验内容创建简单程序ThreeThread.java,该程序将创建三个线程,每个线程应该显示它所运行时间(能够考虑使用Date类或Calendar类)。三、主要仪器设备电脑、eclipse四.试验步骤及结果packagehello;importjava.util.Date;publicclassThreeThreadextendsThread{ publicvoidrun(){ System.out.println("当前运行线程"+this.getName()+""+newDate(System.currentTimeMillis())); } publicstaticvoidmain(String[]args){ ThreeThreadt1=newThreeThread(); t1.start(); ThreeThreadt2=newThreeThread(); t2.start(); ThreeThreadt3=newThreeThread(); t3.start(); }}五、试验结果与分析六、讨论、心得1.首先要明确要计算值及中间过程中可能会用到辅助值,申明恰当类型。2.另外,要模仿计算机运行程序步骤,逐句判断程序语句是否正确。试验6图形用户界面编程一.试验目标1.掌握文本组件、按钮和单、复选按钮组件使用;2.掌握列表使用,鼠标、键盘事件处理;3.掌握布局控制方法。二.试验内容(1)编写一个Applet程序响应鼠标事件,当鼠标事件发生时,在状态条显示对应时间信息。提醒:使用showStatus(字符串)方法。(2)试设计一窗口,内含一个按钮。开始运行时,按钮显示“ClickMe”字样,当按钮按下时,按钮显示为“ClickMeAgain”字样,再按一次,则按钮显示“ClickMe”字样,依次循环。三、主要仪器设备电脑、eclipse四.试验步骤及结果(1)响应鼠标事件packagehello;importjava.awt.BorderLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.Date;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassMouseEventDemo{ publicstaticvoidmain(String[]args){ JFramefrm=newJFrame("响应鼠标事件"); frm.setLayout(newBorderLayout()); JButtonbtn=newJButton("请单击按钮"); frm.getContentPane().add(btn); ButtonHandlerbtnHandler=newButtonHandler(); btn.addActionListener(btnHandler); frm.setBounds(400,200,400,200); frm.setVisible(true); } }classButtonHandlerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ System.out.println("发生了单击事件"); System.out.println("当前时间为"+newDate(System.currentTimeMillis())); }}(2)单击事件packagehello;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassClickMe{ JButtonbtn; publicstaticvoidmain(String[]args){ JFramefrm=newJFrame(); frm.setLayout(null); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButtonbtn=newJButton("ClickMe"); btn.setBounds(45,65,200,30); frm.getContentPane().add(btn); ButtonHandlebtnHandler=newButtonHandle(btn); btn.addActionListener(btnHandler); frm.setBounds(400,200,400,200); frm.setVisible(true); } }classButtonHandleimplementsActionListener{ JButtonbtn; publicButtonHandle(JButtonbtn){ this.btn=btn; } publicvoidactionPerformed(ActionEvente){ if(btn.getText().equals("ClickMe")){ btn.setText("ClickMeAgain"); }else btn.setText("ClickMe"); } }五、试验结果与分析(1)响应鼠标事件(2)单击事件六、讨论、心得1.精度要求写正确;还应学会单步调试,以此来判断哪里语句写错了2.学会利用已学过知识调试程序。试验7输入与输出一.试验目标(1)掌握Java两种基本输入/输出流类使用。(2)掌握Java文件类型使用。(3)掌握文件输入、输出方法。二.试验内容编写一个程序,求2~200之间素数,并将结果保留在文件prime.dat中。再从该文件中读取内容并在屏幕上显示出来。三、主要仪器设备电脑、eclipse四.试验步骤及结果packagehello;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;publicclassprime{voidgetprime(intm,intn,inta[]){System.out.print("2"); for(inti=2;i<=200;i++){ for(intj=2;j<i;j++) { if(i%j==0){ break; } if(j==i-1){ System.out.print(i+""); } } } } publicstaticvoidmain(String[]args){ Fileprimefile=newFile("prime1.dat"); primep=newprime(); inta[]=newint[50]; inti=0,c;p.getprime(2,200,a); try {FileOutputStreamout=newFileOutputStream(primefile);FileInputStreamin=newFileInputStream(primefile); while(a[i]!=0){ out.write(a[i]); i++; } while((c=in.read())!=-1){ System.out.println(c); } in

温馨提示

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

评论

0/150

提交评论