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. 进阶宝典一|SqlServer数据库自动备份设置

    很多人都没机会接触到数据库备份,经常操作的要么是数据库管理员,要么是项目负责人.那是不是说数据库备份就不用学了? 不,其实作为开发人员应该要了解数据备份,数据备份的手段有很多:软件备份.脚本备份.其他 ...

  2. Pyqt5学习笔记(一)

    Python已有的GUI框架: Tkinter(python内嵌的GUI环境,使用TCL实现,易学易用,方便简单创GUI自带无需安装,适用于Unix.Windows和Mac系统组,在Tk8.0的后续版 ...

  3. unittest系列(一)unittest简介和示例

    unittest - 单元测试框架 单元测试框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的风格.其支持测试自动化,配置共享和关机代码测试.支持将测试样例聚合到测试集中,并将测 ...

  4. Flutter 改善套娃地狱问题(仿喜马拉雅PC页面举例)

    前言 这篇文章是我一直以来很想写的一篇文章,终于下定决心动笔了. 写Flutter的小伙伴可能都感受到了:掘金的一些热门的Flutter文章下,知乎的一些Flutter的话题下或者一些论坛里面,喷Fl ...

  5. 常用开发库 - MapStruct工具库详解

    常用开发库 - MapStruct工具库详解 MapStruct是一款非常实用Java工具,主要用于解决对象之间的拷贝问题,比如PO/DTO/VO/QueryParam之间的转换问题.区别于BeanU ...

  6. 《逆向工程核心原理》Windows消息钩取

    DLL注入--使用SetWindowsHookEx函数实现消息钩取 MSDN: SetWindowsHookEx Function The SetWindowsHookEx function inst ...

  7. windows与远程linux服务器进行文件传输

    在学习pwn时找到了http://pwnable.kr这个网站,很多题目通过ssh连接, ssh otp@pwnable.kr -p2222 (pw:guest) 连接脚本: pwn_ssh=ssh( ...

  8. 手摸手教你阅读和调试大型开源项目 ZooKeeper

    本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费开源.有趣.入门级的 ZooKeeper 教程,面向有编程基础的新手. 项 ...

  9. [高精度]P1096 Hanoi 双塔问题

    Hanoi 双塔问题 题目描述 给定A.B.C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形). 现 ...

  10. --系统编程-网络-tcp客户端服务器编程模型、socket、htons、inet_ntop等各API详解、使用telnet测试基本服务器功能

    PART1 基础知识 1. 字节序 网络字节序是大端字节序(低地址存放更高位的字节), 所以,对于字节序为小端的机器需要收发网络数据的场景,要对这些数据进行字节序转换. 字节序转换函数,常用的有四个: ...