unix程序设计项目回顾以及答辩思路(使用QT做一个科学计算器+数据库存储数据)

使用QT做一个科学计算器+数据库存储数据

这个学期又和虚拟机难解难分,unix程序设计这门课我选择用QT做一个计算器作为课题做程序设计。

需求分析

作为一个计算器,在需求方面没啥好介绍的。毕竟这是一个普遍的工具,但是作为开发者,需要了解他的原理。刚开始我想的很简单,计算器嘛,输入一个数 再输入一个运算符,在输入一个数。然后用对应的规则计算即可。重点就在这个对应的计算规则上。如果你只是简单的1+1, 2-2, 3 * 3, 这样的话的确几行代码就能搞定。但是如果你4+3*2-1呢?这样就会涉及到了运算符优先级的问题。

深入剖析

对于这个问题的解决,上网查询了很多资料,最多的就是堆栈的运用了。优先级低的先入栈后入队而优先级高的反之。多说无益直接上例子。
unix程序设计项目回顾以及答辩思路(使用QT做一个科学计算器+数据库存储数据)
这是我手写的例子,比较一目了然。初始化一个栈,遇到数字直接入队,遇到低级运算符先入栈,后面有优先级高的运算符进入栈中等待后,后面再有低级运算符进入栈发现栈顶为高级运算符。他先等待,让高级运算符先入队中,它再进入栈。
这里指路我参考的博客
链接: 这里!.
这是答辩中老师比较在意的问题也是比较重要的知识点了。

数据库的加入

之前在windows环境下尝试过qt中引入sqlite数据库。这一次在linux环境下我个人觉得反而更加的简单。引入一些头文件,初始化库就可以使用了。
unix程序设计项目回顾以及答辩思路(使用QT做一个科学计算器+数据库存储数据)
能够保存下用户输入的操作。数据库我选用的sqlite3以及可视化工具DBbrowser。具体的安装和配置能百度出不少的安装教程。直接在终端用install命令下载就行,很方便,全程在ubantu里操作完。不需要在windows下好了再拖进去。

qt和css

作为一个以后想要在前端发展的孩子,我惊喜的发现qt和css的联动。qt也提供了css的样式表。可以吧css样式直接写在上面。当然他和在网页上,在小程序上的css又有所差别,虽然大同小异但也是值得研究的地方。用一个按键为例子
unix程序设计项目回顾以及答辩思路(使用QT做一个科学计算器+数据库存储数据)
unix程序设计项目回顾以及答辩思路(使用QT做一个科学计算器+数据库存储数据)
同样的和我们平常写的css样式差不多,属性值:参数。相信在css的帮助下qt的界面能够变得更好看。

学期结束

大三就这样过完了。感觉时间飞快地不真实,去年的这个时候我还没有为自己的前程感到紧张和忧心。现在大三结束了,大学余额严重不足,加上这个学期都呆在家。让焦虑感直线上升,需要学习的东西实在太多,昨天进行了一次面试,前面基础的问题回答的还算流畅,都是我知道的。到了后面包括MVVM等工作上的问题上时,我发觉自己近两个月专注于基础的练习了。之前刷到一道大厂的笔试题让做一个模拟红包的页面。花了一个下午才弄出来。感觉自己做一个较为完整项目的经验还是太少。最直观的就是昨天面试官问的拖放,将页面元素拖进框里,这样一个功能。竟然印象基本没有,扯远了,好好学习!天天向上吧!