zoukankan      html  css  js  c++  java
  • 第六次作业

    第六次作业

    MFC的学习

    接触了一下界面的设计MFC,这里安利一下一篇有意思的MFC学习文章(有点类似于教程)为MFC的学习提供了很多帮助。虽然每个控件的属性设计与界面的美化还在学习当中,这次已经做出一个简单生成算式的软件了,底下是核心的代码

    void CMFCApplication1Dlg::OnEnChangeEdit1()
    {
    	// TODO:  如果该控件是 RICHEDIT 控件,它将不
    	// 发送此通知,除非重写 CDialogEx::OnInitDialog()
    	// 函数并调用 CRichEditCtrl().SetEventMask(),
    	// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
    
    	// TODO:  在此添加控件通知处理程序代码
    
    	
    	GetDlgItemText(IDC_EDIT1, cstr1);//这儿就是取该输入框的值,并赋给str;
    	a = _ttoi(cstr1);
    }
    
    
    void CMFCApplication1Dlg::OnBnClickedButton1()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	if (a == sum)
    	{
    		Right++;
    		crstr.Format(_T("%d"), Right);
    		GetDlgItem(IDC_STATICR)->SetWindowTextW(crstr);
    	}                      
    	else                                 //正确错误数量的显示
    	{
    		Wrong++;
    		cwstr.Format(_T("%d"), Wrong);                   
    		GetDlgItem(IDC_STATICW)->SetWindowTextW(cwstr);
    	}
    }
    
    
    void CMFCApplication1Dlg::OnBnClickedButton2()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	cstr2.Format(_T("%f"), sum);
    	AfxMessageBox(cstr2); //正确答案按钮
    }
    

    给出几组测试的图片吧(。・`ω´・)

    顺便一提的是建立MFC设定基于对话框可以省去很多时间来进行繁琐的编码,直接从左侧工具栏拖动所需的按钮即可。之后包括添加事件等继续在编码中实现即可。

    本次作业中栈的应用

    原本是想用string类型可加性这种方法来替代栈的,后来还是老实用了栈(●'◡'●),不过的确是方便了许多。将算式中的符号与数字推入栈中,然后再输出即可实现要求,而且效率也相比之前的方法高。
    这里也给出一下几处主要运用到栈来处理表示式的代码

    while (!s.empty())
    	{
    	    cout << s.top();
    		s.pop();
    	}
    

    以上是主要用于清空栈,输出栈中的表达式。

    s.push(str_num4);
    s.push(sign2);
    s.push(str_num3);
    

    以上的则是通过将表达式的部分推入栈,再将表达式的符号等推入栈中。
    这里说一个在处理栈问题中遇到的有意思的一点,因为设定的是string类型的栈,出现了之前没有遇到过的一种情况:switch在处理string类型会报错。翻阅了一下上学期的书再使用搜索引擎,发现switch表达式内的参数为一个int型的值,所以string无法使用。这里再安利一下 atoi(str.c_str())可以将string类型转换为int类型,这里我也就不再赘述了。

    git链接

    MFC

    本次作业

    本次作业的感想

    每次谈到感想的时候都感觉十分有意思,还是主要想谈谈对界面的看法。这次接触MFC可以说是对编程全新的的一种探索,与原来的控制台编程有十分大的差异,更加注重了人机之间的交互,同时MFC的框架也都帮你封装好了,只要着重考虑程序的逻辑性即可,而不是每次的编程都需要重复的东西,也就更具有灵活性。

    而且考验耐性的一块也正是程序的调试,由于与之前的编码长度完全不是同一数量级的,查阅资料并且敲出代码,一整片的报错(笑容完全消失)再继续修改。充实的端午QWQ

  • 相关阅读:
    .Net 更容易的使用配置文件 SuperConfig
    .Net 5分钟搞定网页实时监控
    记一次sql server 性能调优,查询从20秒至2秒
    [asp.net mvc 奇淫巧技] 05
    [asp.net mvc 奇淫巧技] 04
    [asp.net mvc 奇淫巧技] 03
    [asp.net mvc 奇淫巧技] 02
    ECharts 实现人民的名义关系图谱 代码开源
    C# 快速高效率复制对象另一种方式 表达式树
    Asp.net SignalR 应用并实现群聊功能 开源代码
  • 原文地址:https://www.cnblogs.com/tomvii/p/6925957.html
Copyright © 2011-2022 走看看