zoukankan      html  css  js  c++  java
  • 课程作业六

    第六次课程作业

    QT 学习

    Hello World学习
    #include <qapplication.h>
    #include <qpushbutton.h>
    
    
    int main( int argc, char **argv )
    {
        QApplication a( argc, argv );
    
        QPushButton hello( "Hello world!", 0 );
        hello.resize( 100, 30 );
    
        a.setMainWidget( &hello );
        hello.show();
        return a.exec();
    }
    
    #include <qapplication.h>
    
    

    包含了QApplication类的定义,管理了应用程序的广泛资源,如默认字体和光标.

    #include <qpushbutton.h>
     QPushButton hello( "Hello world!", 0 );
    

    QPushButton.h包含QPushButton类的定义,用于创建图形用户界面按钮.
    QPushButton hello( "Hello world!", 0 )创建了一个 hello按钮,其显示hello world字样。

    hello.resize( 100, 30 );
    
    

    此句用于设置hello按钮宽高。

    hello.show();
    
    

    把hello按钮变为可见。


    QT一直安装失败所以还未能实践操作。


    尝试用栈实现四则运算

    将中缀表达式转换为逆波兰表达式算法:
    • 构造一个运算符栈,运算符在栈内遵循越往栈顶优先级越高的原则
    • 读入中序表达式,从左至右扫描算术表达式,判断字符如果是数字则分析到该字符串结束,并将其直接输出。如果是运算符,则需比较优先级关系:
    • 将该字符与栈顶运算符优先级比较,如果该字符优先级高于栈顶运算符,则将该运算符入栈。否则将栈顶元素弹出,直到栈顶运算符低于当前运算符,将当前字符入栈。
    • 重复步骤2直到所有字符得到正确处理即将中序算式转换成逆波兰表达式.
    - 编码实现
    定义字符串优先级
    int priority(char ch) 
     {
     	int i;
     	switch(ch)
     	{
     		case '(':i=;break;
     		case '+':
     		case '-':i=2;break;
     		case '*':
     		case '/':i=3;break;
     		case ')':i=4;break;
     	}
     	return i;
     }
    
    转换成逆波兰表达式
    void tonibolan(char *ch,char retch[100])
     {
     	stack<char> st2;
     	int i=0;
     	while(*ch!='')
     	{
     		if(*ch>='0'&&*ch<='9')
     		{
     			retch[i++]=*ch;
     		}
     		else if(*ch=='(')
     		{
     			st2.push(*ch);
     		}
     		else if(*ch==')')
     		{
     			while(st2.top()!='(')
     			{
     				retch[i++]=st2.top();
     				st2.pop();
     			}
     			if(st2.top()=='(')
     			{
     				st2.pop();
     			}
     		}
     		else if(st2.empty()||priority(*ch)>priority(st2.top()))
     		{
     			st2.push(*ch);
     		}
     		else
     		{
     			while(priority(*ch)<=priority(st2.top()))
     			{
     				retch[i++]=st2.top();
     				st2.pop();
     				if(st2.empty())
     				{
     					break;
     				}
     			}
     			st2.push(*ch);
     		}
     		ch++;
    	 }
    	 while(!st2.empty())
    	 {
    	 	retch[i++]=st2.top();
    	 	st2.pop();
    	 }
     }
    
  • 相关阅读:
    一览js模块化:从CommonJS到ES6
    JavaScript自定义事件
    BTrace:线上问题排查工具
    【转载】JVM 学习——垃圾收集器与内存分配策略
    简单GC具体操作参数查看
    CMS垃圾回收机制
    Lombok 在继承类上面的注意
    Intellij IDEA 修改默认配置
    缓存算法(FIFO 、LRU、LFU三种算法的区别)
    MySQL 变量类型
  • 原文地址:https://www.cnblogs.com/liao-yp/p/6930920.html
Copyright © 2011-2022 走看看