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. Java 获取小程序openid(基于SpringBoot)

    Java 获取小程序openid(基于SpringBoot) 官方文档 wx.login 1.引入Request封装依赖 <!--Request依赖--> <dependency&g ...

  2. NumPy 将停止支持 Python 2

    NumPy 项目宣布将停止支持 Python 2.Python 核心团队已经决定在 2020 年停止支持 Python 2,而 NumPy 项目自 2010 年以来同时支持 Python 2 和 Py ...

  3. FreeBSD WIFI 配置详细介绍

    首先运行ifconfig,看看能不能找到你的网卡,如果能,那么你可以走了﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉运行sysctl net.wlan.devices,他可以告诉你,找到的无线网卡编辑/b ...

  4. IntelliJ IDEA报错总结

    不能运行java程序 可能是没有选择运行环境点击 edit Configurations在Use classpath of module 中选择本项目的运行环境 Run报错: Error:java: ...

  5. MySQL语法基础

    一.通用语法 1.MySQL数据库的SQL语句不区分大小写 2.可以用/**/完成注释 3.常用数据类型 类型 描述 int 整型 double 浮点型 varchar 字符串型 date 日期类型, ...

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

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

  7. [Fundamental of Power Electronics]-PART II-8. 变换器传递函数-8.2 变换器传递函数分析

    8.2 变换器传递函数分析 接下来,让我们推导基本变换器传递函数中的极点,零点和渐近线增益的解析表达式. 8.2.1 示例:Buck-boost变换器的传递函数 Buck-boost变换器的小信号等效 ...

  8. 201873030133-杨子豪 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 班级博客链接 这个作业要求链接 作业要求链接 我的课程学习目标 了解软件工程的作用与意义,将软件工程与过去所学相结合 这个作业在哪些方面帮助我实现学习目标 体验了结对式的 ...

  9. 【深度学习】PyTorch CUDA环境配置及安装

    Pytorch版本介绍 torch:1.6 CUDA:10.2 cuDNN:8.1.0 安装 NVIDIA 显卡驱动程序 一般 电脑出厂/装完系统 会自动安装显卡驱动 如果有 可直接进行下一步 下载链 ...

  10. 【笔记】《Redis设计与实现》chapter8 对象

    8.1 对象的类型与编码 Redis中的每个对象都由一个redisObject结构表示,该结构中和保存数据有关的三个属性分别是type属性.encoding属性和ptr属性 typedef struc ...