设计C课程设计简易计算器实验报告.docx

上传人:b****5 文档编号:7633972 上传时间:2023-05-11 格式:DOCX 页数:10 大小:304.82KB
下载 相关 举报
设计C课程设计简易计算器实验报告.docx_第1页
第1页 / 共10页
设计C课程设计简易计算器实验报告.docx_第2页
第2页 / 共10页
设计C课程设计简易计算器实验报告.docx_第3页
第3页 / 共10页
设计C课程设计简易计算器实验报告.docx_第4页
第4页 / 共10页
设计C课程设计简易计算器实验报告.docx_第5页
第5页 / 共10页
设计C课程设计简易计算器实验报告.docx_第6页
第6页 / 共10页
设计C课程设计简易计算器实验报告.docx_第7页
第7页 / 共10页
设计C课程设计简易计算器实验报告.docx_第8页
第8页 / 共10页
设计C课程设计简易计算器实验报告.docx_第9页
第9页 / 共10页
设计C课程设计简易计算器实验报告.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

设计C课程设计简易计算器实验报告.docx

《设计C课程设计简易计算器实验报告.docx》由会员分享,可在线阅读,更多相关《设计C课程设计简易计算器实验报告.docx(10页珍藏版)》请在冰点文库上搜索。

设计C课程设计简易计算器实验报告.docx

设计C课程设计简易计算器实验报告

【关键字】设计

 

《程序设计基础》(C++)课程设计报告

 

计算器

 

姓名:

班级:

学号:

指导教师:

成绩:

完成时间:

完成地点:

 

计算器

1基本功能描述

计算器包含基本的四则运算、开方、倒数、相反数(正负)等运算。

可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算。

同时包含清除功能。

2设计思路

如图1是计算器总流程图,输完第一个操作数后,若点击双目运算符,则把m_edit传递给op1,并传递给变量calculator相对运算符对应的值,输入的第二个操作数传递给op2,点击等号根据calculator的值进行相应运算并输出结果。

若点击的是单目运算符,则直接对其处理得出结果。

若点击清零,则m_edit等于0。

设计思路流程图如下(见下页)。

图1计算器设计思路总流程图

3软件设计

3.1创建步骤

打开MicrosoftVisualC++6.0,选择新建,在弹出框内选择MFCAppWizard[exe]工程,输入工程名Calculator及其所在位置。

将弹出MFCAppWizard-step1对话框,选择基本对话框,点击完成。

MFCAppWizard建立基于对话窗口的程序框架。

3.2界面设计

1、创建控件

在对话框上的合适的位置画出编辑框和下压式按钮。

如图2所示。

图2绘制编辑框

在按钮和编辑框属性对话框中输入控件的ID值和标题属性。

如图3所示。

图3PushButton属性

 

按照上面的操作过程编辑其他按钮和编辑框等对象的属性。

表1各对象属性

对象

ID

标题或说明

编辑框

IDC_EDIT1

结果显示

按钮

IDC_BUTTON0

0

按钮

IDC_BUTTON1

1

按钮

IDC_BUTTON2

2

按钮

IDC_BUTTON3

3

按钮

IDC_BUTTON4

4

按钮

IDC_BUTTON5

5

按钮

IDC_BUTTON6

6

按钮

IDC_BUTTON7

7

按钮

IDC_BUTTON8

8

按钮

IDC_BUTTON9

9

按钮

IDC_BUTTONneg

+/-

按钮

IDC_BUTTONpot

.

按钮

IDC_BUTTONadd

+

按钮

IDC_BUTTONsub

-

按钮

IDC_BUTTONmul

*

按钮

IDC_BUTTONdiv

/

按钮

IDC_BUTTONsqrt

sqrt

按钮

IDC_BUTTONCE

CE

完成后界面如图4所示。

图4计算器界面

2、连接变量和代码

1)给编辑框连接变量。

在编辑框上单击鼠标右键,在弹出菜单中选择ClassWizard菜单项,弹出MFCClassWizard对话框,选择MemberVariables选项卡,如图5所示。

图5MFCClassWizard对话框中的MenberVariable选项卡

单击AddVariables按钮,在弹出的对话框中连接变量m_edit。

变量类型设定为CString型。

如图6所示。

图6m_edit属性设置

2)给“1”按钮连接代码。

在“1”按钮上单击鼠标右键,选择ClassWizard菜单项,在弹出的对话框中选择MessagesMaps选项卡,在Messages列表框中选择BN_CLICKED项,即选择单击按钮事件,如图7所示。

图7“1”按钮链接代码对话框

3.3关键功能的实现

1)操作数的输入

编辑框所关联的变量为m_edit,程序开始时为零。

每点击一个数字键按钮,就把它累加到m_edit里并刷新显示。

2)单目运算符功能的实现

单目运算符中包含要执行运算的函数。

①正负号功能的实现

利用语句m_edit.FindOneOf("-")寻找操作数中是否有符号“-”,若没有符号,则在字符串m_edit前添加“-”。

若有符号,则把字符串型变量m_edit转变为浮点型,进行相反数运算(对数值取负),再转变为字符串型通过传递给m_edit输出。

②开方sqrt功能的实现

利用语句x=sqrt(x),实现功能。

③倒数功能的实现

利用语句x=1/x,实现功能。

3)双目运算符功能的实现

执行双目运算符把m_edit中的操作数值保存到变量op1中,然后把m_edit清零。

再将输入的第二个操作数保存到变量op2中。

根据相应的运算符赋予变量calculator相应值,执行等号运算时,根据calculator值选择对应运算函数,讲运算结果传递给m_edit并输出。

4)小数点

利用语句m_edit.FindOneOf(".")寻找操作数中是否有符号“.”,若有不添加“.”。

若没有判断m_edit.GetLength(),若大于0,添加字符串“.”;若等于0,添加字符串“0.”。

4结论与心得体会

经过测试,得出结论为设计的计算器能够完成功能描述内容中的全部功能。

经过2个星期的课程设计实训,在老师和同学的共同帮助下,顺利完成该课程设计,收获很大。

通过本次实训,我在很多方面得到了很大提升。

首先在理论知识与实际操作能力的结合方面,通过具体应用软件的制作,课本中学习到知识得到具体的应用,对知识的理解更清晰、具体、全面,理论知识的实际应用更加熟练。

对类、函数等概念的理解和应用更加深刻。

编程语言语句的应用更为流利,巩固了各语句的使用方法和技巧。

同时,对编程的过程了解的更加清晰,熟练地掌握了很多课堂知识之外的能力。

在团队协作方面,我意识到了团队协作的重要意义,学到了如何从他人处寻得帮助和与他人分享成果。

从团队合作中我学习到了技术协作与人际交流双方面的能力。

懂得怎样通过团队协作提高效率。

另外,通过本次实训,我充分意识到了当前人才市场现况和自己的不足,对自己的现况有了危机感,并制定了自己的发展计划,使自己确立明确的奋斗目标,为成为合格计算机专业人才而努力。

 

5附录

关键源代码

①数字键程序代码(以“1”为例)

voidCCalculatorDlg:

:

OnButton1()//数字键“1”

{

if(k!

=1)//判断是否已点击运算符按钮

{

m_edit=m_edit+"1";//如果k≠1即没有点击运算符,则直接改变字符串

UpdateData(false);

}

else

{

m_edit="";//如果k=1即点击过运算符,则先清空编辑框

UpdateData(false);

m_edit=m_edit+"1";

UpdateData(false);

k=0;

}

}

②四则运算程序代码(以“+”为例)

floatop1=0,op2=0;

charcalculate;

voidCCalculatorDlg:

:

OnButtonadd()

{

k=1;//是否点击过运算符的条件,与数字键对应

calculate='+';//传度“+”给变量calculator,与等号“=”对应

UpdateData(true);

op1=atof(m_edit);

}

③开方sqrt程序代码

voidCCalculatorDlg:

:

OnBUTTONSqrt()

{

k=1;

UpdateData(true);

op1=atof(m_edit);

if(op1<0)

calculate='w';

else

calculate='s';

}

④小数点程序代码

voidCCalculatorDlg:

:

OnBUTTONpot()

{

UpdateData(true);

inta=0;

for(intb=0;b

{

if(m_edit.FindOneOf(".")>=0)

a=1;

}

if(a==0&&m_edit.GetLength()>0)m_edit=m_edit+".";

if(a==0&&m_edit.GetLength()==0)m_edit=m_edit+"0.";

UpdateData(false);

}

⑤等号“=”程序代码

voidCCalculatorDlg:

:

OnButtonequal()

{

UpdateData(true);

op2=atof(m_edit);

floats;

switch(calculate)

{

case'+':

s=op1+op2;break;//与运算符键相对应的运算函数

case'-':

s=op1-op2;break;

case'*':

s=op1*op2;break;

case'/':

s=op1/op2;break;

case's':

s=sqrt(op1);break;

case'w':

s=0;break;

}

m_edit.Format("%f",s);

UpdateData(false);

}

⑥清除CE程序代码

voidCCalculatorDlg:

:

OnButtonCE()

{

m_edit="";

UpdateData(false);

}

⑦百分号程序代码

voidCCalculatorDlg:

:

OnButtonperc()

{

k=1;

floatx;

UpdateData(true);

x=atof(m_edit);

x=x*100;

m_edit.Format("%f",x);

m_edit=m_edit+"%";

UpdateData(false);

}

⑧正负号(相反数)

voidCCalculatorDlg:

:

OnButtonneg()

{

k=1;

if(m_edit.FindOneOf("-")>=0)

{

floatx;

UpdateData(true);

x=atof(m_edit);

x=-x;

m_edit.Format("%f",x);

UpdateData(false);

}

else

{

UpdateData(true);

m_edit="-"+m_edit;

UpdateData(false);

}

}

⑨倒数1/x程序代码

voidCCalculatorDlg:

:

OnButtonreci()

{

k=1;

floatx;

UpdateData(true);

x=atof(m_edit);

x=1/x;

m_edit.Format("%f",x);

UpdateData(false);

}

 

此文档是由网络收集并进行重新排版整理.word可编辑版本!

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2