欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    多寄存器算术加左移位功能实验计算机设计.docx

    • 资源ID:9369315       资源大小:87.70KB        全文页数:24页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    多寄存器算术加左移位功能实验计算机设计.docx

    1、多寄存器算术加左移位功能实验计算机设计目录1 需求分析.22 详细设计.23 调试分析.104 课设总结.135 参考文献.131 需求分析该计数器模拟程序具体功能要求是要能够显示GUI用户界面,用java语言设计并以JDK为开发平台能实现整数的加、减、乘、除四则运算而且界面要用图形界面实现功能1,该程序为十进制计算器,可进行普通十进制计算。功能2,可进行四则运算(加、减、乘、除)以及求负数,求倒数运算。功能3,可进行退格,点击“退格”键将逐个删除已经输入的数据。点击“归零”键可实现计算器的初始化2 详细设计1 逻辑设计首先明确该实验设计的要求实现的基本功能,其次设计布局,将空间划分为由行和列

    2、组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。程序流程图如下图:2 详细程序代码import javax.swing.*; import java.awt.Container; import java.awt.event.*; public class jisuanqi extends JFrame private JPanel p1; private JButton keyButton=new JButton16,signButton,clearButton,deleteButton; private JTextField output

    3、Field; private Container contentPane; private boolean firstInput=true; private Calculate_Model model=new Calculate_Model(); SuppressWarnings(deprecation)public jisuanqi() p1=new JPanel(); keyButton0=new JButton(1); /创建各个按钮 keyButton1=new JButton(2); keyButton2=new JButton(3); keyButton3=new JButton(

    4、/); keyButton4=new JButton(4); keyButton5=new JButton(5); keyButton6=new JButton(6); keyButton7=new JButton(*); keyButton8=new JButton(7); keyButton9=new JButton(8); keyButton10=new JButton(9); keyButton11=new JButton(-); keyButton12=new JButton(0); keyButton13=new JButton(.); keyButton14=new JButto

    5、n(=); keyButton15=new JButton(+); clearButton=new JButton(c); signButton=new JButton(+/-); deleteButton=new JButton(); outputField=new JTextField(); /它允许编辑单行文本 outputField.setText(0); outputField.setEditable(false); /指示此 TextComponent 是否应该为可编辑的 contentPane=this.getContentPane(); /返回此窗体的 contentPane

    6、对象; this.setSize(250,250); p1.setLayout(new java.awt.GridLayout(4,5); /创建具有4行5列的布局 for(int i=0;ikeyButton.length;i+) /在容器中画上按钮 if(i=4) p1.add(deleteButton); if(i=8) p1.add(clearButton); if(i=12) p1.add(signButton); keyButtoni.setFont(new java.awt.Font(Dialog,3,15);/设置字体Dialog字体名,样式,大小 p1.add(keyButt

    7、oni); contentPane.add(outputField,java.awt.BorderLayout.NORTH); contentPane.add(p1,java.awt.BorderLayout.CENTER); this.show(); /用于显示界面 public void registEvent() /注册各个事件 this.addWindowListener(new WindowAdapter() /窗口事件,窗口关闭里程序关闭 public void windowClosing(WindowEvent we) System.exit(0); ); for(int i=0

    8、;ikeyButton.length;i+) keyButtoni.addActionListener(new keyButtonHandler(); /为每一个按钮添加监听器 signButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) outputField.setText(String.valueOf(model.toSign(Double.parseDouble(outputField.getText(); ); deleteButton.addActionLi

    9、stener(new ActionListener() public void actionPerformed(ActionEvent ae) outputField.setText(model.backSpace(outputField.getText(); if(outputField.getText().equals(0) firstInput=true; ); clearButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) firstInput=true; ou

    10、tputField.setText(0); model.reset(); ); class keyButtonHandler implements ActionListener public void actionPerformed(ActionEvent ae) char actionCommand=ae.getActionCommand().charAt(0); switch(actionCommand) case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 0: case .: if(fi

    11、rstInput) /是否为首次输入 outputField.setText(String.valueOf(actionCommand); firstInput=false; else outputField.setText(outputField.getText()+actionCommand); break; case +: case -: case *: case /: if(firstInput) model.setOperate(actionCommand); else model.setOperateNumber(Double.parseDouble(outputField.get

    12、Text(); model.calculating(); model.setOperate(actionCommand); outputField.setText(String.valueOf(model.getResult(); firstInput=true; break; case =: if(firstInput) model.calculating(); outputField.setText(String.valueOf(model.getResult(); else model.setOperateNumber(Double.parseDouble(outputField.get

    13、Text(); model.calculating(); outputField.setText(String.valueOf(model.getResult(); firstInput=true; public static void main(String args) new jisuanqi().registEvent(); /* *计算的模块*/ class Calculate_Model private double result; private double operateNumber; private char operate; public Calculate_Model()

    14、 /构造方法进行初始化 result=0; /结果 operateNumber=0; /操作数 operate= ; /操作符 public void setResult(double n) /设置结果,成员变量result是private的 result=n; public void setOperate(char o) /设置操作符 operate=o; public void setOperateNumber(double n) /设置操作数 operateNumber=n; public double getResult() /获取结果 return result; public vo

    15、id calculating() /计算过程 switch(operate) case :result=operateNumber;break; /分别对操作判断后进行相应操作 case +:result+=operateNumber;break; case -:result-=operateNumber;break; case *:result*=operateNumber;break; case /:result/=operateNumber;break; public void reset() /重设方法 result=0; operateNumber=0; operate= ; pub

    16、lic double toSign(double n) /正负转化 return 0-(n-0); public String backSpace(String n) /对backSpace设置 String reResult=0; try reResult=n.substring(0,n.length()-1); /从第一个开始取前n-1个 Double.parseDouble(reResult); /将其转化为Double型 catch(NumberFormatException e) reResult=0; return reResult; 3调试分析实现了设计的所有要求,选取部分运行示

    17、意图。1.调试显示计算器GUI界面: 图1.运行结果2.加法运算:4+5=9; 图2.加法结果3.减法预算6-2=4; 图3.减法运算4.乘法运算:5*3=15; 图4.乘法运算5.除法运算:24/4=6; 图5.除法运算结果分析:程序正常的响应按钮事件,进行混合四则运算的时候,结果如果不是很大,可以正常显示,但如果结果很大,就可能采用科学记数方式,这样带来了进制转换时的麻烦,需要特殊的处理科学记数里的E ,当结果太大的时候,有可能超出可能表示的最大值,(结果溢出),这个时候就会对结果进行溢出提示,我并未设置异常类来相应异常事件,但是程序在发生异常时会提示Infinity字符。4 课设总结1.

    18、通过用java编写计数器课程设计,我不仅复习了以前学习过的知识,更深刻的懂得了学好学会了并不是代表就能够在真正的实践中运用的流畅,这次实践给了我们一个既动手又动脑,独立实践的机会但其中又包含着共同合作,这次又将理论和实践相结合,提高我们的分析、解决实际问题的能力,并且让我认识到了要从要从实际、实践出发提高自己的学术能力;通过这次课程设计使我懂得了理论与实际相结合很重要,只有理论知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。2. 善于总结,也是学习能力的一种体现,每次完成一个编程任务,完成一段代码,都应当有目的的跟踪该程序的应用状况,随时总结,找到自己的不足,这样所编写的程序才能逐步提高。3. 经过这么多天的学习,我深刻认识到自己的不足和缺点,但是我也了解到自己的长处和优点,不管怎么样,通过这次的实践练习,我懂得了怎么和他人合作,要取长补短,相互合作。5 参考文献1Sharon Zakhour,ScottHommel著. Java语言导学:英文版. 人民邮电出版社,20082谭浩强著. C+面向对象程序设计. 北京:清华大学出版社,20063李爱华,程磊著. 向对象程序设计:C+语言. 北京:清华大学出版社,2010


    注意事项

    本文(多寄存器算术加左移位功能实验计算机设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开