0. qt

qt简介: 百度百科
下载:官网下载
申请个账号就可以免费用了
安装方式可以在百度上找到,建议安装MinGW,其余自选。

1. 建立第一个qt文件

打开Qt Creator,点击文件,点击新建文件或项目后选择

之后按照默认即可。注意保存目录中不要有中文。
这样就成功创建了一个qt工程文件。
点击运行会发现多半运行不了,这是因为没有配置编译器。
工具->选项中Compiler如图选择即可。

这样一个可以用的qt工程就建立好了,下一步就往里面写一(亿)点代码就行啦。

2. 写一个复数类

好吧qt自带复数类,但是作业要求自己写。。。
创建一个C艹类文件(C++ Class)咱们就叫她Complex。得到了一个名叫complex的源文件和头文件。
把实部和虚部值放私有部分,访问函数和重载函数啥的放公有就行。重载函数咱们可以写一些加减乘除乘方开方(不过开方不容易得出好几个结果)对数等等(甚至可以无限拓展,只要知道怎么算这个运算)。主要利用复变函数的知识可以解决。这样一个复数类就基本完成了。

3. 写一个运算类

一个运算类来进行运算。主要目的是看起来更简洁(意味着更容易维护!)。
利用栈来进行运算。扫描到数字进数字栈,扫描到运算符与上一个运算符的优先度比较,大于就入栈,小于就进行一次运算。一次运算是指弹出运算符最后一个,以及弹出相应数目的数字后得出运算一次的结果压入数字栈。最后再把剩余的一直进行运算,直到数字栈只剩下最后的结果。一个运算类就写好了。
之前说复数类运算的可以无限拓展,就是在这里体现。通过设置优先度大小,就可以进行拓展。优先度的设置不困难,分为入栈优先度和栈内优先度。运算符入栈的优先度与栈内运算符的栈内优先度比较。入栈优先度与运算符本身的优先度相同,而栈内优先度比入栈优先度大,括号例外。唉还是如图吧,rop是入栈优先度,lop是栈内优先度,按照这个规律来拓展优先度。。。

4. 制作一个不是黑框框的界面

咱们为什么要用qt,就是为了个界面。告别黑框框吧!进入ui文件,从左边的各种符号中拖选自己需要的按钮文本框等等。比如说,我把按钮和文本框拖进来,把按钮命名为“芜湖”。

但是很不幸,现在摁也不会起飞。

5. 芜湖~起飞!

编写槽函数,可以右键“芜湖”点击“转到槽”自动生成槽函数,也可以在类的private slots下以“on_按键的名字(不是芜湖哦_clicked();"手写槽函数。在源文件里面编写槽函数(也可以在类里面写,但是不好看)。写下

1 void MainWindow::on_fly_clicked()
2 {
3 this->i++;
4 if(i % 2 == 1)
5 this->ui->label->setText("起飞!");
6 else
7 this->ui->label->setText("飞不动了");
8 }

槽函数就是当你摁下这个键后发生的程序,label就是那个文本框,setText就是设置文本框的文字(话说qt里面函数作用都很好猜啊)。

6. 得到一百分

这就比较容易了,把以上几个步骤改写改写,再添加亿点细节,就可以在大作业上得到一个一百分啦。

7. 尾声和补充

怎么生成可以用的exe文件可以参考 这篇文章
这作业还有一项是

这这这功能简直是给小学生算图形题用的,但小学生需要用复数计算器吗!!(但是占分多啊!)
这用几个if也能写出来,但没用虚函数是铁定要扣分的。设立一个纯虚函数,再把每个具体的函数对这个纯虚函数进行继承,再把纯虚函数里面的函数重写,就能满足这个“充分使用虚函数、抽象基类等方法”的任务了。
当然,多做亿点内容有助于老师对你的分数的评判。像是键盘输入啊,有bgm啊,有特效啊,能放视频啊等等都是很好的。至于真正的怎么完成一个软件,用没尝试过的框架还是学C语言的黑框框,用陌生的类还是更为熟悉的结构体,是花好几个月努力钻研,还是临检查赶紧随便做做,这就是个人的选择啦。

如何在C艹大作业上用复数计算器拿下一个100分的更多相关文章

  1. 在Web大作业——红十字会管理系统里出现的一个Error

    工程描述:根据用户在前端网页的操作对后台数据库进行查询或更新. 错误描述:当对网页进行多次操作后,网页会报错:“数据库超过最大连接数”. 错误分析:每次打开某一网页,都会运行一段JAVA代码连接数据库 ...

  2. 图论期末大作业编程题(如何判断一个4连通4正则图为无爪、无K4图)

    博士期间估计这可能是唯一一个要编程的作业,搞了半天弄出这个东西,放这里为以后用到的时候查找方便. 说来也是可笑,读博士期间发现大家对上课也都没什么兴趣,老师也是那么回事,都说博士期间学的课程是要有助于 ...

  3. 与左侧的 圆括号“(”(位于“e:\大二上课程课件、作业和答案\数据结构\chapter4\sqstack\sqstack\mysqstack.h(23)”)匹配之前遇到文件结束

    错误原因是“某对圆括号只打了左括号而没有右括号”,debug方法是:直接根据报错提示:“与左侧的 圆括号“(”(位于“e:\大二上课程课件.作业和答案\数据结构\chapter4\sqstack\sq ...

  4. c++小学期大作业攻略(二)整体思路+主界面

    写在前面:如果我曾经说过要在第一周之内写完大作业,那……肯定是你听错了.不过如果我在写的时候有攻略看的话应该可以轻松地在4~5天内做完,然后觉得写攻略的人是个小天使吧(疯狂暗示).出于给大家自由发挥的 ...

  5. c++小学期大作业攻略(一)环境配置

    UPDATE at 2019/07/20 20:21 更新了Qt连接mysql的方法,但是是自己仿照连VS的方法摸索出来的,简单测试了一下能work但是不保证后期不会出问题.如果你在尝试过程中出现了任 ...

  6. 数据库大作业--由python+flask

    这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是 ...

  7. 程设大作业xjb写——魔方复原

    鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR ...

  8. 大作业NABC分析结果

    大作业NABC分析结果 这次的大作业计划制作一款关于七巧板的游戏软件.关于编写的APP的NABC需求分析: N:需求 ,本款软件主要面向一些在校的大学生,他们在校空闲时间比较多,而且热衷于一些益智类游 ...

  9. Hadoop综合大作业

    Hadoop综合大作业 要求: 用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计. 用Hive对爬虫大作业产生的csv文件进行数据分析 1. 用Hive对爬虫大作业产 ...

随机推荐

  1. 鹅厂二面,nginx回忆录

    前天二面鹅厂,面试官问出了"nginx你了解吗?"这样宽泛直白的句式,我一时抓不到重点,一时语噻. 下班想了一下,平时潜移默化用到不少nginx的能力,但在面试的时候没有吹成对应的 ...

  2. 关于redis缓存数据库的一些思考

    今晚无聊,躺在床上,在刷技术文章时,看见了一篇关于redis缓存的文章 写的蛮好,这也就引起了我对于redis思考! 不如往深了说 引起了我对于追求探索技术本质的一些思考 平时在网上刷到很多关于red ...

  3. concurrentHashMap的put方法详解

    本文主要介绍ConcurrentHashMap的put操作如果有错误的地方欢迎大家指出. 1.ConcurrentHashMap的put操作 ConcurrentHashMap的put操作主要有3种方 ...

  4. Android学习之在Adapter中调用Fragment

    •前言 在学习<第一行代码>,4.5 小节--一个简易版的新闻应用的时候: 在为 RecyclerView 创建适配器的时候: 作者直接在 NewsTitleFragment.java 中 ...

  5. Linux性能优化:内存使用情况分析

    Blog:博客园 个人 目录 什么是内存 Linux内存回收机制 查看Linux内存情况 查看/proc/meminfo 使用free命令查看 Buffer和Cache Swap 内存泄漏和内存溢出 ...

  6. 免费开源的客服系统 Linux 服务器环境安装部署过程

    最近因为项目需要,要找一款在线客服系统集成在 APP 中使用,而且涉及到生意开单,客服系统必须稳定可靠.另外甲方要求,必须支持 Linux 服务器环境. 我们以 Ubuntu 18.04 为例把安装部 ...

  7. Linux(六):系统运维常用命令

    实际的生产环境下,不论是研发还是运维,或多或少的得面对在linux上定位问题这个关卡,这里介绍一下linux环境下一些状态查看常用的命令. 系统资源监控 总体资源占用情况查看 命令:top 像wind ...

  8. SpringBoot项目打包部署

    部署方式 SpringBoot项目可以通过jar包或者war包部署在服务器上,因为jar包更适合前后端分离的项目,所以这里我们使用jar包的方式. 添加maven支持 <!-- 这个插件,可以将 ...

  9. java 用枚举替换多if-else

    1.定义抽象类 package com.polaris.design; /** * @author :shi * @date :Created in 2020/8/18 20:15 * @descri ...

  10. 2.Python进程间的通信之队列(Queue)和生产者消费者模型

    一.队列 1.1 概念介绍-----multiprocess.Queue 创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递. Queue([maxsize] ...