您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 综合/其它 > java综合实验报告-整数进制转换
中南民族大学管理学院学生实验报告(综合设计)课程名称:面向对象程序设计(java)选题名称:整数进制转换年级:09级专业:信息管理与信息系统指导教师:**老师实验地点:管理学院综合实验室完成时间:2011年6月6日2010学年至2011学年度第2学期中南民族大学管理学院学生实验报告1组长:覃冬丽学号:09056060成员:姓名学号所做的贡献贡献分中南民族大学管理学院学生实验报告2目录一、课程设计目的二、课程设计总体要求三、题目描述四、问题分析五、问题分解六、系统设计七、具体实现(编码)八、系统测试和分析九、难点及关键技术分析十、心得体会中南民族大学管理学院学生实验报告3一、课程设计目的:1.学会运用Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。2.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。3.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。二、课程设计总体要求:1.问题的描述与程序将要实现的具体功能。2.程序功能实现的具体设计思路或框架,并检查流程设计。3.代码实现。4.程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。5.设计小结。三、题目描述整数进制转换。输入一个十进制整数,分别以二进制、八进制、十六进制形式输出该整数。要求:整数文本行可以编辑,其他文本行仅用于显示不可以编辑;整数文本行响应文本编辑事件;当输入数据错误时,处理异常,弹出对话框,提示重新输入信息。四、问题分析(问题范围、系统的功能、对性能的要求、应用环境的要求)1、问题范围对整数进制转换。必须在整数范围内才能输出相对应的进制。若为非整数范围或超出范围,则显示消息提醒错误。2、系统的功能进制转换器:转换器界面由要转换的数据和结果组成,十进制整数输入文本行可以编辑,其他文本行仅用于显示不可以编辑;整数文本行响应文本编辑事件;当输入数据错误时,处理异常,弹出对话框,提示重新输入信息。能分别进行十进制转换为二进制、八进制、十六进制的转换,以及消息错误提示。在转换器和弹出的消息提示界面有相关的最小化、关闭等按钮可以操作。3、对性能的要求(1)具有较强的实用性中南民族大学管理学院学生实验报告4(2)易于理解和应用(3)对程序的配置要求不高,能广泛应用4、应用环境的要求JDK成功安装,设置环境变量(JAVA_HOME=C:\ProgramFiles\Java\jdk1.6.0_10classpath=.;C:\ProgramFiles\Java\jdk1.6.0_10\lib;Path=C:\ProgramFiles\Java\jdk1.6.0_10\bin;)五、问题分解可分以下步骤进行:1、分析找出问题域中的对象,并将对象归类,注意筛选掉不必要的对象或类。对象:属于BinaryJFrame主类的对象:Bounds、Background、DefaultCloseOperation、ContentPane、Layout属于Boolean类的对象:Resizable、Editable、Visible属于Color类的对象:lightGray属于String类的对象:labelstr属于Integer类的对象:i属于JtextField类的对象:texts[i]类:包括上述所有类及父类Jframe。2、确定类的属性。BinaryJFrame:publicString:publicInteger:publicColor:publicBoolean:publicJtextField:privateJframe:public3、确定对象之间的关系,包括依赖、泛化、关联、实现等等。Jframe与主类BinaryJFrame之间:泛化texts[i](JtextField)与labelstr[](String)之间:依赖String与BinaryJFrame之间:依赖Color与Background之间:关联中的组合Resizable、Editable、Visible与texts[i]之间:实现i与texts[i]之间:关联六、系统设计中南民族大学管理学院学生实验报告51、工作原理图:重输2、功能规划:3、类的设计(对象的设计)(类图、对象图)整数进制转换器十进制输入域二进制输出域八进制数出域十六进制输出域显示输入信息对应的十进制数转换为二进制数对应的十进制数转换为八进制对应的十进制数转换为十六进制用数字按钮输入数字十进制在文本框中显示二进制在文本框中显示八进制在文本框中显示十六进制在文本框中显示确定错误消息提示退格键中南民族大学管理学院学生实验报告64、java程序中进制转换(十进制转换为其他进制)的算法设计十进制转成十六进制:Integer.toHexString(inti)十进制转成八进制Integer.toOctalString(inti)十进制转成二进制Integer.toBinaryString(inti)5、程序的相关分析importjava.awt.*;//这个一般在程序开始时用,即置入包。importjavax.swing.*;//置入最常用包,最常用的pachage,包含了各种swing组件的类importjavax.swing.event.*;//置入处理由swing组件产生的事件,有别于AWT事件publicclass:在java中用publicclass可以定义一个java程序的入口类,在asp用classClassName可以定义一个类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)中南民族大学管理学院学生实验报告7this.setSize(440,140);this.setResizable(false);//窗口大小不能改变this.setDefaultCloseOperation(EXIT_ON_CLOSE);//单击窗口按钮时,结束程序运行;this.getContentPane().setLayout(newFlowLayout(FlowLayout.RIGHT));//流式布局右对齐;texts[i].setEditable(false);//只能显示,不允许编辑;texts[0].setEditable(true);//只允许编辑static:声明静态成员变量七、具体实现---类设计、功能实现(含代码)、界面1、类实现:根据功能定义类共有(1)BinaryJFrame主类,(2)Boolean类,(3)String类,(4)JtextField类四个类。(1)BinaryJFrame主类:定义面板,文本框,及变量,设置布局为流动布局,并设置进制转换器背景颜色为灰色。(2)Boolean类:实现设置窗口能否改变、文本行能否编辑、显示对话框操作。(3)String类:通过对象labelstr输入各个标签,实现相关功能提示。(4)JtextField类:实现文本行的创建,设计面板,实现进制转换功能。对进制转换面板进行操作。用ContentPane()方法设置网格布局,CaretListener()实现按钮的监听,加载按钮到进制转换面板上面,通过actionPerformed(ActionEvente)方法对各个按钮事件进行操作。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));//框架流动布局:右对齐中南民族大学管理学院学生实验报告8Stringlabelstr[]={十进制,二进制,八进制,十六进制};//设置标签texts=newJTextField[labelstr.length];//创建文本行for(inti=0;itexts.length;i++){this.getContentPane().add(newJLabel(labelstr[i]));//将标签添加到面板中texts[i]=newJTextField(32);//设置文本行的大小texts[i].setEditable(false);//只能显示,不能编辑this.getContentPane().add(texts[i]);//添加文本行到面板中}texts[0].setEditable(true);//设置第一个文本行是可编辑的texts[0].setText(-1);//设置第一个文本行初始值是-1texts[0].addCaretListener(this);//注册文本编辑事件监听器this.caretUpdate(null);//执行文本编辑事件this.setVisible(true);//显示对话框}(2)进制转换功能的实现:publicvoidcaretUpdate(CaretEvente)//文本编辑事件处理方法{try//异常处理{inti=Integer.parseInt(texts[0].getText());//十进制整数转换事件(第一个文本行输入操作)texts[1].setText(Integer.toBinaryString(i));//二进制(第二个文本行进行将i转换成二进制事件)texts[2].setText(Integer.toOctalString(i));//八进制texts[3].setText(Integer.toHexString(i));//十六进制//或//texts[2].setText(String.format(%o,i));//八进制//texts[3].setText(String.format(%x,i));//十六进制}(3)异常处理catch(NumberFormatExceptionnfe)//捕获parseInt()方法声明的异常对象{JOptionPane.showMessageDialog(this,\+texts[0].getText()+\不能转换,请重新输入!);}//提示框,提示出错3、界面:中南民族大学管理学院学生实验报告9完整的编码如下:importjava.awt.*;importjavax.swing.*;importjavax.swing.event.*;publicclassBinaryJFrameextendsJFrameimplementsCaretListener{privateJTextFieldtexts[];publicBinaryJFrame(){super(十进制整数转换);this.setBounds(300,240,440,140);this.setResizable(false);this.setBackground(Color.lightGray);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.getContentPane().setLay
本文标题:java综合实验报告-整数进制转换
链接地址:https://www.777doc.com/doc-6050327 .html