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. Codeforces 976C Nested Segments

    题面: 传送门 C. Nested Segments Input file: standard input Output file: standard output Time limit: 2 secon ...

  2. linux软件deb打包及开机管理员自启动

    环境:Ubuntu 18.04/16.04  Qt:5.12.6 一 deb打包 1.建立目录结构 2.目录内容 1) 子目录DC520: Get以上内容步骤: (1)   创建目录DC520(自己软 ...

  3. 写了一个 gorm 乐观锁插件

    前言 最近在用 Go 写业务的时碰到了并发更新数据的场景,由于该业务并发度不高,只是为了防止出现并发时数据异常. 所以自然就想到了乐观锁的解决方案. 实现 乐观锁的实现比较简单,相信大部分有数据库使用 ...

  4. 阿里二面:什么是mmap?

    平时在面试中你肯定会经常碰见的问题就是:RocketMQ为什么快?Kafka为什么快?什么是mmap? 这一类的问题都逃不过的一个点就是零拷贝,虽然还有一些其他的原因,但是今天我们的话题主要就是零拷贝 ...

  5. 6、MyBatis教程之日志实现

    7.日志实现 思考:我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率? 如果一个 数据库相关的操作出现了问题,我们可以根据输出的SQL语句快速排查问题. 对于以 ...

  6. 依赖反转原则DIP 与使用了Repository模式的asp.net core项目结构

    DIP 依赖反转原则 Dependency Inversion Principle 的定义如下: 高级别的模块不应该依赖于低级别的模块, 他们都应该依赖于抽象. 假设Controller依赖于Repo ...

  7. Maven项目中resources配置总结

    目录 背景 第一部分 基本配置介绍 第二部分 具体配置和注意事项 第三部分 读取resources资源 参考文献及资料 背景 通常Maven项目的文件目录结构如下: # Maven项目的标准目录结构 ...

  8. 服务器安装部署-01-MySQL

    1 MySQL 1.1 安装 在root用户权限下 # 创建mysql用户和用户组,同时禁止登陆 shell> groupadd mysql shell> useradd -r -g my ...

  9. 为什么要放弃 JSP?他们终于给出了答案

    前言 以前的项目大多数都是Java程序猿又当爹又当妈,既搞前,又搞后端. 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只负责前端的事情,后端工程师只管后端的事情.正 ...

  10. odoo视图入门学习- tree视图的使用

    上一篇内容:如何快速在odoo中创建自己的菜单 前言 上面的内容我们已经学会了如何去创建odoo的菜单,下面我们要学习的是odoo的基础视图tree视图,我们的目标是实现型号管理的列表页面 创建mod ...