




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学华夏学院课程设计报告书课 程 名 称 java课程设计 课程设计总评成绩 学生姓名、学 号 李百康、10213312204 学 生 专 业 班级 物联网1122 指 导 教 师 姓名 苏明霞 课程设计起止日期 2014-6-142014-6-20 武汉理工大学华夏学院java语言课程设计课程任务书java语言课程设计是“面向对象程序设计(java)”课程之后的一个教学实践环节,是信管专业的重要实践性课程。其基本任务是综合利用课程中学到的编程知识和编程技巧,完成具有一定难度、一定编程量的课程设计题目,使学生掌握高级编程语言的知识和编程技术,掌握程序设计的思想和方法,具备利用计算机求解实际问题的能力。同时也是对软件开发过程的综合训练。通过java语言课程设计,应该达到以下基本目标:(1) 进一步巩固和复习java程序设计的基础知识,提高编程技术。(2) 进一步掌握java面向对象的编程思想。(3) 进行利用java语言开发项目的训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。(4) 提高学生程序调试的技巧和程序设计的能力。(5) 提高学生分析问题、解决问题以及实际运用的能力。二、课程设计内容及基本要求本课程设计包含如下两个题目:1. 计算器基本要求:编写程序实现类似下图所示的图形用户界面,实现windows计算器功能2. 数字秒表基本要求:设计一个图所示的数字秒表,实现计时启动、暂停、继续、停止和重置等功能,要求多个按钮之间的状态是相互关联的。三、学时分配进度要求本课程设计将安排在第18周, 通信实验室223机房。具体安排如下:本课程设计的时间为一周,学时分配如下表:序号内容时间1教师讲解第一题;学生查阅资料、准备程序周一上午2上机调试、测试第一题程序周二全天3教师讲解第二题;学生查阅资料、准备程序周三上午4上机调试、测试第二题程序周四全天5分组答辩、提交课程设计报告及相关文档,教师验收评分周五 签名: 日期:1. 设计题目与要求:1.1. 题目:java程序课程设计1.2. 要求:1.2.1. 计算器基本要求:编写程序实现类似下图所示的图形用户界面,实现windows计算器功能1.2.2. 数字秒表基本要求:设计一个图所示的数字秒表,实现计时启动、暂停、继续、停止和重置等功能,要求多个按钮之间的状态是相互关联的。2. 需求分析:2.1. 在日常生活中计算器的使用频率非常的高,比如科学计算器、数值计算。会计业务等,在applet中实现一个精巧实用的计算器,可以让用户在使用网站服务的同时,可以很便捷的进行数据运算,可增加页面的实用性。2.2. 同时也让用户的操作更加的方便与快捷。本次课程设计要求实现一个具有四则运算的计算器,拥有加减乘除功能,并且还要求具备清零等功能。3. 设计思路与思想:3.1. 思路:本应用程序继承自框架类cframe。此程序使用frame布局管理器flowlayout,将单行文本框加入到最上方,含有各种按钮的两个面板panel加入到下方区域,包含各种按钮的面板采用1-3和4-6的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:button=new cbutton(m+);add(bmc);button.add;actionlistener(new pressbbutton();事件监听器中事件处理方法class pressbdengyu implements actionlistener本应用程序中的数字按钮和运算符按钮可以分别定义以下两个类的对象组件 数字按钮button类如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; 3.2. 思想:设计这个计算器主要是参考windows操作系统中自带的计算器,由于余水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型。4. 课程设计安排4.1. 本课程设计将安排在第17周, 教育技术中心。具体安排如下:4.2. 第一天,下发任务书,学生查阅资料4.3. 第二天,系统设计和原型开发4.4. 第三,四天 系统功能实现4.5. 第五天,系统调试 测试 打包和验收5. 程序说明:5.1. 数据分析 5.1.1. 计算器:计算器的程序设计,必然有数据的输入,当中就包含运算符和数字,都要通过计算器上的button按钮选项按键输入进去,里面录入的为double型的数据,进行运算时比较方便,不用进行多次类型转换。5.1.2. 计时器:计时器的程序设计,所有功能都要通过计时器上的button按钮来实现,计时开始后通过一个boolean isrun来确定计时器运行的状态,在不同的状态可以按下不同的按键,还是较为方便的。6. 类的设计6.1.1. 计算器: class cframe extends frame 是初始化界面,以及响应用户的操作。cframe是个内部类,功能是进行进制的转换。6.1.2. 计时器:class timer extends frame implements runnable,actionlistener 是初始化界面,以及响应用户的操作。public void run()是个内部类,功能是进行时间进制的转换。6.2. 功能设计6.2.1. 计算器:数字键按钮,选中所需要进行计算的数字。(”09”)。运算符按钮,选中所需要进行的四则运算。(”+”、”-“、”*”、”/”)。点击”=”按钮,输出运算的结果。点击”ce”按钮,实现数字的清零。点击”c”按钮,实现显示框的重置6.2.2. 计时器:开始按钮,让计时开始;暂停按钮,让计时暂停;继续按钮,让计时重新开始;停止按钮,让计时停止;重置按钮,让计时回到初始状态;6.3. 程序分析6.3.1. 计算器本程序是一个使用frame容器作为java application程序图形用户界面。本程序有两个类组成,一个是主类,该类中main()方法创建了一个了框架类,在框架里设计了计算器的布局,以及对各个按键按下之后的对应的事件产生。6.3.2. 计时器:本程序也是使用frame容器作为java application程序图形用户界面。本程序有两个类组成,一个是主类,该类中main()方法创建了一个了框架类,在框架里设计了计时器的布局,以及对各个按键按下之后的对应的事件产生。开始6.4. 流程图主类中定义主方法容器中增加按键和对个按键的监听写各个按键的方法主方法中定义主框架主框架中添加显示框和两个容器计算器流程图7. 运行结果和结果分析: 7.1. 运行结果:7.1.1. 计算器:7.1.2. 计时器:7.2. 结果分析:7.2.1. 计算器:计算器正常工作以及显示出来,界面分为三个部分,上方的显示区域,中间的文字控制区域,和下方的输入区域,以三个方面来组成整个计算器,计算器上的每个功能都是仿造win上的计算器制作的,计算器非常的好用,除了不支持键盘直接输入,其计算功能还是可以打败许多大街上卖的计算器的。7.2.2. 计时器:计时器可以正常工作以及显示,按下开始后可以按下暂停、停止两个按键,按下停止后可以按下重置按钮,计时器时间精确达到毫秒级。8. 自我评价与总结:作为一名物联网工程专业的学生,我觉得能做类似的课程设计是十分有意义,而且是十分必要的。经过一周的努力,计算器课程设计终于结束了,虽然很忙碌、很疲劳,但是收获很大当然在本次课程设计的过程中,我碰到了很多问题,比如写好的程序无法运行,最先是缺少没有权限调用什么什么的,百度之后解决了。还有就是实现退格功能时不知道怎样处理,最后上网百度了一下才找到了方法,果然网络的时代是学习的时代。还有取反按钮的一个bug,后来发现是没有把取反键设计进去。还遇到了其他的困难,这些花费了很多时间,使我失败了很多次,但是通过我不解的努力还是一一克服了这些问题,最终还是成功了。课程设计中,我的java能力理所当然的提高了,对java不像刚开始学习的时候那样模棱两可的感觉,java这种面相对象的编程方法,是非常好学习的。附录:程序清单,计算器:package jisuanqi;import java.awt.*; import java.awt.event.*;public class calculator public static void main(string args) cframe f = new cframe(); class cframe extends framedouble one,two,m;textfield tf;int op=-1;cpanelu p1;cpaneld p2;cframe() super(calculator); setlayout(new flowlayout(flowlayout.center); setbackground(new color(100,150,150); setforeground(color.white); setresizable(false); setsize(300,250); tf = new textfield(22); tf.seteditable(false); tf.setbackground(new color(108,118,103); tf.setforeground(color.white); tf.setfont(new font(arial,font.bold,16); add(tf); p1= new cpanelu(); p2 = new cpaneld(); add(p1); add(p2); setvisible(true); addwindowlistener(new wclose(); class cbutton extends buttoncbutton(string s)super(s);setbackground(color.blue);class cpanelu extends panelcbutton bbs,bce,bc;cpanelu()setlayout(new gridlayout(1,3);bbs=new cbutton(backspace); bce=new cbutton(ce); bc=new cbutton(c);add(bbs);bbs.addactionlistener(new pressbbs();add(bce);bce.addactionlistener(new pressbce();add(bc);bc.addactionlistener(new pressbc();class cpaneld extends panelcbutton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bpoint,bp,bm,bcheng,bchu,bdengyu,bdaoshu,bqiuyu,bsqrt,bms,bmr,bmc,bmp,bqufan;cpaneld() setlayout(new gridlayout(4,6);b1=new cbutton(1);b2=new cbutton(2);b3=new cbutton(3);b4=new cbutton(4);b5=new cbutton(5);b6=new cbutton(6);b7=new cbutton(7);b8=new cbutton(8);b9=new cbutton(9);b0=new cbutton(0);bpoint=new cbutton(.);bp=new cbutton(+);bm=new cbutton(-);bcheng=new cbutton(*);bchu=new cbutton(/);bdengyu=new cbutton(=);bdaoshu=new cbutton(1/x);bqiuyu=new cbutton(%);bqufan=new cbutton(+/-);bsqrt=new cbutton(sqrt);bms=new cbutton(ms);bmr=new cbutton(mr);bmc=new cbutton(mc);bmp=new cbutton(m+);add(bmc);bmc.addactionlistener(new pressbmc();add(b7);b7.addactionlistener(new pressb7();add(b8);b8.addactionlistener(new pressb8();add(b9);b9.addactionlistener(new pressb9();add(bchu);bchu.addactionlistener(new pressbchu();add(bsqrt);bsqrt.addactionlistener(new pressbsqrt();add(bmr);bmr.addactionlistener(new pressbmr();add(b4);b4.addactionlistener(new pressb4();add(b5);b5.addactionlistener(new pressb5();add(b6);b6.addactionlistener(new pressb6();add(bcheng);bcheng.addactionlistener(new pressbcheng();add(bqiuyu);bqiuyu.addactionlistener(new pressbqiuyu();add(bms);bms.addactionlistener(new pressbms();add(b1);b1.addactionlistener(new pressb1();add(b2);b2.addactionlistener(new pressb2();add(b3);b3.addactionlistener(new pressb3();add(bm);bm.addactionlistener(new pressbm();add(bdaoshu);bdaoshu.addactionlistener(new pressbdaoshu();add(bmp);bmp.addactionlistener(new pressbmp();add(b0);b0.addactionlistener(new pressb0();add(bqufan);bqufan.addactionlistener(new pressbqufan();add(bpoint);bpoint.addactionlistener(new pressbpoint();add(bp);bp.addactionlistener(new pressbp();add(bdengyu);bdengyu.addactionlistener(new pressbdengyu();class wclose extends windowadapter public void windowclosing(windowevent e) system.exit(0); class pressbp implements actionlistener public void actionperformed(actionevent e) try one = double.parsedouble(tf.gettext(); op = 0; tf.settext(); catch(exception ee) class pressbm implements actionlistener public void actionperformed(actionevent e) try one = double.parsedouble(tf.gettext(); op = 1; tf.settext(); catch(exception ee) class pressbcheng implements actionlistener public void actionperformed(actionevent e) try one = double.parsedouble(tf.gettext(); op = 2; tf.settext(); catch(exception ee) class pressbchu implements actionlistener public void actionperformed(actionevent e) try one = double.parsedouble(tf.gettext(); op = 3; tf.settext(); catch(exception ee) class pressbqiuyu implements actionlistener public void actionperformed(actionevent e) try one = double.parsedouble(tf.gettext(); op = 4; tf.settext(); catch(exception ee) class pressbdengyu implements actionlistener public void actionperformed(actionevent e) try double result =0; two = double.parsedouble(tf.gettext(); switch(op) case 0: result=one+two; break; case 1: result=one-two; break; case 2: result=one*two; break; case 3: result=one/two; break; case 4: result=one%two; break; tf.settext(string.valueof(result); catch(exception ee) class pressbc implements actionlistener public void actionperformed(actionevent e) try one=0;two=0; tf.settext(); catch(exception ee) class pressbsqrt implements actionlistener public void actionperformed(actionevent e) try double x=double.parsedouble(tf.gettext(); double y; y=math.sqrt(x); tf.settext(y+); catch(exception ee) class pressbbs implements actionlistener public void actionperformed(actionevent e) try string text = tf.gettext(); text = text.substring(0,text.length()-1); tf.settext(text); catch(exception ee) class pressbce implements actionlistener public void actionperformed(actionevent e) try tf.settext(); catch(exception ee) class pressbqufan implements actionlistener public void actionperformed(actionevent e) try string text = tf.gettext(); if (text != ) if(text.charat(0) = -) tf.settext(text.substring(1); else if(text.charat(0) = 0 & text.charat(0) 59d)seconds=0d; minutes=minutes+1; system.out.print(minutes); refresh(); catch(exception e) public void actionperformed(actionevent e) if(e.getactioncommand().equals(开始) startcount(); else if(e.getactioncommand().equals(暂停) tstopcount(); else if(e.getactioncommand().equals(继续) continuscount(); else if(e.getactioncommand().equals(停止) stopcount(); else reset(); public void refresh()display.settext(tostring(); public void startcount() if(!isrun)isrun=true; mb=new thread(this); mb.start(); reset.setenabled(true);tstop.setenabled(true);continus.setenabled(false);stop.setenabled(true); start.setenabled(false); public void tstopcount()if(isrun)boolean stop1 = false;isrun=stop1; reset.setenabled(false);tstop.setenabled(false);stop.setenabled(false);continus.setenabled(true);start.setenabled(false); private void continuscount()if(!isrun) reset.setenabled(false);tstop.setenabled(true);continus.setenabled(false);stop.setenabled(true); start.setenabled(false);isrun=true; mb=new thread(this); mb.start(); public void stopcount() if(isrun) reset.setenabled(true);tstop.setenabled(false);continus.setenabled(false);stop.setenabled(false
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办事处安全培训课件
- 刺世疾些赋课件
- 别对自己说不可能课件
- 兴宾区高空安全作业培训课件
- 初会固定资产课件
- 化学知识安全教育培训课件
- 初中安全培训小知识内容课件
- 初中作业安全培训课件
- 内蒙古访问课件
- 内胆成型机安全培训课件
- 2025年未来就业报告
- 使用吹风机课件
- 安检流程课件
- 中国未来50年产业发展趋势白皮书(第四期)
- 2025年财会类资产评估师资产评估基础-资产评估基础参考题库含答案解析(5卷)
- 公安宣传打击黄赌毒课件
- 风光制氢醇一体化项目可行性分析报告(参考模板)
- 2025 河北省一级建造师《港口与航道工程实务》试题 (押题) 带答案解析
- 药品追溯管理培训试题(附答案)
- 梓潼县财政投资评审中心公开招聘一级造价工程师笔试备考试题及答案解析
- 2025年医院心理测试题范文(附答案)
评论
0/150
提交评论