VC6_C++计算器与进制转换工具设计步骤加代码

VC6_C++计算器与进制转换工具设计步骤加代码
VC6_C++计算器与进制转换工具设计步骤加代码

成都信息工程学院

面向对象程序设计开发文档

题目:计算器和进制转换工具

学院:控制工程学院

班级:自动化

学生姓名:

学号:2011

指导教师:姚

禁止除作者外他人复制上传本文档到百度文库和豆丁网这类网站!!!

二〇一二年十二月十三日

课程名称:面向对象的程序设计学院:控制工程学院班级:自动化学生姓名:学号: 2011 指导教师:

摘要

本设计实现了一个简单的计算器,该计算器不仅实现了简单的四则运算功能,还实现了三角函数计算功能,而且具有简洁大方的图文外观。此设计按照软件工程的方法进行,系统具有良好的界面和必要的交互信息,使操作人员能快捷简单地进行操作,充分降低了数字计算的难度和节约了时间。

编写一个简单的DOS窗口运行的工具,实现将任意的十进制整数转换成R进制数(R在2-16之间)。本系统开发平台为Windows 7,程序设计语言采用C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。

关键词:程序设计;计算器;MFC;按钮控件;进制转换

目录

引言 (1)

第一章概述 (2)

1.1 可行性分析 (2)

1.2 需求分析 (2)

第二章总体设计 (2)

2.1 功能说明 (2)

第三章软件设计 (3)

3.1 计算器工程创建 (3)

3.2 计算器开发步骤 (5)

3.3 进制转换工具设计步骤 (13)

结论 (18)

引言

计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求平方等简单运算的工具。要实现计算功能,可以用VC++的知识编写程序来解决此问题。用。

在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。

本课程设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算。

在日常工作中,有时会需要对数字进行进制的转换,但是笔算往往速度慢,而且有时会计算错误,所以编译一个简单的进制转换工具能使得计算变得简单。

第一章概述

在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以一些进行高级的科学计算。

编程实现将任意的十进制整数转换成R进制数(R在2-16之间),使得进制转换避免笔算的失误。

1.1 可行性分析

本设计第一是简单计算器,日常计算机使用中,常常涉及到一些有关计算的问题,一个小型的计算器软件变得非常有用,该校型计算器需要空间资源较少,对电脑其他程序的应用影响较小。它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的健壮性;醒目美观的软件封面。使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

本设计第二是编程实现将任意的十进制整数转换成R进制数(R在2-16之间),使得进制转换避免笔算的失误。

1.2 需求分析

本软件主要用于计算机windowsXP以上版本的用户的使用,这次课程设计一般是实现简单计算器的功能。包含正余弦,平方,开方,三角函数等运算。可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。包含清除,退格,退出功能以及有与所有按钮相对应的菜单项。

第二章总体设计

2.1 功能说明

它的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时

间,对人们的生活有一定的帮助。

(1)包含的功能有:加、减、乘、除运算,开方、平方,三角函数等功能。

(2)给对话框添加菜单。

(3)计算功能基本上是用系统内部函数。

(4)程序可以能自动判断输入数据的正确性,不出现多于一个小数点、以0开头等不正常现象。

(5)“A C”按钮可以清除所有已输入的数据从头计算。

第三章软件设计

3.1 计算器工程创建

(1)打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名02exam62及其所在位置点击确定,如图3-1所示。

图3-1 新建MFC AppWizard工程

(2)将弹出MFC AppWizard-step 1对话框,选择基本对话框点击完成,如图3-2所示。

图3-2 基本对话框

(3)这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图3-3所示。

图3-3 基本对话窗口

3.2 计算器开发步骤

1、创建控件

在资源视图ResourceView中,选择Dialog中ID为IDD_MY_DIALOG的对话框,删

除对话框上已有的控件。然后利用控件工具箱,按照图3-4所示在该对话框上添加控件

图3-4 Edit属性对话框

(2)

图3-5 Push Button属性

(3)计算器界面布局完成之后,双击各个按钮,添加消息响应函数,如按钮1的消息函数添加如图3-6所示双击按钮1即可

图3-6添加消息函数

(4)修改编辑框Edit的ID为:IDC_EDIT_INPUT。按下“Ctrl+W”弹出ClassWizard对话框,在该对话框属性页MemberVariables上,选择IDC_EDIT_INPUT控件,利用Add Variables 增加两个变量如图3-7所示:

图3-7添加变量

(5)在CMyDlg的头文件中定义变量,代码如下:

public:

enum CACU_TYPE {ADD=0,SUB,MUL,DIV,NOTYPE};

CACU_TYPE m_curType;

bool m_bNextNumber; //判断是否是参与运算的第二个数

float m_PreData; //保存参与运算的第一个数

(6)

在ClassView中,利用鼠标选中“CMyDlg”,按下鼠标右键弹出如图4所示对话框,点击Add Member Function 增加成员函数,函数具体声明如图3-9所示:

图3-8选择增加成员函数

图3-9添加函数

(7)为刚增加的SetInfo函数添加函数定义,代码如下:

void CMyDlg::SetInfo(char c)

{

if(m_bNextNumber)

m_editCurData.SetWindowText("");

m_bNextNumber = false;

CString str;

m_editCurData.GetWindowText(str); //得到的是字符串类型

if(str=="0") //单独只有一个零时,要先把零去掉

str="";

str+=c;

m_editCurData.SetWindowText(str);

}

(8)、为函数OnButton1()~OnButton9()依次添加代码,如下所示:(数字1-9)

void CMyDlg::OnButton1()

{

SetInfo('1');

}

······

void CMyDlg::OnButton9()

{

SetInfo('9');

}

九、为函数OnButton10()添加代码如下:

void CMyDlg::OnButton10()

{

if(m_bNextNumber)

m_editCurData.SetWindowText("");

m_bNextNumber = false;

CString str;

m_editCurData.GetWindowText(str);

if(str!="0") //不是单个零的时候,即前面有数字,则在后面加零;否则是单个零时,就不变化,保持单个零

str+='0';

m_editCurData.SetWindowText(str);

}

十、为函数OnButtonDot添加代码如下:(小数点)

void CMyDlg::OnButtonDot()

{

CString str;

m_editCurData.GetWindowText(str);

if(str.Find('.')==-1) //输入数中,没有找到小数点,可以加入一个小数点,如果有小数点,就不能再加了。

str+='.';

m_editCurData.SetWindowText(str);

}

十一、为函数OnButtonAc()添加代码如下:(清零)

void CMyDlg::OnButtonAc()

{

m_CurData=0;

m_PreData=0;

m_curType = NOTYPE;

UpdateData(FALSE);

}

十二、为函数OnButtonAdd( )添加代码如下。(加)

void CMyDlg::OnButtonAdd()

{

UpdateData(TRUE);//取回控件上的变量

m_PreData = m_curData;

m_bNextNumber = TRUE;

m_curType = ADD;

}

十三、为函数OnButtonSub( )添加代码如下。(减)

void CMy02exam62Dlg::OnButtonSub()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);//取回控件上的变量

m_PreData = m_CurData;

m_bNextNumber = TRUE;

m_curType = SUB;

}

十四、为函数OnButtonMul( )添加代码如下。(乘)

void CMy02exam62Dlg::OnButtonMul()

// TODO: Add your control notification handler code here

UpdateData(TRUE);//取回控件上的变量

m_PreData = m_CurData;

m_bNextNumber = TRUE;

m_curType = MUL;

}

十五、为函数OnButtonDiv( )添加代码如下。(除)

void CMy02exam62Dlg::OnButtonDiv()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);//取回控件上的变量

m_PreData = m_CurData;

m_bNextNumber = TRUE;

m_curType = DIV;

}

十六、为函数OnButtonSin( )添加代码如下。(正弦)

void CMy02exam62Dlg::OnButtonSin()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);//取回控件上的变量

m_PreData = m_CurData;

m_bNextNumber = TRUE;

m_curType = SIN;

}

十七、为函数OnButtonCos( )添加代码如下。(余弦)

void CMy02exam62Dlg::OnButtonCos()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);//取回控件上的变量

m_PreData = m_CurData;

m_bNextNumber = TRUE;

m_curType = COS;

}

十八、为函数OnButtonTan( )添加代码如下。(正切)

void CMy02exam62Dlg::OnButtonXy()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);//取回控件上的变量

m_PreData = m_CurData;

m_bNextNumber = TRUE;

m_curType = TAN;

十九、为函数OnButtonKf( )添加代码如下。(开方)

void CMy02exam62Dlg::OnButtonKf()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);//取回控件上的变量

m_PreData = m_CurData;

m_bNextNumber = TRUE;

m_curType = KF;

}

二十、为函数OnButtonPF( )添加代码如下。(平方)

void CMy02exam62Dlg::OnButtonPf()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);//取回控件上的变量

m_PreData = m_CurData;

m_bNextNumber = TRUE;

m_curType = PF;

}

二十一、为函数OnButtonBack( )添加代码如下。(退格)void CMy02exam62Dlg::OnButtonBack()

{

// TODO: Add your control notification handler code here

if(m_bNextNumber)

m_editCurData.SetWindowText("");

m_bNextNumber = false;

CString str;

m_editCurData.GetWindowText(str);

str = str.Left(str.GetLength() - 1);

if(str == "")

str ='0';

m_editCurData.SetWindowText(str);

}

二十二、为函数OnButtonEqual ( )添加代码如下。(等于)void CMy02exam62Dlg::OnButtonQueal()

{

// TODO: Add your control notification handler code here

UpdateData(TRUE);// 取回参与运算的第二个变量

switch(m_curType)

{

case ADD:

m_CurData = m_PreData + m_CurData;

break;

case SUB:

m_CurData = m_PreData - m_CurData;

break;

case MUL:

m_CurData = m_PreData * m_CurData;

break;

case DIV:

m_CurData = m_PreData / m_CurData;

break;

case KF:

m_CurData = m_CurData * m_CurData;

break;

case PF:

m_CurData = sqrt(m_CurData);

break;

case SIN:

m_CurData = m_CurData * 3.1415926/180;

m_CurData = sin(m_CurData);

break;

case COS:

m_CurData = m_CurData * 3.1415926/180;

m_CurData = cos(m_CurData);

break;

case TAN:

m_CurData = m_CurData * 3.1415926/180;

m_CurData = tan(m_CurData);

break;

};

UpdateData(FALSE);

(9)、编译运行程序,实现加法,减法、乘法及除法,正弦,余弦,正切,开方,平方,退格,清零功能,完成简易计算器

3.3 进制转换工具设计步骤

(1)打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择Win32 Console Application工程,输入工程名02exam62及其所在位置点击确定,如图3-10所示。

图3-10选择工程

(2)将弹出Win32 Console Application 1对话框,选择Hello Word点击完成,如图3-11所示。

图3-11选择类型

(3)、新建源文件与头文件,新建方式如图3-12

图3-12新建文件(4)、创建后如图3-13。

图3-13创建后

(4)、在头文件shuzhi.h中添加代码。

void zhuanh(int numa, int numb);

(5)、修改04exam62.cpp内的代码如下。

#include "stdafx.h"

#include"shuzhi.h"

int main(int argc, char* argv[])

{

int num, shu, i;

printf("请输入一位十进制数(空格)想要得到的进制\n"); scanf("%d%d", &num, &shu);

zhuanh(num, shu);

printf("Hello World!\n");

return 0;

}

(6)、在源文件zhuanhuan.cpp中添加代码如下。

#include "stdafx.h"

#include

void zhuanh(int numa, int numb)

{

int string[40], i = 0 , j, temp;

do

{

temp = numa % numb;

if (temp > 9)

{

string[i] = char (temp + 55);

}

二进制与计算机教学设计说明

教学设计:《二进制与计算机》 一、教材分析 本内容选自广州市教育局教学研究室2013年新编的《信息技术》初中第一册第一章《信息与信息技术》中第3节《计算机的基本工作原理》中的第二小节。二进制是计算机工作的基本形式,也是计算机理论知识中的最基本的原理,对于信息技术的学习及了解计算机的工作原理具有不可忽视的奠基作用。原教材以一小节的篇幅介绍二进制,只解答了计算机为什么要采用二进制,语焉不详,内容也相对抽象不易理解,难以引起学生的兴趣和重视。有鉴于此,笔者单独以一课时的时间介绍这一相关知识。 二、教学对象分析 本课教学对象为初一的学生。初一的学生活泼好动,但其逻辑思维能力和抽象思维能力相对较弱,对于二进制的工作原理不一定能够直观地理解,所以,笔者在教学设计中,以活动为主线,环环相扣,让学生在游戏中不断体悟二进制的妙用。 三、教学目标 (一)知识与技能:学会二进制数与十进制数之间的转化,认识计算机表示字符的原理,认识计算机描述图片的原理。 (二)过程与方法:通过模拟活动体会到计算机对字符的表示方法,通过设计图形编码了解计算机对图像的表示方法。 (三)情感态度价值观:学会相互之间的合作和沟通,了解二进制原理在计算机中和生活中的应用,激发其创新思考的乐趣。 四、重点难点分析 教学重点:二进制与十进制的转换 教学难点:二进制对字符的表示 五、教学手段 讲授法、游戏法 教学环节 教学活动 设计意图教师活动学生活动 导入展示4张牌,第一张牌上有1个点,第二张 牌上有2个点,第三张牌上有4个点,第4 张牌上有8个点,让学生观察规律,说出第 5张牌有多少个点?其规律是什么? (第i张牌的点数是2i-1 ) 观察牌,总结 规律 题目简单有 趣,能够在短 时间内吸引学 生的注意力。 而且每张牌的 点数隐含着二 进制位数的 权,为正式介 绍二进制做好 铺垫。

计算机期末复习题数和编码

数和编码选择题题库 A) K B) a C) h D) H A) 尾数 B) 基数 C) 整数 D) 小数 A) (B ) B) 221(O ) C) 147 (D ) D) 94 (H ) A) B) C) 1000010 D) 01111011 A) 八进制 B) 十六进制 C) 十进制 D) 二进制 A) B) C) D) A) 256 B) 299 C) 199 D) 312 A) 整数部分和小数部分 B) 阶码部分和基数部分 C) 基数部分和尾数部分 D) 阶码部分和尾数部分 A) B) C) D) A) 二进制 B) 八进制 C) 十进制 D) 十六进制 A) R B) R-1 C) R/2 D) R+1 A) 码数 B) 基数 C) 位权 D) 符号数 A) H 、O 分别代表二、八、十、十六进制数 B) 十进制数100用十六进制数可表示为(100)16 C) 在计算机内部也可以用八进制数和十六进制数表示数据 D) 十六进制数AEH 转换成二进制无符号数是B A) 二进制数 B) 八进制数 C) 十进制数 D) 十六进制数

A) 64 B) 63 C) 100 D) 144 A) 8 B) 7 C) 10 D) 16 A) 255 B) 256 C) 127 D) 128 A) 字母符号 B) 数字字符 C) 十进制数 D) 十六进制数 A) 1 B) 2 C) 4 D) 8 A) + B) - C) 0 D) 1 A) 纯小数 B) 负整数 C) 分数 D) 第一小数位是 0的数 A) 汉字 B) 字符 C) 图象 D) 声音 A) a 〈b 〈c B) b 〈a 〈c C) c 〈b 〈a D) a 〈c 〈b A) 计算机不能直接 识别十进制数,但能 直接识别二进制数 和十六进制数 B) ASCII 码和国标码都是对符号的编码 C) 一个ASCII 码由七位二进制数组成 D) ASCII 码是用每四位一组表示一个十进制数的 A) (101011)2 B) (56)8 C) (40)10 D) (3B)16 A) 257 B) 201 C) 313 D) 296 A) 59 B) 62 C) 69 D) 89 A) 位( 比特) B) 字节 C) 字长 D) 千字节

计算机二级考试二进制专题讲解

计算机二级考试专题讲解一 二进制的使用与转换 在计算机二级考试中,选择题会考十进制与二进制的转换。特在此,给菇娘讲解计算机考试中的二进制转换。 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。【计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0】 一、进制的概念 在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,B表示二进制,O表示八进制,D表示十进制,H表示十六进制。二、十进制是最主要的表达形式。本次我们考Office2010高级应用选择题一定会设计到二进制与十进制之间的转换,一般也只会考二进制与十进制转换,但我在做网上一些题时,碰到了二进制与十六进制、八进制,十进制与八进制、十六进制的转换。菇娘在学习进制转换时还是把重点放在二进制与十进制的转换,为了以防万一会考其他进制转换,我在这里还是编排进了八进制、十六进制等之间的转换,对于这部分菇娘了解了解吧。 对于进制,有两个基本的概念:基数和运算规则。 基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字。二进制是0和1;八进制是0-7;十进制是0-9;十六进制是0-9、A、B、C、D、E、F(十六进制的各字母所代表的数字是:A(10)、B(11)、C(12)、D(13)、大小写均可)。也可以这样简单记忆,假设是n进制的话,基数就是【0,n-1】的数字,基数的个数和进制值相同,二进制有两个基数,十进制有十个基数,依次类推。 运算规则:运算规则就是进位或错位规则。例如对于二进制来说,该规则是“满二进一,借一当二”;对于十进制来说,该规则是“满十进一,借一当十”。其他进制也是这样。 B表示二进制,O表示八进制,D表示十进制,H表示十六进制。 二进制数据的表示法 二进制数据是采用位置计数法,其位权是以2为底的幂。 【例】二进制数据110.11,逢2进1,其权的大小顺序为22、21、2o、、。

任意进制计数器及简易秒表设计

实验四:时序逻辑电路设计——任意进制计数器及简易秒表设 计 一、实验目的 1.熟悉硬件编程语言Verilog HDL的基本语法及应用 2.熟悉FPGA/CPLD的使用 3.基本掌握现代逻辑电路设计思想方法 4.掌握计数器的工作原理,掌握任意进制计数器构成的脉冲反馈法 二、实验设备 PC机,QuartusII实验开发环境,FPGA实验开发板 三、实验要求: 1、认真阅读实验指导材料及相关数据手册,写出实验预习报告。 2、预先熟悉QuartusII 的使用。 3、根据课本第七章、第八章的内容及补充本部分补充知识,对本设计 要求完成的实验内容预先完成程序流程设计、运用Verilog HDL进 行逻辑电路设计时的模块结构及主要模块功能定义。 4、分析实验结果及实验中出现的问题,并给出合理的解释。 5、实验结束后写出实验报告,按时提交实验报告的纸版和电子版。 6、预先完成本实验涉及到的集成电路手册的预习。 7、实验结束后完成详细的实验总结报告,包括实验目的和要求,实验 原理、实验详细过程及步骤,实验问题分析及改进措施,实验结 果分析等内容。 四、实验项目 1、基础实验 设计四位同步10进制计数器 根据四位同步10 进制计数器(74LS160)的工作原理,运用硬件编程语言Verilog HDL及FPGA实验开发板设计一个同步10进制计数器,并通过译码器显示电路,在LED上显示出相应计数结果。 2、提高性实验: 设计一简易秒表

要求所设计的秒表能够完成60秒的计时功能,计时满60秒给出一个状态提示信息。 用硬件编程语言Verilog HDL及FPGA实验开发板、LED完成本实验。本版实验板的七段数码管是通过动态扫描的方式进行不同的时钟显示功能,右下图可知LEDDIG0~LEDDIG7时LED的片选信号,LEDSEGA~LEDSEGH为数码管的a,b,c,d,e,f,g,管脚。通过动态扫描方式来实现不同数码管的电亮工作。 五、实验说明 (1)计数器原理 74LS160是四位10进制加法计数器,计数满10个状态产生一个进位,进位信号由1001状态产生,具有置零和置数功能,可以运用脉冲反馈法构成任意进制计数器,其工作原理见教材P250-255。 电路结构图及管角分布如下图所示。其使用见本实验提供的74LS160 Datasheet。

设计任意进制计数器

设计任意进制计数器 一、实验目的 掌握中规模集成计数器的使用方法及功能测试方法。 二、实验内容及要求 采用(74LS192)复位法或预置数法设计一个三位十进制计数器。要求各位同学设计的计数器的计数容量是自己学号的最后三位数字。 三、设计过程 74LS192是中规模同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列如图所示。74LS192(CC40192)的功能如下表所示。 1234A B C D 4 3 2 1 D C B A 161514131211109 Vcc D CR BO CO LD D D D Q Q CP CP Q Q GND 12345678 D 1 1 023 3 u2 74LS192 CR:清除端CP u:加计 数端 LD :置数端CP D:减计 数端 CO :非同步进位输出端 BO :非同步借位输出端 D3、D2、D1、D0:数据输入端 Q3、Q2、Q1、Q0:输出端 74LS192引脚排列图 表74LS192(CC40192)的功能 输入端输出端功能 CR LD CP u CP D D3 D2 D1 D0 Q3 Q2 Q1 Q0 1 ×××××××00 0 0 清零 0 0 ×× d c b a d c b a 置数 0 1 ↑ 1 ××××0000~1001加计数1001时CO=0 0 1 1 ↑××××1001~0000减计数0000时BO=0 用M进制集成计数器可以构成N(任意)进制的计数器。通常用反馈清零 法和反馈置数法。当计数器的计数N>M时,则要用多片M进制计数器构成。 其计数规律为:当低位计数器没有达到计数的最大值时,如74LS192的1001时, 其高位芯片应处于保持状态,只有当低位芯片计数达到最大值时,给相邻的高位 芯片计数器发一个信号,使其脱离保持状态,进入计数状态。现以233为例为计 数容量进行设计。由于233为三位数,因此需用三块74LS192。 1、清零法: CR(R D)=(Q1Q0)百(Q1Q0)拾(Q1)个 初态:0000 终态:233-1=232即:0010 0011 0010 状态转换图:(略)

二进制,八进制,十进制,十六进制互相转化的C语言源代码

#include #include #include void D_B(int); void D_O(int); void D_X(int); void B_D(int); void B_O(int); void B_X(int); void O_B(int); void O_D(int); void O_X(int); void X_B(char r[],int k); void X_D(char r[],int k); void X_O(char r[],int k); void main() { int i,j,k=0; int q; char r[10]; printf("+=============================================================+\n"); printf("| 欢迎使用进制转换程序|\n"); printf("+=============================================================+\n"); printf(" 注:本版本只做正整数的进制转换!!"); do { q=0; //fflush(stdin); printf("\n请选择需要被转换的进制:\n0、退出\n1、二进制\n2、八进制\n3、十进制\n4、十六进制\n"); scanf("%d",&i); switch (i) { case 1: printf("\n请选择转换后的进制:\n0、退出\n1、二进制\n2、八进制\n3、十进制\n4、十六进制\n"); scanf("%d",&j); switch(j) { case 1: printf("\n同进制之间不用转化!\n"); q=1; break; case 2: printf("\n请输入您想要转化的数:"); scanf("%d",&k); B_O(k);

二进制与计算机教学设计

二进制与计算机教学设 计 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

教学设计:《二进制与计算机》 一、教材分析 本内容选自广州市教育局教学研究室2013年新编的《信息技术》初中第一册第一章《信息与信息技术》中第3节《计算机的基本工作原理》中的第二小节。二进制是计算机工作的基本形式,也是计算机理论知识中的最基本的原理,对于信息技术的学习及了解计算机的工作原理具有不可忽视的奠基作用。原教材以一小节的篇幅介绍二进制,只解答了计算机为什么要采用二进制,语焉不详,内容也相对抽象不易理解,难以引起学生的兴趣和重视。有鉴于此,笔者单独以一课时的时间介绍这一相关知识。 二、教学对象分析 本课教学对象为初一的学生。初一的学生活泼好 动,但其逻辑思维能力和抽象思维能力相对较弱,对于 二进制的工作原理不一定能够直观地理解,所以,笔者 在教学设计中,以活动为主线,环环相扣,让学生在游 戏中不断体悟二进制的妙用。 三、教学目标 (一)知识与技能:学会二进制数与十进制数之间的转化,认识计算机表示字符的原理,认识计算机描述图片的原理。 (二)过程与方法:通过模拟活动体会到计算机对字符的表示方法,通过设计图形编码了解计算机对图像的表示方法。 (三)情感态度价值观:学会相互之间的合作和沟通,了解二进制原理在计算机中和生活中的应用,激发其创新思考的乐趣。 四、重点难点分析 教学重点:二进制与十进制的转换 教学难点:二进制对字符的表示 五、教学手段 讲授法、游戏法 六、教学实施过程

七、教学反思 笔者在设计这节课的时候,曾经反复思考,按照计算思维的理论,应该怎样将计算机的理论知识变成普适的知识。计算机的发明和不断改进,以及层出不尽的应用,都凝聚了前辈的智慧,不少伟大的数学家、计算机科学家在为其添砖加瓦,不妨说计算机是人类智慧的伟大结晶。但我们在教授信息技术课程,或者说计算机理论知识时,更多只停留在应用层面,或者只讲解现成的构架,没有将发明过程中的艰难问题提出来,没有将计算机科学家如何柳暗花明巧妙化解难题的智慧表现出

《设计任意进制计数器》的实验报告

实验八设计任意进制计数器 一、实验目的 掌握中规模集成计数器的使用方法及功能测试方法。 二、实验内容及要求 采用(74LS192)复位法或预置数法设计一个三位十进制计数器。要求各位同学设计的计数器的计数容量是自己学号的最后三位数字。 三、设计过程 用M进制集成计数器可以构成N(任意)进制的计数器。通常用反馈清零法和反馈置数法。当计数器的计数N>M时,则要用多片M进制计数器构成。其计数规律为:当低位计数器没有达到计数的最大值时,如74LS192的1001时,其高位芯片应处于保持状态,只有当低位芯片计数达到最大值时,给相邻的高位芯片计数器发一个信号,使其脱离保持状态,进入计数状态。现以233为例为计数容量进行设计。由于233为三位数,因此需用三块74LS192。 1、清零法: CR(R D)=(Q1Q0)百(Q1Q0)拾(Q1)个 初态:0000 终态:233-1=232即:0010 0011 0010 状态转换图:(略)

2、置数法:由于74LS192是具有异步清零、置数功能的十进制计数器,因此保留哪233种状态,方法有多种。下图是其中两种置数法。犹以最后一种使用器件最少,接线最为简单。 方案一: 方案三: LD=(Q1Q0)百(Q1Q0 )拾(Q2Q0)个(或LD=CO) 初态:0000(或1000-332=668) 终态:332-1=331即:0011 0011 0001(或999)

四、实验用仪器、仪表 数字电路实验箱、万用表、74LS192、74LS00、74LS20、74LS08等 五、实验步骤 ①清零法: 1.检查导线及器件好坏(即加上电源后,按74LS192的功能表进行检测)。 2.按上图连接电路。LD、CP D分别接逻辑开关并置为高电平,百位(74LS192(3))、拾位、个位的Q 、Q2、Q1、Q0分别接发光二极管或数码管,计数脉冲接手动或1Hz 3 时钟脉冲。检查无误后接通电源。 3.加入CP进行测试并检查结果是否正确,如有故障设法排除。 4.结果无误后记录数据后拆线并整理实验设备。 实验证明,实验数据与设计值完全一致。设计正确。 ②置数法: 1.检查导线及器件好坏(即加上电源后,按74LS192的功能表进行检测)。 分别接逻辑开关并置为高电平,百位(74LS192(3))、 2.按上图连接电路。CR、CP D 拾位、个位的Q 、Q2、Q1、Q0分别接发光二极管或数码管,计数脉冲接手动或1Hz 3 时钟脉冲。检查无误后接通电源。

二进制计算机代码