文档库 最新最全的文档下载
当前位置:文档库 › C#计算器实验报告

C#计算器实验报告

C#计算器实验报告
C#计算器实验报告

C#计算器实验报告

班级:2010134

学号:201013432

姓名:蔡启林

一实验目的和要求

设计一个简单计算器,具有一般计算功能,能进行基本的加减乘除运算,还具有求根号,倒数等功能。特点是能进行不同进制的运算和不同进制间的转换。主要的工作主要是操作数与被操作数进行简单的加、减、乘、除运算来完成基本的,而且还可以进行简单的科学运算例如计算一个数的平方、开方、正弦、余弦、log、ln等操作 还可以计算面积、周长、体积和表面积等。通过新的技术和新方法来实现计算功能 显示界面为Windows From窗体。

二功能模块设计

标准计算器

通过Windows Form窗体中的对应按钮 接受用户输入数据提交对应的方法中来完成相应的功能计算 再将结果显示在显示框内。显示界面为Windows From窗体。

下面是一个简单的计算器的基本功能:

1 加法

两个数据进行加操作 可以为小数。

2 减法

两个数据进行减操作 可以为负数相减。

3 乘法

两个数相乘

4 除法

两个数相除

5 倒数

可以求得一个数的倒数

6 开方

开方后的结果可以精确到16位。

科学计算器

1 平方

接收的数相乘 结果保留一位小数。

2 立方

接收的数相乘两次

3 正弦

正弦结果精确度同开方。

4 余弦

余弦结果精确度同上。

5 Log

Log运算精确到16位。

6 Ln

以e为底的对数。

7 二进制

二进制数的运算

8 八进制

八进制数的运算

9 十进制

十进制数的运算

11 十六进制

十六进制的运算

12 倒数

可以求得一个数的倒数

13 开方

开方后的结果可以精确到16位。

14 颜色

可以选择输入字体的颜色

三设计界面

标准型

科学型

四详细设计过程

(一)打开VS2010创建项目

(二)界面设计

1.进入界面

2.菜单设计

(1)选择VS201的菜单栏中的“视图|工具箱”单击,调出工具箱(出现在VS用户区左侧。

(2)在工具箱中选择“菜单和工具栏|MenuStrip”,拖到程序界面用户区,并根据自己的喜好在“属性窗口”(可以使用“视图|属性窗口”调出,一般在用户区右下角)设置菜单栏宽度、颜色等。

(3)在菜单栏中“请在此处键入”编辑第一个菜单选项及其下拉子菜单选项“编辑”“复制”“粘贴”。

(4)按上述操作,依次完成第二、三个菜单选项及其下拉子菜单选项。

3.显示条设计

(1)在VS用户区左侧工具箱中找到TextBox控件拖到计算器用区合适的位置,按住鼠标左键在相应调整点设置其长度,设置其高度时需要首先在属性窗口把该控件的Mutiline属性设置为True,才可以使用鼠标调整其高度。

(2)在属性窗口设置显示条属性:(Name)属性为txt_Result;Text 属性为0.(即:控件上显示的内容);TextAlign属性为Right;

4.其它控件设计

向窗体上添加控件,计算器分为3个模块,分别是

Textbox:显示区:显示数字和计算结果的功能

button:计算区:提供运算符和数字,与用户交互进行运算radioButton:转换区:用于进制之间的转换

五详细代码

标准型

using System;

using System.Collections.Generic;

using https://www.wendangku.net/doc/315874269.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication6

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public string number;

public int x;

public double number1;

private string a;

private string abc;

private void button0_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text;}

private void button1_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text;}

private void button2_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text;}

private void button3_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text;}

private void button4_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text;}

private void button9_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text;}

private void button8_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text;}

private void button7_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text;}

private void button6_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text;}

private void button5_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text += btn.Text};

private void C_Click(object sender, EventArgs e)

{txt_Result.Text = "";

this.btn_Result.Focus();}

private void sqrt_Click(object sender, EventArgs e)

{

if (Convert.ToDouble(txt_Result.Text) < 0)

{

this.txt_Result.Text = "error";

}

else

{

number1 = Convert.ToDouble(txt_Result.Text);

number = "";

txt_Result.Text = Convert.ToString(System.Math.Sqrt(number1));} this.btn_Result.Focus();}

private void dao_Click(object sender, EventArgs e)

{

if (Convert.ToDouble(txt_Result.Text) == 0)

{

this.txt_Result.Text = "error";

}

else

{

number1 = Convert.ToDouble(txt_Result.Text);

number = "";

txt_Result.Text = Convert.ToString(1 / number1);}

this.btn_Result.Focus();}

private void dian_Click(object sender, EventArgs e)

{try

{number = Convert.ToString(number + ".");

txt_Result.Text = Convert.ToString(number + "");}

catch{ }this.btn_Result.Focus();}

private void Backspace_Click(object sender, EventArgs e)

{if (txt_Result.Text == "" || txt_Result.Text == "0")

{txt_Result.Text = "";}

else

{number1 = Convert.ToDouble(txt_Result.Text);

number = Convert.ToString((number1 - number1 % 10) / 10);

txt_Result.Text = number;}

this.btn_Result.Focus();}

private void bai_Click(object sender, EventArgs e)

{

number = Convert.ToString(Convert.ToDouble(txt_Result.Text) / 100);

txt_Result.Text = number;

number = "";

this.btn_Result.Focus();}

private void zhengfu_Click(object sender, EventArgs e)

{

number1 = Convert.ToDouble(txt_Result.Text);

txt_Result.Text = Convert.ToString(0 - number1);

this.btn_Result.Focus();}

private void X2_Click(object sender, EventArgs e)

{

if (txt_Result.TextLength > 0)

{

number1 = Convert.ToDouble(number);

number = Convert.ToString(number1 * number1);

txt_Result.Text = number;

number = "";

}

this.btn_Result.Focus();}

private void帮助ToolStripMenuItem_Click(object sender, EventArgs e)

{MessageBox.Show(“这是一个仿照windows的计算器应用程序,功能虽然不齐但基本能运行”);}

private void退出ToolStripMenuItem_Click(object sender, EventArgs e)

{Close();}

private void btn_Add_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text = txt_Result.Text + " " + btn.Text + " "; }

private void btn_Minus_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text = txt_Result.Text + " " + btn.Text + " "; }

private void btn_Multiply_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text = txt_Result.Text + " " + btn.Text + " "; }

private void tn_Divide_Click(object sender, EventArgs e)

{Button btn = (Button)sender;

txt_Result.Text = txt_Result.Text + " " + btn.Text + " "; }

private void btn_Result_Click(object sender, EventArgs e)

{

d oubl

e d_result;

string s_txt = txt_Result.Text;

int space = s_txt.IndexOf(' ');

string s1 = s_txt.Substring(0, space);

char operation = Convert.ToChar(s_txt.Substring((space + 1), 1));

string s2 = s_txt.Substring(space + 3);

double arg1 = Convert.ToDouble(s1);

double arg2 = Convert.ToDouble(s2);

switch (operation)

{case'+':

d_result = arg1 + arg2;break;

case'-':

d_result = arg1 - arg2;break;

case'*':

d_result = arg1 * arg2;break;

case'/':

if (arg2 == 0)

{throw new ApplicationException();}

else

{d_result = arg1 / arg2;} break;

default:

throw new ApplicationException();}

txt_Result.Text = d_result.ToString(); }

private void标准型TToolStripMenuItem_Click(object sender, EventArgs e) {Form1 frm = new Form1();

frm.Show();

this.Hide();}

private void粘贴ToolStripMenuItem_Click(object sender, EventArgs e) {

if (a == null)

{

this.txt_Result.Text = this.abc;

this.a += this.abc;

}

else if (a != null && txt_Result.Text != null)

{

this.txt_Result.Text = null;

a = null;

this.txt_Result.Text = this.abc;

this.a += this.abc;

}

}

private void复制CToolStripMenuItem_Click(object sender, EventArgs e) {

if (abc == null)

{

this.abc += this.txt_Result.Text;

}

else

{

abc = null;

this.abc += this.txt_Result.Text;

}

}

private void科学型SToolStripMenuItem_Click(object sender, EventArgs e) {

Form fm2 = new Form2();

fm2.Show();

this.Hide();

}

科学型

using System;

using System.Collections.Generic;

using https://www.wendangku.net/doc/315874269.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication6

{

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

private void rBtn16_CheckedChanged(object sender, EventArgs e)

{

this.btn_per.Enabled = false;

this.btn_down.Enabled = false;

this.btn_log.Enabled = false;

this.btn_tan.Enabled = false;

this.btn_sin.Enabled = false;

this.btn_cos.Enabled = false;

this.btn_Pi.Enabled = false;

this.button9.Enabled = true;

this.button8.Enabled = true;

this.button7.Enabled = true;

this.button6.Enabled = true;

this.button5.Enabled = true;

this.button4.Enabled = true;

this.button3.Enabled = true;

this.button2.Enabled = true;

this.buttonA.Enabled = true;

this.buttonB.Enabled = true;

this.buttonC.Enabled = true;

this.buttonD.Enabled = true;

this.buttonE.Enabled = true;

this.buttonF.Enabled = true;

if (txt_Result.Text != "")

{int d1;

string d2;

string s_txt = txt_Result.Text;

string s1 = s_txt.Substring(0);

if (this.rBtn8.Checked)

{int a = System.Convert.ToInt32(s1, 16);

d1 = a;d2 = System.Convert.ToString(d1, 8);txt_Result.Text = d2.ToString();} else if (this.rBtn10.Checked)

{int a = System.Convert.ToInt32(s1, 16);

d1 = a; txt_Result.Text = d1.ToString();}

else if (this.rBtn2.Checked)

{int a = System.Convert.ToInt32(s1, 16);

d1 = a;d2 = System.Convert.ToString(d1, 2);

txt_Result.Text = d2.ToString();} }}

private void rBtn10_CheckedChanged(object sender, EventArgs e)

{this.btn_down.Enabled = false;

this.btn_log.Enabled = false;

this.btn_tan.Enabled = false;

this.btn_sin.Enabled = false;

this.btn_cos.Enabled = false;

this.btn_Pi.Enabled = false;

this.button9.Enabled = true;

this.button8.Enabled = true;

this.button7.Enabled = true;

this.button6.Enabled = true;

this.button5.Enabled = true;

this.button4.Enabled = true;

this.button3.Enabled = true;

this.button2.Enabled = true;

this.buttonA.Enabled = false;

this.buttonB.Enabled = false;

this.buttonC.Enabled = false;

this.buttonD.Enabled = false;

this.buttonE.Enabled = false;

this.buttonF.Enabled = false;

if (txt_Result.Text != "")

{ int d1; string d2;

string s_txt = txt_Result.Text;

string s1 = s_txt.Substring(0);

if (this.rBtn8.Checked)

{ double a = Convert.ToDouble(s1); d1 = (int)a;

d2 = System.Convert.ToString(d1, 8);

txt_Result.Text = d2.ToString();}

else if (this.rBtn16.Checked)

{ double a = Convert.ToDouble(s1);

d1 = (int)a; d2 = System.Convert.ToString(d1, 16); txt_Result.Text = d2.ToString();}

else if (this.rBtn2.Checked)

{ d1 = (int)a; double a = Convert.ToDouble(s1); d2 = System.Convert.ToString(d1, 2);

txt_Result.Text = d2.ToString();}}}

private void rBtn8_CheckedChanged(object sender, EventArgs e) { this.btn_per.Enabled = false;

this.btn_down.Enabled = false;

t his.btn_log.Enabled = false;

this.btn_tan.Enabled = false;

this.btn_sin.Enabled = false;

this.btn_cos.Enabled = false;

this.btn_Pi.Enabled = false;

this.button9.Enabled = false;

this.button9.Enabled = false;

this.button7.Enabled = true;

this.button6.Enabled = true;

this.button5.Enabled = true;

this.button4.Enabled = true;

this.button3.Enabled = true;

this.button2.Enabled = true; this.buttonA.Enabled = false;

this.buttonB.Enabled = false;

this.buttonC.Enabled = false;

this.buttonD.Enabled = false;

this.buttonE.Enabled = false;

this.buttonF.Enabled = false;

if (txt_Result.Text != "")

{int d1;string d2;string s_txt = txt_Result.Text;

string s1 = s_txt.Substring(0);

if (this.rBtn16.Checked)

{int a = System.Convert.ToInt32(s1, 8);

d1 = a;d2 = System.Convert.ToString(d1, 16);

txt_Result.Text = d2.ToString();}

else if (this.rBtn10.Checked)

{int a = System.Convert.ToInt32(s1, 8);

d1 = a;txt_Result.Text = d1.ToString();}

else if (this.rBtn2.Checked)

{ int a = System.Convert.ToInt32(s1, 8);

d1 = a;d2 = System.Convert.ToString(d1, 2); txt_Result.Text = d2.ToString();}}} private void rBtn2_CheckedChanged(object sender, EventArgs e)

{this.btn_per.Enabled = false;

this.btn_down.Enabled = false;

this.btn_log.Enabled = false;

this.btn_tan.Enabled = false;

this.btn_sin.Enabled = false;

this.btn_cos.Enabled = false;

this.btn_Pi.Enabled = false;

this.button9.Enabled = false;

this.button8.Enabled = false;

this.button7.Enabled = false;

this.button6.Enabled = false;

this.button5.Enabled = false;

his.button4.Enabled = false;

this.button3.Enabled = false;

this.button2.Enabled = false;

this.buttonA.Enabled = false;

this.buttonB.Enabled = false;

this.buttonC.Enabled = false;

this.buttonD.Enabled = false;

this.buttonE.Enabled = false;

this.buttonF.Enabled = false;

if (txt_Result.Text != "")

{ int d1; string d2; string s_txt = txt_Result.Text;

string s1 = s_txt.Substring(0);

if (this.rBtn8.Checked)

{ int a = System.Convert.ToInt32(s1, 2);

d1 = a; d2 = System.Convert.ToString(d1, 8);

txt_Result.Text = d2.ToString(); }

else if (this.rBtn10.Checked)

{ int a = System.Convert.ToInt32(s1, 2);

d1 = a; txt_Result.Text = d1.ToString(); }

else if (this.rBtn16.Checked)

{ int a = System.Convert.ToInt32(s1, 2); d1 = a; d2 = System.Convert.ToString(d1, 16); txt_Result.Text = d2.ToString(); }}}

private void radioButton8_CheckedChanged(object sender, EventArgs e)

{this.txt_Result.ForeColor = Color.Black; }

private void rBtnBlue_CheckedChanged(object sender, EventArgs e)

{ this.txt_Result.ForeColor = Color.Blue; }

private void rBtnRed_CheckedChanged(object sender, EventArgs e)

{ this.txt_Result.ForeColor = Color.Red; }

p rivate void rBtnYellow_CheckedChanged(object sender, EventArgs e)

{ this.txt_Result.ForeColor = Color.Yellow;}

private void button0_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void button1_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void button2_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void button3_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void button4_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void button5_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void button6_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void button7_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void button8_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void button9_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void buttonA_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void buttonB_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void buttonC_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void buttonD_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void buttonE_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void buttonF_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void btn_neg_Click(object sender, EventArgs e)

{string s_txt = txt_Result.Text;

double a = Convert.ToDouble(s_txt);

double b = -a;txt_Result.Text = b.ToString(); }

private void btn_per_Click(object sender, EventArgs e)

{string s_txt = txt_Result.Text;

double a = Convert.ToDouble(s_txt);

double b = a / 100.0;

txt_Result.Text = b.ToString();}

private void btn_Dot_Click(object sender, EventArgs e)

{ Button btn = (Button)sender;txt_Result.Text += btn.Text; }

private void btn_Add_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text = txt_Result.Text + " " + btn.Text + " "; } private void btn_Sub_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text = txt_Result.Text + " " + btn.Text + " "; } private void btn_mul_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text = txt_Result.Text + " " + btn.Text + " "; } private void btn_div_Click(object sender, EventArgs e)

{Button btn = (Button)sender;txt_Result.Text = txt_Result.Text + " " + btn.Text + " "; } private void btn_sqr_Click(object sender, EventArgs e)

{double d1;string d2;

string s_txt = txt_Result.Text;string s1 = s_txt.Substring(0);

if (this.rBtn2.Checked)

{ int a = System.Convert.ToInt32(s1, 2);

d1 = System.Math.Sqrt((double)a);

d2 = System.Convert.ToString((int)d1, 2);

txt_Result.Text = d2.ToString();}

else if (this.rBtn8.Checked)

{int a = System.Convert.ToInt32(s1, 8);

d1 = System.Math.Sqrt((double)a);

d2 = System.Convert.ToString((int)d1, 8);txt_Result.Text = d2.ToString();}

else if (this.rBtn16.Checked)

{int a = System.Convert.ToInt32(s1, 16);

d1 = System.Math.Sqrt((double)a);

d2 = System.Convert.ToString((int)d1, 16);

txt_Result.Text = d2.ToString();}

else{double a = Convert.ToDouble(s1);

d1 = System.Math.Sqrt(a);txt_Result.Text = d1.ToString();} }

private void btn_ln_Click(object sender, EventArgs e)

{string s_txt = txt_Result.Text;

double a = Convert.ToDouble(s_txt);

double en = 2.718281828;

double b = System.Math.Log(en, a);txt_Result.Text = b.ToString(); } private void btn_log_Click(object sender, EventArgs e)

{string s_txt = txt_Result.Text;

double a = Convert.ToDouble(s_txt);

double b = System.Math.Log10(a);txt_Result.Text = b.ToString(); }

private void btn_down_Click(object sender, EventArgs e)

{string s_txt = txt_Result.Text;double a = Convert.ToDouble(s_txt); if (a == 0) throw new ApplicationException();double b = 1 / a;

txt_Result.Text = b.ToString();

private void btn_Pi_Click(object sender, EventArgs e)

{double pi = 3.1415926535;txt_Result.Text = pi.ToString(); } private void btn_x2_Click(object sender, EventArgs e)

{ int d1;string d2;

string s_txt = txt_Result.Text;

string s1 = s_txt.Substring(0);

if (this.rBtn2.Checked)

{int a = System.Convert.ToInt32(s1, 2);

d1 = a * a;d2 = System.Convert.ToString(d1, 2);

txt_Result.Text = d2.ToString();}

else if (this.rBtn8.Checked)

{int a = System.Convert.ToInt32(s1, 8);d1 = a * a;

d2 = System.Convert.ToString(d1, 8); txt_Result.Text = d2.ToString(); } else if (this.rBtn16.Checked)

{int a = System.Convert.ToInt32(s1, 16);

d1 = a * a;d2 = System.Convert.ToString(d1, 16);

txt_Result.Text = d2.ToString();}

else{double a = Convert.ToDouble(s1);

d1 = (int)a * (int)a;txt_Result.Text = d1.ToString();} }

private void btn_x3_Click(object sender, EventArgs e)

{int d1;string d2;string s_txt = txt_Result.Text;

string s1 = s_txt.Substring(0); if (this.rBtn2.Checked)

{int a = System.Convert.ToInt32(s1, 2);d1 = a * a * a;

d2 = System.Convert.ToString(d1, 2);txt_Result.Text = d2.ToString();}

else if (this.rBtn8.Checked)

{int a = System.Convert.ToInt32(s1, 8);

d1 = a * a * a;d2 = System.Convert.ToString(d1, 8);

txt_Result.Text = d2.ToString();}

else if (this.rBtn16.Checked)

{int a = System.Convert.ToInt32(s1, 16);

d1 = a * a *a;d2 = System.Convert.ToString(d1, 16);

txt_Result.Text = d2.ToString();}

else{double a = Convert.ToDouble(s1);

d1 = (int)a * (int)a * (int)a;

txt_Result.Text = d1.ToString();}}

private void btn_Clear_Click(object sender, EventArgs e)

{txt_Result.Text = ""; }

private void btn_sin_Click(object sender, EventArgs e)

{string s_txt = txt_Result.Text;double a = Convert.ToDouble(s_txt); double b = System.Math.Sin(a);txt_Result.Text = b.ToString();}

private void btn_cos_Click(object sender, EventArgs e)

{string s_txt = txt_Result.Text;

double a = Convert.ToDouble(s_txt);

double b = System.Math.Cos(a);txt_Result.Text = b.ToString(); }

private void btn_tan_Click(object sender, EventArgs e)

{string s_txt = txt_Result.Text;double a = Convert.ToDouble(s_txt); double b = System.Math.Tan(a);txt_Result.Text = b.ToString();}

private void btn_Back_Click(object sender, EventArgs e)

{this.txt_Result.Text =

this.txt_Result.Text.Substring(0, this.txt_Result.Text.Length - 1);

if (this.txt_Result.Text == " ")

{this.txt_Result.Text = “} }

private void btn_Result_Click(object sender, EventArgs e)

{int d1;string d2;

string s_txt = txt_Result.Text;

int space = s_txt.IndexOf(' ');

string s1 = s_txt.Substring(0, space).Trim();

char opration = Convert.ToChar(s_txt.Substring((space + 1), 1));

string s2 = s_txt.Substring(space + 3);

{ int i = Convert.ToInt32(s1);

int j = Convert.ToInt32(s2);

switch (opration)

{case'+':d1 = i + j;break;

case'-':d1 = i - j;break;

case'*':d1 = i * j;break;

case'/':if (j == 0)

{ throw new ApplicationException();}

else{d1 = i/ j;}break;

default:throw new ApplicationException();}

txt_Result.Text = d1.ToString();}

if (this.rBtn8.Checked)

{int i = System.Convert.ToInt32(s1, 8); int j = System.Convert.ToInt32(s2, 8);

switch (opration){case'+':

d1 = i + j;d2 = System.Convert.ToString(d1, 8);break;

case'-':

d1 = i - j;d2 = System.Convert.ToString(d1, 8);break;

case'*':

d1 = i * j;d2 = System.Convert.ToString(d1, 8);break;

case'/':if (j == 0){throw new ApplicationException(); }

else{d1 = i / j;d2 = System.Convert.ToString(d1, 8);}break;

default:throw new ApplicationException();}

txt_Result.Text = d2;}

if (this.rBtn16.Checked)

{int i = System.Convert.ToInt32(s1, 16);int j = System.Convert.ToInt32(s2, 16); switch (opration)

{case'+':d1 = i + j;d2 = System.Convert.ToString(d1, 16);break;

case'-':d1 = i – j;d2 = System.Convert.ToString(d1, 16); break;

case'*':d1 = i * j;d2 = System.Convert.ToString(d1, 16);break;

case'/':if (j == 0){throw new ApplicationException();}

else{d1 = i / j;d2 = System.Convert.ToString(d1, 16);}break;

default:throw new ApplicationException();}

txt_Result.Text = d2;}

if (this.rBtn2.Checked)

{int i = System.Convert.ToInt32(s1, 2);

int j = System.Convert.ToInt32(s2, 2);

switch (opration)

{case'+':d1 = i + j;d2 = System.Convert.ToString(d1, 2);break;

case'-':d1 = i - j;d2 = System.Convert.ToString(d1, 2);break;

case'*':d1 = i * j;d2 = System.Convert.ToString(d1, 2);break;

case'/':if (j == 0){throw new ApplicationException();}

else{d1 = i / j;d2 = System.Convert.ToString(d1, 2);}

break;default;throw new ApplicationException(); }

txt_Result.Text = d2;}

if (this.rBtn10.Checked)

{double d;

double a1 = Convert.ToDouble(s1);

double a2 = Convert.ToDouble(s2);

switch (opration)

{case'+':d = a1 + a2;break;

case'-':d = a1 - a2;break;

case'*':d = a1 * a2;break;

case'/':if (a2 == 0)

{throw new ApplicationException();}

else{d = a1 / a2;}break;

default:throw new ApplicationException();}

txt_Result.Text = d.ToString();}}

private void标准型ToolStripMenuItem_Click(object sender, EventArgs e)

{Form fm1 = new Form1();fm1.Show();

this.Hide();}

private void帮??助¨2ToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("这是一个仿照windows的计算器应用程序,功能虽然不齐但基本能运行”);}}}

六实验总结

通过简易计算器这一程序的开发。我更进一步的了解了面向对象程序开发的过程也亲身体验了开发一个简单系统的细节点滴。通过这个例子,我对类的使用和认识有了更深入的体会。首先这是一个计算器程序,主要的是对十进制数据的简单的四则运算操作。包含了最基本的对一些按钮和文本框的操作。了解到了这类程序的开发过程和基本入手点。可以说这是我第一次用完全的面向对象语言开发一个简单的小程序。这也让我深刻体会到了类在面向对象开发过程中的重要性和便捷之处。只有亲身体验才有真正的收获。对于这个项目 我有一些满意的地方也有感到不足的地方。其中满意的地方是这个程序实现了预计的功能 即对数据的四则运算操作、一些三角函数 阶乘 N次方 进制转化 角弧度转换 且计算结果无误。而且 我也在这个项目中用到了以前学到的C语言程序时的一些思想。从这点我体会到了不同程序的共通性和不同语言间的共通性。通过这个程序 我解决了窗体的应用问题。把原来只能在DOS提示符下运行的程序是现在了WINDOWS窗体中。当然 这个项目中还是存在很多不足之处的 比如这个计算器程序的计算中没有能够实现把二、八、十六进制转换为十进制。有些地方写的代码效率不高。而且由于对程序设计不是很精通 我觉得这个项目中代码的编写也不足够规范 文档说明也不足 有些东西知道用什么思想 但就是用不来。培养一个良好的编程风格是十分重要的。整齐的代码格式会大大提高程序可读性。完整的技术文档对日后维护和升级十分重要。所以在编程的细节方面我还应该多加注意。一个月的实习 让我对计算机理论知识有了一定的了解 但实践出真知 唯有把理论与实践相结合

才能更好地为社会服务。我上网查阅了一些计算应用知识并对毕业论文所需的资料进行了粗浅的了解 提高了我的动手能力 同时也让我了解到了自己的不足也很好的了解了团队

合作的重要性。也学会了怎么样去处理事情。只有自己动手做过的东西才会铭记在心。也只有自己真正去努力过的事情才会记得很牢。只有自己真正面对过的困难下一次才不会犯同样的错误。这个程序仅仅是一个开始 一个简单的例子。如果日后要继续开发 我觉得应该在这个程序的高效性 易用性 功能的多样性这几个方面下功夫。也就是说把程序向着更加面向用户的方向进行发展。比如我们可以对用户输入进来的数据进行高级的函数运算 并且能够在运算不可行的时候出现提示等等。也就是说要努力将其变成一个实际工作中可以使用的程序 而不仅仅是一个示例。当然我会继续努力 完善自我 为社会主义现代化建设做贡献。总的来说:我学会了掌握时间。把不可控制的东西变成可控制的。做的东西要做成可扩充的。做东西一定要活 从这些话再加上自己的工作慢慢体会到这正是我所不足的地方啊。在以后的对计算机科学与技术专业的学习中 我会通过对C#这项技术的不断应用 来更深入的学

习它的精髓。

编程实验报告---科学计算器设计与实现

《可视化程序编程环境》 实验报告 项目名称科学计算器设计与实现 学院计算机学院 专业班级计算机科学与技术0804 2010年1月9 日

一、设计任务与要求 使学生了解可视化程序设计语言的基础知识,掌握面向对象编程的分析设计方法,以及与面向对象技术相关的一些软件开发技术,掌握在 VisualC++6环境下进行可视化程序设计技术。通过实践具体的项目,为他们进一步开展相关领域的学习和科研打下良好的基础。 二、需求分析 1. 功能需求(功能划分、功能描述) 1、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算 2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行 3、以角度、弧度两种方式实现上述部分函数 4、具备历史计算的记忆功能 5、对不正确的表达式能指出其错误原因 2. 运行需求(用户界面、人机接口、故障处理) 根据计算器要实现的相应功能来布局,分为基本功能区,特殊函数区,进制转换区,度数转换区和输出显示区五大基本模块。 三、实验方案 1、总体设计框图 2

3.基本功能区的设计 在这个模块中主要把0到F各个按键按下去后在输出显示区上显示出来列举一例: void Caysf55Dlg::OnBnClickedButton3() {if(zuizong=="0") m_str=""; m_str+="1"; UpdateData(0); if(zuizong=="0") zuizong=""; zuizong+="1";// TODO: 在此添加控件通知处理程序代码 } 接下来从输出显示区获得字符串,通过运算符的相应按键处理:列举加法: void Caysf55Dlg::OnBnClickedButton19()/*加法运算*/ {double zan; if(m_str=="") MessageBox(L"没有运算数"); else if(y==1||M==1) MessageBox(L"只能输入数值"); else if(m_str.GetAt (m_str.GetLength()-1)=='+'||m_str.GetAt (m_str.GetLength()-1)=='-'||m_str.GetAt (m_str.GetLength()-1)=='*'||m_str.GetAt (m_str.GetLength()-1)=='/')

c计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件 的响应函数代码。

(3)程序清单: 添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法 2.减法 3.乘法 4.除法 int append; //判断后面是否添加数字 成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0;

计算机科学与技术第次实验报告.docx

哈尔滨工程大学 《程序设计基础》实验报告 基础实践一 姓名:班级: 学号: 实验时间 :2018年5月10日成绩 哈尔滨工程大学计算机基础课程教学中心 实验题目 1:输入两个整数数组,每个数组有五个整数,将两者和并 并排列输出。 设计思想: 定义三个数组 , 将两组数据存储到第三个数组中 , 再用冒泡排序对其由大到小排序并输出。 实验代码及注释: #include #include #define N 10//宏定义

int main() { int a[5],b[5],c[N];//第一组数据,第二组,合并数组int i,j,t;//循环变量,中间变量 printf("输入第一组数据 :\n");//输入数据 for(i=0;i<5;i++) scanf("%d",&a[i]); printf("输入第二组数据 :\n"); for(i=0;i<5;i++) scanf("%d",&b[i]); for(i=0;i<5;i++) { c[i]=a[i];//两组数据合并 c[i+5]=b[i]; } for(i=0;i

for(j=0;j

复数计算器 实验报告

中南大学 高级程序设计实践(C++)课程设计报告 题目复数计算器 学生姓名 指导教师陈丽萍 学院信息科学与工程学院 专业班级通信工程1301班 完成时间 2014年7月5日

第一章需求分析与程序设计 1.1 需求分析 1.1.1程序设计的目的与任务 1.复习和巩固C++语言的基础知识,进一步加深对C++语言的理解和掌握。 2.为学生提供独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生独立分析问题、解决问题、查阅资料以及自学能力。 3.学习和掌握C++程序设计方法以及上机调试技巧,为今后学习其它专业课程打好基础。 4.在程序实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数,以实现预期的功能,解决实际问题。 1.1.2“复数计算器”程序所能实现的功能 1.建立实数类、复数类,复数类由实数类公有继承而来。 2.实现实数、复数信息的初始化。 3.通过选择结构和调用相关函数实现实数的相关运算,包括:两个实数间的加、减、乘、除和一个实数的自增、自减、求平方、二次方根等运算。 4.通过选择结构和调用相关函数实现复数的相关运算,包括:两个复数间的加、减、乘、除、求两个复数的夹角和一个复数的取模、求平方、求共轭复数、求单个复数的向量角等运算。 5.通过调用相关函数实现实数、复数信息的输出,显示在显示屏上。 6.通过多次运用选择和循环结构实现对实数、复数运算的选择,在选择了实数或复数运算的前提下,再实现对各种运算的选择,运算结束后还可以选择继续实现其它运算或退出程序。 1.2 程序设计 1.2.1概要设计 1.系统中的各个实体及它们之间的关系 系统中的实体是实数类对象和复数类对象,它们的关系是复数类对象所属的类是由实数类对象所属的类公有派生而来的。 2.系统的类层次 程序中建立了两个类,分别是实数类、复数类,复数类是由实数类公有派生而来的。 3.主程序的流程以及各程序模块之间的层次(调用)关系 首先从键盘输入数字1或2或0,输入不同数字则进入不同的并列的小程序模块。

数电实验二:简易计算器(实验报告)

数电实验2实验报告 1、设计修改方案 (1)加入编码器连接4选一数据选择器,控制进行运算的种类 (2)修改了输出端数据选择器的程序,使得当计算器没有任何输入时,结果显示保持为0,并且利用芯片自身的灭零管脚,让显示结果中,当十位为零时,十 位的零不显示。

2、实验数据及分析 (1)修改后电路图(附后) (2)仿真波形 设置输入2个4位二进制数为0110(十进制6)和0010(十进制2),计算方式控制SW[3:0]设为0111,即模拟除法操作,加入时钟信号。 ①模拟除法波形: 可以看到十位(商)的数码管显示中,1、2、3、4、7段亮,显示为数字3,而个位(余数)显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6除2商3余0。满足计算要求。 ②模拟乘法波形:(SW[3:0]设为1011,其他输入同上)

可以看到个位的数码管显示中,1、4、5、6段亮,显示为C(化为十进制为12),而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6乘2等于0C,即等于12。当改变输入4和2是,显示结果为8,。满足计算要求。 ③模拟加法波形:(SW[3:0]设为1101,其他输入同上) 可以看到个位的数码管显示中,1、2、3、4、5、6、7段全亮,显示为数字8,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6加2等于08,即等于8。满足计算要求。 ④模拟减法波形:(SW[3:0]设为1110,其他输入同上) 可以看到个位的数码管显示中,2、3、6、7段亮,显示为数字3,而十位一直显示1、2、3、4、5、6段亮,显示数字0,相当于计算出6减2等于03,即等于3。满足计算要求。 从上面加减乘除四种功能运算的波形仿真可以看出,本实验设计能够正确完成对输入数字的上述四种运算。满足题目要求。

vb科学计算器实验报告

西安科技大学 可视化编程语言实验报告 题目:科学计算器 班级: 学号: 姓名: 2010年11月

复杂型科学计算器的设计与实现实验目的 1.通过本实验,进一步理解Visual Basic的编程方法。 2.提高运用Visual Basic编程的能力。 3.培养对所学知识的综合运用能力。 实验类型 综合型。 实验内容与步骤 一.界面设计。

Command5Caption= 三.程序代码: Dim num1 As Single, num2 As Single Dim fu As Integer Dim sign As Integer Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 To 9 sign = Index + 20 Case 10 sign = Index + 20 fu = 1 Case 11 To 14 sign = Index + 20 End Select = "" End Sub Private Sub Command2_Click(Index As Integer) Select Case Index Case 0 To 9 = & Index If fu = 0 Then num1 = Val Else num2 = Val

Case 10 = & "-" Case 11 = & "." Case 12 To 18 = "" sign = Index fu = 1 End Select End Sub Private Sub Command3_Click() If =”” then else = Left$, Len - 1) End if End Sub Private Sub Command4_Click() = "" End Sub Private Sub Command5_Click() Dim n As Integer, cf As Single fu = 0: cf = 1 Select Case sign Case 12 = num1 & "+" & num2 = num1 + num2 Case 13 = num1 - num2 Case 14 = num1 * num2 Case 15 = num1 / num2 Case 18 For n = 1 To num2 cf = cf * num1 Next n = cf Case 20 = Sin(num1) Case 21

单片机实验报告 计算器

单片机原理及其应用实验报告基于51单片机的简易计算器的设计 班级:12电子1班 姓名:金腾达 学号:1200401123 2015年1月6日

摘要 一个学期的51单片机的课程已经随着期末的到来落下了帷幕。“学以致用”不仅仅是一句口号更应该是践行。本设计秉承精简实用的原则,采用AT89C51单片机为控制核心,4X4矩阵键盘作为输入,LCD1602液晶作为输出组成实现了基于51单片机的简易计算器。计算器操作方式尽量模拟现实计算器的操作方式,带有基本的运算功能和连续运算能力。并提供了良好的显示方式,与传统的计算器相比,它能够实时显示当前运算过程和上一次的结果,更加方便用户记忆使用。本系统制作简单,经测试能达到题目要求。 关键词:简易计算器、单片机、AT89C51、LCD1602、矩阵键盘

目录 一、系统模块设计......................................................................................... 错误!未定义书签。 1.1 单片机最小系统 (1) 1.2 LCD1602液晶显示模块 (1) 1.3 矩阵按键模块 (2) 1.4 串口连接模块 (1) 二、C51程序设计 (2) 2.1 程序功能描述及设计思路 (2) 2.1.1按键服务函数 (2) 2.1.2 LCD驱动函数 (2) 2.1.3 结果显示函数 (2) 2.1.4状态机控制函数 (2) 2.1.5串口服务函数 (2) 2.2 程序流程图 (3) 2.2.1系统总框图 (3) 2.2.2计算器状态机流程转换图 (3) 三、测试方案与测试结果 (4) 3.1测试方案 (4) 3.3 测试结果及分析 (7) 4.3.1测试结果(仿真截图) (7) 4.3.2测试分析与结论 (7) 四、总结心得 (7) 五、思考题 (8) 附录1:整体电路原理图 (9) 附录2:部分程序源代码 (10)

c计算器实验报告

c计算器实验报告集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、 乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 中建立一个MFC工程文件,名为calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和 单选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在中添加头文件,然后添加public成员。 7)打开文件,在构造函数中,进行成员初始化和完善各控件的 响应函数代码。 (3)程序清单: 添加的public成员: double tempvalue; 法 2.减法 3.乘法 4.除法

int append; //判断后面是否添加数字 ●成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = ; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; } ●各控件响应函数代码: void CCalculatorDlg::OnButton1() //按钮“1” { // TODO: Add your control notification handler code here if(append==1)result=0;

安卓计算器开发实验报告

嵌入式WebOS应用开发 实验报告 实验名称:使用An droid Developer SDK开发应用程序 专业:_________________________ 姓名:__________________________________ 班级:_______________________________ 学号:______________________________ 一、作品的运行环境及安卓SDK基础操作 SDK An droid Developer 是一款在windows系统上运行的针对 An droid应用开发的谷歌官方软件(需要JAVA环境支持)。 1、导入工程 2、建立虚拟机 在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB因为部分程序如果调用资源过大会导致虚拟机无法运行。 3、虚拟机界面 二、作品介绍 我的应用是一个计算器。能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。

加应用图标 1.首先在我的桌面上添加你应 用的图标以及文字,双击图标后 项中自行进行挑选; 也可以添加自己的图片, 只要将图片放到对应的 文件夹之下在刷新就可 以,但不建议放分辨率 过高图片可能会出现超 出界面的等错误。 要在xml 界面中添加排版: xml 代码首末的 格式较为自由可以直接在 界面中拖动图标位置以及修改大小,而其他layout 则更会自动排列, 各有优劣。 三、 编程以及运行调试 (一)、在MyDesktop 主界面中添 fin^_ok,prig 世IF it launchiWipng 32E img'O.png jdE im^il.png] 3E img?.pHg 血 imql.pngi 32E img4.png 血 im^S.pngi Tn? imgg.png JJL -mgT.pngj ..1. imy^.png ..1. uiHiprxg 就可以看见对应的代码, 可直接 在代码中进行修改图片文字的 大小颜色等等。 以下是对应图像图标的代码 图片可以在左侧的选 (二)、在 res/layout 目录下新建.xml 文件,由于计算器的按钮很多, TIF charfrc 起 ch^tfrorn_bg_ipTW5&d !S'.pflg ~l <+i?,kbnif^M 口 .股 ch?kbojco#f bsckgrourid^na SE chfkb rn (」]n.hewlcgin 口unci 岱n 评 弧 tlwr^na TTF de^ r o 1 .pnq

BCD计数器实验报告

程序代码: module counter(sa,sb,ma,mb,ha,hb,clk,clear,HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,clkout); input clk,clear; output sa,sb,ma,mb,ha,hb,HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,clkout; reg [3:0]sa,sb,ma,mb,ha,hb; reg [6:0]HEX0,HEX1,HEX2,HEX3,HEX4,HEX5; reg clkout; reg [30:0]i; always @(posedge clk) begin if(i===13499999) begin i=0; clkout=~clkout; end else i=i+1; end always @(posedge clear or negedge clkout) begin if(clear) begin sa<=4'b0; sb<=4'b0; ma<=4'b0; mb<=4'b0; ha<=4'b0; hb<=4'b0; end else if((ha==4)&(hb==2)) begin ha<=4'b0; hb<=4'b0; end else if(ha>9)

begin ha<=4'b0; hb<=hb+1; end else if((ma==9)&(mb==5)) begin ma<=4'b0; mb<=4'b0; ha<=ha+1; end else if(ma>9) begin ma<=4'b0; mb<=mb+1; end else if((sb==5)&(sa==9)) begin ma<=ma+1; sb<=4'b0; sa<=4'b0; end else if(sa==9) begin sb<=sb+1; sa<=4'b0; end else begin sa<=sa+1; end end always@(sa or HEX0) begin case(sa) 4'b0000: HEX0=7'b1000000; 4'b0001: HEX0=7'b1111001; 4'b0010: HEX0=7'b0100100; 4'b0011: HEX0=7'b0110000; 4'b0100: HEX0=7'b0011001; 4'b0101: HEX0=7'b0010010; 4'b0110: HEX0=7'b0000010;

简易计算器设计实验报告

简易计算器设计实验报告 一.设计任务及要求 1.1实验任务: 根据计算器的原理设计一个具有加减乘除功能的简易计算器。如:5+3*4/8=4。 1.2 实验基本要求: (1)实现最大输入两位十进制数字的四则运算(加减乘除)。 (2)能够实现多次连算(无优先级,从左到右计算结果)。 如:12+34*56-78/90+9=36 (3)最大长度以数码管最大个数为限,溢出报警。 二.实验设计方案 (1)用QuartusII的原理图输入来完成系统的顶层设计。 (2)用VHDL编写以及直接拖模块来各功能模块。 (3)通过2个脉冲分别实现个位数和十位数的输入。 (4)通过选择每次的输出数值,将输出值反馈到运算输入端 (4)通过除法运算实现十六进制到十进制的转换输出。 其具体实现流程图如下:

三系统硬件设计 FPGA: EP2C5T144C8目标板及相应外围硬件电路。(从略) 四系统软件设计 1.数据输入模块 原理:用VHDL创建模块,通过两个脉冲分别对两个数码管进行输入控制,再通过相应运算模块将两个独立数据转化成两位十进制数字。 2.运算模块 原理:用VHDL创建模块,四种运算同步运行,通过按键加、减、乘、除选择输出对应的计算结果,当按键等号来时,将所得结果反馈给运算模块输入端。具体实现代码见附录二。 3.输出模块 原理:用VHDL创建模块,通过按键等号来控制显示运算对象还是运算结果,当等号按下时,输出计算结果,否则显示当前输入的数据,并且通过除法模块将十六进制转化为十进制。当输出结果溢出是LED0亮,同时数码管显示都为零。部分实现见附录二。 五实验调试 输入数据12,再按加法键,输入第二个数字25,按等号键,数码管显示37;按灭加法、等号键,输入第二个数据2,依次按等号键,减法键,数码管显示35;同上,按灭减法键、等号键,输入第三个数据7,依次按等号键,除法键,数码管显示5;按灭除法键、等号键,输入第四个数据99,依次按等号键,乘法键,数码管显示495,按灭乘法键、等号键,当前显示为99,依次按等号键、乘法键,数码管显示49005,同上进行若干次之后,结果溢出,LED0亮,同时数码管显示都为零。当输出为负数时,LED0灯变亮,同时数码管显示都为零。六实验结论 本实验基本实现了计算器的加减乘法运算功能,但是存在一个突出的缺陷,就是当输出结果时,必须先按等号键导通数据反馈,再按运算键选择输出结果。这与实际应用的计算器存在很大的差距。但是,本设计可以通过等号键实现运算对象和运算结果之间的切换。

MFC计算器实验报告

实验报告一——计算器 一实验名称 简易计算器 二实验目的 在Visual C++.EXE开发环境中,通过编写计算器程序,掌握创建对话框的方法,并向其中添加控件,并设置属性,使之满足程序的要求。 三编程思路 计算器要实现各种运算,在编写中主要分为两大块的编写,一是对1、2、3等数字按钮的响应函数编写,二是对加减乘除等运算符按钮的响应函数的编写。 给Dlg添加变量int m_operator; //运算符 double m_result; //结果(含中间变量) 另外添加编辑框的变量m_res 1.对数字按钮的响应函数的编写 1)由于每个按钮的响应函数相差不大,故用一个函数将其封装 在每次输入时要先判断数据开头是否为0 void CMy0710210202CalculateDlg::button(CString c) { UpdateData(TRUE); m_res+=c; if(m_res.GetAt(0)=='0'&&m_res.Find(".")==-1){ m_res.Empty(); m_res+=c; } UpdateData(FALSE); } 2)小数点按钮的响应函数。 首先要判断输入数据中是否已有小数点,数据是否为0,以及是否还没输入数据。 void CMy0710210202CalculateDlg::OnDian() { // TODO: Add your control notification handler code here UpdateData(TRUE); int n=m_res.Find("."); if(n==-1&&m_res.GetLength()!=0) m_res+="."; else if(m_res.GetLength()==0)m_res+="0."; UpdateData(FALSE); } 2.运算符按钮的响应函数的编写 用m_operator指代要进行的运算,由于每次的运算结果m_result 都传入了编辑框的变量m_res里,故此程序可以实现连续运算。 代码为 void CMy0710210202CalculateDlg::Result() { UpdateData(TRUE);

计算机科学与技术实验报告

哈尔滨工程大学《程序设计基础》实验报告 基础实践二 姓名:王明班级: 学号: 实验时间: 2017 年 5 月 8 日 哈尔滨工程大学计算机基础课程教学中心 实验五 实验题目1: 输入两个整数数组,每个数组有5个整数,将两者合并并排序输出。 设计思想:定义两个5个元素的数组,一个10个元素的数组,数据类型为整型,通过for循环输入前两个数组的值,并依次存入第三个数组中。另外编写排序函数,在主函数中调用对第三个数组中的元素排序并输出。 实验代码及注释: #include<> #include<>

void f1(int *a, int i, int j) { int m, n, c; int k; m = i; n = j; k = a[(i + j) / 2]; do { while (a[m]k&&n>i) n--; if (m <= n) { c = a[m]; a[m] = a[n]; a[n] = c; m+=1; n-=1; }

} while (m <= n); if (mi) f1(a, i, n); } int main() { int a1[5],a2[5],c[10]; printf("请输入两个数组,每组五个整数:\n"); for(int i=0;i<5;i++) scanf("%d %d",&a1[i],&a2[i]); for(int i=0;i<5;i++) { c[i]=a1[i]; c[i+5]=a2[i]; } f1(c,0,9); printf("排序后为:\n");

JAVA计算器实验报告

实验:计算器java程序 班级:XXXXXXX 姓名:XXXXX 学号:XXXXXXXX 实验地点:XXXXX 一、实验目的: 通过制作一个计算器让我们了解到组件的运用以及如何制作一个窗口,怎么样使用各种布局管理器,怎么样注册事件的监听,以及怎么样设置按钮或者说组件的监听程序,学会使用java语言的语法规则,掌握接口的使用,了解组建的背景颜色的设置等方法。 二、实验要求: 1.编写一个java计算器程序; 2. 运用组件的方法来布局窗口,运用接口,事件监听程序来完成计算器的功能。 三,实验步骤 1、新建一个类,注册各种组件; 2、获取窗格;设置布局管理器; 3、为各个组件注册监听程序; 4、设置组件的事件监听程序; 5、运行程序,对结果进行截图; 四,设计思路: 1.界面设置布置模块: 使用了awt,swing的类里面的方法来完成界面的布置。其中,容器布置选择了BorderLayout方法来布置面板,选择了GirdLayout方法来布置按钮。 文本区域接收字符从数字按钮的监听中获得。按钮是常规思路添加到面板上。并为按钮注册监听。 2.监听程序思路: 使用tf.getText()+"n"来实现获得文本区域显示按钮字符串,n等于所设置监听的数字按钮。tf.setText()来保存并输出获得的字符串。

使用Double.parseDouble()实现文本区域字符串转换成Double 型数据来完成计算。把ft.setText()中的字符转换成数字。 使用biaozhi==n。的方法来获得启发值。完成运算符按钮的监听。构造方法,运用biaozhi=n,来完成加减乘除小数点的不同运算。 运算后获得结果flag3。ft.setText()获得值显示在文本区域上3.数字按钮输入使用循环会更加简单,减少了十个数字按钮的逐个输入,添加,注册监听 for (int i=0;i<=9;i++){ btn[i]=new Button(String.valueOf(i)); centerPanel.add(btn[i]); btn[i].addActionListener(); } 五,程序实现: package yyy; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.Button; import java.awt.GridLayout;//导入网格布局管理器类 import java.awt.TextField;//导入文本区域类 import java.awt.event.ActionEvent;//导入事件类 import java.awt.event.ActionListener;//导入事件监听者类 import javax.swing.JButton;//导入按钮类 import javax.swing.JFrame;//导入窗体 import javax.swing.JPanel;//导入面板 public class jisuanqi8{ //新建对象,在构造函数中进行初始化 JFrame f;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”

C#计算器实验报告

C#计算器实验报告 班级:2010134 学号:201013432 姓名:蔡启林

一实验目的和要求 设计一个简单计算器,具有一般计算功能,能进行基本的加减乘除运算,还具有求根号,倒数等功能。特点是能进行不同进制的运算和不同进制间的转换。主要的工作主要是操作数与被操作数进行简单的加、减、乘、除运算来完成基本的,而且还可以进行简单的科学运算例如计算一个数的平方、开方、正弦、余弦、log、ln等操作 还可以计算面积、周长、体积和表面积等。通过新的技术和新方法来实现计算功能 显示界面为Windows From窗体。 二功能模块设计 标准计算器 通过Windows Form窗体中的对应按钮 接受用户输入数据提交对应的方法中来完成相应的功能计算 再将结果显示在显示框内。显示界面为Windows From窗体。 下面是一个简单的计算器的基本功能: 1 加法 两个数据进行加操作 可以为小数。 2 减法 两个数据进行减操作 可以为负数相减。 3 乘法 两个数相乘 4 除法 两个数相除 5 倒数 可以求得一个数的倒数 6 开方 开方后的结果可以精确到16位。 科学计算器 1 平方 接收的数相乘 结果保留一位小数。 2 立方 接收的数相乘两次 3 正弦 正弦结果精确度同开方。 4 余弦 余弦结果精确度同上。 5 Log Log运算精确到16位。 6 Ln 以e为底的对数。 7 二进制 二进制数的运算 8 八进制 八进制数的运算 9 十进制 十进制数的运算 11 十六进制 十六进制的运算 12 倒数 可以求得一个数的倒数 13 开方 开方后的结果可以精确到16位。 14 颜色

可以选择输入字体的颜色 三设计界面 标准型 科学型 四详细设计过程 (一)打开VS2010创建项目

大学生计算机实验报告(完整版)

《大学计算机基础》实验3.1 文件和文件夹的管理 实验报告 专业班级:经贸1103 姓名——- 学号201118910315 指导教师:———完成时间:2011.10 一、实验题目 文件和文件夹的管理 二、实验目的 1.熟悉Windows XP的文件系统。 2.掌握资源管理器的使用方法。 3.熟练掌握在Windows XP资源管理器下,对文件(夹)的选择、新建、移动、复制、删除、重命名的操作方法。 三、实验内容 1.启动资源管理器并利用资源管理器浏览文件。 2.在D盘创建文件夹 3.在所创建文件夹中创建Word文件。 4.对所创建文件或文件夹执行复制、移动、重命名、删除、恢复、创建快捷方式及设置共享等操作。 四、实验步骤 (一)文件与文件夹管理 1.展开与折叠文件夹。右击开始,打开资源管理器,在左窗格中点击“+”展开,点击“—”折叠 2.改变文件显示方式。打开资源管理器/查看,选择缩略、列表,排列图标等

3.建立树状目录。在D盘空白处右击,选择新建/文件夹,输入经济贸易学院,依次在新建文件夹中建立经济类1103班/王帅、王鹏 4..创建Word并保存。打开开始/程序/word,输入内容。选择文件/另存为,查找D盘/经济贸易学院/1103班/王帅,单击保存 5.复制、移动文件夹 6.重命名、删除、恢复。右击文件夹,选择重命名,输入新名字;选择删除,删除文件 7.创建文件的快捷方式。右击王帅文件夹,选择发送到/桌面快捷方式

8.设置共享文件。右击王帅,选择属性/共享/在网络上共享这个文件/确定 9.显示扩展名。打开资源管理器/工具/文件夹选项/查看/高级设置,撤销隐藏已知文件的扩展名 (二)控制面板的设置。 1.设置显示属性。右击打开显示属性/桌面、屏幕保护程序 2.设置鼠标。打开控制面板/鼠标/按钮(调整滑块,感受速度)、指针 3.设置键盘。打开控制面板/键盘/速度(调整滑块,感受速度)、硬件 4.设置日期和时间打开控制面板/日期和时间 5.设置输入法。打开控制面板/区域与语言选项/详细信息/文字服务与输入语言

实验报告 编写一个简易实用的计算器。

开课实验室:现代信息交流中心40*开课时间:2012年**月**日实验报告:年月日 一、实验目的:熟悉Java图形用户界面的开发原理与技术,包括各种组件和容器技术。 二、实验内容: 编写一个简易实用的计算器。 三、源代码清单: package exp3; import Result extends Panel { TextField tf; Result() { tf = new TextField("0", 25); add(tf); } } class Key extends Panel { Button backSpace, clearEnter, cancel,lBracket,rBracket; Button one, two, three, four, five, six, seven, eight, nine, zero; Button add, subtract, multiplay, divide; Button sqrt, reciprocal, mod; Button positiveAndNegative, point, equal; Key() { setLayout(new GridLayout(5, 5)); backSpace = new Button("←"); (new Color(255, 0, 0)); add(backSpace); clearEnter = new Button("CE"); (new Color(255, 0, 0)); add(clearEnter); cancel = new Button("C"); (new Color(255, 0, 0));

计算器实验报告 (1)

HTML网页实验报告 院系:计算机控制与工程学院 班级:计124-1 学号: 姓名: 完成日期:2014年12月18日

一.实验名称:设计一个网页计算器 二.需求分析: 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用HTML的知识编写程序来解决此问题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。该计算器使用非常简单和方便,对广大学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。 三.实验目的: 1.熟悉html5图形用户界面的设计原理和程序结构 2.能设计复核问题要求的图形用户界面程序 3.熟悉javascript css、button和table的组合 4.会应用button和table组件进行应用程序设计 四.实验硬件软件环境: 1.Dreamweaver开发环境 五.详细内容: 使用《网页设计与开发》课程讲授内容,编写一个简单的计算器,要求实现如下功能: 1.进行图形界面设计 通过图形界面设计,掌握文本框、标签及按钮的使用方法。 2.实现计算器的基本功能 计算器的设计按软件工程的方法进行,网页具有良好的界面;

必要的交互信息;简约美观的效果。使用人员能快捷简单地进行操作。即可单击按钮进行操作,也可直接通过键盘直接输入。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。包含的功能有:加、减、乘、除运算,开方、求倒数等功能.计算器的扩展功能 包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余弦、反正切、反余切等功能。 4.计算器工作流程图 六.实验设计: 1、实验算法设计

简单的计算器实验报告

HUNAN UNIVERSITY 程序设计训练 ——简单的计算器 报告 学生姓名田博鑫 学生学号 20110407110 专业班级工业工程(1)班 指导老师吴蓉晖 2012年6月16日至2012年7月10日

1.程序设计目的和要求 目的: 此次程序设计的目的主要是为了我们能更好的理解和熟悉C语言这门计算机课程,自己有对计算机程序设计的的初步认识。 要求: 运用相关知识,查阅相关资料,编写一个简单的计算器,能够实现简单的基本的加减乘除运算,在计算器工作时利用键盘或鼠标进行相应操作。程序基本功能要求实现完整,并有简单的验证。在计算器运行中,输入数据时如果输入错误的情况,能够通过键盘上的退格键进行删除,并且重新输入正确的数据。在数据输入完成,如果需要放弃本次计算操作,可以利用程序中设置好的按键进行调整。 2.程序设计的任务和内容 这个简单的计算器要求能够进行简单的四则运算,要求运用所学的知识和查阅相关的资料来完成这个简单的计算器的设计,要求这个简单的计算器尽量在windows界面下进行,计算器界面不做要求。该简单的计算器包含有基本的四则运算、正弦函数、余弦函数、正切函数、余切函数、平方、开方,以及平均值、标准差、方差的运算。 3.程序设计说明 该简单的计算器能进行基本的四则运算和乘方,开方,以及三角函数的运算。操作需要逐步根据提示来完成所要进行的运算。比如要进行81的开方运算的话首先在屏幕上可以看到开放运算的命令是5,所以先要输入5,然后再输入要开方的数据81可以在屏幕上看到运行的结果。 4.详细设计说明包含流程图

5.程序的调试及结果 调试与运行(没有错误)

科学计算器课程设计报告C课程设计修订稿

科学计算器课程设计报告C课程设计 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

计算机科学与技术学部 C++课程设计 题目科学计算器 学部计算机科学与技术 班级计科1103 指导教师李军 姓名刘明 学号 2012年6月27日

摘要 计算器的产生和发展是建立在电子计算机基础之上的。硬件方面,自1946年第一台电子计算机诞生以来,计算机技术的发展可谓日新月异,从庞大的只能在实验室里供研究使用的计算机到如今能适应不同环境满足不同需求的各种各样的计算机;运算速度从每秒几千次到每秒几百亿次;处理器从焊有上百万个电子管的大的惊人的电子板到只有指甲大小的集成电路;现在计算机在硬件方面的发展已达到了每三个月更新换代一次的惊人速度。软件方面,也已从机器语言、汇编语言、高级语言发展到现如今的第四代语言——非结构化、面向对象、可视化的语言。 在这个计算器里面,我们实现了简单的四则运算以及更高功能的科学计算,它的外观简洁美观,使人们能快捷简单的操作。能准确的得到计算结果,大大减少了数字计算所需要的时间,为人们的生活带来便利。此系统在Windows 7环境下,使用VC++ 进行编写。 简单计算器包括双目运算和单目运算功能,双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,对数,开方,阶乘,倒数,进制转换等运算。可对其输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。并且包含清除,退格功能等。我们所做的计算器其功能较Windows 7下的计算器还是很不够多,没有其菜单的实现功能项,没有其小巧的标准计算器。 关键词:计算器;运算;VC++等

相关文档
相关文档 最新文档