VC++ 入门难,个人感觉确实有点,但精通更难。不过话说回来,一旦你精通了那就是海阔天空了。
这里作为刚学VC++的我把刚写完的类似Window的计算器拿出来晒晒,以帮助初学者减少点弯路...
在这里我先列出初学普遍认为的难点列出来
1、数字的录入
2、小数点的处理
3、加减乘除的结果
4、结果的算法
5、记忆的功能
好,下面我一一叙述
第一点和第二点 数字的录入和小数点的判断,我将其写成了一个函数,代码如下:
//校验文本框的数据合法性
void CCounterDlg::SetEditContent(CString num)
{
//文本框最大内容数不超过40
m_edt_content.GetWindowText(m_tmp_content);
if(!m_isMark && m_tmp_content=="0." && m_tmp_content.GetLength()<=MAX_LENGTH)
{
if(m_isDot)
m_edt_content.SetWindowText(m_tmp_content+num);
else
m_edt_content.SetWindowText(num+'.');
}
else if(!m_isMark && m_tmp_content.GetLength()<=MAX_LENGTH)
{
if(m_isDot)
{
m_edt_content.SetWindowText(m_tmp_content+num);
}
else
{
m_tmp_content.Insert(m_tmp_content.GetLength()-1,num);
m_edt_content.SetWindowText(m_tmp_content);
}
}
else
{
m_edt_content.GetWindowText(m_pre_content);
m_edt_content.SetWindowText(num+'.');
m_isMark=false;
}
}
第三点 加减乘除的结果
只要申明个变量就可以了用来标记符号比如:1:加法;2:减法;3:乘法;4:除法
并且保存当前文本框中的值即可
第四点 结果的算法
这里只要把上次保存的值和现在的值进行相应的运算,关于运算类型是什么?忘记上次申明了变量保存了吗,对,就是那个1,2,3,4,明白了吧 代码如下:
void CCounterDlg::OnResult()
{
CString str;
CString r_str;
double result;
switch (m_mark)
{
case 1://加法
m_edt_content.GetWindowText(str);
result=atof(m_pre_content)+atof(str);
r_str.Format("%f",result);
m_edt_content.SetWindowText(r_str);
break;
case 2://减法
m_edt_content.GetWindowText(str);
result=atof(m_pre_content)-atof(str);
r_str.Format("%f",result);
m_edt_content.SetWindowText(r_str);
break;
case 3://乘法
m_edt_content.GetWindowText(str);
result=atof(m_pre_content) * atof(str);
r_str.Format("%f",result);
m_edt_content.SetWindowText(r_str);
break;
case 4://除法
m_edt_content.GetWindowText(str);
if(atoi(str)==0)
{
m_edt_content.SetWindowText("除数不能为0。");
return;
}
result=atof(m_pre_content) / atof(str);
r_str.Format("%f",result);
m_edt_content.SetWindowText(r_str);
break;
}
}
最后就是记忆功能,这里同样可以申明个变量保存,这样就做到了记忆的功能了
最后,VC++的学习是个很痛苦的过程,不要因为一时碰壁,马上就放弃了,要坚持下去。才会发现他真正强大的功能.当然用惯了 Delphi,VS等IDE的你一时会有点不习惯,坚持下去,相信会进步的....
转载请说明出处:51编程网 www.51bcw.com
整套源码下载:马上下载
如有疑问可以来51编程网论坛提问
效果图如下: