java实验报告.docx
- 文档编号:6131752
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:19
- 大小:25.16KB
java实验报告.docx
《java实验报告.docx》由会员分享,可在线阅读,更多相关《java实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
java实验报告
实验报告口实践报告口
课程名称:
Java语言程序设计
实验、实践名称:
Java语言基础、数组和字符串编程、Java
面向对象程序设计、Java异常处理多线程编程、图形用户界面编程
实验、实践地点:
致向楼301
专业班级:
软件1531学号:
学生姓名:
关玉芬
指导教师:
相洁
2017年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 4x(x>10) 写一程序,给定x值,输出y值。 5.使用for循环语句,编写程序输出以下图案。 ☆ ☆☆☆ ☆☆☆☆☆ ☆☆☆☆☆☆☆ ☆☆☆☆☆ ☆☆☆ ☆ 6.编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换-行。 判断年是否为闰年的条件是: ①若年号可以被4整除,而不能被100整除, 则是闰年;②若年号可以被400整除,也是闰年。 三、主要仪器设备 使用的计算机惠普: 硬件配置Win7、软件环境eclipse 四、实验代码 1.publicclassal{ 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){ 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.import.*; publicclassa5{ publicstaticvoidmain(String[]args){ Scannerx=newScanner;inti=(); ();}} 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程序设计有初步的了解 实验二数组和字符串编程 一、实验目的和要求 (1)通过实验,掌握Java语言中数组、字符串程序设计的基本方法。 (2)较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。 二、实验内容 (1)编写一个程序,在控制台输入10个数,按大小顺序输出。 (2)求一个3*3矩阵对角元素之和。 (3)输入一段字符串,统计其中有多少个单词。 (单词用空格隔开) 三、主要仪器设备 使用的计算机惠普: 硬件配置Win7、软件环境eclipse 四、实验代码 1、packagea1; import publicclassa1{ publicstaticvoidmain(String[]args)throwsIOException{intcount=10,k; doubledata[]=newdouble[count];Scannersr=newScanner; for(k=0;k } (); for(k=0;k Sys double[]dataCopy=newdouble[count+1];doubletemp=0; (data,0,dataCopy,1,; for(k=1;k for(intj=1;jv=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<;j++){ 2、 packagea1; import.*; publicclassa2{ publicstaticvoidmain(String[]args)throwsIOException{doublea[][];intsum=0; a=newdouble[3][3]; Seannersr=newSeanner; for(inti=0;i<3;i++) for(intj=0;j<3;j++){ a[i][j]=(); } (); for(inti=0;i<3;i++){ for(intj=0;j<3;j++){ if(i==j) sum+=a[i][j];}} 3、 packagea1; import.*; publicclassa3{ publicstaticvoidmain(String[]args){ Scannersr=newScanner; Stringword=newString(); word=(); String[]words=(""); intnum=; ();}} 五、实验结果 1. 电|湘比聞4al|Z1Uw申口初丽|吋ij血叶g.ew爭1耳阳下宰? 玄知附 请输只幵数字乂 34S46564534345343435633 休输入的十个数字是; 34-054.01656,045.0343-045.034.0343.056.033.0 从小到大排序后的序列是: 33左34,034.045.045』54.056.0343,0343冷656.0 2. 3. 六、实验心得 通过本次实验掌握数组的声明、分配空间及初始化;理解多维数组(重点掌握二维);掌握String类的特点及常用方法的使用;掌握StringBuffer类的特点及常用方法的使用;掌握String类和StringBuffer类的区别; 掌握equal方法与==的区别;但是本次练习中,我也出现了一些错误,是由于知识上的失误和不小心犯下的低级错误,但是我努力改正。 实验三Java面向对象程序设计 一、实验目的和要求 掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟 练应用方法、类、成员变量等元素。 二、实验内容 1.创建一个复数类complex,以附属进行数学运算、复数具有如下格式: RealPart+lmaginaryRart*l,其中,I为-1的平方根。 要求如下: 1利用浮点变量表示此类的私有数据。 提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。 2提供两复数加、减、乘的运算方法。 3按格式(a,b)打印复数。 其中a为实部,b为虚部。 2.创建银行账号Account类,实现存款(balanee)的存(deposit)、取(withdraw)和查询(getbalanee)等功能。 3.编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths 包中。 4.编程实现以下简单超市管理,具体要求如下: 1实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果; 2定义商品类Goods,具有商品名称Name商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。 3main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作 提示: ①超市货架可以使用商品数组,数组大小100表明存放100个商品。 ②注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数 三、主要仪器设备 使用的计算机惠普: 硬件配置Win7、软件环境eclipse 四、实验代码 1.packagea1; publicclassComplex{ floatRealPart; floatImaginaryRart; publicComplex(){} publicComplex(floatR,floatl){ RealPart=R;ImaginaryRart=I; } publicstaticComplexadd(Complexa,Complexb){Complexc=newComplex(); =+; =+; returnc; } publicComplexminus(Complexa,Complexb){Complexc=newComplex(); ==returnc; } publicComplexmultiply(Complexa,Complexb){Complexc=newComplex(); =*=*+*;; ——门 returnc; } publicvoidprint(){ } publicstaticvoidmain(String[]args){Complexa=newComplex(1f,3f);Complexb=newComplex(3f,4f);Complexc=newComplex();c=add(a,b); (); }} 2.packageshiyan;import.*; classAccount{ privatedoublebalanee; Account(){ balance=5000; } publicvoiddeposit(doublen){ balance=balance+n; } publicvoidwithdraw(doublen){ balance=balance-n; } publicvoidgetbalance(){ } publicstaticvoidmain(String[]args){ Accountc=newAccount(); (); Scannersc=newScanner; doublei=(); (i); (); doublex=(); (x);(); (); } } 3. packagemymaths;publicinterfaceMyinterface{intmax(inta,intb,intc);intmin(inta,intb,intc); } classZzrimplementsMyinterface{ publicintmax(inta,intb,intc){inttemp; if(a temp=b; elsetemp=a; if(temp>c)returntemp;elsereturnc;} publicintmin(inta,intb,intc){ inttemp; if(a temp=a; elsetemp=b;if(temp>c)returnc;elsereturntemp; }} packagemymaths; publicclassinterfaceTest{ publicstaticvoidmain(String[]args){ intx,y; Zzrc=newZzr(); x=(3,5,8); y=(6,8,9); }} 4.packagea1; classBase{ publicstaticGoods[]All=newGoods[2];howMe(); 2. 3. 4. 六、讨论、心得 本次实验让我了解到想用程序解决实际问题时,最好写出三种代码: 伪代 码、产品代码、测试代码,这样才能快速的写出代码,并且实用性强。 希 实验四Java异常处理 一、实验目的和要求 掌握异常的概念,以及如何定义、抛出和捕获处理异常。 二、实验内容 1.做实验之前要求思考以下问题,作为预习内容; 1错误和异常有何区别查看Java异常类的关系图。 2异常是如何抛出、捕获和处理的 3Java捕获和处理异常的结构式怎样的 4Try语句如何嵌套Trow语句有何作用Finally程序快的作用是什么 2•运行下面的程序,理解异常的抛出、捕获与处理。 Import.*; publicclassvoidmain(Stringargs[]){ publicstaicvoidmain(Stringargs[]){ for(inti=0;i<4;i++){ intk; try{ switch(i){ case0: harAt(99); break; } }catch(Exceptione){ } } } } 3.在实验三中的超市、商品类中创建一个自定义异常类。 要求: 在定义商品类时,若销售商品数量大于余额则作为异常处理 (InsufficientFundsException)。 提示: 1产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要 先判断该条件。 2确定产生异常的方法,应该在sale方法中产生异常Insufficient FundsException。 3处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。 4要定义好自己的异常。 四、实验代码 .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); (200); }catch(InsufficientFundsExceptione){ } } } classShop{ intnum; Shop(intnum){ =num; } publicvoiddepositedntdAmount){ num+=dAmount; } publicvoidsale(intdAmount)throws InsufficientFundsException{ if(num thrownewInsufficientFundsException();num=num-dAmount; } } classInsufficientFundsExceptionextendsException{privatestaticfinallongserialVersionUID=1L;InsufficientFundsException(){ super("商品销售数量大于库存额! "); } } 五、实验结果 2. 3. 六、讨论、心得 通过本次实验,熟悉掌握了Java的异常机制,try{}catch(){}finally{} 的执行过程。 通过new—个数组,从而通过数组的下标取出内容,当下标不合法时就会出现数组下标越界异常。 通过catch捕获异常,并对异常作 出处理。 再通过将一个字符串的大写字母转换成小写字母,练习String的 常用方法。 同时了解了字符串的使用。 这仅仅是简单异常的处理,必须更进一步对异常熟悉。 还有对字符串的其他方法进行练习并熟悉掌握。 还需要在课下多多练习,熟悉它们。 实验五多线程编程 一、实验目的和要求 (1)现成的概念、线程的生命周期。 ⑵多线程的编程: 扩展Thread类与使用Runnable接口。 (3)使用多线程机制实现动画 二、实验内容 1.运行下面的程序,理解用创建Thread子类的方法实现多线程。 J classS09_01_ThreadextendsThread{ intpauseTime; Stringname; publicS09_01_Thread(intx,Stringn){ pauseTime=x; name=n; } publicvoidrun(){ while(true){ try{ (pauseTime); } } staticpublicvoidmain(Stringsrgs[]){ S09_01_Threadtp仁newS09_01_Thread(1000,"Fast"); (); S09_01_Threadtp2=newS09_01_Thread(3000,"Slow"); (); } } 2.运行下面的程序,理解用实现Runnable接口的方法实现多线程。 J classS09_02_ThreadimplementsRunnable{ intpauseTime; Stringname; publicS09_02_Thread(intx,Stringn){ pauseTime=x; name=n; } publicvoidrun(){ while(true){ try{ (pauseTime); } } staticpublicvoidmain(Stringsrgs[]){ Threadt1=newThread(newS09_02_Thread(1000,"Fast")); (); Threadt2=newThread(newS09_02_Thread(3000,"Slow")); ();__ } } 3.创建简单的程序,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。 三、主要仪器设备 使用的计算机惠普: 硬件配置Win7、软件环境eclipse 四、实验代码 3.packagemymaths; import publicclassXianchengextendsThread{ publicstatic void main(String[]args){ Xiancheng t1= : newXiancheng(); (); Xiancheng t2= : newXiancheng(); (); Xiancheng t3= : newXiancheng(); (); } publicvoidrun(){ ""
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 报告