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. FreeBSD pkg安装软件时出现创建用户失败解决

    问题示例:[1/1] Installing package...===> Creating groups.Creating group 'package' with gid '000'.===& ...

  2. 选择 FreeBSD 而不是 Linux 的技术性原因2

    ZFSZFS 文件系统是 FreeBSD 上的一等公民.这不仅意味着可以在 ZFS 上安装根目录,安装程序也支持这一点,而且还意味着很多基础系统工具都已经紧密地集成或构建了对 ZFS 的支持.在 Fr ...

  3. 最简单的JVM内存结构图

    JVM内存结构图 大家好,好几天没有更新了,今天的内容有点多,我们详细介绍下JVM内部结构图,还是和之前一样,案例先行,方便大家理解记忆. /** * @author :jiaolian * @dat ...

  4. elf.h

    1 /* This file defines standard ELF types, structures, and macros. 2 Copyright (C) 1995-2019 Free So ...

  5. pwnable.kr第三题bof

    Running at : nc pwnable.kr 9000 IDA查看 1 unsigned int __cdecl func(int a1) 2 { 3 char s; // [esp+1Ch] ...

  6. 微信小程序 | flex布局属性

    flex-direction 主轴方向 row: 横向 row-reverse: 横向倒序 column: 纵向 column-reverse: 纵向倒序; flex-wrap 元素排列换行 nowr ...

  7. 使用 Kubernetes 扩展专用游戏服务器

    系列 探索使用 Kubernetes 扩展专用游戏服务器:第 1 部分-容器化和部署 探索使用 Kubernetes 扩展专用游戏服务器:第 2 部分-管理 CPU 和内存 探索使用 Kubernet ...

  8. 博文推荐|多图详解 Apache Pulsar 消息存储模型

    关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储分离架构设计,支 ...

  9. [Kong 与 Konga 与 Postgres数据库] 之 Kuberneres 部署

    1.Kong的概述 Kong是一个clould-native.快速的.可扩展的.分布式的微服务抽象层(也称为API网关.API中间件或在某些情况下称为服务网格)框架.Kong作为开源项目在2015年推 ...

  10. Leedcode算法专题训练(双指针)

    算法思想 双指针 167. 两数之和 II - 输入有序数组 双指针的典型用法 如果两个指针指向元素的和 sum == target,那么得到要求的结果: 如果 sum > target,移动较 ...