计算机组成原理算法实现Word格式文档下载.docx
《计算机组成原理算法实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理算法实现Word格式文档下载.docx(42页珍藏版)》请在冰豆网上搜索。
图3-1各类间的关系
系统流程图如图3-2所示:
图3-2系统流程图
3.2主体功能
Main.java
该java文件为整个程序的主类。
luojiyunsuan.java
实现机器数的真值还原(定点整数)
zhengshujiajian.java
实现定点整数的单符号位补码加减运算、定点整数的
zhengshuchengfa.java
实现定点整数的原码乘法运算。
fudianyunsuan.java
实现浮点数的加减运算。
运行程序并进行相关调试:
程序的主界面如图3-2所示:
图3-2主界面
当输入的口令出错时所显示的提示,如图3-3:
图3-3口令错误提示
错误过多,单击确定后程序自动关闭,如图3-4:
图3-4口令错误过多提示
输入正确的口令后,程序显示登陆成功,如图3-5所示:
图3-5登陆成功提示
定点整数的真值还原如图3-6:
图3-6定点整数的真值还原
定点整数的单符号位补码加减运算如图3-7:
图3-7定点整数的单符号位补码加减运算
定点整数的原码乘法运算如图3-8:
图3-8定点整数的原码乘法运算
浮点数的加减运算如图3-9所示:
图3-9浮点数的加减运算
3.3开发环境
JDK1.6NetBeansIDE6.8Windows7
4小结
通过这次的计算机组成原理的课程设计,使我对计算机的认识有了更进一步的加深和认知。
在这为期一周的课程设计的期间内,在进行课程设计的过程中,我不仅巩固了以往所学过的知识,还学到了许多在课堂上所学不到的东西,比如动手能力,实际问题的解决能力和与团队中成员的团队协作与配合的能力,这都使我受益匪浅。
当然,在这个过程中,也有许多问题与困难出现。
有的经过自己的思考或与他人合作能得以解决,有的也的确费了一些周折。
但无论如何,这次对于课题的能够实现机器数的真值还原(定点整数)、定点整数的单符号位补码加减运算、定点整数乘法运算和浮点数的加减运算的设计总体来说还是比较令人满意的,不仅用到了课堂上所学到的知识,还加入了自己的一些想法与观点,而且在对编程这一方面也有了很多新的感悟与提高。
不得不说是获益良多。
经过了这次的课程设计,我想,对于我日后的计算机的相关的学习肯定会有诸多助益与影响,为将来的学习生活打下了坚实的基础。
附录
附录1源程序清单
MainFrame.java
packagecom.ys;
publicclassMain{
publicstaticvoidmain(Stringargs[]){
newNewclass(null);
}
}
Newclass.java
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.JOptionPane;
publicclassNewclassextendsFrameimplementsActionListener{
staticinti=0;
staticintm=1;
Labela1,a2,a22;
TextFieldtext1;
Buttonbutton1,m1,m2,m3,m4,m5;
Fontf;
Newclass(Strings){
super(s);
setLayout(null);
f=newFont("
楷体"
Font.BOLD,20);
m1=newButton("
机器数的真值还原(定点整数)"
);
m2=newButton("
定点整数单符号位补码加减运算"
m3=newButton("
定点整数的原码乘法"
m4=newButton("
浮点的加减运算"
m1.addActionListener(this);
m2.addActionListener(this);
m3.addActionListener(this);
m4.addActionListener(this);
m5.addActionListener(this);
m1.setBounds(10,30,160,25);
m2.setBounds(175,30,190,25);
m3.setBounds(370,30,120,25);
m4.setBounds(495,30,95,25);
add(m1);
add(m2);
add(m3);
add(m4);
a1=newLabel("
计算机组成原理算法实现(五)"
Label.CENTER);
a2=newLabel("
输入口令(000):
"
a22=newLabel("
登陆成功"
a1.setBounds(150,100,300,40);
a1.setBackground(Color.WHITE);
a1.setFont(f);
a2.setBounds(150,200,90,25);
a2.setBackground(Color.white);
a22.setBounds(200,200,200,25);
a22.setForeground(Color.white);
a22.setBackground(Color.green);
a22.setVisible(false);
text1=newTextField(18);
text1.setEchoChar('
*'
text1.setBounds(240,200,200,25);
button1=newButton("
确认"
button1.setBounds(270,250,70,30);
button1.addActionListener(this);
add(a1);
add(a2);
add(a22);
add(text1);
add(button1);
setBackground(Color.white);
setBounds(100,100,640,400);
setVisible(true);
validate();
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
newNewclass("
计算机组成原理"
publicvoidactionPerformed(ActionEvente){
Strings=newString("
000"
if(e.getSource()==button1){
while(i==0&
&
m<
=3&
(!
(text1.getText().equals("
)))){
if(text1.getText().equals(s)){
i=1;
JOptionPane.showMessageDialog(this,"
口令正确,请选择菜单栏的操作"
"
正确"
JOptionPane.INFORMATION_MESSAGE);
text1.setEnabled(false);
text1.setVisible(false);
a22.setVisible(true);
a2.setVisible(false);
}else{
m++;
JOptionPane.showMessageDialog(this,"
您输入的口令不正确"
"
警告"
JOptionPane.WARNING_MESSAGE);
text1.setText(null);
}
if(m>
3){
JOptionPane.showMessageDialog(this,"
您三次口令错误,确定后退出!
JOptionPane.ERROR_MESSAGE);
}
if(i==1){
if(e.getSource()==m1){
Form2s1=newForm2();
s1.setVisible(true);
}elseif(e.getSource()==m2){
Form3f1=newForm3();
f1.setTitle("
定点整数单符号位补码加减"
f1.setVisible(true);
}elseif(e.getSource()==m3){
Form4f2=newForm4();
f2.setTitle("
定点整数补乘法"
f2.setVisible(true);
}elseif(e.getSource()==m4){
Form5f5=newForm5();
f5.setVisible(true);
importjavax.swing.*;
importjavax.swing.SwingUtilities;
importjava.awt.TextField;
classForm2extendsFrameimplementsMouseListener{
Buttonbutton1;
Buttonbutton2;
Buttonbutton3;
Buttonbutton4;
Buttonbutt