java综合实验报告-整数进制转换_第1页
java综合实验报告-整数进制转换_第2页
java综合实验报告-整数进制转换_第3页
java综合实验报告-整数进制转换_第4页
java综合实验报告-整数进制转换_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计面向对象程序设计javajava 组长:覃冬丽组长:覃冬丽09056060组员:赵红乐组员:赵红乐09056039 杨小英杨小英09056059 全晶晶全晶晶09071248 马珍珍马珍珍08056048010102020303课程设计目的课程设计目的课程设计总体要求课程设计总体要求问题分解问题分解题目描述题目描述问题分析问题分析040405050 06 61 10 00 09 90 08 80707系统设计系统设计具体实现编码具体实现编码系统测试和分析系统测试和分析难点及关键技术分析难点及关键技术分析心得体会心得体会一、课程设计目的:一、课程设计目的:1 1、学会运用、学会运

2、用JavaJava程序开发的环境搭建与配置,程序开发的环境搭建与配置,并在实际运用中学习和掌握并在实际运用中学习和掌握JavaJava程序开发的全程序开发的全过程。过程。2 2、进一步熟悉掌握、进一步熟悉掌握JavaJava程序设计语言的根底内程序设计语言的根底内容,如用户图形界面设计、容,如用户图形界面设计、AppletApplet程序的设计、程序的设计、文件和网络输入输出流编程、文件和网络输入输出流编程、JavaJava数据库编程数据库编程等。等。3 3、通过亲自动手写程序,一方面拓展知识面,、通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。一方面锻炼调试能力。二、课程设计总体要

3、求:二、课程设计总体要求:三、题目描述三、题目描述整数进制转换。整数进制转换。输入一个十进制整数,分别以二进制、八进制、十六进制形式输出该整数。要求:整数文本行可以编辑,其他文本行仅用于显示不可以编辑;整数文本行响应文本编辑事件;当输入数据错误时,处理异常,弹出对话框,提示重新输入信息。四、问题分析问题范围、系统的功能、对性能的四、问题分析问题范围、系统的功能、对性能的要求、应用环境的要求要求、应用环境的要求1、问题范围、问题范围对整数进制转换。必须在整对整数进制转换。必须在整数范围内才能输出相对数范围内才能输出相对应的进制。若为非整数应的进制。若为非整数范围或超出范围,则显范围或超出范围,则

4、显示消息提醒错误。示消息提醒错误。2、系统的功能、系统的功能进制转换器进制转换器:转换器界面由要转换转换器界面由要转换的数据和结果组成,十进制整数的数据和结果组成,十进制整数输入文本行可以编辑,其他文本输入文本行可以编辑,其他文本行仅用于显示不可以编辑;整数行仅用于显示不可以编辑;整数文本行响应文本编辑事件;当输文本行响应文本编辑事件;当输入数据错误时,处理异常,弹出入数据错误时,处理异常,弹出对话框,提示重新输入信息。能对话框,提示重新输入信息。能分别进行十进制转换为二进制、分别进行十进制转换为二进制、八进制、十六进制的转换,以及八进制、十六进制的转换,以及消息错误提示。在转换器和弹出消息错

5、误提示。在转换器和弹出的消息提示界面有相关的最小化、的消息提示界面有相关的最小化、关闭等按钮可以操作。关闭等按钮可以操作。3、对性能的要求、对性能的要求(1)具有较强的实用性)具有较强的实用性(2)易于理解和应用)易于理解和应用(3)对程序的配置要求不高,)对程序的配置要求不高,能广泛应用能广泛应用4、应用环境的要求、应用环境的要求JDK 成功安装,设置环境变量成功安装,设置环境变量JAVA_HOME=C:ProgramFilesJavajdk1.6.0_10classpath= .;C:Program FilesJavajdk1.6.0_10lib;Path= C:Program Files

6、Javajdk1.6.0_10bin;五、问题分解问题分解 可分以下步骤进行:可分以下步骤进行:1.对象对象:属于属于BinaryJFrame主类的对象主类的对象: Bounds、Background、DefaultCloseOperation、ContentPane、Layout 属于属于Boolean类的对象类的对象: Resizable、Editable、Visible 属于属于Color类的对象类的对象:lightGray 属于属于String类的对象类的对象: labelstr 属于属于Integer类的对象类的对象: i 属于属于JtextField类的对象:类的对象:textsi

7、类类:包括上述所有类及父类:包括上述所有类及父类Jframe。2、BinaryJFrame: public String: publicInteger: public Color:publicBoolean:public JtextField:privateJframe:public3、Jframe与主类与主类BinaryJFrame之间:泛化之间:泛化textsi(JtextField)与与labelstr(String)之间:依赖之间:依赖String与与BinaryJFrame之间之间:依赖依赖Color与与Background之间之间:关联中的组合关联中的组合Resizable、Edi

8、table、Visible与与textsi之间之间:实现实现i与与textsi之间之间:关联关联六六 、系统设计、系统设计 1 1、工作原理图:、工作原理图: 2 2、功能规划:、功能规划:整整数数进进制制转转换换器器十进制输入域十进制输入域二进制输出域二进制输出域八进制数出域八进制数出域十六进制输出十六进制输出域域显示输入信息显示输入信息对应的十进制数转换为二进制数对应的十进制数转换为二进制数对应的十进制数转换为八进制对应的十进制数转换为八进制对应的十进制数转换为十六进制对应的十进制数转换为十六进制3 3、类的设计对象的设计类图、对象图、类的设计对象的设计类图、对象图4 4、java jav

9、a 程序中进制转换十进制转换为其他进制程序中进制转换十进制转换为其他进制的算法设计的算法设计十进制转成十六进制:十进制转成十六进制: Integer.toHexString(int i)十进制转成八进制十进制转成八进制 Integer.toOctalString(int i)十进制转成二进制十进制转成二进制 Integer.toBinaryString(int i)5 5、程序的相关分析、程序的相关分析import .*; /这个一般在程序开始时用,即置入包。import .*;/置入最常用包,最常用的pachage,包含了各种swing组件的类import .*;/置入处理由swing组件产

10、生的事件,有别于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让其显示在距屏幕左上方坐标(3

11、00,240)处/它们的计量单位是像素这句话等效于:this.setLocation(300, 240)this.setSize(440, 140);this.setResizable(false);/窗口大小不能改变this.setDefaultCloseOperation(EXIT_ON_CLOSE);/单击窗口按钮时,结束程序运行;this.getContentPane().setLayout(new );/流式布局右对齐;textsi.setEditable(false);/只能显示,不允许编辑;texts0.setEditable(true);/只允许编辑static :声明静态成员

12、变量七、具体实现-类设计、功能实现含代码、界面1 1、 类实现:根据功能定义类类实现:根据功能定义类共有共有 BinaryJFrame BinaryJFrame主类主类, , BooleanBoolean类类, String, String类类, , JtextFieldJtextField类四个类。类四个类。1) BinaryJFrame主类:定义主类:定义面板,文本框,及变量,设置布面板,文本框,及变量,设置布局为流动布局,并设置进制转换局为流动布局,并设置进制转换器背景颜色为灰色。器背景颜色为灰色。2Boolean类:实现设置窗类:实现设置窗口能否改变、文本行能否编辑、口能否改变、文本行

13、能否编辑、显示对话框操作。显示对话框操作。3 3StringString类:通过对象类:通过对象labelstrlabelstr输输入各个标签,实现相关功能提示。入各个标签,实现相关功能提示。4 4 JtextField JtextField类:实现文本行的创类:实现文本行的创立,设计面板,实现进制转换功能。对立,设计面板,实现进制转换功能。对进制转换面板进行操作。用进制转换面板进行操作。用ContentPane()ContentPane()方法设置网格布局,方法设置网格布局,CaretListenerCaretListener实现按钮的监听,实现按钮的监听,加载按钮到进制转换面板上面,通过加

14、载按钮到进制转换面板上面,通过actionPerformed(ActionEvent e)actionPerformed(ActionEvent e)方法方法对各个按钮事件进行操作。对各个按钮事件进行操作。2 2、功能实现:、功能实现:1 1布局实现:布局实现: super(十进制整数转换);/窗口标题 this.setBounds(300,240,440,140);/设置框架的位置和尺寸即窗口大小this.setResizable(false); /设置窗口大小不能改变 ); /设置窗口背景颜色 this.setDefaultCloseOperation(EXIT_ON_CLOSE);/窗口

15、关闭事件处理 方式:单机窗口按钮时结束程序运行this.getContentPane().setLayout(newFlowLayout();/框架流动布局:右对齐String labelstr=十进制,二进制,八进制,十六进制; /设置标签texts = new ;/创立文本行 for (int i=0; i; i+) this.getContentPane().add(newJLabel(labelstri);/将标签添加到面板中textsi = new JTextField(32); /textsi = new JTextField(32); /设置文本行的大小设置文本行的大小texts

16、i.setEditable(false); /textsi.setEditable(false); /只能显示,不能编辑只能显示,不能编辑this.getContentPane().add(textsi)this.getContentPane().add(textsi);/添加文本行到面添加文本行到面板中板中 texts0.setEditable(true);/texts0.setEditable(true);/设置第一个文本行是可编辑设置第一个文本行是可编辑的的texts0.setText(-1);/texts0.setText(-1);/设置第一个文本行初始值是设置第一个文本行初始值是-1

17、-1texts0.addCaretListener(this); /texts0.addCaretListener(this); /注册文本编辑事件监注册文本编辑事件监听器听器 this.caretUpdate(null); /this.caretUpdate(null); /执行文本编辑事件执行文本编辑事件 this.setVisible(true); /this.setVisible(true); /显示对话框显示对话框 2进制转换功能的实现:十十进进制制转转成十六成十六进进制:制: Integer.toHexString(int i) public void Integer.toHexS

18、tring(int i) public void caretUpdate(CaretEvent e) /caretUpdate(CaretEvent e) /文本文本编辑编辑事件事件处处理方法理方法 try / try /异异常常处处理理 int int i= Integer.parseInt(texts0.getText(); /i= Integer.parseInt(texts0.getText(); /十十进进制整制整数转换数转换事件第一事件第一个个文本行文本行输输入操作入操作 texts1.setText(Integer.toBinaryString(i); /二进制第二个文本行进行将

19、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

20、.getText()+不能转换,请重新输不能转换,请重新输入入!); /提示框,提示出错提示框,提示出错3 3、界面:、界面:完整的完整的编码编码如下:如下:import .import .* *; ;import .import .* *; ;import .import .* *; ;public class BinaryJFrame extends JFrame implements public class BinaryJFrame extends JFrame implements CaretListenerCaretListener private JTextField texts

21、; private JTextField texts; public BinaryJFrame() public BinaryJFrame() super( super(十进制整数转换十进制整数转换); ); this.setBounds(300,240,440,140); this.setBounds(300,240,440,140); this.setResizable(false); this.setResizable(false); ); this.setDefaultCloseOperation(EXIT_ON_CLOSE); ); this.setDefaultCloseOpera

22、tion(EXIT_ON_CLOSE); this.getContentPane().setLayout(new ); this.getContentPane().setLayout(new ); String labelstr= String labelstr=十进制十进制,二进制二进制,八进制八进制,十六进制十六进制; texts = new ; texts = new ; for (int i=0; i; i+) for (int i=0; i; i+) this.getContentPane().add(new JLabel(labelstri); this.getContentPan

23、e().add(new JLabel(labelstri); textsi = new JTextField(32); textsi = new JTextField(32); textsi.setEditable(false); textsi.setEditable(false); this.getContentPane().add(textsi); this.getContentPane().add(textsi); texts0.setEditable(true); texts0.setEditable(true); texts0.setText(-1); texts0.setText(

24、-1); texts0.addCaretListener(this); /texts0.addCaretListener(this); /注册文本编辑事件监注册文本编辑事件监听器听器 this.caretUpdate(null);this.caretUpdate(null); this.setVisible(true); this.setVisible(true); public void caretUpdate(CaretEvent e) / public void caretUpdate(CaretEvent e) /文本编辑事件文本编辑事件处理方法处理方法 try try inti=In

25、teger.parseInt(texts0.getText(); inti=Integer.parseInt(texts0.getText(); texts1.setText(Integer.toBinaryString(i); texts1.setText(Integer.toBinaryString(i); / /二进制二进制 texts2.setText(Integer.toOctalString(i); texts2.setText(Integer.toOctalString(i); /八进制八进制 texts3.setText(Integer.toHexString(i); /tex

26、ts3.setText(Integer.toHexString(i); /十六进制十六进制/或或/ texts2.setText(String.format(%o, i); / texts2.setText(String.format(%o, i); /八进制八进制/ texts3.setText(String.format(%x, i); / texts3.setText(String.format(%x, i); /十六进制十六进制 catch(NumberFormatException nfe) catch(NumberFormatException nfe) JOptionPane.s

27、howMessageDialog(this,+texts0.getTextJOptionPane.showMessageDialog(this,+texts0.getText()+()+不能转换,请重新输入不能转换,请重新输入!); !); finally finally public static void main(String arg) public static void main(String arg) new BinaryJFrame(); new BinaryJFrame(); 八八、系统测试和分析系统测试和分析程序运行情况程序运行情况: 程序正常的响应按钮事件。程序正常的响应按

28、钮事件。运行显示:运行显示:输入一个整数,如输入一个整数,如45,运行结果如图:,运行结果如图:输入的数值长度受变量输入的数值长度受变量length的限定。的限定。当整数太大的时候,有可能超出可能表示的最大值,结果溢出。当整数太大的时候,有可能超出可能表示的最大值,结果溢出。那么显示消息提示:那么显示消息提示:假设输入的是非整数,那么同样弹出消息提示:如输入和假设输入的是非整数,那么同样弹出消息提示:如输入和k; 这是程序进行的异常处理,使用这是程序进行的异常处理,使用try-catch,捕捉输入整数的方法,捕捉输入整数的方法 抛出的异常对象。此时只要重输即可。抛出的异常对象。此时只要重输即可

29、。3分析讨论: 运行结果根本上完成了实验题目所要求的功运行结果根本上完成了实验题目所要求的功能。能。 使用方便明了,设计上有层次,立体使用方便明了,设计上有层次,立体感强。感强。 可是这个整数进制转换器和可是这个整数进制转换器和WindowsWindows上面的仍上面的仍有很大差距,主要表现在功能方面的不完善有很大差距,主要表现在功能方面的不完善和不健全。如果需要改进,可在以下三个方和不健全。如果需要改进,可在以下三个方面改进:面改进:布局上面:根本的方位布局不变,可以分别在二进制、八进布局上面:根本的方位布局不变,可以分别在二进制、八进制、十六进制对应的文本行末尾添加转换按钮,方便输出用制、十六进制对应的文本行末尾添加转换按钮,方便输出用户需要的进制即可。将一些功能按钮比方清零按钮,退格按户需要的进制即可。将一些功能按钮比方清零按钮,退格按钮,确定按钮放在文本框下面,采用流式布局,另外对于组钮,确定按钮放在文本框下面,采用流式布局,另外对于组件之间的间隙也要规划好,实现美观大方。件之间的间隙也要规划好,实现美观大方。添加菜单栏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论