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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

java经典案例.docx

1、java经典案例1. 经典案例1. 1.1. 案例1:完成一个Java中间件软件包的开发、打包、发布和使用 定义完成一个Java中间件软件包的开发、打包、发布和使用,要求学员按照以下步骤完成一个Java中间件产品的开发,打包,发布和使用的完整过程:1, 首先在工作目录下建立module1子目录,在该目录下创建Model.java类,并声明包: com.tarena.middle 。2, 使用java d 命令编译以上程序,检查编译后的目录结构。3, 使用jar命令将编译完成的字节码文件打包。4, 修改CLASSPATH,让其指向上一步中所创建的jar文件。5, 重新写一个类Test.java,

2、(Test类与Model类不在同一个包下)在该类的main方法中使用Model类。 说明1, 该案例主要考察以下知识点:编译Java程序,Java程序的包声明,jar命令的使用,CLASSPATH的设置,import的使用等。2, 教师可以在课堂上完整演示本案例,并要求学员在课后独立完成本案例。3, 该案例难度系数:设计级 案例2:华氏温度与摄氏温度转换 定义华氏温度与摄氏温度转换,编写一个程序,将华氏温度转换成摄氏温度或将摄氏温度转化成华氏温度。要求程序运行时从控制台读入温度值及单位,并输出另一种温度值及单位,例如:若用户输入27 C则程序输出 81 F;若用户输入96 F,则程序输出36

3、C(其中C代表摄氏温度,F代表华氏温度),华氏温度与摄氏温度转化的公式为:C = 5 (F - 32) / 9F = 9 C / 5 + 32要求输入的温度值是整数,输出的温度值也是四舍五入后的整数。 说明1, 该习题主要考察知识点:变量的定义,控制台输入,算术运算。2, 教师应该讲解怎样使用Scanner做控制台数据的读入,并将此段代码发布给学员。3, 教师应该讲解对double值四舍五入的方法。4, 要求学员能使用Scanner从控制台读取整数,字符串,double等类型的数据。5, 该案例难度系数:程序级 案例3:个人所得税计算器 定义个人所得税计算器,编写程序实现个人所得税的计算,要求

4、从控制台输入本月实际收入,求出本月应纳个税。个人所得税计算公式:月应纳税所得额=月实际收入个税起征点(2000.00)月应纳个人所得税税额=K1F1+K2F2+K3F3+KnFn其中Kn表示月应纳税所得额在第n级的部分,Fn表示第n级的税率。个人所得税率表: 级数全月应纳税所得额税率(%)1不超过500元的5超过500元至2,000元的部分10超过2,000元至5,000元的部分15超过5,000元至20,000元的部分20超过20,000元至40,000元的部分25超过40,000元至60,000元的部分30超过60,000元至80,000元的部分35超过80,000元至100,000元的部

5、分40超过100,000元的部分45 说明:1, 该习题主要考察的知识点:控制台输入和复杂的选择流程控制。2, 计算个人所得税时要注意,应纳税所得额要分段计算,即:若某人的本月应纳税所得额为:7800.00元,则其中有500.00元适用税率5%;有1500.00元适用税率10%;有3000.00元适用税率15%;有2800.00元适用税率20%。则该员工应纳税:5005%+150010%+300015%+280020%=1185.00元3, 该案例难度系数:程序级 案例4:百分制分数和等级制分数的转换 定义百分制分数与等级制分数的转换,编写程序,将一个百分制分数转化为等级制分数并输出出来,转化

6、规则如下:90分以上 A80分89分 B70分79分 C60分69分 D60分以下 E要求百分制分数从控制台读入,并在程序中判断读入的分数值是否有效。转化后得到的等级制分数输出在控制台。 说明:1, 该习题主要考察知识点:控制台输入,多路分支选择结构(switchcase)。2, 教师应启发学生如何设计switch-case3, 该案例难度系数:程序级 案例5:猜数字游戏 定义编写程序,实现控制台的猜数字游戏。游戏运行时产生一个01000之间的随机整数,要求用户从控制台输入数字,若输入的数字比产生的数字小,则输出:“太小了,再大一点!”;若输入的数字比产生的数字大,则输出:“太大了,再小一点!

7、”,若输入的数字和产生的数字相等,则输出:“恭喜你猜对了!”然后退出程序;若用户猜了10次还未猜对,则输出:“你太笨了,下次再来吧!”然后退出程序。 说明:1, 该案例主要考察的知识点:循环控制,控制台输入和输出,随机数的生成。2, 教师应该讲解随机数产生的方法,并将该代码发布给学员。3, 该案例难度系数:设计级 案例6:九九乘法表的输出 定义要求编写程序,在控制台输出九九乘法表,如下图所示:11=112=2 22=413=3 23=6 33=914=4 24=8 34=12 44=16 说明:1, 该案例主要考察使用两层循环的嵌套来进行复杂的循环流程的控制。2, 该案例可以作为教学案例,也可

8、以要求学生当作课堂练习完成。3, 该案例难度系数:程序级 案例7:输出唐诗 定义用二维数组保存一首唐诗(五言或七言),每一行代表一句,保存格式如下:剑外忽传收蓟北初闻涕泪满衣裳却看妻子愁何在漫卷诗书喜欲狂白日放歌须纵酒青春作伴好还乡即从巴峡穿巫峡便下襄阳向洛阳要求将这首唐诗按照古文的方式输出出来(从右至左,竖行排列),输出格式如下:便 即 青 白 漫 却 初 剑下 从 春 日 卷 看 闻 外襄 巴 作 放 诗 妻 涕 忽阳 峡 伴 歌 书 子 泪 传向 穿 好 须 喜 愁 满 收洛 巫 还 纵 欲 何 衣 蓟阳 峡 乡 酒 狂 在 裳 北 说明:1, 该案例主要考察的知识点:二维数组的访问和元

9、素的操作。2, 教师可以画图分析将唐诗按照古文的方式输出时数组元素下标的变换规则。3, 该案例难度系数:设计级 案例8:酒店前台客房管理程序 定义某酒店有10层楼,每层楼有12个房间,要求为该酒店设计一套简单的前台房间管理程序,该程序可以通过在命令行输入命令来为客人办理入住和退房手续。要求该程序支持通过命令行输入以下命令来进行入住,退房及查询的操作:search :查询所有房间的状态in 1202 tangliang :姓名为tangliang的客人入住1202房间out 1202:1202房间退房quit:退出程序 说明1, 该案例主要考察知识点:数组的定义和遍历,两层循环来遍历二维数组。2

10、, 教师可以将程序框架搭建起来,让学员实现其中的部分代码。3, 在本例中要求所有程序代码都写在main方法中。4, 该案例难度系数:架构级代码: 案例9: 用数组解决约瑟夫环问题 定义用数组实现约瑟夫出圈问题。 n个人排成一圈,从第一个人开始报数,从1开始报,报到m的人出圈,剩下的人继续开始从1报数,直到所有的人都出圈为止。对于给定的n,m,编写程序求出所有人的出圈顺序。 说明:1, 该案例主要考察的知识点:数组的使用和数组元素的操作2, 教师应该详细讲解约瑟夫环的问题模型,以及如何用数组来模拟约瑟夫环的算法。3, 该案例难度系数:设计级 案例10:数组排序 定义介绍常用的数组排序方法:冒泡排

11、序或选择排序,让学员至少掌握一种数组排序的方法。 说明:1, 该案例让学员至少掌握一种数组排序的算法,对各种排序算法的优劣性有一定了解。2, 讲师讲解各种排序算法的原理,让学员自己实现其中至少一种排序方法的代码。3, 该案例难度系数:程序级 案例11: 用模块化的设计重构以前的案例(方法的定义和调用) 定义将案例8:酒店前台客房管理程序的代码使用模块化的方式重新组织,抽象出一些方法来分别完成某个模块的任务,然后在主方法中调用这些方法,将程序组织起来。 说明:1, 该案例考察方法的定义与调用。2, 教师可以给出部分方法的定义接口,让学员实现,并调用。3, 该案例难度系数:设计级 案例12:扫雷游

12、戏的核心功能的实现 定义在该案例中我们要实现类似于windows扫雷游戏程序的核心功能,我们将扫雷游戏的核心功能分为以下4个模块:1, 随机布雷模块在该模块中,我们要为扫雷游戏随机的布置地雷,扫雷游戏的布雷面板可以用二维int数组表示,若某位置为地雷,则该位置用数字-1表示,若该位置不是地雷,则暂时用数字0表示。我们要编写程序完成在该二维数组中随机布雷的操作,程序读入三个参数:布雷面板的行数(r),列数(c),布置的地雷数(n),且要满足要求0nrc0.75(布置地雷的密度最大为75%)。程序运行后将n个地雷随机的布置在rc的二维数组中,产生如下的二维数组:000-100-10-100-100

13、0-1-10-100-10-1-1000-100-1000-1如果雷是-1。则continue,进行下一次循环,重新查找随机数2, 计算每个位置周围的地雷数以上一模块产生的随机地雷分布的二维数组为数据来源,计算该二维数组中不是地雷的位置周围的8个位置总共有多少个地雷,将这一数字存储在该位置,产生如下二维数组:122-121-12-144-1233-1-13-122-15-1-1322-132-1112-1循环访问2为数组,依次拿到2为数组里的数,如果元素为-1,continue,如果元素不是-1,计算该位置周围的8个位置有多少个-1;左上 i-1,j-1 左中 i-1.j左右 i-1;j+1左

14、二1: i,j-1 左二2: ij 左三 :i,j+1 3, 输出布雷面板:我们要编写程序完成布雷面板的控制台输出,为了区分布雷面板中哪些位置是已经被用户排开的,哪些位置是未被排开的,我们对以上二维数组的数据定义作如下约定:若该位置保存的数字是n,则n满足如下条件:1) 若0=n=8,则表示该位置不是地雷,其周围位置的地雷数就是n,且该位置未被用户排开。2) 若10=n=18,则表示该位置不是地雷,其周围位置的地雷数就是n%10,且该位置已经被用户排开。3) 若n=-1,则表示该位置是地雷,并且未被用户标记。4, 用户排雷程序模块完成以上两个模块后,用户可以完成排雷的操作,我们要编写一个程序来

15、支持用户通过控制台来排除地雷,用户可以在控制台输入坐标位置,来表示排除该位置是地雷。当用户输入坐标位置后,程序需要执行如下操作:1) 若该坐标位置是地雷(值为-1),则,程序结束,用户排雷失败。2) 若该坐标位置存储的数字是大于0小于等于8的整数(该位置不是地雷,该位置周围地雷数等于该数字,该位置未被用户排开),则将该位置排开(并将该位置的数字+10,表示该位置已经排开),然后重新输出一遍布雷面板。3) 若该坐标位置存储的数字是大于等于10小于等于18的整数(该位置不是地雷,该位置已经被排开),则输出错误信息,请用户重新输入。4) 若该坐标位置存储的数字等于0(该位置不是地雷,该位置周围的8个

16、位置也没有地雷,该位置还未被用户排开),则找该位置的周围8个位置,将其排开,排开时递归的执行排雷程序模块的操作。 说明:1, 该案例可分为四个子案例单独讲解,或作为课堂练习或课后作业让学员完成。2, 其中前三个模块比较简单,要求大多数学员都能独立完成,最后一个模块比较复杂,需要设计方法的递归调用,有基础的学员可以在教师和项目经理的指导下完成。3, 该案例考察了以下知识点:数组的操作,复杂流程的控制,方法的递归调用等。4, 该案例难度系数:架构级 案例13:五子棋游戏v1.0(控制台版本) 定义 编写程序实现两人互玩的五子棋游戏,游戏开始时要求在控制台输出以下棋盘,然后提示黑方和白方下子,玩家从

17、命令行输入落子坐标,如:a f,表示在a,f坐标落子,其中黑方的子用表示,白方的子用O表示,空白位置用*表示,每有一方落子,则要重新输出棋盘的状态,程序还要能判断某一方获胜,并终止游戏。棋盘初始状态: 0 1 2 3 4 5 6 7 8 9 a b c d e f0 * * * * * * * * * * * * * * * *1 * * * * * * * * * * * * * * * *2 * * * * * * * * * * * * * * * *3 * * * * * * * * * * * * * * * *4 * * * * * * * * * * * * * * * *5 *

18、 * * * * * * * * * * * * * * *6 * * * * * * * * * * * * * * * *7 * * * * * * * * * * * * * * * *8 * * * * * * * * * * * * * * * *9 * * * * * * * * * * * * * * * *a * * * * * * * * * * * * * * * *b * * * * * * * * * * * * * * * *c * * * * * * * * * * * * * * * *d * * * * * * * * * * * * * * * *e * *

19、* * * * * * * * * * * * * *f * * * * * * * * * * * * * * * *1 定义一个字符型的二维数组定义棋盘状态,1616,赋初始值,每个位置*号输出来2 读取用户输入,根据黑方坐标把数组中3行6列拿出来看一下,如果是黑色的就落下,如果该位置没有*号,就提示用户该位置有棋子3 判断每落下一个棋子,程序有没有获胜,如果没有获胜提示白方落子或黑子罗子4如果5子排列 就获胜说明1, 该案例主要考察的知识点:复杂循环的控制,数组的应用,流程控制解决复杂问题。2, 教师可以讲解如何判断某一方获胜的算法。3, 讲师可以将整个程序分模块,将每个模块的方法定义好

20、,由学员来实现。4, 该案例难度系数:架构级 案例14:类的抽象栈 定义栈是一种常用的数据结构,其特点是存储数据时“先进后出”。写一个类用来模拟栈这种数据结构,要求底层使用数组存储数据,并给出相应的进栈和出栈的方法。还要求定义一个测试类,包含主方法,在主方法中测试栈的定义是否正确(生成栈对象,调用栈的方法)。 说明1, 该案例主要考察学员抽象数据类型的能力。2, 教师可以启发学生思考,抽象数据类型时如何抽象属性和方法,如何将属性和方法的定义细化。3, 该案例难度系数:设计级 案例15:类的抽象人类 定义写一个类Person,包含以下属性:String name; int age; boolea

21、n gender;Person partner。为Person类写一个marry(Person p)方法,代表当前对象和p结婚,如若可以结婚,则输出恭贺信息,否则输出不能结婚原因。要求在本类中写一个主方法,来测试以上程序(生成两个Person对象,并调用它们的marry方法)。下列情况不能结婚:1,同性;2,未达到结婚年龄,男22,女20;3,某一方已婚 说明1, 该案例主要考察类的自关联的定义和使用。2, 该案例还可做如下扩展:将int age的定义改为 Calendar birthday的定义,要求学员使用Calendar操作日期数据。3, 教师可以借助该案例讲解java.util.Cal

22、endar和java.util. GregorianCalendar的使用,让学员熟悉日期数据的处理方法。4, 该案例难度系数:设计级 案例16:酒店前台客房管理程序v2.0(面向对象实现) 定义将以前写的酒店房间管理程序按照面向对象的方式重新设计,抽象出以下类:酒店类: 属性:酒店名称;酒店所有房间的数组。方法:查询房间状态 boolean isEmpty(int roomNumber);入住 boolean checkIn(int rid,String gName),退房boolean checkOut(int rid);开始运行 void start(); 说明:1, 该案例考察学员面向

23、对象的抽象能力。2, 教师可以指导学员搭建好程序的代码框架,让学员完成方法。3, 该案例难度系数:设计级 案例17:继承关系的设计和实现 定义考虑一个具有各种图形类的图形系统,这些图形包括长方形、正方形、三角形、圆形等。例如,长方形可以有长、宽、中心点等数据,而正方形和圆形可能只有一个中心点和一个边长或半径。在一个精心设计的图形系统中,这些类应派生于一个公共的类(即Figure类)。现要求实现这样一个系统。 Figure类是父类。定义从Figure类继承的Rectangle和Triangle类。每个类都有erase和draw方法。draw方法将该图形在控制台输出出来,而erase方法则擦除这些

24、图形(只需清屏,通过输出空行,或者通过执行更复杂的动作)。 说明:1, 该案例主要考察的知识点:继承关系的定义,方法的覆盖。2, 该案例难度系数:程序级 案例18:接口的应用DAO模式 定义我们要开发一套通用的网站用户管理程序,该程序主要包含用户注册和用户登录等基本功能。用户的注册数据可能会存储在不同的介质中(文件或数据库)。为了让业务程序访问数据时不需要去关注数据的存储介质,我们需要在程序中抽象一个对数据访问的接口,该接口中给出了业务程序可能对数据访问的所有方法的定义。然后分别写出该接口的两个实现类,从文件和数据库中访问数据。以我们现在所学的知识,我们暂时还无法去实现这两个类,但我们可以在相

25、应的方法中输出语句来模拟一个实现。即便这样,我们还是可以定义一个可以真正实现的类,该类从数据访问用户的注册数据。定义DAO接口,定义2个类,查询和添加方法 然后调用该接口中的类 说明:1, 该案例描述接口的意义,和使用接口降低耦合。2, 教师可以带领学员完成该案例,并讲解使用接口给整个程序结构带来的好处。3, 该案例难度系数:架构级 案例19:字符串的应用字符串解析 定义Unix机器中用9个字符来表示文件的访问权限,其中前三位表示文件拥有者对文件的权限,中间三位表示同组者对文件的权限,最后三位表示其他人对文件的权限,而每一类不同的角色对文件的权限又分为读(r),写(w)和执行(x)三种权限,如

26、:“rw-r-r-”则表示拥有者具有读和写的权限,同组者和其他人只有读的权限。同时,我们也可以对权限种类进行编码,如:读=4,写=2,执行=1,这样文件的权限也可以用三位八进制数字来表示,例如:“644”就等价于“rw-r-r-”。现在要求编写程序将给定的文件权限字符串转换为8进制的编码值,或者将8进制编码值转化为文件权限字符串。 说明:1, 该案例考察的知识点:字符串的操作,进制的转换,Integer和String的转化等。2, 教师可以带领学员完成从字符串到8进制数字的转化程序,要求学员自己完成逆向的转化程序。3, 该案例难度系数:设计级 案例20:模拟ArrayList的实现MyArra

27、yList类 定义自己写一个MyArrayList类,实现java.util.ArrayList类的核心功能,要求底层使用数组存储数据,能实现自动扩容,能使用Iterator遍历,实现List接口的常用方法。 说明1, 该案例主要考察学员对ArrayList实现原理的掌握,进一步加深面向对象的抽象思想,熟练掌握数组操作。2, 教师可以写出该类的代码框架,让学员实现其中的重要方法。3, 该案例的重点和难点在于add方法中实现数组自动扩容和iterator方法中实现并得到迭代器。4, 该案例难度系数:程序级/设计级 案例21:模拟LinkedList类的实现MyLinkedList类 定义自己写一

28、个MyLinkedList类,实现java.util.LinkedList类的核心功能,要求底层使用链表存储数据,能实现自动扩容,能使用Iterator遍历,实现List接口的常用方法。 说明:1, 该案例主要考察学员对链表的实现原理的掌握,进一步加深面向对象的抽象思想,熟练掌握链表的定义和操作。2, 教师可以写出该类的代码框架,让学员实现其中的重要方法。3, 教师应该讲解Java实现链表的基本方法。4, 该案例难度系数:程序级/设计级 案例22:反射实现类的动态加载 定义编写如下格式的配置文件,然后根据配置文件的参数加载类,生成实例,设置属性的值,并调用方法,在该案例中假定类一定有无参构造方

29、法,假定属性类型是String,假定方法都是无参的。CLASS_NAME=tts.cookbook.key22.StudentFIELD_NAME=nameFIELD_VALUE=zhangsanMETHOD_NAME=study 说明1, 该案例主要考察学员对反射的理解,使用反射进行类的动态加载。2, 教师应该讲解使用Properties装载配置文件的方法,并将该段代码发布给学员。此时并不需要学员理解文件访问的方法。3, 教师可以引导学员思考一下如果没有题目所给的那些假设,如果要访问的属性和方法不止一个,那用Properties格式的配置文件就不能很好的描述了,这时需要一种有层次感能自我说明

30、的数据描述格式XML。4, 该案例难度系数:架构级 案例23:简易计算器的界面设计及实现 定义 使用AWT和Swing设计简单的计算器界面,并实现基本的运算功能,如下图所示: 说明:1, 该案例主要考察学员对基本图形组件和布局管理器的使用。2, 教师可以讲解多层布局设计的原理和基本方法。3, 教师可以讲解实现运算的基本算法。4, 该案例难度系数:程序级 案例24:简易记事本程序的界面设计 定义 使用AWT和Swing设计一个类似于windows记事本的程序界面,要求使用菜单。 说明:1, 该案例主要考察学员对基本图形组件,布局管理器和程序菜单的设计和使用。2, 教师可以讲解多层布局设计的原理和基本方法。3, 教师可以讲解JFileChooser和JColorChooser的使用。4,

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

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