版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE23 《面向对象程序设计》实验报告 专业_____________年级_____________学号_____________学生姓名_____________指导老师_____________华中师范大学信息管理学院编=1\*ROMANI实验要求1.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。2.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。3.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小结部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。=2\*ROMANII实验内容实验一Java运行环境的下载、安装、配置与运行【实验目的】1.掌握下载JavaSDK软件包的方法。2.掌握设置Java程序运行环境的方法。3.掌握编写与运行Java程序的方法。4.为学习Java语言和进行Java程序的实验做好准备工作。【实验内容】1.SDK的下载与安装(1)下载SDK为了建立基于SDK的Java运行环境,需要先下载Sun的免费SDK软件包。SDK包含了一整套开发工具,其中包含对编程最有用的是Java编译器、Applet查看器和Java解释器。(2)安装SDK运行下载的“jdk-6u43-windows-i586”软件包,可安装SDK,在安装过程中可以设置安装路径及选择组件,如D:\java,默认的组件选择是全部安装。(3)SDK中的主要文件夹和文件2.设置环境变量Path3.编写源程序要编写Java程序,可以使用操作系统提供的记事本作为编辑器。编写在屏幕上显示文字“欢迎你学习Java语言!”的文件(Hello.java)。4.编译Java源程序Java源程序编写后,要使用Java编译器(javac.exe)进行编译,将Java源程序编译成可执行的程序代码。编译Hello.java。5.运行Java程序使用Java解释器(java.exe)可将编译后的字节码文件Hello.class解释为本地计算机代码。
【实验报告】实习时间:实习地点:实习机号:具体实验内容程序调试过程实习小结实验二Java语言基础【实验目的】1.了解Java的数据类型2.掌握各种变量的声明方式。3.理解运算符的优先级。4.掌握Java基本数据类型、运算符与表达式、数组的使用方法。5.理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。6.通过以上内容,掌握Java语言的编程规则。【实验内容】1.了解变量的使用范围(1)建立Exp2_1.java文件,通过本程序了解变量的使用范围,源代码如下。publicclassExp2_1{staticinti=10;publicstaticvoidmain(Stringargs[]){{intk=10;System.out.println("i="+i);System.out.println("k="+k);}System.out.println("i="+i);System.out.println("k="+k);}}(2)编译Exp2_1.java此时会出现错误提示,分析错误原因。因为变量k在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。2.应用循环语句和switch选择开关语句,设计一个学生成绩管理系统的菜单选择程序。程序运行后,如图所示。算法设计:(1)显示菜单使用System.out.println()方法将菜单项一项一项在屏幕上显示,界面的边框可以通过多个“-”和“*”拼接起来。(2)获取用户的键盘输入在java中,使用简单文本扫描器Scanner类可以接受用户从键盘输入的数据。Scanner可以从System.in中读取数据。Scanner实现键盘输入数据的方法如下:Scannersc=newScanner(System.in);intselect=sc.nextInt();使用Scanner类需要在程序最前面引入相应类库,语句为:importjava.util.*;(3)菜单项的选择菜单应根据用户的选择做出不同的反应,因此需要使用分支结构实现选择选项的功能。根据题意,主菜单含有3个菜单项,属于多分支条件判断,使用带break的switch语句最为合适。(4)容错处理当用户输入0、1、2之外的数字时,显示"输入错误,请重新输入!"。(5)重复显示主菜单为了能够使程序能具有重复选择菜单选项的功能,因此需要使用while循环结构。【实验报告】实习时间:实习地点:实习机号:具体实验内容
程序调试过程实习小结实验三类与对象【实验目的】通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想的,了解用类来封装对象的属性和功能的方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法。【实验内容】1.编写一个Java应用程序,该程序中有两个分类:Vehicle(用于刻画机动车)和Exp3(主类)。具体要求如下:Vehicle类有一个double类型的变量speed,用于刻画机动车的速度,一个int型变量power,用于刻画机动车的功率。方法定义了speedUp(ints)方法,体现机动车有加速功能。定义了speedDown()方法,体现机动车有减速功能。方法定义了setPower(intp)方法,用于设置机动车的功率。定义了getPower()方法,用于获取机动车的功率。classVehicle{【代码1】//声明double型变量speed,刻画速度【代码2】//声明int型变量power,刻画功率【代码3】//为Vehicle类定义一个空的构造函数Vehicle(intpower){ 【代码4】//将参数power的值赋值给成员变量power; }Vehicle(doublespeed,intpower){【代码5】//将参数speed的值赋值给成员变量speed; 【代码6】//将参数power的值赋值给成员变量power; }voidspeedUp(ints){【代码7】//将参数s的值与成员变量speed的和赋值给成员变量speed}voidspeedDown(intd){【代码8】//将成员变量speed与参数d的差赋值给成员变量speed}voidsetPower(intp){【代码9】//将参数p的值赋值给成员变量power}intgetPower(){【代码10】//返回成员变量power的值}doublegetSpeed(){returnspeed;}}publicclassExp3{publicstaticvoidmain(Stringargs[]){Vehiclecar1;【代码11】//使用new运算符和空构造方法创建对象car1【代码12】//car1调用setPower方法将自己的power值设为128【代码13】//使用new运算符和构造方法创建Vehicle对象car2,并将car2的power值设为76【代码14】//使用new运算符和构造方法创建Vehicle对象car3,并将car3的speed值设为40.5,power值设为85System.out.println("car1的功率是:"+car1.getPower());System.out.println("car2的功率是:"+car2.getPower());System.out.println("car3的功率是:"+car3.getPower());【代码15】//car1调用speedUp方法将自己的speed的值增加80【代码16】//car2调用speedUp方法将自己的speed的值增加100【代码17】//car3调用speedUp方法将自己的speed的值增加30System.out.println("car1目前的速度:"+car1.getSpeed());System.out.println("car2目前的速度:"+car2.getSpeed());System.out.println("car3目前的速度:"+car3.getSpeed());car1.speedDown(10);car2.speedDown(20);car3.speedDown(30);System.out.println("car1目前的速度:"+car1.getSpeed());System.out.println("car2目前的速度:"+car2.getSpeed());System.out.println("car3目前的速度:"+car3.getSpeed());}}【实验报告】实习时间:实习地点:实习机号:具体实验内容
程序调试过程实习小结实验四继承【实验目的】通过编程和上机实验理解Java语言OOP方式进行程序设计的方法,了解类的继承性。【实验内容】编写程序模拟人、中国人、美国人和北京人。Peopleheight:doubleweight:doublespeakHello():voidaverageHeight():voidaverageWeight():voidChinaPeoplecChinaPeoplechinaGongfu():voidAmericanPeopleamericanBoxing():voidBeijingBeijingPeoplebeijingOpera():voidPeople.javapublicclassPeople{protecteddoubleweight,height;publicvoidspeakHello(){System.out.println("yayayaya");}publicvoidaverageHeight(){height=173;System.out.println("averageheight:"+height);}publicvoidaverageWeight(){weight=70;System.out.println("averageweight:"+weight);}}ChinaPeople.javapublicclassChinaPeopleextendsPeople{publicvoidspeakHello(){System.out.println("您好");}publicvoidaverageHeight(){height=168.78;System.out.println("中国人的平均身高:"+height+"厘米");}【代码1】//重写publicvoidaverageWeight()方法,输出:"中国人的平均体重:65公斤"publicvoidchinaGongfu(){System.out.println("坐如钟,站如松,睡如弓");}}AmericanPeople.javapublicclassAmericanPeopleextendsPeople{【代码2】//重写publicvoidspeakHello()方法,输出"Howdoyoudo"【代码3】//重写publicvoidaverageHeight()方法,输出"American'saverageheight:176cm"publicvoidaverageWeight(){weight=75;System.out.println("American'saverageweight:"+weight+"kg");}publicvoidamericanBoxing(){System.out.println("直拳、钩拳、组合拳");}}BeijingPeople.javapublicclassBeijingPeopleextendsChinaPeople{【代码4】//重写publicvoidaverageHeight()方法,输出:"北京人的平均身高:172.5厘米"【代码5】//重写publicvoidaverageWeight()方法,输出:"北京人的平均体重:70公斤"publicvoidbeijingOpera(){System.out.println("花脸、青衣、花旦和老生");}}Example.javapublicclassExample{publicstaticvoidmain(Stringargs[]){ChinaPeoplechinaPeople=newChinaPeople();AmericanPeopleamericanPeople=newAmericanPeople();BeijingPeoplebeijingPeople=newBeijingPeople();chinaPeople.speakHello();americanPeople.speakHello();beijingPeople.speakHello();chinaPeople.averageHeight();americanPeople.averageHeight();beijingPeople.averageHeight();chinaPeople.averageWeight();americanPeople.averageWeight();beijingPeople.averageWeight();chinaPeople.chinaGongfu();americanPeople.americanBoxing();beijingPeople.beijingOpera();beijingPeople.chinaGongfu();}}【实验报告】实习时间:实习地点:实习机号:具体实验内容
程序调试过程实习小结实验五多态性【实验目的】通过编程和上机实验理解Java语言OOP方式进行程序设计的方法,了解类的多态性。【实验内容】1.了解上转型对象的用法,理解通过上转型对象实行重写多态。解释【代码2】和【代码4】的执行结果为何不同?classAnimal{voidcry(){}}classDogextendsAnimal{ voidcry(){ System.out.println("汪汪"); }}classCatextendsAnimal{ voidcry(){ System.out.println("喵喵"); }}publicclassCryTest{ publicstaticvoidmain(String[]agrs){ 【代码1】//使用new运算符创建Dog对象a,并将a指定为Animal类型 【代码2】//调用a的cry()方法 【代码3】//将a指定为Cat类型 【代码4】//调用a的cry()方法 }}2.掌握抽象类实现重写多态的用法。解释【代码6】【代码7】和【代码9】【代码10】的执行结果为何不同?publicabstractclassAnimal{//抽象类 【代码1】//定义public类型无返回值的抽象方法cry() 【代码2】//定义public类型无返回值的抽象方法eat()}publicclassCatextendsAnimal{ publicvoidcry(){ System.out.println("喵星人"); } publicvoideat(){ System.out.println("猫吃鱼"); }}【代码块3】//同Cat类,定义Dog类继承Animal类,并重写Dog类的所有抽象方法publicclassTest1{ publicstaticvoidmain(String[]args){ 【代码4】//定义抽象类Animal的引用变量a 【代码5】//创建一个Cat类的对象赋给a 【代码6】//调用a的cry方法 【代码7】//调用a的eat方法 【代码8】//创建一个Dog类的对象赋给a 【代码9】//调用a的cry方法 【代码10】//调用a的eat方法 }}【实验报告】实习时间:实习地点:实习机号:具体实验内容
程序调试过程实习小结实验六接口【实验目的】1.理解Java语言接口的用法。2.理解通过接口回调实现多态性的用法。【实验内容】编写接口程序RunTest.java,通过接口回调实现多态性。解释【代码4】和【代码6】的执行结果为何不同?interfaceRunable{ voidrun();}classCatimplementsRunable{ publicvoidrun(){ System.out.println("猫急上树.."); }}【代码1】//参照Cat类,定义Dog类并实现Runable接口 publicvoidrun(){ System.out.println("狗急跳墙.."); }}publicclassRunTest{ publicstaticvoidmain(String[]args){ 【代码2】//声明Runable接口变量r 【代码3】//接口变量r中存放一个Cat对象的引用【代码4】//调用Cat对象的run()方法 System.out.println(""); 【代码5】//接口变量r中存放一个Dog对象的引用【代码6】//调用Dog对象的run()方法 }}【实验报告】实习时间:实习地点:实习机号:具体实验内容
程序调试过程实习小结实验七Swing组件应用(1)【实验目的】了解图形用户界面基本组件窗口、按钮、文本框、选择框、对话框等的使用方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。【实验内容】1.编写JButtonDemo.java。(1)使用水平布局放置2个按钮,其中按钮2为图标按钮(使用ImageIcon)。(2)当按下按钮时弹出相应的对话框。2.编写JRadioButtonDemo.java。根据所选按钮改变背景色。3.编写JCheckBoxDemo.java。根据所选按钮改变标签的效果。4.编写JComboBoxDemo.java。在标签中显示所选列表项内容。5.编写ColorDialogDemo.java,点击按钮弹出颜色对话框,并用选中的颜色作为窗口的背景色。【实验报告】实习时间:实习地点:实习机号:具体实验内容程序调试过程实习小结
实验八Swing组件应用(2)(选做)【实验目的】掌握同时使用多个swing组件设计图形用户界面的方法,了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。【实验内容】1.编写ItemEventDemo.java,当选中或取消选中单选钮、复选钮和列表框时显示所选的结果。2.编写GUIExample.java,当选中或取消选中单选钮、复选钮时在标签中显示相应结果。【实验报告】实习时间:实习地点:实习机号:具体实验内容程序调试过程实习小结实验九菜单程序设计【实验目的】掌握菜单的使用方法,以及如何使用Java的事件处理机制。【实验内容】1.编写菜单程序JMenuDemo.java。(1)窗口中放置菜单和JTextArea对象。(2)打开、保存菜单项为图标菜单。(3)“编辑”菜单实现对JTextArea的剪切、复制和粘贴操作。.【实验报告】实习时间:实习地点:实习机号:具体实验内容程序调试过程实习小结
实验十鼠标事件处理【实验目的】掌握鼠标的事件处理机制。【实验内容】1.编写鼠标事件响应程序MouseEventDemo.java,当鼠标进入和离开窗口是给出相应显示,当按下、弹起时显示当前鼠标的坐标值。2.编写鼠标事件响应程序MouseMotionEventDemo.java,当鼠标在窗口内移动时显示鼠标的坐标值。【实验报告】实习时间:实习地点:实习机号:具体实验内容
程序调试过程实习小结实验十一键盘和焦点事件处理【实验目的】掌握键盘和焦点的事件处理机制。【实验内容】1.编写键盘和焦点响应程序FocusKeyEventDemo.java。(1)窗口放置三个文本框、一个按钮和一个标签。(2)使用浮动布局。(3)程序运行后,焦点放在第一个文本框。(4)当文本框获得焦点时清空该文本框的内容(使用focusGained方法)。(5)当文本框中输入的字符超过6个时焦点自动切换到下一个文本框(使用keyPressed方法)。(6)按“确定”按钮后,在标签中显示完整的序列号。【实验报告】实习时间:实习地点:实习机号:具体实验内容
程序调试过程实习小结实验十二绘制图形【实验目的】掌握使用图形类Graphics画出不同图形的方法。【实验内容】1.编写绘制圆形程序DrawOval.java。点击“确定”按钮时,在画布的指定位置画圆。2.编写移动方块程序MoveSquare.java。程序由二个类组成:窗体主类(表现层)负责控制,确定所有组件的位置,处理用户对方块的操作。画布MoveCanvas类(逻辑层)负责绘图,其paint负责绘制方块,其方法moveUp(),moveDown(),moveLeft(),moveRight()分别响应窗体主类actionPerformed()方法的对应的按钮事件,再调用repaint方法来刷新图像。【实验报告】实习时间:实习地点:实习机号:具体实验内容
程序调试过程实习小结实验十三图像处理【实验目的】掌握在容器中输入图像的方法。【实验内容】1.编写图片浏览器程序ShowGraph.java。(1)窗体上放置菜单和标签。(2)Open菜单打开文件对话框,选择图片文件后显示在标签中(标签的setIcon方法)。【实验报告】实习时间:实习地点:实习机号:具体实验内容
程序调试过程实习小结实验十四异常处理【实验目的】1.理解Java异常处理机制。2.掌握try…catch…finally捕获和处理异常的方法。【实验内容】1.编写CatchMoreExceptionExample.java。捕获和处理数组越界异常。publicclassCatchMoreExceptionExample{ publicstaticvoidmain(String[]args) { //受监视的代码 try { //创建数组对象 int[]a=newint[4]; //超范围访问数组元素 a[4]=9; } //异常处理代码 catch(Exceptione) { System.out.println("异常种类及消息为:"+e.toString()+"。"); } }}2.编写CatchMoreExceptionExample2.java。捕获和处理数组空引用异常。必须将子类型的异常写在上面,父类型的异常写在下面。publicclassCatchMoreExceptionExample2{ publicstaticvoidmain(String[]args) { //受监视的代码 try { //声明数组类型的空引用 int[]a=null; //通过空引用访问数组元素 a[4]=9; } //NullPointerExceptio的异常处理代码 catch(NullPointerExceptionnpe) { System.out.println("产生空引用异常:"+npe.toString()); } //Exception的异常处理代码 catch(Exceptione) { System.out.println("产生异常:"+e.toString()); } }}3.编写TryCatchFinallyExample.java。学习TryCatchFinally语句的用法。publicclassTryCatchFinallyExample{ publicstaticvoidmain(String[]args) { //受监视的代码块 try { //创建长度为4的int型数组 int[]a=newint[4]; System.out.println("整型数组创建完毕!!"); //为数组最后一个元素赋值 a[3]=9; System.out.println("整型数组中第四个元素的数值为"+a[3]); } //处理下标越界异常 catch(ArrayIndexOutOfBoundsExceptionaiobe) { //打印提示信息 System.out.println("这里出现的错误类型是:数组下标越界!!"); }//处理空引用异常代码块 catch(NullPointerExceptionnpe) { //打印提示信息 System.out.println("这里出现的错误类型是:空引用!!"); } //finally块 finally { //打印提示信息 System.out.println("这里是finally块,无论是否抛出异常,这里总能执行!"); }System.out.println("主程序正常结束!!!"); }}(1)int[]a=newint[4];换成int[]a=null;(2)a[3]=9;换成a[4]=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年全新捐赠三方协议协议
- 2024年个人货车租用合同
- 2024年个人聘用合同格式范本
- 专家法律意见2024年
- 2024年纸箱采购合同模板600字
- 2024年债权、债务转让合同范本
- 2024年房地产转让合同
- 山东(选调生)申论2007年
- 2024年全新物流服务咨询合同
- 2024年机房助管人员劳动合同范本
- AQ/T 1119-2023 煤矿井下人员定位系统通 用技术条件(正式版)
- 应急分队人员招聘方案范文
- 林木良种基地建设项目建议书
- 【分层教学】三年级下册英语教案-UNIT FIVE CHILDREN'S DAY lesson 16 北京版
- 责任保险行业研究报告
- 古风折扇的设计 (教学设计)-三年级上册劳动浙教版
- DL-T5704-2014火力发电厂热力设备及管道保温防腐施工质量验收规程
- (高清版)JGT 225-2020 预应力混凝土用金属波纹管
- 医用离心机校准规范
- 沂蒙红色文化与沂蒙精神智慧树知到期末考试答案章节答案2024年临沂大学
- 初中地理实验设计方案
评论
0/150
提交评论