面向对象程序设计(Java).doc
《面向对象程序设计(Java).doc》由会员分享,可在线阅读,更多相关《面向对象程序设计(Java).doc(31页珍藏版)》请在沃文网上搜索。
1、学生实验报告课程名称:面向对象程序设计(Java)年 级: 2012 专 业:信息管理与信息系统 目 录实验一 熟悉Java程序的编辑、编译和运行过程(验证型)实验二 Java语言程序设计基础训练(一)(验证型)实验三 Java语言程序设计基础训练(二)(设计型)实验四 类的封装性和继承性设计(一)(设计型)实验五 类的封装性和继承性设计(二)(验证型)实验六 类的封装性和继承性设计(三)(设计型)实验七 接口、内部类和包(设计型)实验八 异常的抛出、捕获和处理(设计型)实验九 图形用户界面编程(验证型)实验十一 多线程程序(验证型)实验1 熟悉Java程序的编辑、编译和运行过程(验证型)o
2、实验目的熟悉JDK环境;理解Java Application应用程序的运行原理和方法;掌握编辑、编译并运行程序的操作。o 实验要求:用JDK+记事本编辑、编译并运行程序;下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本次实验的实验报告o 实验内容:1、查看JDK安装目录,说明其目录结构(参照Java程序设计实用教程(第4版)表1-1);说明如何设置path环境变量。2、编辑、编译并运行一个简单的Java程序,写出程序运行结果。3、成功编译并运行上述程序后将public static void main(String args) 分别改为public static void
3、 main()或者public static main(String args),并尝试重新编译或运行程序,结果怎样?为什么?4、注意,程序中的String 和 System是两个类名,按照java编码约定类名的首字母应改用大写字母。若误写为string或system,编译后出现的错误提示是什么?o 结果分析(可围绕以下问题进行结果分析):1、 编译器javac.exe和解释器java.exe在JDK的哪个目录下?该目录还包含了哪些工具?(可以通过javadoc帮助文档查看这些工具的作用和用法)答:在bin文件夹里面,还包含了jdb.exe、jar.exe和javadoc.exe等等工具。2、
4、 设置path环境变量的目的是什么?如果没有正确设置环境变量,编译程序会输出什么提示信息?答:目的是为了能够通过命令行运行javac和java命令成为可能;会提示:“javac”不是内部命令或外部命令,也不是可运行的程序或批处理文件。3、 参考Java程序设计实用教程(第4版)图1.2描述本练习的Applicatin应用程序的运行流程。答:先是程序源通过编译器编译成字节码文件,在通过解释器在Windows操作系统运行。4、 程序中System.out.print()方法和System.out.println()方法的区别是什么?答:System.out.print()是输出不换行,System
5、.out.println()是输出并换行。5、 你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:安装过程中出现错误,解决办法:重新按操作安装。实验(二) Java语言程序设计基础训练(一)(验证型) 实验时间:2012212411实验目的掌握基本数据类型的使用方法,了解常见的编译错误提示信息及产生原因。实验内容(1)下列程序中-会引起编译错误,根据编译出错提示信息对其予以改正,然后写出程序运行的结果。public class ShiYan2-1 / public static void main(String args) short a1=3333; /System.o
6、ut.println( a1= +a1);float a2=1e2; /System.out.println( a2= +a2);char a3=u0063;System.out.println( a3= +a3);char a4=”c”; /System.out.println( a4= +a4);char a5,a6; a5=97; a6=98; System.out.println( a5= +a5+ +a6= +a6);char a7=a; a7=a7-32; /System.out.println( a7= +a7);System.out.println(-7.2/7=+(-7.2/
7、7); System.out.println(-8/7=+(-8/7);int x=20;int y=20;System.out.println(x%=(y+3)=+(x%=(y+3);long a8=130L; byte a9=(byte)a8; System.out.println(a9= +a9);(2)下列程序中-会引起编译错误,根据编译出错提示信息对相关语句予以改正,然后写出程序运行的结果。public class ShiYan2_2 public static void main(String args) byte a1=1;byte a2=10;byte a3=a1+a2; /
8、System.out.println(a3= +a3);float a4=(short)10/10.2*2; /System.out.println(a4= +a4);int a5=6;double a6=7.7;System.out.println(a5a6)?99.9:9=+(a5a6)?99.9:9); int a7; / System.out.println(a7 = +a7);System.out.println(5.0=5L?+(5.0=5L);int a8=2; System.out.println(a8+4);System.out.println( +a8+4+5);Syste
9、m.out.println( +a8+(4+5);int a9=2;int a10=3;if(a10=a9+)|(a9+a10) System.out.println(a9=+a9+” a10=”+a10);int a11=3;int a12=3;if(a12=a11+)|(a11+a12) System.out.println(a111=+a11+” a12=”+a12); 实验结果分析1、 针对本试验中的(1)(2)两题,说明赋值运算和混合运算中的类型转换规则。答:赋值运算所赋的值必须与所给类型的类型相同,混合运算中会出现自动类型转换,如果转换运算后结果类型与所给类型相同,就不用正确,否则
10、要进行强制类型转换。2、你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:有时候找不出错误,解决办法:通过看书加强java基础知识。指导教师批阅:实验3 Java语言程序设计基础训练(二)(设计型)o 实验目的熟练运用分支、循环等语句控制程序流程;掌握数组和字符串类型的使用方法;了解常见的编译错误提示信息及产生原因,学会调试有语法错误和逻辑错误的程序。o 实验要求:下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本次实验的实验报告。o 实验内容:(1)求解约瑟夫环问题(见Java程序设计实用教程(第4版)p59)约瑟夫环问题:古代某法官要判决N个犯人的
11、死刑,他有一条荒唐的法律,让犯人站成一个圆圈,从第S个人开始数起,每数到第D个犯人,就拉出来处决,然后再数D个,数到的人再处决直到剩下的最后一个可赦免。使用数组存储每个人的编号,数组下标按环形方式递增。对于N、S、D的任意一组值,显示出环者次序,求出正确的解。编码时应遵守Java编码约定(详见附录6)。解题思路:方法一:可以用数组来存放N个数,相当于N个数排成的圈;用整型变量指向当前数到的数组元素,相当于人的手指;划掉一个数的操作,就用将一个数组元素置0的方法来实现。人工数的时候,要跳过已经被划掉的数,那么程序执行的时候,就要跳过为0的数组元素。注意,当指向当前数到的数组元素的整型变量指向数组
12、中最后一个元素(下标为N-1)时,再数下一个,则该整型变量要指回到数组的第一个元素(下标为0),这样才像一个圈。方法二:采用单链表完成此题。Java API提供了丰富的集合类型,封装了各种数据结构(链表、散列、树、图等),链表的建立和相关操作可使用java.util包中提供的相关集合类(如:LinkedList类)。程序的参考框架如下所示:import java.io.*;public class ShiYan3_1static void josephus(int n,int s,int d)/*编码,使得对于接收的n、s、d值,能显示出环者次序,求出正确的解.算法思路参看上述解题思路*/ p
13、ublic static void main(String args) throws IOExceptionSystem.out.println(请输入N: );BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); String str1 = br1.readLine(); /以字符串方式读入System.out.println(请输入S: ); String str2 = br1.readLine(); /以字符串方式读入System.out.println(请输入D: ); String str3
14、 = br1.readLine(); /以字符串方式读入 int n=Integer.parseInt(str1); /将读入的字符串转换为一个整数 int s=Integer.parseInt(str2); /将读入的字符串转换为一个整数 int d=Integer.parseInt(str3); /将读入的字符串转换为一个整数 ShiYan3_1.josephus(n,s,d); /调用静态方法,求解/以下代码的作用:在Freejava中运行程序时使输出结果能停留在屏幕上BufferedReader in = new BufferedReader(new InputStreamReader
15、(System.in); try String line = in.readLine();catch(IOException e)br1.close(); /关闭流in.close(); /关闭流(2)修改上面的程序,使得程序通过命令行参数接收N、S和D的值。(3)(此题选做)金额的中文大写形式(见Java程序设计实用教程(第4版)p60)读入一个浮点数,将其转化为中文金额的大写方式,如:读入123.45,转化为:壹百贰十叁元肆角伍分。 当金额为整数时,只表示整数部分,省略小数部分,并添加“整”字。例如:123表示为壹百贰十叁元整。 当金额中含有连续的0时,只需些一个“零”即可。例如,1000
16、5表示为:壹万零伍元整。 10的表示方式。例如:110表示为壹百壹拾元整,而10则表示为:拾元整。o 结果分析:1、 针对本试验中的第(1)题,说明你的程序使用了哪些Java关键字(至少10个)? 答:public、void、int、throws、new、import、catch、try、class、for。2、 Java语言声明并创建一维数组的方法有哪几种?如何对一维数组进行初始化(列举二种方式)? 答:声明数组:int a;和int a;,创建数组:a=new int5s;(1)int a;a=new int5;;(2)int a=new int5;;(3)int a=1,2,3;。jav
17、a对所有使用new运算符动态分配的存储单元都进行了初始化,各变量根据其所属的数据类型获得相应的值。3、 Java语言声明并创建二维数组的方法有哪几种?如何对二维数组进行初始化(列举二种方式)?答:int max;,(1)int max;max=new int45;;(2)int max=new int45;;(3)intmax=1,2,34,5,6;。 4、到目前为止,你知道的向java程序传送程序运行时所需数据的方法有哪几种?答:BufferedReader和命令行参数(String)。5、你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:关于关键字的知识还不够,解决办
18、法:查看书籍和百度。实验4 类的封装性和继承性设计(一)(设计型)o 实验目的了解面向对象程序设计的方法;掌握声明类的方法;区别基本数据类型变量和引用类型变量;区别成员变量和局部变量;掌握创建对象(或类的实例化)的方法;掌握“.”运算符的作用。 o 实验要求:下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本 次实验的实验报告。o 实验内容:设计一个类来表示一个银行账户(类的设计过程参看附录5),该类应该定义成能创建各个银行账户(每个账户具有账号、开户者姓名和身份证号、开户时间和账户金额等信息),而且能进行存款、取款,能显示开户时间,能查询账上金额。并用java语言实现该类
19、,对该类进行编译、运行和测试。 银行账户类的设计可参考如下:类名:xxxxn 角色:表示一个银行账户n 属性(信息)l xxxx:用来存储账号的变量(private);l xxxx:用来存储银行账户的姓名的变量(private);l xxxx:用来存储银行账户的开户时间(private);l xxxx:用来存储银行账户的身份证号码的变量(private);l xxxx:用来存储账户上的金额的变量(private);n 行为l xxxx:用来实现存款(即增加账户上的金额)的方法(public);l xxxx:用来实现取款(即减少账户上的金额)的方法(public);l xxxx:显示开户时间的方
20、法(public);l xxxx:获得账上的金额的方法(public)。说明:上面的“xxxx”代表标识符的名称,标识符的命名约定见“附录6 Java编码约定”中的“3.命名约定”;为属性(成员变量)声明合适的数据类型;设计行为(成员方法)的算法(参看附录5中的“3. 数据、方法与算法”):为成员方法声明合适的返回类型、形参列表,添加合适的内部实现代码;通过构造器完成对象信息初始化,能创建具有不同账户信息的账户;类设计好之后,通过main方法对其进行测试(创建账户对象,对它进行存款、取款、查询账上金额等操作)可在此基础上根据需要扩充银行账户信息和针对银行账户的行为。程序的参考框架如下所示:im
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 Java
