课程设计说明书
计算机组成原理算法实现(四)
小数的原码
专业
计算机科学与技术
学生姓名
王亚飞
班级
D计算机132
学号
1320704223
指导教师
花小朋
完成日期
2016122
1 课程设计目的
本课程设计是在学完本课程教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化
学生学习的计算机组成原理课程基本知识,进一步领会计算机组成原理的一些算法,并进行具体实现,提高分析问题、解决问题的综合应用能力。
2 课程设计内容与要求
2.1 题目
计算机组成原理算法实现(四)
2.2 功能
能够实现机器数的真值还原(定点小数)、定点小数的单符号位补码加减运算、定点小数的补码乘法运算和浮点数的加减运算。
  1 系统进入(主)窗体的设计:菜单需要在输入口令正确后方可激活使用。口令输入错误时要给出重新输入口令的提示。
  2 选择主窗体中“定点小数真值还原”时进入下图所示的窗体:
在上面的窗体中按“输入”按扭时,将输入焦点设置为最上面的一个文本框上。输入一个定点小数形式的机器数(如:1.1001)后,按“原〉真值”、“反〉真值”、“补〉真值”或“移〉真值”按钮中的任一个后,将在第二个文本框中显示对应的真值。选择“返回”按钮时回到主窗体。
  3)选择主窗体中的“定点小数单符号位补码加减运算”时进入如下图所示的窗体:操作时首先选择“输入”按钮输入参与运算的数据,然后再选操作按钮。当单击“加法”、“减法”第三、四个文本框显示对应的结果。选择“返回”按钮时回到主窗体。
  4)选择主窗体中的“定点小数原码乘法”时进入如下图所示的窗体:操作时首先选择“输入”按钮输入参与运算的数据,然后再选操作按钮。当单击“乘法”时第三个文本框显示对应的结果。选择“返回”按钮时回到主窗体。
  5)选择主窗体中的“浮点数的加减运算”时进入下图所示的窗体:先选择“输入”按钮输入参与运算的数据,再选操作按钮。当单击“加法”和“减法”时下列文本框显示对应的结果:加法的阶码和尾数、减法的阶码和尾数。选择“返回”按钮时回到主窗体。
  6)选择主窗体中的“帮助”进入下图所示的窗体:阅读完文字后,可使用“关闭”按钮返回主窗口。
3 功能模块详细设计
3.1 功能介绍
3.2实现方法
(1)登录界面
设计思路
界面:整个布局使用了LinearLayout,设置 android:orientation="vertical"就可以让所有控件以水平方式来排列,LinearLayout作为容器来承载控件,布局中第一个控件是TextView,值为“计算机组成原理算法实现(4)”,第二个控件是EditText,EditText是文本输入框,最后一个控件是Button控件,用于确定来绑定事件。
功能:Buttton绑定了一个监听点击的一个事件,在这个方法体中,主要写了,获得EditText的字符串消息和Intnet跳转,IntentAndroid中的一个类,用于控件不同地Activity跳转,从而实现可以在手机上看到不同的画面,这里的Intent跳转到主界面,这也是程序的唯一入口地址。当口令正确,就可以进入主界面,如果连续三次错误程序将被锁死,无法打开。
(2)主界面
设计思路
界面:在主界面中使用了NavigationViewNavigationView采用最Google最新的Material Design,它是一个很新并且重要的Material Design组件。在Material Design中,Navigation dr
awer导航抽屉,被设计用于应用导航,提供了一种通用的导航方式,体现了设计的一致性。
NavigationView的典型用途就是配合之前v4包的DrawerLayout,作为其中的Drawer部分,即导航菜单的本体部分。NavigationView是一个导航菜单框架,使用menu资源填充数据,使我们可以更简单高效的实现导航菜单。它提供了不错的默认样式、选中项高亮、分组单选、分组子标题、以及可选的Header
功能:这里的导航菜单设置了四个ITEM,分别是“机器数的真值还原”,“定点小数符号位的补码加减运算”,“定点小数原码的乘法运算”和“浮点数的加减运算”,点击对应的ITEM分别会跳到相应的界面,从而实现了界面的跳转,具体的操作将会在别人Activity处理。
(3)机器数的真值还原
设计思路
界面:在这个UI中,设置了较多的控件,首先第一个是EditText,用于输入信息,第二个和第
三个控件都是TextView,不同的是第一个只是用来提示用户下面是真值,所以这里的Text属性就被设置了“真值是”,第三个真正用来显示所求的结果的,然后依次放了几个Button,用来触发事件。
功能:第一个Button是原码求真值的,我们所输入的是定点小数所以是符合原码的不用再做处理,第二个Button是“反码-->真值”,当得到所输入的数据后,对这个定点小数小数点以后的数据进行取反,取反的数据再与符号位连接起来就得到“反码-->真值”的值了。第三个Button是用来“补码-->真值”,因为补码是在反码基础上取反加1就好,所以可以复用求反码的方法,在此基础上加1,便取到补码到真值的值了。第四个Button是“移码”复用第三个Button的方法,只要对符号位替换掉就好了。
(4)定点小数的单符号位的补码加减运算
设计思路
界面:UI布居中,有两个EditText,分别输入两个定点小数,两个TextView用来显示求和的结果,和相减的结果,四个Button按钮用来触发事件。
功能:
点击“减法”会获得两个输入框中补码相加的结果,在TextView中显示,点击“加法”会对两个输入框的值进行相加,加的结果会显示在TextView中,以供用户观察。点击“返回”会直接退出这个界面,回到主界面,点击“清除”会清除输入框中的值。代码处理首先是取得两个ExitText中的值,程序得到的值会进行判断是正是负,如果是正的直接处理,如果是负的会把它写成加一个负数的形式,调用相加的方法,最后加上符号位,最后返回一个字符串。
(5)定点小数原码乘法运算
设计思路
界面:UI中有两个EditText,一个TextView以及三个Button
功能:点击输入会获得第一个EditText的焦点,点击乘法会对两个输入框的值进行相乘,乘的结果会显示在TextView中,以供用户观察。点击“返回”会直接退出这个界面,回到主界面。定点小数原码乘法的原理是,符号位相同得正,不同为负,然后对后边字符串中的内容进行遍历,第一个数的最后一位依次与第二个数的个个位置的数相乘,保存在一个字符串数组中,最后对这个数组进行二进制加法运算,返回这个结果。
(6)浮点数的加减运算
设计思路
界面:UI布居中,有四个EditText,分别输入两个浮点小数,四个TextView用来显示求和的结果,和相减的结果,四个Button按钮用来触发事件。
功能:点击“输入”会获得第一个EditText的焦点,点击乘法会对四个输入框的值进行浮点数加减,乘的结果会显示在TextView中,以供用户观察。点击“返回”会直接退出这个界面,回到主界面。
4 设计小结
为期一周的课程设计就这样结束了。在程序设计的时也遇到了很多的问题,刚刚看到这个题目时觉得挺简单,后来慢慢的发现并非如此。当你真正要去做一个东西的时候,会面临比平常多的问题。
经过本次课程设计,发现做软件真的需要做很多工作,不仅仅是敲代码。
通过此次课程设计,使我更加扎实的掌握了有关Android方面的知识,在设计过程中虽然遇
到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。  过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!  课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。
参考文献
[1] 白中英. 计算机组成原理(第五版)[M]. 北京: 科学出版社, 2010.
[2]耿祥义《Java2实用教程》[M].北京:清华大学出版社 2006.08