VC++计算器与进制转换工具设计

合集下载

c++中十进制转二进制

c++中十进制转二进制

c++中十进制转二进制C++是一种通用的编程语言,可以用于各种应用领域,包括数值计算。

在C++中执行十进制转二进制的操作是相对简单的。

在本篇文章中,我将详细介绍在C++中实现十进制转二进制的各种方法和技巧。

1.使用位运算符位运算符是一种强大的工具,可以在C++中轻松进行二进制操作。

在十进制转二进制的过程中,我们可以使用位运算符来从右向左逐位处理十进制数字,并将它们转换为二进制位。

一种常见的方法是使用与运算符(&)和右移运算符(>>)。

以下是一个简单的程序示例,演示如何将十进制数转换为二进制:```cpp#include <iostream>void decimalToBinary(int decimal) {if (decimal > 0) {decimalToBinary(decimal >> 1); std::cout << (decimal & 1);}}int main() {int decimal;std::cout << "请输入一个十进制数:"; std::cin >> decimal;std::cout << "转换为二进制数:"; decimalToBinary(decimal);return 0;}```在上面的程序中,我们首先定义了一个名为decimalToBinary的递归函数,它将按照从右到左的顺序处理十进制数。

递归调用将decimal右移一位,然后用与运算符(&)获取最低位的值。

然后,我们将这个二进制位输出到控制台。

递归调用会一直持续,直到十进制数变为0为止。

在主函数中,我们接受用户的输入,并调用decimalToBinary函数来执行转换操作。

最后,我们输出转换后的二进制数。

2.使用库函数C++提供了许多方便的库函数,可以帮助我们实现十进制转二进制的操作。

C课程设计-仿照Windows设计计算器

C课程设计-仿照Windows设计计算器

《可视化编程技术课程设计》报告题目仿照Windows系统计算器设计计算器1.引言计算器的产生和发展是建立在电子计算机基础之上的,现代社会很需要一个健全、高效率的计算器。

为了提高自己的实践能力和将来开发一个更实用更全能更智能的计算器,以设计与实现计算器为课题。

此次设计的计算器应用软件从visual studio 2012编程环境中开发,是一个简单的窗体应用程序,实现简单的计算器功能。

以微软自带的计算器为模板,设计了简单易懂的计算器。

这款计算器不仅实现了简单的四则运算的功能,还可以进行复杂数学运算,和进制转换(十进制转二进制、八进制、十六进制)。

具有简洁的外观,即时准确的获得所需要要计算的结果,充分降低了数字计算器的难度和所需要的时间,对人们生活和学习具有有很大的帮助。

2. 系统设计(1)功能设计本计算器由四大模块,分别为:1.标准计算器(即为主窗口)2.科学型计算器3.程序员计算器(进制转换)4.开发者介绍(2)界面设计主窗口界面(from1)科学型计算器界面(from2)程序员界面(from3)开发者介绍(from4)1.文本框的设置:textBox1.Text = "0";窗口启动前:Form1.x = 0;//point:1 ;nopoint: 0Form1.a = 0;//1:+ 2:- 3:* 4:/Form1.b = 0;//判D断?是否执行过运算执行过运算Form1.shu1 = 0;Form1.shu2 = 0;Form1.result = 0;2.按键的设置:数字键及小数点:public static void number(object sender, TextBox textBox1){Button btn = (Button)sender;if ( == "one"){if (x == 1)//判断有小数点Ì{textBox1.Text = textBox1.Text + '1';return;}if (b != 0){textBox1.Text = "0";b = 0;}if (double.Parse(textBox1.Text) == 0)textBox1.Text = " 1";elsetextBox1.Text = (textBox1.Text + '1').ToString(); }if ( == "two"){if (x == 1)//判断有无小数点{textBox1.Text = textBox1.Text + '2';return;}if (b != 0){textBox1.Text = "0";b = 0;}textBox1.Text = " 2";elsetextBox1.Text = (textBox1.Text + '2').ToString(); }if ( == "three"){if (x == 1)//判断有无小数点{textBox1.Text = textBox1.Text + '3';return;}if (b != 0){textBox1.Text = "0";b = 0;}if (double.Parse(textBox1.Text) == 0)textBox1.Text = " 3";elsetextBox1.Text = (textBox1.Text + '3').ToString(); }if ( == "four"){if (x == 1)//判断有无小数点{textBox1.Text = textBox1.Text + '4';return;}if (b != 0){textBox1.Text = "0";b = 0;}if (double.Parse(textBox1.Text) == 0)textBox1.Text = " 4";elsetextBox1.Text = (textBox1.Text + '4').ToString(); }if ( == "five"){if (x == 1)//判断有无小数点{textBox1.Text = textBox1.Text + '5';return;if (b != 0){textBox1.Text = "0";b = 0;}if (double.Parse(textBox1.Text) == 0)textBox1.Text = " 5";elsetextBox1.Text = (textBox1.Text + '5').ToString(); }if ( == "six"){if (x == 1)//判断有无小数点{textBox1.Text = textBox1.Text + '6';return;}if (b != 0){textBox1.Text = "0";b = 0;}if (double.Parse(textBox1.Text) == 0)textBox1.Text = " 6";elsetextBox1.Text = (textBox1.Text + '6').ToString(); }if ( == "seven"){if (x == 1)//判断有无小数点{textBox1.Text = textBox1.Text + '7';return;}if (b != 0){textBox1.Text = "0";b = 0;}if (double.Parse(textBox1.Text) == 0)textBox1.Text = " 7";elsetextBox1.Text = (textBox1.Text + '7').ToString(); }{if (x == 1)//判断有无小数点{textBox1.Text = textBox1.Text + '8';return;}if (b != 0){textBox1.Text = "0";b = 0;}if (double.Parse(textBox1.Text) == 0)textBox1.Text = " 8";elsetextBox1.Text = (textBox1.Text + '8').ToString(); }if ( == "nine"){if (x == 1)//判断有无小数点{textBox1.Text = textBox1.Text + '9';return;}if (b != 0){textBox1.Text = "0";b = 0;}if (double.Parse(textBox1.Text) == 0)textBox1.Text = " 9";elsetextBox1.Text = (textBox1.Text + '9').ToString(); }if ( == "zero"){if (x == 1)//判断有无小数点{textBox1.Text = textBox1.Text + '0';return;}if (b != 0)//两个数的界限判断?{textBox1.Text = "0";b = 0;if (double.Parse(textBox1.Text) == 0)textBox1.Text = " 0";elsetextBox1.Text = (textBox1.Text + '0').ToString();}}public void one_Click(object sender, EventArgs e){number(sender, textBox1);}public void Form1_Load(object sender, EventArgs e){textBox1.Text = "0";}public static void point(object sender, TextBox textBox1){if (double.Parse(textBox1.Text) == 0)x = 1;textBox1.Text = (textBox1.Text + '.').ToString();}public void xiaoshudian_Click(object sender, EventArgs e){point(sender, textBox1);}运算符号1(加减乘除、退格。

c语言制作简单的计算器

c语言制作简单的计算器

c语言制作简单的计算器在计算机编程领域中,C语言是一种广泛使用的编程语言之一。

它具有简单易学的特点,并且能够进行复杂的计算和逻辑处理。

今天,我们就来学习一下如何使用C语言来制作一个简单的计算器。

首先,我们需要明确我们计算器的功能和界面设计。

本次制作的计算器将具有基本的四则运算功能,即加法、减法、乘法和除法。

我们将在控制台中实现计算器的操作,并通过简单的用户界面进行交互。

接下来,我们需要创建一个C语言程序的框架。

首先,我们需要包含头文件,以便在程序中使用各种函数和变量。

我们可以使用"#include" 来引入头文件,例如:```c#include <stdio.h>```然后,我们需要定义主函数 `main()`。

在这个函数中,我们将编写计算器的逻辑代码。

让我们开始编写函数吧!首先,我们需要声明一些变量来存储用户输入的数字和运算符。

我们可以使用 `int` 来定义整数变量,并用 `char` 定义字符变量。

例如:```cint num1, num2, result;char operator;```接下来,我们需要提示用户输入要进行的运算,并读取用户输入的数字和运算符。

我们可以使用 `printf` 和 `scanf` 函数来完成这个任务,例如:```cprintf("请输入第一个数字: ");scanf("%d", &num1);printf("请输入运算符(+, -, *, /): ");scanf(" %c", &operator);printf("请输入第二个数字: ");scanf("%d", &num2);```注意,我们在读取运算符之前添加了空格,这是为了消除输入缓冲区中可能残留的换行符等字符。

接下来,我们需要编写代码来进行实际的计算操作。

VC++制作一个入门的计算器软件

VC++制作一个入门的计算器软件

VC++制作入门计算器本文档是运用VC++制作一个入门计算器的过程。

由于时间和知识技能原因,只能简单的做一个入门级的计算器(只实现加减乘除功能),以后的内容再追加。

一、建立工程启动VC++,然后“文件”新建一个工程,选择“MFC AppWizard(exe)”选项,输入工程名,确定。

(如下图)弹出“MFC应用程序向导-步骤1”选择“基本对话框”,语言选“中文”,点击完成。

在弹出的控件界面,把按钮先删除。

二、设计计算器界面根据自己的喜好设计计算器的界面,(下图是我设计的简易的界面)。

用控件里面的布局计算器的界面,修改按钮显示,先右击要修改的按钮,选择“属性”,修改对应的“标题”。

按钮设计好之后,设置对应的类,加减乘除四个运算符分别如下设置,右击选“建立类向导”,在“Message Maps”选项内,选对应的“IDC_BUTTON1”,设置Messages:BN_CLICKED,然后“Add Function”,一次选择其他三个按钮,按确定。

(如下图)编辑框如下类,同样是右击编辑框,右击选“建立类向导”,选择第二个选项,选择IDC_EDIT1,然后选Add Variable...,在弹出的对话框中名字中输入m_num1,类型选数字Double,对应设置剩下的编辑框,然后确定。

下一步是输入代码。

三、代码的输入双击“+”按钮,然后点击确定,在对应的代码语句中输入下面的语句:void CMyDlg::OnButton1(){UpdateData(1);m_num3=m_num1+m_num2;UpdateData(0);}双击“-”按钮,然后点击确定,在对应的代码语句中输入下面的语句:void CMyDlg::OnButton2(){UpdateData(1);m_num3=m_num1-m_num2;UpdateData(0);}双击“X”按钮,然后点击确定,在对应的代码语句中输入下面的语句:void CMyDlg::OnButton3(){UpdateData(1);m_num3=m_num1*m_num2;UpdateData(0);}双击“/”按钮,然后点击确定,在对应的代码语句中输入下面的语句:void CMyDlg::OnButton4(){UpdateData(1);if(m_num2==0)MessageBox("除数不能为0,请重新输入除数!");elsem_num3=m_num1/m_num2;UpdateData(0);}四:测试到此软件设置完成,运行看看。

C语言实现十进制数转换为二进制和十六进制

C语言实现十进制数转换为二进制和十六进制

C语言实现十进制数转换为二进制和十六进制在程序设计中,经常需要将十进制数转换为其他进制,比如二进制(即二进制数)和十六进制(即十六进制数)。

C语言提供了一些函数和库来实现此功能。

下面是一个示例程序,展示了如何将十进制数转换为二进制和十六进制。

```c#include <stdio.h>//将十进制数转换为二进制void decimalToBinary(int decimal)int binary[32];int i = 0;while (decimal > 0)binary[i] = decimal % 2;decimal = decimal / 2;i++;}printf("Binary representation: ");for (int j = i - 1; j >= 0; j--)printf("%d", binary[j]);}printf("\n");//将十进制数转换为十六进制void decimalToHexadecimal(int decimal)char hexadecimal[32];int i = 0;while (decimal > 0)int remainder = decimal % 16;if (remainder < 10)hexadecimal[i] = remainder + '0';} elsehexadecimal[i] = remainder + 55; // 55 is the ASCII value for 'A'}decimal = decimal / 16;i++;}printf("Hexadecimal representation: ");for (int j = i - 1; j >= 0; j--)printf("%c", hexadecimal[j]);}printf("\n");int maiint decimal;printf("Enter a decimal number: ");scanf("%d", &decimal);decimalToBinary(decimal);decimalToHexadecimal(decimal);return 0;```这个示例程序中,首先定义了两个函数 `decimalToBinary` 和`decimalToHexadecimal`,用于将十进制数转换为二进制和十六进制。

c语言进制转换算法代码

c语言进制转换算法代码

c语言进制转换算法代码c语言的进制转换是研究计算机原理时非常重要的知识,它能够帮助我们更有效更准确的记录信息和处理计算问题。

下面我们就来介绍c语言中进制转换的基本算法代码:一、进制转换的基本步骤1. 确定源进制和目标进制,比如从十进制转换为八进制、十六进制;2. 将源进制数据转换为相应的目标进制数据,比如8进制转换为10进制;3. 将转换后的目标进制数据输出到屏幕或者其他输出设备中。

二、c语言进制转换算法代码1. 八进制转换为十进制:long octalToDecimal(long n){long dec_value = 0; // 十进制数int i = 0;while(n != 0){dec_value += (n%10) * pow(8,i);n = n/10;i++;}return dec_value;}2. 十进制转换为八进制:long DecimalToOctal(long n) {int i=1;long octal_value=0;while (n!=0){octal_value+=(n%8)*i;n/=8;i*=10;}return octal_value;}3. 八进制转换为十六进制:long octalToHexadecimal(long n) {long dec_value = 0; // 十进制数int base = 1;while (n != 0){long temp = n % 10;dec_value += temp * base;n = n / 10;base = base * 8;}// 将十进制数转换为十六进制long rem;long hex_value = 0; // 十六进制数long i = 1;while (dec_value != 0){rem = dec_value % 16;hex_value = hex_value+ rem*i;dec_value = dec_value / 16;i = i * 10;}return hex_value;}4. 十进制转换为十六进制:long DecToHex(long n){long rem,hex=0, i=1;while(n!=0){rem = n % 16;hex = hex + rem * i;n /= 16;i *= 10;}return hex;}总结:以上就是c语言中进制转换的基本算法代码,深入理解这些程序的运行原理,能够帮助我们更深入了解编程的基本原理,也为我们后续c编程奠定更良好的基础。

c++进制转化代码

c++进制转化代码

c++进制转化代码下面是一个示例的 C++ 代码,用于进行不同进制之间的转换:```cpp#include <iostream>using namespace std;// 十进制转二进制string decimalToBinary(int decimal) {string binary = "";while (decimal > 0) {binary += to_string(decimal % 2);decimal /= 2;}return reverse(binary);}// 十进制转八进制string decimalToOctal(int decimal) {string octal = "";while (decimal > 0) {octal += to_string(decimal % 8);decimal /= 8;}return reverse(octal);}// 十进制转十六进制string decimalToHexadecimal(int decimal) {string hexadecimal = "";while (decimal > 0) {if (decimal % 16 < 10) {hexadecimal += to_string(decimal % 16);} else {hexadecimal += char('A' + decimal % 16 - 10);}decimal /= 16;}return reverse(hexadecimal);}// 二进制转十进制int binaryToDecimal(string binary) {int decimal = 0;for (int i = 0; i < binary.size(); i++) {decimal += (binary[i] - '0') * pow(2, binary.size() - 1 - i);}return decimal;}// 八进制转十进制int octalToDecimal(string octal) {int decimal = 0;for (int i = 0; i < octal.size(); i++) {decimal += (octal[i] - '0') * pow(8, octal.size() - 1 - i);}return decimal;}// 十六进制转十进制int hexadecimalToDecimal(string hexadecimal) {int decimal = 0;for (int i = 0; i < hexadecimal.size(); i++) {if (hexadecimal[i] >= '0' && hexadecimal[i] <= '9') {decimal += (hexadecimal[i] - '0') * pow(16, hexadecimal.size() -1 - i);} else if (hexadecimal[i] >= 'A' && hexadecimal[i] <= 'F') {decimal += (hexadecimal[i] - 'A' + 10) * pow(16, hexadecimal.size() - 1 - i);}}return decimal;}// 主函数int main() {int decimalNumber;cout << "请输入一个十进制数: ";cin >> decimalNumber;cout << "十进制数" << decimalNumber << " 转换为二进制为: " << decimalToBinary(decimalNumber) << endl;cout << "十进制数" << decimalNumber << " 转换为八进制为: " << decimalToOctal(decimalNumber) << endl;cout << "十进制数" << decimalNumber << " 转换为十六进制为: " << decimalToHexadecimal(decimalNumber) << endl;string binaryNumber, octalNumber, hexadecimalNumber;cout << "请输入一个二进制数: ";cin >> binaryNumber;cout << "二进制数" << binaryNumber << " 转换为十进制为: " << binaryToDecimal(binaryNumber) << endl;cout << "请输入一个八进制数: ";cin >> octalNumber;cout << "八进制数" << octalNumber << " 转换为十进制为: " << octalToDecimal(octalNumber) << endl;cout << "请输入一个十六进制数: ";cin >> hexadecimalNumber;cout << "十六进制数 " << hexadecimalNumber << " 转换为十进制为: " << hexadecimalToDecimal(hexadecimalNumber) << endl;return 0;}```在上述代码中,我们定义了三个函数 `decimalToBinary`、`decimalToOctal` 和`decimalToHexadecimal`,用于将十进制数转换为二进制、八进制和十六进制数。

VC6.0制作简易计算器MFC[整理]

VC6.0制作简易计算器MFC[整理]

1、单击File(文件)菜单,选中New(新建),创建新工程。

2、选择工程栏中MFC AppWizard[exe]应用程序,并命名工程名称为calculator.(如图)3、选择MFC应用程序为“基于对话框”类型,其他选项默认。

单击完成(如图)4、修改界面。

经过前3步骤,VC6.0生成的工作界面如图所示。

先将对话框中的“TODO:在这里设置对话控制”静态文字控件和“确定”按钮控件删除,再使用工具箱将界面拖动控件修改为如图所示的界面。

该图所示是使用工具箱的控件拖放制作的计算器初始界面。

由于这些控件都有默认的名字,所以我们要对控件进行改名,右击Button1按钮,选中Properties(属性)选项以修改控件的属性,如图所示。

在弹出的对话框中,将Button1按钮的Caption(标题)属性修改为“+”,此时初始界面同时变成相应的“+”如下图所示。

修改后的界面如图所示,控件的Caption属性就是控件显示出来的值。

按照前文所讲述的方式,将界面上的按钮控件和静态文本控件的Caption属性都做相应的修改,修改后的界面如图所示。

5、为Edit(编辑)控件添加类的成员变量。

首先,右击Edit控件,选择ClassWizard(建立类向导)选项,如下图所示。

在弹出的对话框中,选择上方MemberVariables选项卡,选中DIC_EDIT1,然后单击单击右侧的Add Variable按钮,如图所示。

单击Add Variable按钮后会跳出,如图所示的对话框,该对话框是设置成员变量的命名和数据类型,在此可以命名为m_data1.注意:控件的ID只是标记一个控件,程序中不能直接控制ID,只能通过修改变量来改变控件的状态。

00相应的,再将另外两个Edit控件命名,本项目就将这3个Edit控件命名为:●IDC_EDIT1:m_data1,类型为double.●IDC_EDIT2:m_data2,类型为double.●IDC_EDIT3:m_result,类型为double.6、添加按钮控件的消息处理函数。

VC++ 多功能计算器

VC++  多功能计算器

计算的功能,如:三角函数的计算,弧度与角度间的转换,对数指数的计算等等。

3.3、总体方案设计(1)功能框架图1 功能框架图(2)主要功能原理:①正弦、余弦、正切、余切函数:制度的选择,程序运行默认制度选中角度,当选项中“角度”按钮时,则需将其转换为角度计算,由公式:弧度=PI*角度/180,可将表达式中角度转换为弧度既s[ll-1]=PI*s[ll-1]/180。

对于反、正余弦和反正余切,由于C++math.h库函数提供的计算结果是弧度的,所以当选中默认的“弧度”按钮时可不必将计算结果转换,当选中“角度”按钮时,则由公式:角度=弧度*180/PI,既可计算出来。

②实现进制间浮点数的转换对不同进制的输入,将其转换为十进制数后出入,显示时转换为所选择的进行输出。

所以进制间的转换输出,其实只是将已存的那个十进制数转换为其他进制输出。

③历史计算的记忆功能对(和),使用一个运算符栈和一个操作数栈存储。

按(时,进栈保存;按)时,出栈运算。

对MC、MR、MS、M+,使用一个浮点数存储中间值,MC为将其清零,MR为读取其值,MS为保存、M+为在原有值的基础上加当前值。

3.4、详细设计(1)进行开始编程前的数据结构分析:double m_mem; //中间值bool m_IsHudu; //弧度、角度判断void init();加入加速键:图2 增加控件图4、运行结果(1)基本计算器的运行效果如图3所示图3 基本计算器的运行图(2)科学计算器的运行效果如图4所示图4 科学计算器运行效果图(3)不可以对浮点数进行取模运算,例如9.2 mod 9.2=?。

运行结果如图5所示图5 浮点数不能取摸示意图(4)不可以对90度角进行正切操作。

Tan 90=?。

运行结果如图6所示。

图6 90度角不能进行正切操作示意图(5)不可以对0度角进行取余切操作。

Cot0=?。

运行结果如图7所示图7 0度角不能取余示意图(6)不可以对负数求对数。

C语言实现任意进制转换

C语言实现任意进制转换

C语言实现任意进制转换任意进制转换是指将一个数从一种进制表示转换为另一种进制表示。

在计算机科学中,常见的进制包括二进制、八进制、十进制和十六进制。

下面我们将以C语言为例,实现任意进制之间的转换。

一、十进制到其他进制的转换1.二进制转换对于一个十进制数,我们可以通过对其进行除2取余的操作,得到其二进制表示。

具体的实现如下:```c#include<stdio.h>void decimalToBinary(int num)int binary[32], i = 0;while (num > 0)binary[i] = num % 2;i++;num /= 2;}for (int j = i - 1; j >= 0; j--)printf("%d", binary[j]);}int mainint decimalNumber;printf("请输入一个十进制数:");scanf("%d", &decimalNumber);printf("转换为二进制数为:");decimalToBinary(decimalNumber);return 0;```2.八进制转换对于十进制数,可以通过对其进行除8取余的操作,得到其八进制表示。

具体的实现如下:```c#include<stdio.h>void decimalToOctal(int num)int octal[100], i = 0;while (num > 0)octal[i] = num % 8;i++;num /= 8;}for (int j = i - 1; j >= 0; j--)printf("%d", octal[j]);}int mainint decimalNumber;printf("请输入一个十进制数:");scanf("%d", &decimalNumber);printf("转换为八进制数为:");decimalToOctal(decimalNumber);return 0;```3.十六进制转换对于一个十进制数,可以通过对其进行除16取余的操作,得到其十六进制表示。

课程设计进制转化过程

课程设计进制转化过程

课程设计进制转化过程一、教学目标本课程的教学目标是使学生掌握进制转换的基本概念和方法,能够运用所学的知识进行不同进制之间的转换。

具体目标如下:1.了解不同进制(如二进制、八进制、十进制、十六进制等)的基本概念和表示方法。

2.掌握不同进制之间的转换规则和方法。

3.理解进制转换在计算机科学和信息技术中的应用。

4.能够手动进行不同进制之间的转换。

5.能够使用计算机程序或工具进行进制转换。

6.能够解决实际问题中涉及的进制转换。

情感态度价值观目标:1.培养学生的逻辑思维能力和解决问题的能力。

2.培养学生对计算机科学和信息技术领域的兴趣和好奇心。

3.培养学生的团队合作意识和沟通能力。

二、教学内容本课程的教学内容主要包括以下几个方面:1.进制转换的基本概念:介绍不同进制的基本概念和表示方法,如二进制、八进制、十进制、十六进制等。

2.进制转换的方法:讲解不同进制之间的转换规则和方法,包括手动转换和计算机程序或工具的使用。

3.进制转换的应用:介绍进制转换在计算机科学和信息技术领域中的应用,如数字电子电路、计算机网络协议等。

具体的教学大纲如下:第1课时:进制转换的基本概念•介绍不同进制的基本概念和表示方法。

•讲解二进制、八进制、十进制、十六进制之间的转换关系。

第2课时:进制转换的方法•讲解不同进制之间的转换规则和方法。

•介绍手动转换和计算机程序或工具的使用。

第3课时:进制转换的应用•介绍进制转换在计算机科学和信息技术领域中的应用。

•分析实际问题中涉及的进制转换案例。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。

1.讲授法:教师通过讲解进制转换的基本概念、转换规则和方法,以及应用案例,引导学生掌握知识。

2.讨论法:学生进行小组讨论,让学生分享自己的理解和经验,互相学习和交流。

3.案例分析法:通过分析实际问题中涉及的进制转换案例,让学生学会将理论知识应用于实际问题的解决中。

4.实验法:安排实验课,让学生亲自动手进行不同进制之间的转换,增强实践操作能力。

c++十进制转十六进制程序

c++十进制转十六进制程序

c++十进制转十六进制程序要编写一个C++程序来将给定的十进制数转换为十六进制数,可以按照以下步骤进行:1. 首先,需要包含必要的头文件,例如iostream和string。

2. 接下来,创建一个函数来执行十进制到十六进制的转换。

在这个函数中,你可以使用除2取余法或者位运算来实现转换。

3. 在主函数中,接收用户输入的十进制数。

4. 调用之前创建的转换函数,将用户输入的十进制数转换为十六进制数。

5. 最后,将转换后的十六进制数输出到控制台。

下面是一个简单的示例代码:cpp.#include <iostream>。

#include <string>。

std::string decimalToHex(int decimal) {。

std::string hex = "";while (decimal > 0) {。

int remainder = decimal % 16;if (remainder < 10) {。

hex = char(remainder + 48) + hex; // 将余数转换为字符并拼接到十六进制数前面。

} else {。

hex = char(remainder + 55) + hex; // 将余数转换为十六进制字符并拼接到十六进制数前面。

}。

decimal /= 16;}。

return hex;}。

int main() {。

int inputDecimal;std::cout << "请输入一个十进制数: ";std::cin >> inputDecimal;std::string hexResult = decimalToHex(inputDecimal);std::cout << "转换为十六进制数为: " << hexResult << std::endl;return 0;}。

C语言的进制转换及算法实现教程

C语言的进制转换及算法实现教程

C语⾔的进制转换及算法实现教程1、其他进制转⼗进制1.1、⼆进制转⼗进制转换规程:从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次⽅,然后求和,例如:⼆进制 1011 = 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 1 + 2 + 0 + 8 = 111.2、⼋制转⼗进制转换规则:从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次⽅,然后求和,例如:⼋进制 0123 = 3*8^0 + 2*8^1 + 1*8^2 = 3+16+64 = 831.3、⼗六进制转⼗进制转换规则:从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次⽅,然后求和,例如:⼗六进制 0x34A = 10*16^0 + 4*16^1 + 3*16^2 = 10+64+768 = 8422、⼗进制转其他进制2.1、⼗进制转⼆进制binary规则:将该数不断除以2,直到商为0为⽌,然后将每步得到的余数倒过来,就是对应的⼆进制,故此法叫做除商逆序取余法;案例:将56转换为⼆进制56 :56 / 2 = 28 余028 / 2 = 14 余014 / 2 = 7 余07 / 2 = 3 余13 / 2 = 1 余11 /2 = 0余 1故56转换为⼆进制的结果是:111000代码实现:#include <stdio.h>//转⼗进制⼆进制void main() {printf("请输⼊⼀个⼗进制数:");int binary = 0; //⼆进制数int b = 1; //循环标志int num[100] ; //⽤来存⼆进制的数组int index = 0; //数组的下标int count = -1; //⽤来计算数组的使⽤个数,这⾥使⽤-1是因为数组的下标是从0开始的//所以当我们循环⼀次去⾃增的时候,第⼀次应该是从0开始,如果count的初始值是0的话//就会导致使⽤的第⼀个数组的下标为1,那样会导致存数据的下标index和记录使⽤的下标count不⼀致//使数据溢出scanf("%d",&binary);while (b) {num[index] = binary % 2; //每次运算取余binary /= 2; //每次运算⼆进制数需要除以2//printf("num[%d]=%d\n",index,num[index]);index++; //每循环⼀次数组下标就移⼀位count++; //每循环⼀次就表⽰占⽤了数组的⼀个位置if (binary == 0) {b = 0;}}printf("占⽤数组位置%d个",count+1);printf("\n");printf("⼆进制数为:");for (int i = count; i >=0; i--) {printf("%d",num[i]);}getchar();getchar();//回车会被接收,所以需要两个来暂停控制台}2.2、⼗进制转⼋进制octonary规则:将该数不断除以8,直到商为0,然后将每步得到的余数倒过来,就是对应的⼋进制。

c语言二进制十进制十六进制转换计算

c语言二进制十进制十六进制转换计算

C语言是一种高级编程语言,它具有丰富的数学计算功能,其中包括二进制、十进制和十六进制之间的转换计算。

本文将重点介绍C语言中如何进行二进制、十进制和十六进制之间的转换计算,以及其相关的方法和注意事项。

一、二进制、十进制和十六进制的概念及表示方法1. 二进制二进制是一种基数为2的数制,它只包含0和1两个数字。

在C语言中,二进制数通常以0b或0B开头表示,例如0b1010表示十进制的10。

2. 十进制十进制是我们常用的数制,基数为10,包含了0到9这10个数字。

在C语言中,十进制数直接以数字形式表示,例如123表示十进制的123。

3. 十六进制十六进制是一种基数为16的数制,它包含0到9这10个数字以及A 到F这6个英文字母,分别对应10到15。

在C语言中,以0x或0X 开头表示十六进制数,例如0x1A表示十进制的26。

二、二进制与十进制的转换计算方法1. 二进制转十进制二进制转换为十进制可以使用加权法,即将二进制数从右向左依次乘以2的幂次方,然后将结果相加。

1010转换为十进制的计算过程为:1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 10。

2. 十进制转二进制十进制转换为二进制可以使用除2取余法,即将十进制数不断除以2,将每次的余数倒序排列即可得到二进制数。

26转换为二进制的计算过程为:26÷2=13……0,13÷2=6……1,6÷2=3……0,3÷2=1……1,1÷2=0……1,倒序排列得到xxx。

三、十六进制与十进制的转换计算方法1. 十六进制转十进制十六进制转换为十进制可以使用加权法,即将十六进制数从右向左依次乘以16的幂次方,然后将结果相加。

1A转换为十进制的计算过程为:1*16^1 + A*16^0 = 26。

2. 十进制转十六进制十进制转换为十六进制可以使用除16取余法,即将十进制数不断除以16,将每次的余数倒序排列,A对应10,B对应11,依次类推,直到商为0即可得到十六进制数。

C语言课程设计-进制转换

C语言课程设计-进制转换

沈阳航空航天大学课程设计报告课程设计名称:C语言课程设计课程设计题目:二、八、十、进制转换程序院(系):计算机学院专业:计算机科学与技术(物联网方向) 班级:34010105学号:姓名:指导教师:完成日期:2014年3月7日沈阳航空航天大学课程设计报告目录第1章需求设计 (1)1.1课程设计任务 (1)1.2设计环境与开发语言 (2)第2章程序设计 (3)2.1概要设计 (3)2.1.1总体模块图 (3)2.1.2函数 (3)2.2详细设计 (4)第3章程序调试分析 (13)3.1出现的错误 (13)3.2运行的结果 (13)第4章用户手册 (15)4.1程序功能 (15)4.2存在的缺陷 (15)参考文献 (16)附录(程序清单) (17)第1章需求设计1.1 课程设计任务设计一个简单的程序,可以实现以下各进制之间的转换。

1.因为要进行进制间的6次转换所以要采用switch语句有选择的进行进制转换程序。

2.二进制到八进制;直接将二进制转化为八进制需要三位一截取不足三位补零,较为麻烦所以采用先将二进制转化为十进制再转化为八进制的方法解决问题。

二进制转化为十进制将输入的二进制数存入字符数组中,存入多少位数,求出相应位数2的幂次再乘以1或0将每一位对应得到的十进制数累加,即可得到相应的十进制数。

将十进制数转化为八进制数,将0到7存到一个字符数组中判断输入的数是否大于7若大于7,则将该数除8,再次进行判断,直到输入的数小于等于7,输出该数对8取余数对应的一维数组中的字符,即可得到八进制数。

3.二进制到十进制;二进制转化为十进制将输入的二进制数存入字符数组中,存入多少位数,求出相应位数2的幂次再乘以1或0将每一位对应得到的十进制数累加,即为十进制数。

4.二进制到十六进制;与二进制转化为八进制类似,先将二进制转化为十进制。

再将十进制数转化为十六进制数,将0到9,A到F存到一个字符数组中判断输入的数是否大于15若大于15,则将该数除16,再次进行判断,直到输入的数小于等于15,输出该数对16取余数对应的一维数组中的字符,即可得到十六进制数。

计算机进制转换

计算机进制转换

计算机进制转换计算机中常用的进制有二进制、八进制、十进制和十六进制。

这些进制之间可以互相转换,下面是计算机进制转换的三种方法。

打开计算器,选择查看菜单中的“程序员”选项;在“程序员”界面中,选择查看菜单中的“进制转换”;在“进制转换”界面中,选择需要转换的进制和数值,点击“=”即可得到转换结果。

打开编程语言(如Python)的集成开发环境(IDE);利用编程语言的内置函数将数值转换为目标进制,如Python中的int()函数可以将十进制转换为其他进制,bin()函数可以将其他进制转换为二进制等。

以上三种方法都可以实现计算机进制之间的转换,具体使用哪种方法取决于实际情况和个人偏好。

随着科技的飞速发展,计算机技术已经成为了我们生活中不可或缺的一部分。

计算机系统作为计算机技术的核心,具有至关重要的作用。

本文将介绍计算机基础理论和计算机系统的基本概念、组成、分类和发展趋势。

计算机基础理论是计算机技术的基石,它包括了计算机科学的各个方面,如计算机体系结构、操作系统、数据结构与算法、数据库系统等。

这些理论为计算机系统的设计和应用提供了坚实的支撑。

计算机体系结构是计算机系统的基本构成和组织结构,它决定了计算机的性能、价格和用途。

计算机体系结构主要分为三种类型:单处理器系统、多处理器系统和分布式系统。

操作系统是计算机系统的核心,它负责管理和控制计算机的硬件和软件资源。

操作系统的主要功能包括进程管理、内存管理、文件管理和设备管理。

数据结构与算法是计算机科学的核心,它们决定了计算机处理数据的效率和方式。

常用的数据结构包括数组、链表、栈、队列、树等,常用的算法包括排序、搜索、递归等。

数据库系统是用于存储、管理和检索数据的软件系统。

数据库系统具有高效、可靠和安全的特点,广泛应用于商业、金融、科研等领域。

计算机系统由硬件系统和软件系统组成。

硬件系统是指计算机的物理组件,如中央处理器、内存、硬盘、显示器等。

软件系统是指运行在计算机上的程序和数据,如操作系统、应用程序、数据库等。

进制转换课程设计

进制转换课程设计

进制转换课程设计一、课程目标知识目标:1. 学生理解进制的概念,掌握二进制、八进制、十进制、十六进制的基本转换方法。

2. 学生能够运用所学知识解决生活中与进制转换相关的问题。

3. 学生了解不同进制在实际应用中的优势及适用场景。

技能目标:1. 学生通过实际操作,掌握进制转换的计算技巧,提高逻辑思维能力和解决问题的能力。

2. 学生能够运用所学知识,设计简单的进制转换小程序,培养编程兴趣和初步编程技能。

情感态度价值观目标:1. 学生培养对计算机科学的兴趣和好奇心,激发学习主动性和探究精神。

2. 学生通过团队协作解决问题,培养合作精神和沟通能力。

3. 学生在学习过程中,认识到科技对社会发展的作用,增强对科技事业的尊重和责任感。

课程性质:本课程为信息技术学科的一部分,侧重于计算思维和实际操作能力的培养。

学生特点:六年级学生具有一定的逻辑思维能力,对新知识充满好奇心,喜欢动手操作。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,培养其独立思考和解决问题的能力。

在教学过程中,关注学生的个体差异,提供有针对性的指导,确保每位学生都能达到课程目标。

通过课程目标的分解和教学设计,使学生在学习过程中取得具体的学习成果,为后续课程打下坚实基础。

二、教学内容1. 引入进制概念:讲解进制的定义、意义及其在计算机科学中的应用。

相关教材章节:第一章 计算机基础知识,第三节 计算机中的数据表示。

2. 二进制、八进制、十进制、十六进制的特点及转换方法:- 二进制:讲解二进制的表示方法、运算规则及其与十进制的转换方法。

- 八进制:介绍八进制的用途,以及与二进制、十进制的转换方法。

- 十六进制:讲解十六进制的表示方法,以及与二进制、十进制的转换方法。

相关教材章节:第二章 数据表示,第一、二、三节 进制及其转换方法。

3. 进制转换应用实例:分析生活中常见的进制转换问题,如时间、日期、文件大小等。

相关教材章节:第二章 数据表示,第四节 进制在实际应用中的例子。

vc计算器实验报告

vc计算器实验报告

VC计算器实验报告1. 引言计算器是我们日常生活中经常使用的工具之一。

它可以帮助我们进行简单的数学运算,如加减乘除,以及更复杂的科学计算。

然而,传统的计算器通常功能有限,无法满足我们日益增长的计算需求。

为了解决这个问题,我们设计并实现了一款名为VC计算器的应用程序。

本文将详细介绍VC计算器的设计思路、功能特点以及实现过程。

2. 设计思路VC计算器的设计思路基于“step by step thinking”的理念,即通过逐步思考和分解问题来实现复杂的功能。

我们希望用户能够通过简单的步骤,逐渐构建出复杂的计算式,并获得准确的计算结果。

3. 功能特点3.1 基本计算功能VC计算器支持基本的四则运算,包括加法、减法、乘法和除法。

用户可以通过逐步输入数字和运算符,构建出复杂的计算式,并得到准确的计算结果。

3.2 科学计算功能除了基本的四则运算,VC计算器还提供了一些常用的科学计算功能,如三角函数、对数函数、指数函数等。

用户可以通过简单的步骤,构建出复杂的科学计算式,并得到准确的计算结果。

3.3 变量和函数支持为了进一步增强计算器的功能,我们在VC计算器中添加了变量和函数的支持。

用户可以定义和使用变量,以及定义和调用函数。

这样,用户可以根据自己的需求,自定义复杂的计算式,并得到准确的计算结果。

4. 实现过程4.1 界面设计我们通过使用Markdown文本格式来展示VC计算器的界面设计。

下面是一个示例界面:==========================================VC计算器==========================================[1] 2 + 3 = 5[2] sin(45) = 0.707[3] x = 10[4] y = 5[5] x + y = 15[6] f(x) = 2x + 1[7] f(5) = 114.2 代码实现VC计算器的代码实现主要分为以下几个步骤:1.解析用户输入,获取操作符和操作数。

c++编写十、六进制转换

c++编写十、六进制转换

一、题目:十进制与六进制整数的转换二、设计思路1、总体设计1)分析程序的功能实现十进制与六进制整数的转换2)系统总体结构:程序分为head.h main.cpp void.cpp judge.cpp四部分2、各功能模块的设计:1)将十进制数转换成六进制数(字符数组中)时,采用除留余数法:将十进制数除以6,保留余数(存到字符数组中),商继续除,直到商为零;然后将字符数组中的内容求逆序,即得到转换数据。

2)将六进制整数(字符数组中)转换成十进制数时,采用的算法是:按位权进行多项式展开相加,即得到对应的十进制数。

3、设计中的主要困难及解决方案1)将十进制数转换成六进制数时解决方案:采用除留余数法2)2)将六进制整数(字符数组中)转换成十进制数时解决方案:按位权进行多项式展开相加4、你所设计的程序最终完成的功能1)说明你编制的程序能完成的功能实现十进制与六进制整数的转换2)准备的测试数据及运行结果十进制整数:5863六进制整数:43051十进制整数:6934六进制整数:52034三、程序清单1、head.h文件清单void f1(int); //函数原型声明void f2(char a[50]);void judge(int)2、main.cpp文件清单#include <iostream.h>#include "head.h"void main() //主函数{int M ;for(;;) //可实现自己决定是否结束程序{cout<<"约定输入11223344结束"<<endl; //约定输入“11223344”结束程序cout<<"input M and data'\n";cin>>M;if(M==11223344)break;judge(M); //根据M值判断如何执行}}3、void.cpp文件清单#include <math.h>#include<string.h>#include <iostream.h>void f1(int a){int m=a,n,b=0,i=0;while(m>0){n=m%6;m/=6;b+=n*int(pow(10,i)); //采用除留余数法i++;}cout<<"转换成的六进制数为:"<<b<<endl; //执行输出}void f2(char a[50]){int num,s=0,len,i;len=strlen(a); //求字符串的长度for(i=0;i<=len;i++){num=a[i]-'0'; //实现字符与数字的转换s+=num*int(pow(6,len-i-1)); //按位权进行多项式展开相加}cout<<"转换成的十进制数为:"<<s<<endl;}4、judge.cpp文件清单#include<iostream.h>#include"head.h"void judge(int M)if(M==6) //根据M的值判断执行哪个语句{char b[50];cin>>b;cout<<"6M is : "<<M<<'\t'<<b<<endl;f2(b); //实现六进制转换成十进制}else if (M==10){int date;cin>>date;cout<<M<<'\t'<<date<<endl;f1(date); //实现十进制转换成六进制}else //判断数据是否合法{cout<<"输入的数据有误"<<endl;}四、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价。

C++进制转换器编程

C++进制转换器编程

C++进制转换器编程#include#includevoid Two(int n);void There(int n);void Four(int n);void Six(int n);void Five(int n);void Seven(int n);void Eight(int n);void Nine(int n);void Teen(int n);void Eleven(int n);void Twelve(int n);void Thirteen(int n);void Fourteen(int n);void Fiveteen(int n);void Sixteen(int n);void main(){int n,number;for(;;){cout<<"欢迎使用进制转换器"<<endl;< bdsfid="90" p=""></endl;<>cout<<"请从2--16进制选择,0是退出进制转换器:"<<endl;< bdsfid="92" p=""></endl;<>cin>>n;if(0==n)exit(0);if(n<2||n>16){cout<<"对不起您输入的进制数有误"<<endl;< bdsfid="99" p=""></endl;<>continue;//break;}cout<<"请输入十进制数:"<<endl;< bdsfid="106" p=""></endl;<>cin>>number;switch(n){case 2:Two(number);break;case 3:There(number);break;case 4:Four(number);break;case 5:Five(number);break;case 6:Six(number);break;case 7:Seven(number);break;case 8:Eight(number);break;case 9:Nine(number);break;case 10:Teen(number);break;case 11:Eleven(number);break;case 12:Twelve(number);break;case 13:Thirteen(number);break;case 14:Fourteen(number);break;case 15:Fiveteen(number);break;case 16:Sixteen(number);break;default:break;}}}void Two(int n){int i,t;int num[100];for(i=0,t=n;t!=0;i++){num[i]=t%2;t=t/2;}cout<<"转换成二进制为:"<<endl;< bdsfid="139" p=""></endl;<>if(0==n)cout<<n;< bdsfid="142" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="146" p=""></num[i];<>}cout<<endl;< bdsfid="149" p=""></endl;<>}void There(int n){int i,t;int num[100];for(i=0,t=n;t!=0;i++){num[i]=t%3;t=t/3;}cout<<"转换成三进制为:"<<endl;< bdsfid="161" p=""></endl;<>if(0==n)cout<<n;< bdsfid="164" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="168" p=""></num[i];<>}cout<<endl;< bdsfid="171" p=""></endl;<>}void Four(int n){int i,t;int num[100];for(i=0,t=n;t!=0;i++){num[i]=t%4;t=t/4;}cout<<"转换成四进制为:"<<endl;< bdsfid="183" p=""></endl;<>if(0==n)cout<<n;< bdsfid="186" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="190" p=""></num[i];<>}cout<<endl;< bdsfid="193" p=""></endl;<>}void Five(int n){int i,t;int num[100];for(i=0,t=n;t!=0;i++){num[i]=t%5;t=t/5;}cout<<"转换成五进制为:"<<endl;< bdsfid="205" p=""></endl;<>if(0==n)cout<<n;< bdsfid="208" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="212" p=""></num[i];<>}cout<<endl;< bdsfid="215" p=""></endl;<>}void Six(int n){int i,t;int num[100];for(i=0,t=n;t!=0;i++){num[i]=t%6;t=t/6;}cout<<"转换成六进制为:"<<endl;< bdsfid="227"p=""></endl;<>if(0==n)cout<<n;< bdsfid="230" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="234" p=""></num[i];<>}cout<<endl;< bdsfid="237" p=""></endl;<>}void Seven(int n){int i,t;int num[100];for(i=0,t=n;t!=0;i++){num[i]=t%7;t=t/7;}cout<<"转换成七进制为:"<<endl;< bdsfid="249" p=""></endl;<>if(0==n)cout<<n;< bdsfid="252" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="256" p=""></num[i];<>}cout<<endl;< bdsfid="259" p=""></endl;<>}void Eight(int n){int i,t;int num[100];for(i=0,t=n;t!=0;i++){num[i]=t%8;t=t/8;}cout<<"转换成八进制为:"<<endl;< bdsfid="271" p=""></endl;<>if(0==n)cout<<n;< bdsfid="274" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="278" p=""></num[i];<>}cout<<endl;< bdsfid="281" p=""></endl;<>}void Nine(int n){int i,t;int num[100];for(i=0,t=n;t!=0;i++){num[i]=t%9;t=t/9;}cout<<"转换成九进制为:"<<endl;< bdsfid="293" p=""></endl;<>if(0==n)cout<<n;< bdsfid="296" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="300" p=""></num[i];<>}cout<<endl;< bdsfid="303" p=""></endl;<>}void Teen(int n){cout<<"转换成十十三十四十五十六进制为:"<<endl;< bdsfid="308" p=""></endl;<>cout<<n<<endl;< bdsfid="310" p=""></n<<endl;<>}void Eleven(int n)int i,t;char num[100];for(i=0,t=n;t!=0;i++){switch(t%11){case 1:num[i]='1';break;case 2:num[i]='2';break;case 3:num[i]='3';break;case 4:num[i]='4';break;case 5:num[i]='5';break;case 6:num[i]='6';break;case 7:num[i]='7';break;case 8:num[i]='8';break;case 9:num[i]='9';break;case 10:num[i]='A';break;}t=t/11;}cout<<"转换成十一进制为:"<<endl;< bdsfid="333" p=""></endl;<>if(0==n)cout<<n;< bdsfid="336" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="340" p=""></num[i];<>}cout<<endl;< bdsfid="343" p=""></endl;<>}void Twelve(int n)int i,t;char num[100];for(i=0,t=n;t!=0;i++){switch(t%12){case 1:num[i]='1';break;case 2:num[i]='2';break;case 3:num[i]='3';break;case 4:num[i]='4';break;case 5:num[i]='5';break;case 6:num[i]='6';break;case 7:num[i]='7';break;case 8:num[i]='8';break;case 9:num[i]='9';break;case 10:num[i]='A';break;case 11:num[i]='B';break;}t=t/12;}cout<<"转换成十二进制为:"<<endl;< bdsfid="367" p=""></endl;<>if(0==n)cout<<n;< bdsfid="370" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="374" p=""></num[i];<>}cout<<endl;< bdsfid="377" p=""></endl;<>}void Thirteen(int n){int i,t;char num[100];for(i=0,t=n;t!=0;i++){switch(t%13){case 1:num[i]='1';break;case 2:num[i]='2';break;case 3:num[i]='3';break;case 4:num[i]='4';break;case 5:num[i]='5';break;case 6:num[i]='6';break;case 7:num[i]='7';break;case 8:num[i]='8';break;case 9:num[i]='9';break;case 11:num[i]='B';break;case 12:num[i]='C';break;case 13:num[i]='1';break;}t=t/13;}cout<<"转换成十三进制为:"<<endl;< bdsfid="404" p=""></endl;<>if(0==n)cout<<n;< bdsfid="407" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="411" p=""></num[i];<>}cout<<endl;< bdsfid="414" p=""></endl;<>}void Fourteen(int n){int i,t;char num[100];for(i=0,t=n;t!=0;i++){switch(t%14){case 1:num[i]='1';break;case 2:num[i]='2';break;case 3:num[i]='3';break;case 4:num[i]='4';break;case 5:num[i]='5';break;case 7:num[i]='7';break;case 8:num[i]='8';break;case 9:num[i]='9';break;case 10:num[i]='A';break;case 11:num[i]='B';break;case 12:num[i]='C';break;case 13:num[i]='D';break;}t=t/14;}cout<<"转换成十四进制为:"<<endl;< bdsfid="441" p=""></endl;<>if(0==n)cout<<n;< bdsfid="444" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="448" p=""></num[i];<>}cout<<endl;< bdsfid="451" p=""></endl;<>}void Fiveteen(int n){ int i,t;char num[100];for(i=0,t=n;t!=0;i++){switch(t%15){case 1:num[i]='1';break;case 2:num[i]='2';break;case 4:num[i]='4';break;case 5:num[i]='5';break;case 6:num[i]='6';break;case 7:num[i]='7';break;case 8:num[i]='8';break;case 9:num[i]='9';break;case 10:num[i]='A';break;case 11:num[i]='B';break;case 12:num[i]='C';break;case 13:num[i]='D';break;case 14:num[i]='E';break;}t=t/15;}cout<<"转换成十五进制为:"<<endl;< bdsfid="478" p=""></endl;<>if(0==n)cout<<n;< bdsfid="481" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="485" p=""></num[i];<>}cout<<endl;< bdsfid="488" p=""></endl;<>}void Sixteen(int n){int i,t;char num[100];for(i=0,t=n;t!=0;i++){switch(t%16){case 1:num[i]='1';break;case 2:num[i]='2';break;case 3:num[i]='3';break;case 4:num[i]='4';break;case 5:num[i]='5';break;case 6:num[i]='6';break;case 7:num[i]='7';break;case 8:num[i]='8';break;case 9:num[i]='9';break;case 10:num[i]='A';break;case 11:num[i]='B';break;case 12:num[i]='C';break;case 13:num[i]='1';break;}t=t/16;}cout<<"转换成十六进制为:"<<endl;< bdsfid="515" p=""></endl;<>if(0==n)cout<<n;< bdsfid="518" p=""></n;<>for(i=i-1;i>=0;i--){cout<<num[i];< bdsfid="522" p=""></num[i];<>}cout<<endl;< bdsfid="525" p=""></endl;<>}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC++计算器与进制转换工具设计长春理工大学电子信息工程学院1004112班33号李鹤男VC++计算器与进制转换工具设计一、总体设计1、功能说明VC++计算器与进制转换工具设计的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。

即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

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

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

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

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

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

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

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

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

图3基本对话窗口2、计算器开发步骤(1)创建控件在资源视图ResourceView中,选择Dialog中ID为IDD_MY_DIALOG的对话框,删除对话框上已有的控件。

然后利用控件工具箱,按照图4所示在该对话框上添加控件图4Edit属性对话框(2)各个控件的属性设置如表图5Push Button属性(3)计算器界面布局完成之后,双击各个按钮,添加消息响应函数,如按钮1的消息函数添加如图6所示双击按钮1即可图6添加消息函数(4)修改编辑框Edit的ID为:IDC_EDIT_INPUT。

按下“Ctrl+W”弹出ClassWizard对话框,在该对话框属性页MemberVariables上,选择IDC_EDIT_INPUT控件,利用Add Variables 增加两个变量如图7所示图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”,按下鼠标右键弹出如图8所示对话框,点击Add Member Function 增加成员函数,函数具体声明如图9所示图8选择增加成员函数图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');}(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);}(10)为函数OnButtonDot添加代码如下(小数点)void CMyDlg::OnButtonDot(){CString str;m_editCurData.GetWindowText(str);if(str.Find('.')==-1) //输入数中,没有找到小数点,可以加入一个小数点,如果有小数点,就不能再加了str+='.';m_editCurData.SetWindowText(str);}(11)为函数OnButtonAc()添加代码如下(清零)void CMyDlg::OnButtonAc(){m_CurData=0;m_PreData=0;m_curType = NOTYPE;UpdateData(FALSE);}(12)为函数OnButtonAdd( )添加代码如下(加)void CMyDlg::OnButtonAdd(){UpdateData(TRUE);//取回控件上的变量m_PreData = m_curData;m_bNextNumber = TRUE;m_curType = ADD;}(13)为函数OnButtonSub( )添加代码如下(减)void CMy02exam62Dlg::OnButtonSub(){// TODO: Add your control notification handler code hereUpdateData(TRUE);//取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = SUB;}(14)为函数OnButtonMul( )添加代码如下(乘)void CMy02exam62Dlg::OnButtonMul(){// TODO: Add your control notification handler code here UpdateData(TRUE);//取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = MUL;}(15)为函数OnButtonDiv( )添加代码如下(除)void CMy02exam62Dlg::OnButtonDiv(){// TODO: Add your control notification handler code here UpdateData(TRUE);//取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = DIV;}(16)为函数OnButtonSin( )添加代码如下(正弦)void CMy02exam62Dlg::OnButtonSin(){// TODO: Add your control notification handler code here UpdateData(TRUE);//取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = SIN;}(17)为函数OnButtonCos( )添加代码如下(余弦)void CMy02exam62Dlg::OnButtonCos(){// TODO: Add your control notification handler code here UpdateData(TRUE);//取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = COS;}(18)为函数OnButtonTan( )添加代码如下(正切)void CMy02exam62Dlg::OnButtonXy(){// TODO: Add your control notification handler code here UpdateData(TRUE);//取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = TAN;}(19)为函数OnButtonKf( )添加代码如下(开方)void CMy02exam62Dlg::OnButtonKf(){// TODO: Add your control notification handler code here UpdateData(TRUE);//取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = KF;}(20)为函数OnButtonPF( )添加代码如下(平方)void CMy02exam62Dlg::OnButtonPf(){// TODO: Add your control notification handler code here UpdateData(TRUE);//取回控件上的变量m_PreData = m_CurData;m_bNextNumber = TRUE;m_curType = PF;}(21)为函数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);}(22)为函数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);(23)编译运行程序,实现加法,减法、乘法及除法,正弦,余弦,正切,开方,平方,退格,清零功能,完成简易计算器3、进制转换工具设计步骤(1)打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择Win32 Console Application 工程,输入工程名02exam62及其所在位置点击确定,如图10所示图10选择工程(2)将弹出Win32 Console Application 1对话框,选择Hello Word点击完成,如图11所示。

相关文档
最新文档