JAVA实验指导书 阿坝师专.doc_第1页
JAVA实验指导书 阿坝师专.doc_第2页
JAVA实验指导书 阿坝师专.doc_第3页
JAVA实验指导书 阿坝师专.doc_第4页
JAVA实验指导书 阿坝师专.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

实验指导书阿坝师范高等专科学校计科系2011年9月JAVA程序设计上机实验指导书实验一、 JAVA基础:实验目的:l 掌握JAVA语言的各种数据类型l 熟悉运算符和表达式。l 学会编写简单程序实验内容:1) 下面是一个简单的JAVA程序,将多种类型变量通过各种运算符组成不同的表达式,并将运算结果赋值给同类型的变量,使用println()方法输出各变量的值。PublicclassExampleTest()Publicstaticvoidmain(Stringargs)Intno=(11+20)*3/5;/A行System.out.println(“no=”+no);no+;/B行System.out.println(“no=”+no);Booleanbool=false;/C行bool=true&!bool;/D行System.out.println(“bool=”+bool);BytebValue=0x10;/E行System.out.println(“bValue=”+bValue);Bool=(nobValue);/F行System.out.println(“bool=”+bool);分析、上机编译并运行程序。2) 编写一个将摄氏温度转化为华氏温度的程序,其转化公式如下:华氏温度(9/*摄氏温度+32实验步骤:i. i.提示用户输入摄氏温度;ii. ii.根据题目公式,计算华氏温度;iii. iii.输出结果实验要求:为了使程序易读,在程序中添加适当的注释;为了使程序输出结果清晰明了,应该输出相应的提示性信息;上机编译并运行该程序。分析实验1)中A行F行各运算符的作用、表达式的功能和表达式的值,并和程序输出结果比较。将实验2)中的“摄氏温度”和“华氏温度”定义为double型,编译并运行程序;将“华氏温度”改为float型后(其他保持不变),再编译该程序,观察会出现什么结果并分析原因。实验二、 JAVA流程控制:实验目的:l l掌握条件语句的使用。l l熟悉循环语句的使用。实验内容:1) 求a+aa+aaa+a.a(n个)的和,其中a为19之间的整数。例如,当a=3、n=4时,求3+33+333+3333的和。2) 给定一个正整数m,判断它的具体位数,分别打印每一位数,再按照逆序打印处各位数字。3) 鸡和兔装在同一个笼子中,已知他们在一起共有f只脚,h只头,求有多少只鸡和多少只兔。实验要求:1) 从键盘上输入19之间的整数a,当所求的和大于1*1000000时,输出相应的a值和n值。2) 从键盘上输入正整数m,m的值不应该超过99999,否则给出错误信息。3) 从键盘上输入正整数f和h(f和h要满足一定的条件),计算并输出鸡和兔的数目。实验三、 方法实验:实验目的:l 掌握方法的定义方法。l 熟悉行参和实参的传递关系。l 掌握方法的嵌套和递归调用方法。l 掌握通过命令行参数接收数据的方法。实验内容:1) 编写判断素数的方法。2) 编写将十六进制数转换为十进制数的方法。3) 编写计算xn的递归方法实验要求:1) 判断素数的方法通过参数形式接收待判断的数。如果是素数,输出“Yes,XXXisaprime”信息,否则输出“No,XXXisnotaprime”信息。其中XXX代表待判断的数,运行程序时,待判断的数通过命令行行参数输入。2) 将十六进制数转换为十进制数的方法通过参数形式接收待转换的十六进制数。转换后的输出格式为:十六进制数XXX;十进制数YYY。其中XXX代表待转换的十六进制数,YYY代表转换后的十进制数。运行程序时,待转换的十六进制数通过命令行参数输入。3) 计算xn的递归方法通过参数形式接收x和n。计算后的输出格式为:xn=XXX。其中XXX代表xn的值。实验四、 面向对象的程序设计概念:实验目的:l 掌握类和构造方法的定义。l 理解静态和非静态成员变量的区别。l 掌握创建类实例的方法。实验内容:1) 编写一个学校类,其中包括成员变量scoreLine(录取分数线)和对该变量进行设置和获取的方法。2) 编写一个学生类,她的成员变量有考生的name(姓名)、id(考号)、intgretResult(综合成绩)、sports(体育成绩)。它还有获取学生的综合成绩和体育成绩的方法。3) 编写一个录取类,它的一个方法用于判断学生是否符合录取条件。其中录取条件为:综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分。该类中的main()方法建立若干个学生对象,对输出符合录取条件的学生,输出其信息及“被录取”。实验要求:1) 学生类的构造方法带4个参数,分别接收学生的姓名、考号、综合成绩和体育成绩。2) 学校类仅包括静态成员变量和方法。实验五、 字符串和数组:实验目的:l 掌握数组的定义和使用方法。l 熟悉数组的排序、查找等算法。l 掌握字符数组的使用方法。实验内容:1) 编写数组的排序程序。2) 编写折半查找的程序。3) 编程实现:产生一个112之间的随机整数,并根据该随机整数的值,输出对应月份的英文名称。4) 编程实现:建立包含10个字符串数据的一维数组,每个字符串数据的格式为月/日/年,例如06/25/04,将每个日期采用25thJune2004的格式输出。实验要求:1) 在数组的排序程序中,随机产生20个整数,对其按照升序进行排序,并对排序前后的数组按照每5个数的方式输出。2) 通过键盘输入一个数,在排序后的数组中,采用折半查找法查找该数在数组中的位置。如果查找到该数,输出信息:XXX:Y。其中XXX代表待查找数,Y代表该数在数组中的位置(下标)。3) 用赋初值的方法,将112月的英文月份名赋给数组元素,根据所产生的随机整数值,输出对应的数组元素值。4) 用赋初值的方法,将10个日期格式的字符串数据赋予数组元素,然后按照指定格式输出。实验六、 类的封装、多态和继承:实验目的:l 掌握类的继承机制。l 熟悉类中成员变量和方法的访问控制。l 熟悉方法或构造方法多态性。实验内容:1) 设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x和y值的public方法。2) 设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected类型的成员变量r、获取和设置r值的public方法、计算圆面积的public方法。3) 设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected类型的成员变量h、获取和设置h值的public方法、计算圆柱体体积的public方法。4) 建立若干个Cylinder对象,输出其轴心位置坐标、半径、高及其体积的值。实验要求:1) 每个类包含无参数和有参数的构造方法。构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。2) 子类的构造方法调用父类的构造方法,对父类中的成员变量初始化。实验七、 接口和包:实验目的:l l熟悉接口的定义方法。l l了解JAVA语言实现多继承的途径。实验内容:学校中有老师和学生两类人,而在职研究生既是老师又是学生,对学生的管理和对教师的管理在他们身上都有体现。1) 设计两个信息管理接口StudentManageInterface和TeacherManageInterface。其中,StudentInterface接口包括setFee()方法和getFee()方法,分别用于设置和获取学生的学费;TeacherInterface接口包括setPay()方法和getPay()方法,分别用于设置和获取教师的工资2) 定义一个研究生类Graduate,实现StudentInterface接口和TeacherInterface接口,它定义的成员变量有name(姓名)、sex(性别)、age(年龄)、fee(每学期学费)、pay(月工资)。3) 创建一个姓名为“zhangsan”的研究生,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“providealoan”(需要贷款)信息。实验要求:3) 在Graduate中实现各个接口定义的抽象方法。4) 对年学费和年收入进行统计,用收入减去学费,如果小于2000元则显示“providealoan”信息。实验八、 Applet程序:实验目的:l 熟悉Applet类。l 掌握applet的程序结构。l 学会编写启动applet程序的html文档。l 观察applet程序的生命周期实验内容:1) 编写applet程序1,显示init()、start()、stop()、paint()和destroy()方法的执行顺序和执行次数。2) 编写applet程序2,在屏幕尚画一组同心圆,相邻两圆的直径大小相差10(pixel)(要求画满整个屏幕)。3) 编写applet程序3,在屏幕上画椭圆。椭圆的大小和位置由拖动鼠标决定(按下鼠标左键位置决定椭圆的左上角,放开鼠标左键位置决定椭圆的右下左上角)实验要求:1) 编写调用applet程序1的html文档1,利用appletviewer运行html文档1,启动applet程序1。改变applet窗口大小,使其最大化、最小化,查看init()、start()、paint()和destroy()方法的执行情况。2) 编写调用applet程序2的html文档2,利用appletviewer运行html文档2,启动applet程序2。改变applet窗口大小,观察同心圆个数的变化情况。3) 编写调用applet程序3的html文档3,利用appletviewer运行html文档3,启动applet程序3。在不同位置拖动鼠标,观察所绘制的椭圆。实验九、 图形用户界面:实验目的:l l学会制作图形界面的各种控件,如:标签、文本框、按钮等。l l学会按钮控件的事件处理方法。实验内容:设计一个简单计算器,如下图所示。在“操作数”标签右侧的两个文本框输入操作数,当单击操作符,按钮时,对两个操作数进行运算并将结果填入到“结果”标签右侧的文本框中。实验要求:文件名通过命令行以参数方式输入。程序需要判断参数提供文件的存在性。待添加的记录通过TextField控件输入,文件内容通过TextArea控件显示。实验十、 高级用户界面GUI设计:实验目的:l 掌握菜单的制作。l 会处理事件以及设置输入对话框。l 掌握对文本域JTextArea中字符进行复制和粘贴的操作。实验内容:设计一个JAVA程序模仿记事本(NotePad)的部分功能,界面如下图。实验要求:1) 新建文件时,文本域为空;打开文件和保存文件时要给出输入对话框,输入相应文件名后进行操作;选择退出菜单将退出整个程序。2) 对文本域中选中的字符能够进行复制和粘贴操作。实验十一、 异常:实验目的:l l熟悉异常处理方法。l l熟悉常见异常的捕获方法。实验内容:1) 编写一程序,生成和捕获NegativeArraySizeException和IndexOutofBoundsException类型的异常。2) 在(1)的基础上再生成和捕获NullPointException类型的异常。3) 阅读下列的divide(int,int)方法,指出catch(ArithemticExceptione),catch(ArrayIndexOutofBoundsExceptione)和finally块中的语句分别在什么情况下执行?public static intdivide(int array,intindex)trySystem.out.println(“nFirst try block in divide() entered”);arrayindex+2=arrayindex/arrayindex+1;System.out.println(“Code at end of first try block in divide()”);return arrayindex+2;catch(Arithmetic Exceptione)System.out.println(“Code at end of first try block in divide()”);catch(ArrayIndexOutofBounds Exceptione)System.out.println(“Index_out_of_boundsexception caught in divide()”);finallySystem.out.println(“finally block in divide()”);System.out.println(“Executing code after try block in divide()”);return arrayindex+2;4) 通过下列的main(String)方法,调用(3)中的divide(int,int)方法,分析其运行结果,并与在计算机上的实际运行结果比较。public static void main(String args)intx=10,5,0;/Array of three integerstrySystem.out.println(“First try block in main() entered”);System.out.println(“result=”+divide(x,0);x1=0;System.out.println(“result=”+divide(x,0);x1=1;System.out.println(“result=”+divide(x,);catch(Arithmetic Exceptione)System.out.println(“Arithmetic exception caught in main()”);catch(ArrayIndexOutofBounds Exceptione)System.out.println(“Index_out_of_bounds_exception caught in main()”);System.out.println(“Outside first try block in main()”);System.out.println(“nPress enter to exit”);trycatch(IOException e)System.out.println(“I/O exception caught in main()”);finallySystem.out.println(“finally block for second try block in main()”);System.out.println(“Code after second try block in main()”);实验要求:1) 程序中生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到异常信息。2) 在(1)的基础上生成并捕获到NullPointerException类型的异常,并显示捕获到异常信息。3) 通过分析指出catch(ArithmeticException e),catch(ArrayIndexOutBoundsException e)和finally块中语句的执行条件。4) 结合给定main(String)方法,通过理论分析程序的运行结果(显示信息)。上机实现运行程序,将实际得到的运行结果和分析结果进行比较,判断是否真正的掌握异常的处理机制。实验十二、 多线程:实验目的:l 熟悉利用Thread类建立多线程方法。l 熟悉利用Thread接口建立多线程方法。实验内容:1) 阅读下列程序,分析并上机检验其功能。class DelayThread exends Threadprivate static intcount=0;private intno;private intdelay;public DelayThread()count+;no=count;public void run()tryfor(int i=0;i10;i+)delay=(int)(Math.random()*5000);sleep(delay);System.out.println(“Thread”+no+”with a delay”+delay);catch(InterruptedException e)public class MyThreadpublic static void main(String args)DelayThread thread1=new DelayThread();DelayThread thread2=new DelayThread();thread1.start();thread2.start();tryThread.sleep(1000);catch(InterruptedException e)System.out.println(“Thread wrong”);2) 讲上列程序利用Runnable接口改写,并上检验。实验要求:1) 首先分析程序功能,再通过上机运行验证自己的分析,从而掌握通过Thread类建立多线程的方法。2) 通过将扩展Thread类建立多线程的方法改为利用Runnable接口的方法,掌握通过Runnable接口建立多线程的方法。实验十三、 流:实验目的:l l熟悉文件流操作方法。l l应用文件流操作文件。实验内容:1) 利用流操作,在屏幕上显示文本文件内容及文件的路径、修改时间、大小、长度、可读性和可修改性等属性。2) 借助流操作,以图形界面方式向文本文件添加记录并显示其

温馨提示

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

评论

0/150

提交评论