C课程设计任务书新.docx
- 文档编号:5808429
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:10
- 大小:57.58KB
C课程设计任务书新.docx
《C课程设计任务书新.docx》由会员分享,可在线阅读,更多相关《C课程设计任务书新.docx(10页珍藏版)》请在冰豆网上搜索。
C课程设计任务书新
C课程设计任务书新
中南大学
本科生课程设计(实践)任务书、设计报告
(C++程序设计)
题目
简单计算器
学生姓名
李珍勤
指导教师
李大扬
学院
资源加工与生物工程学院
专业班级
无机非金属材料1302班
学生学号
计算机基础教学实验中心
06月26日
简单计算器的制作
摘要:
MFC,calculator,加减乘除
关键词:
计算器
1计算器开发设计思想
(1)实验目的:
模仿日常生活中所用的计算器,自行设计一个简单的体系设计:
(2)程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,能进行简单三角运算,运算结果能正确显示,能够清楚数据等。
(3)设计思路:
(4)先在VisualC++6.0中建立一个MFC工程文件,名为calculator.
(5)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框
(6)设计按钮,并修改其相应的ID与Caption.
(7)选择和设置各控件的单击鼠标事件。
(8)为编辑框添加double类型的关联变量m_edit1.
(9)在calculatorDlg.h中添加math.h头文件,然后添加public成员。
(10)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件的响应函数代码。
(11)计算器程序,实现简单的计算功能。
2计算器源代码及系统设计介绍
添加的public成员:
doubletempvalue;//存储中间变量
doubleresult;//存储显示结果的值
intsort;//判断后面是何种运算:
1.加法2.减法3.乘法4.除法
intappend;//判断后面是否添加数字
成员初始化:
CCalculatorDlg:
:
CCalculatorDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CCalculatorDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CCalculatorDlg)
m_edit1=0.0;
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
tempvalue=0;
result=0;
sort=0;
append=0;
}
各控件响应函数代码:
voidCCalculatorDlg:
:
OnButton1()//按钮“1”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+1;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton2()//按钮“2”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+2;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton3()//按钮“3”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+3;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton4()//按钮“4”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+4;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton5()//按钮“5”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+5;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton6()//按钮“6”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+6;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton7()//按钮“7”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+7;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton8()//按钮“8”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+8;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnButton9()//按钮“9”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+9;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnBUTTONzero()//按钮“0”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(append==1)result=0;
result=result*10+0;
m_edit1=result;
append=0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnBUTTONequal()//按钮“=”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
switch(sort)
{
case1:
result=result+tempvalue;break;
case2:
result=tempvalue-result;break;
case3:
result=result*tempvalue;break;
case4:
result=tempvalue/result;break;
}
m_edit1=result;
sort=0;
append=1;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnBUTTONclean()//按钮“C”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
tempvalue=0;
result=0;
m_edit1=0.0;
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnBUTTONplus()//按钮“+”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
sort=1;
tempvalue=result;
m_edit1=0;
append=1;
}
voidCCalculatorDlg:
:
OnBUTTONminus()//按钮“-”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
sort=2;
tempvalue=result;
m_edit1=0;
append=1;
}
voidCCalculatorDlg:
:
OnBUTTONmulti()//按钮“*”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
sort=3;
tempvalue=result;
m_edit1=0;
append=1;
}
voidCCalculatorDlg:
:
OnBUTTONdiv()//按钮“/”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
sort=4;
tempvalue=result;
m_edit1=0;
append=1;
}
voidCCalculatorDlg:
:
OnRadio1()//按钮“Sin”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_edit1=sin(result);
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnRadio2()//按钮“Cos”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_edit1=cos(result);
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnRadio3()//按钮“Tan”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_edit1=tan(result);
UpdateData(FALSE);
}
voidCCalculatorDlg:
:
OnRadio4()//按钮“Log10”
{
//TODO:
Addyourcontrolnotificationhandlercodehere
m_edit1=log10(result);
UpdateData(FALSE);
}
简单计算器:
运行测试:
3计算器开发体会
A.在做上面那个简单计算器的时候,遇到的问题很少,而且差不多都是些很小的问题,很容易就解决了
B.刚开始不知道如何设置响应事件,如何把这些小程序连接形成一个系统。
C.在运行的调试的时候,发现计算器的减法与除法的功能出错,原来是减数与被减数、除数与被除数的位置互换了;还有,连续点击“=”时显示结果会不停变动,解决方法是:
加“sort=0;”语句;另外,在点击“=”后,再点击数字键时,会发现点击的相应数字会显示在原显示结果的后面,解决方法是:
加“append=1;”语句
D.后来,在做后面的测试与思考时,遇到的问题就很多了。
其中最棘手的就是Backspace键和连续四则运算的实现,其次就是SQRT,tan,tanh,AC等的理解和响应代码的编写,再者就是正负号和小数点的处理,其工程量非常大。
E.可是还有很多细节问题解决不了,例如小数后面的零因为是double型的而不是字符型,因此显示不出来,还有连续的四则运算实现不了,不过连续的单一运算还是能够运行的。
F.经过此次试验,我初次认识了MFC,了解到其功能的强大,及其实用性之强,只不过我还只是接触到其冰山一角而已,要想真正地掌握MFC还有很长的路要走,还要投入更多精力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 任务书