JAVA课程设计报告

上传人:M****1 文档编号:563242986 上传时间:2023-08-21 格式:DOCX 页数:47 大小:354.21KB
返回 下载 相关 举报
JAVA课程设计报告_第1页
第1页 / 共47页
JAVA课程设计报告_第2页
第2页 / 共47页
JAVA课程设计报告_第3页
第3页 / 共47页
JAVA课程设计报告_第4页
第4页 / 共47页
JAVA课程设计报告_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《JAVA课程设计报告》由会员分享,可在线阅读,更多相关《JAVA课程设计报告(47页珍藏版)》请在金锄头文库上搜索。

1、JAVA面向对象程序设计课程设计报告(2011-2012学年第2学期)系另1:厦门理工学院计算机科学与技术系专业名称:10级网络工程1班课程设计科目:学生姓名:JAVA面向对象程序设计课程设计学 号:指导教师:成 绩:完成时间:2012年7月6日题目 JAVA 程序课程设计任务一 手机号码检测器(一)设计任务与目标任务: 手机号码是由11位数字构成,用户在输入手机号码时经常混乱输入若干位 数字或字母,要求你编写一个程序检测用户所输入的手机号码是否符合规则。要求目标:检测所输入的手机号码是否是11位 检测每一位是否都为数字。分析论证: 本题目要求对用户输入的手机号码进行检测,判断输入的正确性。曾

2、经有做 过类似字符比较的题目,可以借鉴。将字符的比较运用进来,把用户的输入字符 和正确的进行比较。但是必须满足多次输入和错误提醒。同时还可以添加提示错 误的位置和错误字符是什么。程序正确运行时可以满足以上功能,基本可以达到题目要求了。(二)方案设计与论证 为了满足多次输入的要求,将提示和输入的操作放在一个循环体中,我采用 了 do_whiele()循环。每次输入结束后提示是否继续输入。在循环中逐步对输入的号码位数和字符类型进行检测。位数可以分超出和不 足,并均给出错误提示。如果位数满足要求后对手机号码类型进行检测。一般手 机号在 09 之间,所以不满足的字符将报错。通过将输入的整个字符串调用

3、charA t(int i)方法对字符串逐位比较。本程序的特点在于可以满足了多次输入和错误字符的显示(内容和位置)。 在程序的调试过程中,有过多次输入正确的号码也会报错(还会报错0位错 误),这是因为记录错误位子的变量放在错误条件下并且未在循环体中初始化为 0。最终解决了此问题。三)程序框图或流程图,程序清单与调用关系Phone+ phone: String+ str: String+ y: char+ x: int+ id: iiit+ 过;iiit+ main(Strin吕 args) : void(四)程序运行的测试与分析实现了多次输入和错误提示,可以判断输入的号码的错误位置及字符, 错

4、误类型,满足了设计构思要求。最终结果如下图:实验结果截图:FrobleasJavadocs COR5O16+ ernnTLate A. Phune1.1.1 Java Applicat 1诸输入电话号码:13B5576E53D输入完成!继续输人吗(Y/K): 请输入电话号码: 123e4567E91输入错误!第匀位输入错误字符已 继缜输人吗(y/R):请输入电话号码;123输入错误,位数不足! 继颔输人吗(Y/N).:请输入电话号码:123345577=3输入错误,位數过第! 继续输人吗(Y/N: 魏出输人!(五)结论心得实验过程中对于判断条件的选择出现了问题,开始时觉得要对输入的字符一 个一

5、个的比较,这样增加了难度也不方便实现。后面改成了将用户输入完成后的 全部字符串当做整体后再来逐位比较。如果能做成手机外形的面板并能一个一个的判断,只要输入错误字符马上提示,那功能将更加完善。任务二 扑克牌(一)设计任务与目标任务:设计一个 Card 类代表扑克牌,每张牌都有自己的花色和大小。创建一 个 DeskOfCards 类保存 54 张扑克牌,设计洗牌、发一张牌、报告剩余牌数的方 法。创建 main 方法测试你的程序。要求目标: 实现洗牌和发牌。 显示当前片面和剩余牌数。分析论证: 本题目需要用到数组来存储一副纸牌,并需要用到随机数来代替随机发 牌,曾经做过类似工作。现在需要将产生的随机

6、数和字牌的大小和花色联系起来, 可以通过数组来实现。同时还要达到可以循环发牌,并有发牌信息显示。(二)方案设计与论证根据题目要求,我准备在类 Card 中用数组存储一副牌(52 张),考虑到扑克 牌有花色和大小并都是固定的,所以用了两个字符串数组分别初始化花色和大 小,再利用下标操作把花色和大小组合在一起,存放另在一个数组里(最终的纸 牌组)。这样就有了一副完整纸牌了。再创建另一个类 DeskOfCard 创建两个 Card 对象,通过在循环里的条件判断 对对象进行操作:洗牌时就将纸牌数组和剩余牌数重新初始化(利用多余的那个 对象)。发牌时用到随机数产生器,产生从 0 到 51 的整数和数组小

7、标对应,每个 元素代表一张牌。测试过程中出现了无法显示牌面的问题,通过对象引用找不到具体的纸牌, 后来在Card类中添加了 getCard(int i)方法返回一张牌,实现了发牌和剩余牌 数,并可以多次发牌。(三)程序框图或流程图,程序清单与调用关系Card-card: String -bao : String .-a:int+ cardl: String .P uardZ :書ttifLgl十 getCard(int i): StringDe skOfCard-count: int+ string: String+ string2: String+ ro: CardO十 n: CardO十

8、main (StriLng: args): void.(四)程序运行的测试与分析从测试过程中达到了分析时的目的要求,实现了洗牌和发牌(显示牌面 和剩余数量)。最终结果如下图:实验结果截图:Problems Jav ado c 山壬 w 匚1 mr 包 t i. c-tl旦 ConEole EMD e 三 kO C :=Ltd J av=a kppli c at i oil C : Pr o gi-:=un Files I J :=lv:=l jre输入您要的操作 k ipai or fap al):f apai抽取的牌用:红桃匚剩余扑克牌数为:51TiJarit. r.o aga i n i:

9、 T/TJ :i :Y输入您要的操作 x i p a i r fapai):f apai抽取的牌为:红桃J剩余扑克牌数为:50TiJarit. r.o again i: Y/M:i :输入您要的操作 (x ipai 匸 fapal):xipai剩余牌数:52Warit t o aga i n i: Y/!J :i :五)结论心得实验过程中,开始没有将纸牌的大小和花色分开来定义,导致需要初始 化52张牌,后俩采用了循环体将花色和大小进行组合达到了目的的同时又简化 了代码,提高了可读性。本来希望最后的结果可以通过图片的方式显示纸牌,但 纸牌的原图片两太大,实现过于繁琐,最终采用了简单的文字表示。希

10、望今后有 机会近一步完善,达到预期效果。任务三 计算器(一)设计任务与目标任务:参考第六章的实验题Telephone Keypad界面设计一个计算器。要求目标:实现输入数字和运算字符并输出结果 结果由对应的运算得出,实现基本运算能力 分析论证:通过设计一个界面展示一个计算器的功能,包括输入数字和符号并进行 准确的运算得出理想的结果。在第六章中的Telephone Keypad实验中做过类似 的界面只是实现的功能不一样,可在这个基础上加入运算功能即可实现要求。(二)方案设计与论证根据题目的具体要求,我设想通过之前的Telephone Keypad实验进行改 进,除了需要加入一些按钮外,还要对具体

11、的按钮功能进行设计。在Calculator 类中进行了面板的设计,之间加入了需要的各个控件,并且加了 Act ionLis tener()类来做事件的触发类。此类中通过eve nt .ge tSource()方法与相应的按键进行对应,以此为判断条 件来决定做什么操作。其中包括了被运算数、运算类型、运算数还有等号的事件。为了可以输出信息还要加入JTextField控件来显示信息,信息通过一个字符串变量来存取。两个JTextField控件分上下,上面显示最后的运算式(包括 每次输入时均要逐步显示输入内容),下面显示最后的结果并以一定的格式输出。 最后还要满足多次输入,因此设计了清楚按键,每次清楚后

12、可以进行下一次的运在程序的调试的过程中出现了,输出内容的错误。不能逐一的输出输入的内 容,最后也没有在上面显示框中显示完整的运算式。通过检查,发现是字符串的 添加位置和没有将内容在原有基础上增加,而是每次更新字符串。最终通过修改 解决了问题。其间,还出现了按键功能的一些的错乱,都是小问题,多次调试后 基本达到了一个简单运算器的功能。(三)程序框图或流程图,程序清单与调用关系But t onL i st ener+ actionPerformed (ActiorLEent event) : voidPanelCal culat ordf : DeciBa.1 FoTBat j i e eio i

13、 JTex tFi eld. j i e eio2 i JTex-tFeild biLt ton: JBut tonpanel1z JPanelpanel1: JPane2panel1i JPaneSre sal e 二 doirb 1 e ikiLB 1 : doubl e ikiLB 2 : doubl e 7-Huasiiaii: i ntkonE: ints: Si rinEsi : St Tint: St rinE+ calculator: Calculator+ frame: JFrame+ mainCStrin吕args)(四)程序运行的测试与分析测试过程中进行了多次的运算,包括

14、加、减、乘、除。每次都可以逐一输出 输入的内容并能得出正确的结果并输出。清除后可以再次运算,基本达到了预期 要求。最终结果如下图:实验结果截图:(五)结论心得本程序因为涉及的控件很多,所以排版和引用都要十分注意,不然容易引 用错误,导致引用不到你所点击的那个按键等。还要注意在监听器里的条件判断 时相应的操作要考虑清楚。为了界面美观和人性化,要将按键的顺序按一定的顺 序排列不能随机添加。本程序不足的地方在于运算类型只有加减乘除,并且不能再完成一次运算 后立即进行下一次运算,必须清楚后重新开始。这些不足还有待改善。相信如果 改进过后,这个计算器会达到更加完善的功能和实用性。任务四愤怒的小鸟(一)设

15、计任务与目标任务:愤怒的小鸟是一款“亿人迷”的游戏,据说大家喜欢它的原因在于大家喜欢 抛物线胜过直线。例题8.15-8.16是笑脸图片直线运动的例子,请修改它在X 轴和Y轴的运动轨迹,将它改成抛物线运动。要求目标:实现界面中小鸟打击目标有准确的抛物线 可以多次并操作简单分析论证: 在例题笑脸的运动中实现了图片按照一定的像素进行平移,到达一个目 标地。所以可以以此为基础进行改进。对运动中的函数进行改进,将直线运动改 成抛物线。并有效开始时出现提示。用户可以对图片的出发位置进行控制。(二)方案设计与论证为了达到预期的目标,我将创建了一个BirdPanel类来存放各种组件,主要 是存入多张图片和一个十分重要的也是这个程序的核心一一定时器Timer。这个 游戏最终可以看到的效果是图片的移动,所以需要通过控制图片在面板中的位置 来实现移动。所以定时器就十分重要了,有了定时器就可以在间隔一段时间中多次触发事

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号