ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:27.35KB ,
资源ID:4645889      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4645889.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(10面向对象程序设计实验指导书.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

10面向对象程序设计实验指导书.docx

1、10面向对象程序设计实验指导书面向对象程序设计实验指导书实验一 简单程序设计一、实验目的理解JAVA程序运行机制,掌握JAVA基本程序设计,学习使用JDK文档二、实验内容1使用纯文本编辑器编写一个HelloWorld程序,使用命令行编译并运行;并掌握配置EditPlus使之运行JAVA程序。思考:假设HelloWorld.java在目录:d:exercise将编译后的HelloWorld.class文件移至c:下若在命令行下运行如下命令:d:exercisejava HelloWorld,c:java HelloWorld有没有问题?假定需要在d:exercise运行HelloWorld,需要

2、设置什么?2设n为自然数,编写方法factorial(int)计算阶程,并在main方法中调用该方法,计算2!,4!,6!并将结果输出到屏幕上。3使用java.lang.Math 类,生成100个099之间的随机整数,找出它们之中的最大者及最小者,并统计大于50的整数个数。 4创建一个二维数组,初始化为每名学生的四门课程成绩,计算每名学生的总成绩并按总成绩排序并输出每名学生的成绩。5编写程序翻转输出此字符串:Hello World!三、实验指导1配置path路径,使得在任意路径下,javac,java 等命令均为可识别的命令。我的电脑属性高级环境变量系统变量java_home= C:Progr

3、am FilesJavajdk1.6.0_20(新建)path: %java_home%bin(添加)也可以直接在path中添加:C:Program FilesJavajdk1.6.0_20bin2配置Editplus:打开EditPlus,单击菜单中的“工具”,选择“配置用户工具”,在弹出的“参数选择”窗口中,单击按纽“添加工具”,在弹出的菜单中选择“新用户程序”,在“组和工具项目”中,设置如下:菜单名字:javac命令:D:j2sdk1.4.2_04binjavac.exe(此为本机上安装的jdk目录)参数:$(FileName)初始目录:$(FileDir);选中“捕获输出”。同样道理“

4、添加工具”,设置如下:菜单名字:java命令:D:j2sdk1.4.2_04binjava.exe参数:$(FileNameNoExt)初始目录:$(FileDir)选中“捕获输出”。3参考:(1)当在目录d:exercise运行HelloWorld时,考虑配置环境变量。环境变量的配置:我的电脑属性高级环境变量系统变量添加名为classpath的环境变量,并设置值为HelloWorld类所在的路径。另可考虑javac -classpath(2)类名为“Factorial,添加一个计算阶乘的方法factorial(int i),考虑一个数的阶乘会很大,超过int的范围,将此方法的返回值定义为lo

5、ng型。此外,由于需要在main方法中直接调用该方法,需要将此方法定义为static型。计算阶乘使用递归,如if(i!=1) return factorial(i-1)*i;else return 1; 也可使用循环来实现。最好都实现。3 使用Math.random()方法来生成随机数,由于此方法生成01之间的随机小数,故需要用100*Math.random()来生成099之间的一个随机数,并且需要用强制转换成整(int)(100*Math.random()。可先生成两个随机整数,并任意赋给代表最大值的变量maxRandom和代表最小值的变量minRandom,比较它们之间的大小,较大者赋给m

6、axRandom,较小者赋给minRandom。然后在一个98次的循环体中,每生成一个随机数,放入先定义好的整数数组中,并与maxRandom和minRandom进行比较,若大于maxRandom,则maxRandom被此值所替代,若小于minRandom,则minRandom被此值所替代。并判断此值是否大于50,是则将用于计数的变量count增1。4 可预先定义两个变量maxStudent和maxCourse分别记录学生数和课程数量,这里课程数为4。定义一个二维数组int score=new intmaxStudent;,每一行代表某一个学生的4门课成绩。作为实验之用,可利用一个嵌套循环,利

7、用随机数生成的办法,初始化该二维数组。内循环体中,每生成一个随机数,便进行分数的统计,内循环结束,将该名学生的总成绩放入此行的最后一个元素中。提高:(1)利用数据结构中所学的任一种排序,如冒泡法,进行排序输出,任何一种排序方法中,只需要比较每行的最后一个元素来进行行与行的交换。(2)本例也可以参考第1章中的示例程序,利用键盘输入的方法初始化此二维数组。5 用两种方法实现。(1)使用String类的方法,利用循环来实现(2)使用StringBuilder类,仅仅利用一个方法就可实现实验二类与对象一、实验目的掌握类的定义,对象的创建,掌握构造函数,封装,static 关键字二、实验内容1创建一个V

8、ehicle的类,其UML class Diagram如下图所示(其中max_Load和load的单位为kg):Vehicle+load:double+maxLoad:double+Vehicle(max_Load:double)+getLoad():double+getMaxLoad():double 编写一个TestVehicle.java程序,使得程序输出为:creating a vehicle with a 10,000kg maximum load.Add box #1(500kg)Add box #2(250kg)Add box #3(5000kg)Add box #4(4000k

9、g)Add box #5(300kg)Vehicle load is 10050.0kg 2修改Vehicle类,其UML class Diagram如下图所示:Vehicle-load:double-maxLoad:double+Vehicle(max_Load:double)+getLoad():double+getMaxLoad():double+addBox(weight:double):boolean 其中,addBox()方法中要检测是否超载,即是否已经超过max_Load,如果超过,该box不能被添加,方法返值为false,否则添加进去,并返值为true。修改TestVehicl

10、e.java程序,使得程序输出为:creating a vehicle with a 10,000kg maximum load.Add box #1(500kg)Add box #2(250kg)Add box #3(5000kg)Add box #4(4000kg)Add box #5(300kg)Vehicle load is 9750.0kg3创建一个类,如下图所示:Count-counter:int=0-serialNumber:int+Count()+getTotalCount() 其中,counter记录所创建的对象的个数,每次创建一个对象时,其序列号serialNumber为其

11、创建的序号。设计测试类Count的程序,不使用Count的实例而直接调用getTotalCount()程序输出如下:Number of counter is 0Number of counter is 1Number of counter is 24创建一个二维对象数组,数组中的每个元素为一个学生类的实例,学生类的UML图为:其中,属性score数组的内容同实验一的第4小题,分数的处理可定义。Student-ID:String-name:String-scoreMAXLENGTH:float+Student(ID:String,name:String)+getID():String+getNa

12、me():String+setID(String id):void+setName(String name):void三、实验步骤:1(1)单击菜单中的“文件”,选择“新建”,在弹出的菜单中选择“JAVA”,出现java程序编辑区域,定义类Vehicle(2)为类Vehicle按照UML图定义公有成员变量load,maxLoad以及带一个参数的构造函数,在构造函数体中对maxLoad进行初始化。(3)为类Vehicle按照UML图定义公有成员函数getLoad()和getMaxLoad(),分别返回成员变量load和maxLoad的值。(4)定义测试类TestVehicle,在main方法中编

13、写代码,实现题目所要求的输出:可以创建一个Vehicle类的实例,利用System.out.println进行提示输出,每加一个box,增加该实例的成员变量load。(5)保存为“TestVehicle.java”的文件。(6)单击菜单中的“工具”,单击“javac“编译此代码,若无误,在“输出窗口”区显示“输出完成(耗时3秒)正常终止”。若有误,双击错误提示语句,在程序编辑区光标会自动跳转到有错误的行,检查程序。记录编译错误提示语句,并写出错误原因及解决方法。(7)单击菜单中的“工具”,单击“java”执行代码,若无误,会在“输出窗口”区显示所要求的输出结果。若输出有误,检查程序。记录运行错

14、误提示语句,并写出错误原因及解决方法。2 (1)单击菜单中的“文件”,选择“新建”,在弹出的菜单中选择“JAVA”,出现java程序编辑区域,定义类VehicleUpdate(为与实验一区分开来)(2)为类Vehicle按照UML图定义私有成员变量load,maxLoad以及带一个参数的构造函数,在构造函数体中对maxLoad进行初始化。(3)为类Vehicle按照UML图定义公有成员函数getLoad()和getMaxLoad(),分别返回成员变量load和maxLoad的值。(4)为类Vehicle增加一个成员方法addBox(),在此方法体中,对load进行增加,增加的量为addBox(

15、)方法的形参值,并作判断,是否load在添加之后超过了maxLoad所规定的量,若超过,将刚增加的量立即减去,并返回假,否则返回真。(5)定义测试类TestVehicleUpdate,在main方法中编写代码,实现题目所要求的输出:可以创建一个VehicleUpdate类的实例,利用System.out.println进行提示输出,每加一个box,调用addBox()方法增加该实例的成员变量load。(6)保存为“TestVehicleUpdate.java”的文件。(7)单击菜单中的“工具”,单击“javac“编译此代码,若无误,在“输出窗口”区显示“输出完成(耗时3秒)正常终止”。若有误,

16、双击错误提示语句,在程序编辑区光标会自动跳转到有错误的行,检查程序。记录编译错误提示语句,并写出错误原因及解决方法。(8)单击菜单中的“工具”,单击“java”执行代码,若无误,会在“输出窗口”区显示所要求的输出结果。若输出有误,检查程序。记录运行错误提示语句,并写出错误原因及解决方法。3 (1)单击菜单中的“文件”,选择“新建”,在弹出的菜单中选择“JAVA”,出现java程序编辑区域,定义类Count(2)为类Count按照UML图定义私有成员变量counter,并声明为static型,定义私有成员变量serialNumber,以及无参的构造函数,在构造函数体中,对counter进行增1运

17、算,同时将counter的值赋给serialNumber,以实现题目所要求的“counter记录所创建的对象的个数,每次创建一个对象时,其序列号serialNumber为其创建的序号”(3)为类Count定义成员方法getTotalCount(),在此需声明为static型,以实现题目所要求的“不使用Count的实例而直接调用getTotalCount()”进行输出(3)定义测试类TestCount,在main方法中编写代码,实现题目所要求的输出:可以创建两个VehicleUpdate类的实例,利用System.out.println进行提示输出,在输出中,利用Count.getTotalCo

18、unt()来返回所创建对象的个数。(4)保存为“TestCount.java”的文件。(5)单击菜单中的“工具”,单击“javac“编译此代码,若无误,在“输出窗口”区显示“输出完成(耗时3秒)正常终止”。若有误,双击错误提示语句,在程序编辑区光标会自动跳转到有错误的行,检查程序。记录编译错误提示语句,并写出错误原因及解决方法。(6)单击菜单中的“工具”,单击“java”执行代码,若无误,会在“输出窗口”区显示所要求的输出结果。若输出有误,检查程序。记录运行错误提示语句,并写出错误原因及解决方法。4 (1)单击菜单中的“文件”,选择“新建”,在弹出的菜单中选择“JAVA”,出现java程序编辑

19、区域,定义类Student。(2)为类Student按照UML图定义私有成员变量ID,name,以及一维数组score。(3)为类Student定义带三个参数的构造函数,ID,name分别用于初始化学生的ID号以及name。在构造函数体中,使用maxCourse的大小来创建score数组,并利用随机数生成的办法初始化此数组(方法同实验一的第4题),并计算总分。同实验一的第4题,本例也可以在学习了输入输出流后,利用键盘输入的方法初始化此二维数组。(4)为类Student定义分别取得和设置name,ID,的方法getName(),getID(),setName(),setID()以及返回score

20、数组的方法getScore()(5)定义测试类TestStudentArray,在main方法体中,创建一个对象数组,对数组的每一个对象元素,使用new进行对象的创建,其参数自行指定,其中学生的数目和课程的数目可以定义两个变量maxStudent和maxCourse来确定,maxStudent任意指定,maxCourse按照题目要求指定为4。利用Student类提供的成员方法输出排序前的学生ID,姓名以及各科成绩,利用任意一种排序方法进行总成绩的排序,在排序方法中,比较的是每个学生对象的属性score数组的最后一个元素(总分)的值,交换的是每一个对象元素,也即一维数组的每一个元素。最后同排序前

21、的方法进行排序后的输出。(6)保存文件名为TestStudentArray.java。(7)单击菜单中的“工具”,单击“javac“编译此代码,若无误,在“输出窗口”区显示“输出完成(耗时3秒)正常终止”。若有误,双击错误提示语句,在程序编辑区光标会自动跳转到有错误的行,检查程序。记录编译错误提示语句,并写出错误原因及解决方法。(8)单击菜单中的“工具”,单击“java”执行代码,若无误,会在“输出窗口”区显示所要求的输出结果。若输出有误,检查程序。记录运行错误提示语句,并写出错误原因及解决方法。实验三继承与多态一、实验目的掌握继承、方法重载,方法覆盖,抽象类和接口、super和this关键字

22、,包机制二、实验内容1 创建类Employee和类Manager,如下图所示:Employee+name:String=” “+salary:double+birthDate:Date+getDetails():StringManager+department:String+getDetails():String 在Employee类中的getDetails()方法输出名字和工资;在Manager类中实现方法覆盖,输出名字、工资及所在部门。2 修改为类Employee,创建三个构造函数,第一个带一个参数,用以初始化名字;第二个带二个参数,用以初始化名字和工资;第三个带三个参数,初始化名字、工资

23、和出生日期,实现构造函数的重载。3 在第2题的基础上,修改Manager类,创建三个构造函数,第一个带一个参数,用以初始化部门;第二个带二个参数,用以初始化名字和部门;第三个带三个参数,用以初始化名字、工资和部门;第四个带四个参数,用以初始化名字、工资、出生日期及部门。练习this和super关键字的应用。4 创建一个目录,名为banking,类Account(如下图所示)放在banking包中,Account-balance:double+Account(init balance :double)+getBalance():double+deposit(amt:double)+withdra

24、w(amt:double) 建立一个测试程序TestBanking.java,放在缺省包中,完成功能为:创建一个账户,初始化balance,并做几单简单的交易,最后显示交易后的balance,要求程序运行结果如下:Creating an account with a 500.00 balance.Withdraw 150.00Deposit 22.50Withdraw 47.62The account has a balance of 324.88三、实验步骤1 (1)单击菜单中的“文件”,选择“新建”,在弹出的菜单中选择“JAVA”,出现java程序编辑区域,定义类Employee。为类St

25、udent按照UML图定义protected的成员变量name,salary和birthDate,以及公有成员方法getDetails(),此方法用于输出name,salary和birthDate。(2)定义类Manager,继承Employee,增加一个成员变量department,并覆盖getDetails()方法,用于输出name,salary,birthDate和department。在getDetails()方法体中使用super关键字调用父类的getDetails()方法,以避免重复代码进行输出name,salary,birthDate。(3)定义测试类TestEmployeeMa

26、nager,创建一个Manager实例,调用getDetails()方法进行输出。(4)保存为TestEmployeeManager.java(5)单击菜单中的“工具”,单击“javac“编译此代码,若无误,在“输出窗口”区显示“输出完成(耗时3秒)正常终止”。若有误,双击错误提示语句,在程序编辑区光标会自动跳转到有错误的行,检查程序。记录编译错误提示语句,并写出错误原因及解决方法。(6)单击菜单中的“工具”,单击“java”执行代码,若无误,会在“输出窗口”区显示所要求的输出结果。若输出有误,检查程序。记录运行错误提示语句,并写出错误原因及解决方法。2 (1)同第1题(1),并增加三个构造函

27、数,进行构造函数的重载。在构造函数体中,利用this关键字调用本类的另外的构造函数。其余步骤同第1题。3 (1)同第2题(2)同第1题(2),并增加四个构造函数,进行构造函数的重载。在构造函数体中,使用super关键字调用父类的构造函数。其余步骤同第1题4 (1)单击菜单中的“文件”,选择“新建”,在弹出的菜单中选择“JAVA”,出现java程序编辑区域,定义类为Account(2)为类Account定义私有成员变量balance,初始化balance的构造函数,以及成员方法getBalance()(返回balance的值),deposit()(存入amt,balance的值增加amt),wi

28、thdraw()(取出amt,balance的值减少amt)(3)保存为Account.java。使用javac d . Account.java来编译,或者在EditPlus中再配置一个工具,菜单名字:javac -d命令:D:j2sdk1.4.2_04binjavac.exe(此为本机上安装的jdk目录)参数:-d . $(FileName)初始目录:$(FileDir);选中“捕获输出”。 则会自动在当前目录下创建一个banking子目录,类文件存于此子目录下。(3)定义测试类TestBanking,引入banking.Account类,创建一个Account的实例,调用其成员方法进行存

29、入取出,最后输出。保存为TestBanking.java。注意,如果import banking.*,则Account.java文件不能和TestBanking.java文件放在同一路径下。但如果是import banking.Account,则无此限制。(4)运行输出。记录此过程中出现的总是,并记录解决的方法。实验四 综合应用基于MVC框架进行java web编程一、实验目的掌握MVC框架进行java web编程的基本原理二、实验内容创建一个web程序,主页面是登录页面,输入用户名和密码后,与数据库中的记录进行比较,用户名和密码正确,即显示该用户名登录成功,否则显示该用户名登录失败。基于My

30、eclipse环境,使用mysql数据库三、实验步骤(1)新建web project(2)View层代码:登录页面login.jsp,内容为:输入用户名和密码登录成功页面main.jsp,内容为:提示该用户名登录成功登录失败页面:register.jsp,内容为:提示该用户名登录失败(3)Controller层代码:LoginServlet.java: 用来处理从view传来的用户请求,将请求发给业务逻辑代码LoginHandler处理处理完成后,再将处理结果交由view显示(4)Model层代码LoginHandler.java:业务处理逻辑代码,与数据库交互,判断用户名和密码是否一致。DBPool.java:用来进行数据库连接db.properties:数据库连接属性文件。(5) 配置web.xml (6)布署到tomcat服务器 (7)浏览器下运行,测试。附参考代码:login.jsp: UserName: Password: main.jsp lo

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2