版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试验汇报□实践汇报□课程名称:Java语言程序设计试验、实践名称:Java语言基础、数组和字符串编程、Java面向对象程序设计、Java异常处理多线程编程、图形顾客界面编程试验、实践地点:致向楼301专业班级:软件1531学号:学生姓名:关玉芬指导教师:相洁年1月8日试验一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.编写程序,输出从公元19到21所有闰年的年号,每输出5个年号换一行。判断年与否为闰年的条件是:①若年号可以被4整除,而不能被100整除,则是闰年;②若年号可以被400整除,也是闰年。三、重要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、试验代码1.publicclassa1{publicstaticvoidmain(String[]args){ inti,sum=0; for(i=0;i<=100;i++){ if(i%2==0) sum+=i;} Syst }}2.publicclassa2{ publicstaticvoidmain(String[]args){ inti,a,b,c; for(i=100;i<=999;i++){ a=i%10; b=(i-a)%100/10; c=(i-b*10-a)/100; if(i==a*a*a+b*b*b+c*c*c){ }}}}3.publicclassa3{publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub for(inti=2;i<=100;i++){ booleant=false; for(intj=2;j<i;j++){ if(i%j==0){t=false;break;} else{t=true;}}4.publicclassa4{publicstaticvoidmain(String[]args){ inti,j; for(i=1;i<=4;i++){ for(j=1;j<=((-1)*i+4);j++) for(j=1;j<=(2*i-1);j++)☆"); for(i=3;i>=1;i--){ for(j=1;j<=((-1)*i+4);j++) for(j=1;j<=(2*i-1);j++)☆");5.importjava.util.*;publicclassa5{publicstaticvoidmain(String[]args){ Scannerx=newScanner(System.in); inti=x.nextInt(); x.close();}}6.packageshiyan;publicclassa6{publicstaticvoidmain(String[]args){ inti,j=0; for(i=1900;i<=2100;i++){ if((i%4==0)&&(i%100!=0)||(i%400==0)){ j++; if(j%5==0) else{五、试验成果1.2.3.4.5.6.六、讨论、心得初步掌握了Eclipse集成开发环境。?掌握Java?基本数据类型、运算符与体现式、数组的使用措施,语法构造,掌握次序构造、选择构造和循环构造语法的程序设计措施。、对JAVA程序设计有初步的理解试验二数组和字符串编程一、试验目的和规定通过试验,掌握Java语言中数组、字符串程序设计的基本措施。较纯熟地掌握Java程序数组的应用、字符串处理操作的措施应用。试验内容(1)编写一种程序,在控制台输入10个数,按大小次序输出。(2)求一种3*3矩阵对角元素之和。(3)输入一段字符串,记录其中有多少个单词。(单词用空格隔开)三、重要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、试验代码1、packagea1;importjava.io.*;publicclassa1{ publicstaticvoidmain(String[]args)throwsIOException{ intcount=10,k; doubledata[]=newdouble[count]; Scannersr=newScanner(System.in); for(k=0;k<count;k++){ data[k]=sr.nextDouble(); } sr.close(); for(k=0;k<count;k++) Sys double[]dataCopy=newdouble[count+1]; doubletemp=0; System.arraycopy(data,0,dataCopy,1,data.length); for(k=1;k<count;k++) for(intj=1;j<=count-k;j++){ if(dataCopy[j]>dataCopy[j+1]){ temp=dataCopy[j]; dataCopy[j]=dataCopy[j+1]; dataCopy[j+1]=temp; } } for(intj=1;j<dataCopy.length;j++){ 2、packagea1;importjava.io.*;publicclassa2{ publicstaticvoidmain(String[]args)throwsIOException{ doublea[][];intsum=0; a=newdouble[3][3]; Scannersr=newScanner(System.in); for(inti=0;i<3;i++) for(intj=0;j<3;j++){a[i][j]=sr.nextDouble(); } sr.close();for(inti=0;i<3;i++){ for(intj=0;j<3;j++){ if(i==j) sum+=a[i][j];}}3、packagea1;importjava.util.*;publicclassa3{ publicstaticvoidmain(String[]args){ Scannersr=newScanner(System.in); Stringword=newString(); word=sr.nextLine();String[]words=word.split("");intnum=words.length;sr.close();}}五、试验成果1..2.3.六、试验心得通过本次试验掌握数组的申明、分派空间及初始化;理解多维数组(重点掌?握二维)?;掌握?String?类的特点及常用措施的使用;掌握?StringBuffer?类的特?点及常用措施的使用;掌握?String?类和?StringBuffer?类的区别;掌握?equal?措施与==的区别;不过本次练习中,我也出现了某些错误,是由于知识上的失误?和不小心犯下的低级错误,不过我努力改正。试验三Java面向对象程序设计一、试验目的和规定掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能纯熟应用措施、类、组员变量等元素。二、试验内容1.创立一种复数类complex,以附属进行数学运算、复数具有如下格式:RealPart+ImaginaryRart*I,其中,I为-1的平方根。规定如下:①运用浮点变量表达此类的私有数据。提供两个构造措施,一种用于此类申明的对象的初始化;一种为默认的无参构造措施。②提供两复数加、减、乘的运算措施。③按格式(a,b)打印复数。其中a为实部,b为虚部。2.创立银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。3.编程定义一种接口,实现三个数中求最小值和最大值的措施,并将程序寄存在mymaths包中。4.编程实现如下简朴超市管理,详细规定如下:①实现描述超市的类Suppermacket类,具有货架属性,记录系统中既有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点成果),查询商品的函数query,并显示查询成果;②定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额局限性时予以提醒)、Add(商品上架操作)和ShowMe(显示商品信息)。③main函数,测试以上所规定的多种功能,即可以根据菜单命令增长、删除、查询商品、盘点商品,以及商品销售和商品上架的操作提醒:①超市货架可以使用商品数组,数组大小100表明寄存100个商品。②注意实现商品查询的多态性,规定可以根据商品的名称或产地或价格查询商品的数量。三、重要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、试验代码1.packagea1;publicclassComplex{ floatRealPart; floatImaginaryRart; publicComplex(){} publicComplex(floatR,floatI){ RealPart=R; ImaginaryRart=I; } publicstaticComplexadd(Complexa,Complexb){ Complexc=newComplex(); c.RealPart=a.RealPart+b.RealPart; c.ImaginaryRart=a.ImaginaryRart+b.ImaginaryRart; returnc; } publicComplexminus(Complexa,Complexb){ Complexc=newComplex(); c.RealPart=a.RealPart-b.RealPart; c.ImaginaryRart=a.ImaginaryRart-b.ImaginaryRart; returnc; } publicComplexmultiply(Complexa,Complexb){ Complexc=newComplex(); c.RealPart=a.RealPart*b.RealPart-a.ImaginaryRart*b.ImaginaryRart; c.ImaginaryRart=a.RealPart*b.ImaginaryRart+a.ImaginaryRart*b.RealPart;; returnc; } publicvoidprint(){ } publicstaticvoidmain(String[]args){ Complexa=newComplex(1f,3f); Complexb=newComplex(3f,4f); Complexc=newComplex(); c=add(a,b); c.print(); }}2.packageshiyan;importjava.util.*;classAccount{ privatedoublebalance; Account(){ balance=5000; } publicvoiddeposit(doublen){ balance=balance+n; } publicvoidwithdraw(doublen){ balance=balance-n; } publicvoidgetbalance(){ }publicstaticvoidmain(String[]args){ Accountc=newAccount(); c.getbalance(); Scannersc=newScanner(System.in); doublei=sc.nextDouble(); c.deposit(i); c.getbalance();doublex=sc.nextDouble();c.withdraw(x);c.getbalance();sc.close();}}3.packagemymaths;publicinterfaceMyinterface{ intmax(inta,intb,intc); intmin(inta,intb,intc);}classZzrimplementsMyinterface{ publicintmax(inta,intb,intc){inttemp; if(a<b) temp=b; elsetemp=a; if(temp>c)returntemp; elsereturnc;} publicintmin(inta,intb,intc){ inttemp; if(a<b) temp=a; elsetemp=b; if(temp>c)returnc; elsereturntemp; }}packagemymaths;publicclassinterfaceTest{ publicstaticvoidmain(String[]args){ intx,y; Zzrc=newZzr(); x=c.min(3,5,8); y=c.max(6,8,9); }}4.packagea1;classBase{ publicstaticGoods[]All=newGoods[2];//? publicStringname; publicdoubleprice; publicStringproducer; publicintid,num; publicvoidshowMe(){ } publicvoidshowNum(){classGoodsextendsBase{ publicvoidsale(intn,doublepay)throwsExc{ if(n>this.num){ thrownewExc(); } doublemoney=pay-n*price; if(money<0){ } else{ this.num-=n;}}publicvoidadd(Stringname,intid,doubleprice,Stringproducer,intnum){ =name; this.price=price; ducer=producer; this.id=id; this.num+=num; this.showMe(); All[id]=this;}}publicclassSupermarketextendsBase{publicvoidquery(intid){ All[id].showMe();//why? }publicvoidquery(Stringname){ for(Goodsg:All){ if(==name){ g.showMe();}}}publicvoidcheak(){ for(Goodsg:All){ g.showNum();}}publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Goodssofa=newGoods(); sofa.add("sofa",0,1000,"太原",20); Goodsphone=newGoods(); phone.add("phone",1,16,"太原理工",30); try{ sofa.sale(100,3000); } catch(Exce){ } Supermarkets=newSupermarket(); s.cheak(); s.query(1); s.query(0); sofa.add("sofa",0,1000,"太原",1); s.query("phone");}}classExcextendsException{ Exc(){ super("商品库存局限性!");}}五、试验成果.六、讨论、心得本次试验让我理解到想用程序处理实际问题时,最佳写出三种代码:伪代码、产品代码、测试代码,这样才能迅速的写出代码,并且实用性强。但愿后来能通过试验理解更多运用java处理实际问题的措施,学好Java。试验四Java异常处理试验目的和规定掌握异常的概念,以及怎样定义、抛出和捕捉处理异常。试验内容1.做试验之前规定思索如下问题,作为预习内容;①错误和异常有何区别?查看Java异常类的关系图。②异常是怎样抛出、捕捉和处理的?③Java捕捉和处理异常的构造式怎样的?④Try语句怎样嵌套?Trow语句有何作用?Finally程序快的作用是什么?2.运行下面的程序,理解异常的抛出、捕捉与处理。Importjava.io.*;publicclassvoidmain(Stringargs[]){publicstaicvoidmain(Stringargs[]){for(inti=0;i<4;i++){intk;try{switch(i){case0://dividedbyzerointzero=0;k=911//zerobreak;case1://nullpointerintb[]=null;k=b[0];break;case2;//arrayindexoutofboundintc[]=newint[2];k=c[9];break;case3://stringindexoutofboundcharch="abc".charAt(99);break;}}catch(Exceptione){}}}}3.在试验三中的超市、商品类中创立一种自定义异常类。规定:在定义商品类时,若销售商品数量不小于余额则作为异常处理(InsufficientFundsException)。提醒:①产生异常条件是某类商品销售数量不小于库存额,因此与否抛出异常要先判断该条件。②确定产生异常的措施,应当在sale措施中产生异常InsufficientFundsException。③处理异常安排在调用sale的时候,因此sale措施要申明异常,由上级措施捕捉并处理。④要定义好自己的异常。重要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、试验代码.1.(1)错误与异常的区别:错误:指在程序编译时假如程序进入死循环,或递归无法结束,或内存溢出。错误只能在编程阶段处理,只能依托其他程序干预,否则会一直处在非正常状态。异常:指运算时除数为0,或操作数超过范围,或打开一种文献时发现文献并不存在,或欲装入的类文献丢失,或网络连接中断等。(2)java提供了一种运用简朴易行的措施检查和处理运行时产生的错误的异常处理机制,它是通过面向对象的措施来处理异常的。在java程序的执行过程中,假如出现了异常事件,就会生成一种异常对象。生成的异常对象将传递给java运行时系统,这一异常的产生和提交过程成为抛弃异常。当java运行时系统得到一种异常对象时,它将会沿着措施的调用栈逐层回溯,寻找处理这一异常的代码。找到可以处理此类异常的措施后,运行时系统把目前异常对象交给这个措施进行处理,这一过程称为捕捉异常。(3)根据程序对错误与异常的处理方式,可以将java中的异常分为Error类,RuntimeException类和Exception类。其中Error类包括的是某些严重的程序不能处理的系统错误类,如内存溢出,虚拟机错误,栈溢出等。此类错误一般重要与硬件有关,与程序自身无关,一般由系统进行处理,程序自身无需去捕捉和处理。程序运行过程中,也许出现RuntimeException类的异常数量相称大,对于运行时的异常类,如数组越界,算术异常等,应通过程序尽量防止而不是去捕捉它。(4)为了防止程序运行时也许出现的错误,将程序代码放在try程序块中,紧跟在try语句背面包括一种catch语句,用来指定需要捕捉的异常类型。在程序中发生异常时,程序员可以抛出(throw)一种自定义异常类的实例,将其放到异常队列中去,并激活java的异常处理机制。当抛出一种异常时,程序的执行就不再是线性的,这样就有也许导致措施的执行中断。在java语言中,使用finally语句来处理此类问题。Finally语句创立一种代码块,在try/catch语句执行后执行,不管与否抛出一种异常,系统都将执行finally语句的程序代码。3.packageshiyan;publicclassa1{ publicstaticvoidmain(Stringargs[]){ try{ Shopsh=newShop(100); sh.sale(200); }catch(InsufficientFundsExceptione){ } }}classShop{ intnum; Shop(intnum){ this.num=num; } publicvoiddeposite(intdAmount){ num+=dAmount; } publicvoidsale(intdAmount)throwsInsufficientFundsException{ if(num<dAmount) thrownewInsufficientFundsException(); num=num-dAmount; }}classInsufficientFundsExceptionextendsException{ privatestaticfinallongserialVersionUID=1L; InsufficientFundsException(){ super("商品销售数量不小于库存额!"); }}五、试验成果2.3.六、讨论、心得通过本次试验,熟悉掌握了Java的异常机制,try{}catch(){}finally{}的执行过程。通过new一种数组,从而通过数组的下标取出内容,当下标不合法时就会出现数组下标越界异常。通过catch捕捉异常,并对异常作出处理。再通过将一种字符串的大写字母转换成小写字母,练习String的常用措施。同步理解了字符串的使用。?
这仅仅是简朴异常的处理,必须更深入对异常熟悉。尚有对字符串的其他措施进行练习并熟悉掌握。还需要在课下多多练习,熟悉它们。试验五多线程编程一、试验目的和规定(1)现成的概念、线程的生命周期。(2)多线程的编程:扩展Thread类与使用Runnable接口。(3)使用多线程机制实现动画二、试验内容1.运行下面的程序,理解用创立Thread子类的措施实现多线程。//S09_01_Thread.JavaImportjava.util.*;classS09_01_ThreadextendsThread{intpauseTime;Stringname;publicS09_01_Thread(intx,Stringn){pauseTime=x;name=n;}publicvoidrun(){while(true){try{Tread.sleep(pauseTime);}}staticpublicvoidmain(Stringsrgs[]){S09_01_Threadtp1=newS09_01_Thread(1000,"Fast");tp1.start();S09_01_Threadtp2=newS09_01_Thread(3000,"Slow");tp2.start();}}2.运行下面的程序,理解用实现Runnable接口的措施实现多线程。//S09_02_Thread.JavaImportjava.util.*;classS09_02_ThreadimplementsRunnable{intpauseTime;Stringname;publicS09_02_Thread(intx,Stringn){pauseTime=x;name=n;}publicvoidrun(){while(true){try{Tread.sleep(pauseTime);}}staticpublicvoidmain(Stringsrgs[]){Threadt1=newThread(newS09_02_Thread(1000,"Fast"));t1.start();Threadt2=newThread(newS09_02_Thread(3000,"Slow"));t2.start();}}3.创立简朴的程序ThreeThread.java,该程序将创立三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。三、重要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse试验代码3.packagemymaths;importpublicclassXianchengextendsThread{ publicstaticvoidmain(String[]args){ Xianchengt1=newXiancheng(); t1.start(); Xianchengt2=newXiancheng(); t2.start(); Xianchengt3=newXiancheng(); t3.start(); } publicvoidrun(){ System.out.println(""+this.getName()+""+newDate(System.currentTimeMillis())); }}试验成果1.2.3.六、讨论、心得线程是提高cpu运行效率的措施,内容很重要,需要认真学习和理解。试验六图形顾客界面编程一、试验目的和规定掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的措施。二、试验内容1.编写一种程序响应鼠标事件,当鼠标事件发生时,在状态条显示对应的时间信息。提醒:使用showStatus(字符串)措施。2.试设计一窗口,内含一种按钮。开始运行时,按钮显示“ClickMe”字样,当按钮按下时,按钮显示为“ClickMeAgain”字样,再按一次,则按钮显示“ClickMe”字样,依次循环。三、重要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse试验代码1.packagemymaths;importjavax.swing.*;importjava.util.*;publicclassClick{ publicstaticvoidmain(String[]args){ JFramefrm=newJFrame(); frm.setLayout(null); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButtonbtn=newJButton(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年铝及铝合金材项目申请报告模范
- 食堂承包合同的市场调研报告
- 2024年巢湖小型客运从业资格证考试
- 2024年上海客运资格证理论考试模拟题及答案
- 城市建设项目经理的年度总结
- 2024年咸阳道路旅客运输从业资格考试
- 2024年客运从业资格证要求
- 2024年太原客运资格证考试试题模拟软件
- 二手办公家具买卖
- 制造业工具领用及维护制度
- 2023-2024学年天津市经开区国际学校八年级(上)期末物理试卷
- DB23T 3842-2024 一般化工企业安全生产标准化评定规范
- 期中模拟押题卷(1-3单元)(试题)-2024-2025学年苏教版数学六年级上册
- 环氧树脂项目可行性研究报告项目报告
- 公共政策分析第一章
- 2024-2025学年人教版数学三年级上册 第三单元 测量 单元测试卷(含答案)
- 2024新信息科技三年级第四单元:创作数字作品大单元整体教学设计
- 第一单元达标练习(单元练习)-2024-2025学年语文一年级上册(统编版)
- 2024年四川省南充市从“五方面人员”中选拔乡镇领导班子成员201人历年高频500题难、易错点模拟试题附带答案详解
- 2024年水电暖安装合同模板
- 2024年母婴护理考试竞赛试题
评论
0/150
提交评论