第02讲简易计算器的设计.docx

上传人:b****7 文档编号:11362543 上传时间:2023-02-28 格式:DOCX 页数:16 大小:111.71KB
下载 相关 举报
第02讲简易计算器的设计.docx_第1页
第1页 / 共16页
第02讲简易计算器的设计.docx_第2页
第2页 / 共16页
第02讲简易计算器的设计.docx_第3页
第3页 / 共16页
第02讲简易计算器的设计.docx_第4页
第4页 / 共16页
第02讲简易计算器的设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

第02讲简易计算器的设计.docx

《第02讲简易计算器的设计.docx》由会员分享,可在线阅读,更多相关《第02讲简易计算器的设计.docx(16页珍藏版)》请在冰豆网上搜索。

第02讲简易计算器的设计.docx

第02讲简易计算器的设计

第02讲计算器

2.1计算器简介

大家都知道,计算器是日常生活中不可缺少的一个工具,在Microsoft的Windows操作系统中,附带了一个计算器程序,有标准型和科学型两种模式。

WindowsXP下的标准型和科学型计算器程序分别如图2-1和图2-2所示。

图2-1WindowsXP下的标准型计算器

图2-2WindowsXP下的科学型计算器

Windows操作系统下附带的计算器程序功能相当的强大,本课我们将模仿Windows的计算器,使用VisualC#2005开发平台开发一个功能相对简单的计算器应用程序,它能完成加、减、乘、除运算。

接下来详细的介绍简易计算器的设计方法和步骤。

2.2界面设计及属性设置

用户界面设计是软件开发中非常重要的一个部分,用户界面的好坏直接影响软件的质量,本节将介绍如何设计简易计算器的用户界面以及界面上各控件的属性设置。

2.2.1界面设计

打开VisualStudio2005开发工具,新建一个Windows应用程序,然后在窗体上依次放置1个TextBox和17个Button控件,如图2-1所示(设置好属性后)。

图2-1计算器用户界面

2.2.2属性设置

窗体和各控件的属性设置如表2-1所示。

表2-1窗体和各控件的属性

控件类型

控件名称

属性

设置结果

Form

Form1

Text

计算器

StartPosition

CenterScreen

MaximizeBox

False

AutoSizeMode

GrowAndShrink

TextBox

TextBox1

Name

txtReadout

ReadOnly

True

Button

Button1

Name

btnNum7

Text

7

Button2

Name

btnNum8

Text

8

Button3

Name

btnNum9

Text

9

Button4

Name

btnAdd

Text

+

ForeColor

Red

Button5

Name

btnSub

Text

-

ForeColor

Red

Button6

Name

btnNum4

Text

4

Button7

Name

btnNum5

Text

5

Button8

Name

btnNum6

Text

6

Button9

Name

btnMul

Text

*

ForeColor

Red

Button10

Name

btnDiv

Text

/

ForeColor

Red

Button11

Name

btnNum1

Text

1

Button12

Name

btnNum2

Text

2

Button13

Name

btnNum3

Text

3

Button14

Name

btnNum0

Text

0

Button15

Name

btnDot

Text

.

Button16

Name

btnC

Text

C

ForeColor

Red

Button17

Name

btnAmount

Text

=

ForeColor

Red

2.3编写代码

本程序需要用到一些公共变量,例如用来接收操作数、运算结果,判断输入的是否为小数等,因此首先在代码的通用段声明以下变量:

//******************************************************************

doublenum1,num2,result;//操作数及运算结果

booldecimalFlag=false;//判断输入的是否为小数

stringmyOperator;//操作类型

//******************************************************************

接下来编写一个名为“NumClick”的方法,单击数字按钮时,调用NumClick方法,将输入的数字追加到文本框中,代码如下:

//******************************************************************

//单击数字按钮时,调用如下NumClick方法

//******************************************************************

publicvoidNumClick(intmyNumber)

{

if(decimalFlag)//输入小数

{

txtReadout.Text=txtReadout.Text+myNumber;

}

else

{

if(txtReadout.Text=="0.")//输入整数

{

//输入的是整数的第一个数字

txtReadout.Text=myNumber+".";

}

else

{

//输入的不是整数的第一个数字

txtReadout.Text=txtReadout.Text.Substring

(0,txtReadout.Text.Length-1)+myNumber+".";

}

}

}

//******************************************************************

//******************************************************************

编写窗体的载入事件代码如下:

//******************************************************************

//窗体载入事件代码

//******************************************************************

privatevoidForm1_Load(objectsender,EventArgse)

{

txtReadout.Text="0.";

//指定文本框的对齐方式为右对齐

txtReadout.TextAlign=HorizontalAlignment.Right;

}

//******************************************************************

//******************************************************************

编写数字按钮【0】~【9】的单击事件代码如下:

//******************************************************************

//数字按钮【0】~【9】的单击事件代码

//******************************************************************

privatevoidbtnNum0_Click(objectsender,EventArgse)

{

NumClick(0);

}

privatevoidbtnNum1_Click(objectsender,EventArgse)

{

NumClick

(1);

}

privatevoidbtnNum2_Click(objectsender,EventArgse)

{

NumClick

(2);

}

privatevoidbtnNum3_Click(objectsender,EventArgse)

{

NumClick(3);

}

privatevoidbtnNum4_Click(objectsender,EventArgse)

{

NumClick(4);

}

privatevoidbtnNum5_Click(objectsender,EventArgse)

{

NumClick(5);

}

privatevoidbtnNum6_Click(objectsender,EventArgse)

{

NumClick(6);

}

privatevoidbtnNum7_Click(objectsender,EventArgse)

{

NumClick(7);

}

privatevoidbtnNum8_Click(objectsender,EventArgse)

{

NumClick(8);

}

privatevoidbtnNum9_Click(objectsender,EventArgse)

{

NumClick(9);

}

//******************************************************************

//******************************************************************

编写小数点按钮【.】的单击事件代码如下:

//******************************************************************

//【.】按钮的单击事件代码

//******************************************************************

privatevoidbtnDot_Click(objectsender,EventArgse)

{

decimalFlag=true;//输入小数点

}

//******************************************************************

//******************************************************************

编写复位按钮【C】的单击事件代码如下:

//******************************************************************

//【C】按钮的单击事件代码

//******************************************************************

privatevoidbtnC_Click(objectsender,EventArgse)

{

num1=0;

num2=0;

txtReadout.Text="0.";

decimalFlag=false;

}

//******************************************************************

//******************************************************************

编写【+】、【-】、【*】、【/】按钮的单击事件代码如下:

//******************************************************************

//【+】、【-】、【*】、【/】按钮的单击事件代码

//******************************************************************

privatevoidbtnAdd_Click(objectsender,EventArgse)

{

myOperator="add";

num1=double.Parse(txtReadout.Text);

txtReadout.Text="0.";

decimalFlag=false;

}

privatevoidbtnSub_Click(objectsender,EventArgse)

{

myOperator="Sub";

num1=double.Parse(txtReadout.Text);

txtReadout.Text="0.";

decimalFlag=false;

}

privatevoidbtnMul_Click(objectsender,EventArgse)

{

myOperator="Mul";

num1=double.Parse(txtReadout.Text);

txtReadout.Text="0.";

decimalFlag=false;

}

privatevoidbtnDiv_Click(objectsender,EventArgse)

{

myOperator="Div";

num1=double.Parse(txtReadout.Text);

txtReadout.Text="0.";

decimalFlag=false;

}

//******************************************************************

//******************************************************************

最后编写【=】按钮的单击事件代码如下:

//******************************************************************

//【=】按钮的单击事件代码

//******************************************************************

privatevoidbtnAmount_Click(objectsender,EventArgse)

{

num2=double.Parse(txtReadout.Text);

switch(myOperator)

{

case"add":

result=num1+num2;

txtReadout.Text=result.ToString();

break;

case"Sub":

result=num1-num2;

txtReadout.Text=result.ToString();

break;

case"Mul":

result=num1*num2;

txtReadout.Text=result.ToString();

break;

case"Div":

if(num2==0)

{

txtReadout.Text="除数不能为“0”!

";

}

else

{

result=num1/num2;

txtReadout.Text=result.ToString();

}

break;

}

}

//******************************************************************

//******************************************************************

2.4运行结果

运行程序,计算加法“23+1.8”,结果如图2-4所示。

图2-4加法运算

单击【C】按钮,再计算减法“2.3-18”,结果如图2-5所示。

图2-5减法运算

单击【C】按钮,再计算乘法“2.3×1.8”,结果如图2-6所示。

图2-6乘法运算

单击【C】按钮,再计算除法“23.18÷0”,结果如图2-7所示。

图2-7除数为“0”的除法运算

单击【C】按钮,再计算除法“2.3÷1.8”,结果如图2-8所示。

图2-8除法运算

作业2

一、选择题

1.若要使窗体在运行时,用户不可以使用鼠标托拽窗体边缘的方法来改变窗体的大小,应当将窗体的()属性设为“GrowAndShrink”。

A.MaximizeBoxB.MinimizeBox

C.StartPositionD.AutoSizeMode

2.在VisualC#2005中,用于连接两个字符串的运算符是()。

A.@B.&

C.+D.~

3.确定文本框控件中文本对齐方式的属性是()。

A.TextAlignB.Text

C.ReadOnlyD.Anchor

4.Substring()用于()。

A.清除字串前后所有空格

B.截取字符串的一部分

C.获取字符串的长度

D.将字符串中的子字符串替换成另外一个字符串

二、填空题

1.用于确定窗体第一次出现时的位置的属性是。

2.用于确定窗体标题栏的右上角的最小化按钮是否可用的属性是。

三、问答题

1.解释代码:

//******************************************************************

txtReadout.Text=txtReadout.Text.Substring

0,txtReadout.Text.Length-1)+myNumber+".";

//******************************************************************

2.解释代码:

//******************************************************************

txtReadout.TextAlign=HorizontalAlignment.Right;

//******************************************************************

四、上机操作题

1.完善本章介绍的计算器程序,实现sqrt、1/x、%运算。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1