




免费预览已结束,剩余36页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计(java),组长:覃冬丽09056060 组员:赵红乐09056039 杨小英09056059 全晶晶09071248 马珍珍08056048,01,02,03,课程设计目的,课程设计总体要求,问题分解,题目描述,问题分析,04,05,06,10,09,08,07,系统设计,具体实现(编码),系统测试和分析,难点及关键技术分析,心得体会,一、课程设计目的:,1、学会运用java程序开发的环境搭建与配置,并在实际运用中学习和掌握java程序开发的全过程。 2、进一步熟悉掌握java程序设计语言的基础内容,如用户图形界面设计、applet程序的设计、文件和网络输入输出流编程、java数据库编程等。 3、通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。,二、课程设计总体要求:,1、问题的描述与程序将要实现的具体能。 2、程序功能实现的具体设计思路或框架,并检查流程设计。 3、代码实现。 4、程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。 5、设计小结。,整数进制转换。 输入一个十进制整数,分别以二进制、八进制、十六进制形式输出该整数。 要求:整数文本行可以编辑,其他文本行仅用于显示不可以编辑;整数文本行响应文本编辑事件;当输入数据错误时,处理异常,弹出对话框,提示重新输入信息。,四、问题分析(问题范围、系统的功能、对性能的要求、应用环境的要求),1、问题范围 对整数进制转换。必须在整数范围内才能输出相对应的进制。若为非整数范围或超出范围,则显示消息提醒错误。,2、系统的功能 进制转换器:转换器界面由要转换的数据和结果组成,十进制整数输入文本行可以编辑,其他文本行仅用于显示不可以编辑;整数文本行响应文本编辑事件;当输入数据错误时,处理异常,弹出对话框,提示重新输入信息。能分别进行十进制转换为二进制、八进制、十六进制的转换,以及消息错误提示。在转换器和弹出的消息提示界面有相关的最小化、关闭等按钮可以操作。,3、对性能的要求 (1)具有较强的实用性 (2)易于理解和应用 (3)对程序的配置要求不高,能广泛应用,4、应用环境的要求,jdk 成功安装,设置环境变量 (java_home=c:programfilesjavajdk1.6.0_10 classpath= .;c:program filesjavajdk1.6.0_10lib; path= c:program filesjavajdk1.6.0_10bin;),五、问题分解,可分以下步骤进行: 1.分析找出问题域中的对象,并将对象归类,注意筛选掉不必要的对象或类。 对象: 属于binaryjframe主类的对象: bounds、background、defaultcloseoperation、contentpane、layout 属于boolean类的对象: resizable、editable、visible 属于color类的对象:lightgray 属于string类的对象: labelstr 属于integer类的对象: i 属于jtextfield类的对象:textsi 类:包括上述所有类及父类jframe。,2、确定类的属性。 binaryjframe: public string: public integer: public color:public boolean:public jtextfield:private jframe:public 3、确定对象之间的关系,包括依赖、泛化、关联、实现等等。 jframe与主类binaryjframe之间:泛化 textsi(jtextfield)与labelstr(string)之间:依赖 string与binaryjframe之间:依赖 color与background之间:关联中的组合 resizable、editable、visible与textsi之间:实现 i与textsi之间:关联,六 、系统设计,1、工作原理图:,2、功能规划:,3、类的设计(对象的设计)(类图、对象图),4、java 程序中进制转换(十进制转换为其他进制)的算法设计,5、程序的相关分析,import java.awt.*; /这个一般在程序开始时用,即置入包。 import javax.swing.*;/置入最常用包,最常用的pachage,包含了各种swing组件的类 import javax.swing.event.*;/置入处理由swing组件产生的事件,有别于awt事件 public class:在 java 中用 public class 可以定义一个java 程序的入口类,在 asp 用 class classname 可以定义一个类 private:在java中是一个关键字,表示私有成员,private 是类中的一个属性 用它定义的feild和method只能在类中被调用.如果定义了private,就不能被外部类所访问了,this:java中this有两种用法1、代表当前类;2、在构造函数中的使用 如: this.setbounds(300,240,440,140);/ 设置窗体的长宽各为:440, 140 让其显示在距屏幕左上方坐标(300,240)处 /它们的计量单位是像素 这句话等效于: this.setlocation(300, 240) this.setsize(440, 140);,this.setresizable(false);/窗口大小不能改变 this.setdefaultcloseoperation(exit_on_close);/单击窗口按钮时,结束程序运行; this.getcontentpane().setlayout(new flowlayout(flowlayout.right);/流式布局右对齐; textsi.seteditable(false);/只能显示,不允许编辑; texts0.seteditable(true);/只允许编辑 static :声明静态成员变量,七、具体实现-类设计、功能实现(含代码)、界面,1、 类实现:根据功能定义类共有 binaryjframe主类, boolean类, string类, jtextfield类四个类。,(1) binaryjframe主类:定义面板,文本框,及变量,设置布局为流动布局,并设置进制转换器背景颜色为灰色。 (2)boolean类:实现设置窗口能否改变、文本行能否编辑、显示对话框操作。,(3)string类:通过对象labelstr输入各个标签,实现相关功能提示。 (4) jtextfield类:实现文本行的创建,设计面板,实现进制转换功能。对进制转换面板进行操作。用contentpane()方法设置网格布局,caretlistener()实现按钮的监听,加载按钮到进制转换面板上面,通过actionperformed(actionevent e)方法对各个按钮事件进行操作。,2、功能实现: (1)布局实现:,super(“十进制整数转换“);/窗口标题 this.setbounds(300,240,440,140);/设置框架的位置和尺寸即窗口大小 this.setresizable(false); /设置窗口大小不能改变 this.setbackground(color.lightgray); /设置窗口背景颜色 this.setdefaultcloseoperation(exit_on_close);/窗口关闭事件处理,方式:单机窗口按钮时结束程序运行 this.getcontentpane().setlayout(newflowlayout( flowlayout.right);/框架流动布局:右对齐 string labelstr=“十进制“,“二进制“,“八进制“,“十六进制“; /设置标签 texts = new jtextfieldlabelstr.length;/创建文本行 for (int i=0; itexts.length; i+) this.getcontentpane().add(newjlabel(labelstri);/将标签添加到面板中,textsi = new jtextfield(32); /设置文本行的大小 textsi.seteditable(false); /只能显示,不能编辑 this.getcontentpane().add(textsi);/添加文本行到面板中 texts0.seteditable(true);/设置第一个文本行是可编辑的 texts0.settext(“-1“);/设置第一个文本行初始值是-1 texts0.addcaretlistener(this); /注册文本编辑事件监听器 this.caretupdate(null); /执行文本编辑事件 this.setvisible(true); /显示对话框,(2)进制转换功能的实现:,十进制转成十六进制: integer.tohexstring(int i) public void caretupdate(caretevent e) /文本编辑事件处理方法 try /异常处理 int i= integer.parseint(texts0.gettext(); /十进制整数转换事件(第一个文本行输入操作),texts1.settext(integer.tobinarystring(i); /二进制(第二个文本行进行将i转换成二进制事件) texts2.settext(integer.tooctalstring(i); /八进制 texts3.settext(integer.tohexstring(i); /十六进制 /或 /texts2.settext(string.format(“%o“, i); /八进制 /texts3.settext(string.format(“%x“, i); /十六进制 ,(3)异常处理,catch(numberformatexception nfe) /捕获parseint()方法声明的异常对象 joptionpane.showmessagedialog(this,“+texts0.gettext()+“不能转换,请重新输入!“); /提示框,提示出错,3、界面:,完整的编码如下:,import java.awt.*; import javax.swing.*; import javax.swing.event.*; public class binaryjframe extends jframe implements caretlistener private jtextfield texts; public binaryjframe() super(“十进制整数转换“); this.setbounds(300,240,440,140); this.setresizable(false);,this.setbackground(color.lightgray); this.setdefaultcloseoperation(exit_on_close); this.getcontentpane().setlayout(new flowlayout(flowlayout.right); string labelstr=“十进制“,“二进制“,“八进制“,“十六进制“; texts = new jtextfieldlabelstr.length; for (int i=0; itexts.length; i+) this.getcontentpane().add(new jlabel(labelstri); textsi = new jtextfield(32); textsi.seteditable(false); this.getcontentpane().add(textsi); texts0.seteditable(true); texts0.settext(“-1“);,texts0.addcaretlistener(this); /注册文本编辑事件监听器 this.caretupdate(null); this.setvisible(true); public void caretupdate(caretevent e) /文本编辑事件处理方法 try inti=integer.parseint(texts0.gettext(); texts1.settext(integer.tobinarystring(i); /二进制 texts2.settext(integer.tooctalstring(i); /八进制,texts3.settext(integer.tohexstring(i); /十六进制 /或 / texts2.settext(string.format(“%o“, i); /八进制 / texts3.settext(string.format(“%x“, i); /十六进制 catch(numberformatexception nfe) joptionpane.showmessagedialog(this,“+texts0.gettext()+“不能转换,请重新输入!“); finally public static void main(string arg) new binaryjframe(); ,八、系统测试和分析,程序运行情况: 程序正常的响应按钮事件。运行显示:,输入一个整数,如45,运行结果如图:,输入的数值长度受变量length的限定。 当整数太大的时候,有可能超出可能表示的最大值,(结果溢出)。 则显示消息提示:,若输入的是非整数,则同样弹出消息提示:如输入1.2和k;,这是程序进行的异常处理,使用try-catch,捕捉输入整数的方法 抛出的异常对象。此时只要重输即可。,(3)分析讨论:,运行结果基本上完成了实验题目所要求的功能。 使用方便明了,设计上有层次,立体感强。 可是这个整数进制转换器和windows上面的仍有很大差距,主要表现在功能方面的不完善和不健全。如果需要改进,可在以下三个方面改进:,布局上面:基本的方位布局不变,可以分别在二进制、八进制、十六进制对应的文本行末尾添加转换按钮,方便输出用户需要的进制即可。将一些功能按钮比如清零按钮,退格按钮,确定按钮放在文本框下面,采用流式布局,另外对于组件之间的间隙也要规划好,实现美观大方。,添加菜单栏:标准的进制转换器具有菜单栏,包括“编辑”,“查看”,“帮助”三个主菜单项,在每个主菜单项里面都有若干子菜单项。这样使的功能跟全面,更规范。,添加功能:可以实现各个进制之间的互换,而不只是十进制转换为二、八、十六进制。,a、,b、,c、,九、难点及关键技术分析,难点分析: 框架的合理布局。对于一个应用程序,界面的简单明了是很重要的,既要简单明了还要实用,不能华而不实。 异常处理的实现。对于一个独立运行的程序,能够独立的处理运行中的问题,并提示错误
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025海南海口市秀英区事业单位招聘59人(第一号)模拟试卷及答案详解1套
- 2025江苏盐城市急救医疗中心招录政府购买服务用工1人模拟试卷附答案详解(黄金题型)
- 企业安全生产培训教育记录表
- 员工绩效评估标准工具
- 2025湖南省社会科学院(湖南省人民政府发展研究中心)招聘高层次人才14人模拟试卷完整参考答案详解
- 2025年金华永康市医疗卫生单位招聘事业单位工作人员39人考前自测高频考点模拟试题及1套参考答案详解
- 2025湖南湘西州泸溪县汇金产业投资集团有限公司招聘工作人员及模拟试卷有答案详解
- 2025甘肃平凉市灵台县公安局面向社会招聘警务辅助人员28人考前自测高频考点模拟试题有完整答案详解
- 租房条件课件
- 租房交易知识培训总结课件
- 2025年中国磁力积木行业市场全景分析及前景机遇研判报告
- 2025河北承德市市直事业单位卫生类招聘85人考试参考试题及答案解析
- 腰大池引流管护理查房
- 国网网络信息安全培训课件
- 《丹青意蕴》第三课《国色新尚》课件 2025-2026学年+人教版(2024)初中美术八年级上册
- 跨境资金池管理办法
- 校企挂职锻炼协议书范本
- 2025年成人高考政治试题及答案
- 旅游公司旅行社安全应急救援预案及措施
- 2025年维护患者合法权益及知情同意培训试题
- 三所里战役讲解
评论
0/150
提交评论