四则运算

四则运算UI组结对作业报告

前提是你 提交于 2020-01-25 01:00:52
Github提交地址: 小组成员:陈兆庭,陈昶金; 一、编程阶段 清明节开始接触和调研关于UI设计的方法。由于两人的各方面知识储备均不足,在各种东西C#、MFC、Qt中进行调查和讨论,最终因为网上说Qt简单易学、方便、上手快等特点,我们最终选择了Qt作为开发工具。 在清明节的最后一天开始安装和学习Qt。由于Qt比较大安装废了不少时间。在看到Qt的拖拽设计功能后一度以为剩下的事很简单了。但是由于网上的资料零碎不成系统,加上我们C++基础很差,在接下来的几天里进展异常缓慢,完全搞不懂Qt的运行套路和编程基本思想,各个控件的各种属性、信号、槽函数的关系也把我们搅成了一团乱麻。这时候听到延期的消息我们就理所当然地弃疗复习信号与系统期中了。。。。 期中考完后我们通过《Qt5开发及实例》和网站上较为系统的教程重新学习Qt,加上老师上课展示的一些东西,我们大概对写程序的思路和功能实现方法有了一些概念。在大致写完界面后,我们进行了使用DLL的尝试。从13号晚到14号晚,整整一天的时间,才通过非常麻烦的显式调用用上了DLL,因为隐式调用会出各种bug。14号晚到15号进行对接。 二、界面细节 第一行为参数设置,包含了生成表达式所需的大部分参数,以及计时器设置。点击开始即可进行一轮答题。若输入参数不符合规范则会弹出错误提示框如下图: 第二行左边显示算式,等号右边输入答案

JAVA蓝桥杯整理——四则运算

放肆的年华 提交于 2020-01-24 15:07:40
JAVA正则表达式 概念 1.定义字符串模式 2.搜索编辑处理文本 3.并不仅限于一种语言,但每种语言都有差别 实例 字符串匹配字符串: hello world =hello world **.**可以匹配任意字符 \s+匹配多个空格: hello\s+world =hello world ^定义了什么时候开始 \d+匹配一个或多个数字 ?设置括号内选项可选 \ .匹配 ". 可以匹配任意数字多项式5+2+1*3 题目 Java中提供了对正则表达式的支持 有的时候恰当的使用正则表达式可以让我们事半功倍! 以下代码用来检验一个四则运算式中的数据项的数目,请填写划线部分缺少的代码。 注意:只填写缺少的代码,不要写任何多余的内容,例如,已有的双引号。 来源: CSDN 作者: 王忠英小朋友! 链接: https://blog.csdn.net/weixin_43955788/article/details/104036462

整数四则运算溢出及溢出后的转换

£可爱£侵袭症+ 提交于 2020-01-22 20:03:25
无符号数溢出 加法运算 对于无符号的短整型(unsigned short int),假设其为1个字节,其取值范围为0 ~ 255(即0 ~ 2^8 - 1),当两个无符号数相加溢出时,舍弃高位保留低位。 如 a = 255 = ( 1111 1111 ) 2 , b = 10 = ( 0000 1010 ) 2 a = 255 = (1111\ 1111)_2,b = 10 = (0000\ 1010)_2 a = 2 5 5 = ( 1 1 1 1 1 1 1 1 ) 2 ​ , b = 1 0 = ( 0 0 0 0 1 0 1 0 ) 2 ​ ,则在不溢出的情况下 a + b = 265 = ( 0000 0001 0000 1001 ) a + b = 265 = (0000\ 0001\ 0000\ 1001) a + b = 2 6 5 = ( 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 ) ,但实际上最终的结果为 a + b = 9 = ( 0000 1001 ) a + b = 9 = (0000\ 1001) a + b = 9 = ( 0 0 0 0 1 0 0 1 ) ,可以看到其结果就是265 - 256的差(265 % 256)。 乘法运算 如 a = 64 = ( 0100 0000 ) 2 , b = 4 = ( 0000 0100

分数的四则运算与化简输出

我的未来我决定 提交于 2020-01-22 18:05:08
表示分数的结构体 // 分数结构体 struct Fraction{ long long up, down; // 分子和分母,由于分数的乘法和除法可能使分子或分母超过int型表示范围,因此一般情况下,分子和分母应当使用long long 型来存储 }; 分数的化简: 化简规则:( 1)如果分子up为0, 令分母为1      (2)约分,求出分子和分母的最大公约数,然后令分子和分母同时除以这个数      (3)如果分母为负数,令分子up和分母down都变为相反数 // 求最大公约数的函数 long long gcd(long long a, long long b){ return !b ? a : gcd(b, a % b); } // 分数的化简 Fraction reduction(Fraction result){ // 如果分子up为0, 令分母为1 if (result.up == 0){ result.down = 1; } else{ // 约分,求出分子和分母的最大公约数,然后令分子和分母同时除以这个数 long long d = gcd(abs(result.up), abs(result.down)); result.up /= d; result.down /= d; } // 如果分母为负数,令分子up和分母down都变为相反数 if (result

1034 有理数四则运算 (20point(s))

馋奶兔 提交于 2020-01-22 11:25:26
本题要求编写程序,计算 2 个有理数的和、差、积、商。 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为 0。 输出格式: 分别在 4 行中按照 有理数1 运算符 有理数2 = 结果 的格式顺序输出 2 个有理数的和、差、积、商。注意输出的每个有理数必须是该有理数的最简形式 k a/b ,其中 k 是整数部分, a/b 是最简分数部分;若为负数,则须加括号;若除法分母为 0,则输出 Inf 。题目保证正确的输出中没有超过整型范围的整数。 输入样例 1: 2/3 -4/2 输出样例 1: 2/3 + (-2) = (-1 1/3) 2/3 - (-2) = 2 2/3 2/3 * (-2) = (-1 1/3) 2/3 / (-2) = (-1/3) 输入样例 2: 5/3 0/6 输出样例 2: 1 2/3 + 0 = 1 2/3 1 2/3 - 0 = 1 2/3 1 2/3 * 0 = 0 1 2/3 / 0 = Inf #include <stdio.h> #include <iostream> using namespace std; //求最大公约数 long getnum(long a, long b) { long r = a % b; while(r != 0)

7-32 复数四则运算

假装没事ソ 提交于 2020-01-21 00:56:31
7-32 复数四则运算 (15分) 文章目录 7-32 复数四则运算 (15分) 题目描述: 输入格式: 输出格式: 输入与输出样例: 思路分析: 代码: 测试样例点: 题目描述: 本题要求编写程序,计算2个复数的和、差、积、商。 输入格式: 输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。 输出格式: 分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。 输入与输出样例: 思路分析: 这道题不怎么难,只考输入格式与输出格式,这道题只是麻烦,1:你要考虑当一个浮点数小于0.05,大于-0.05,将会当成0来处理。2:这道题可以当虚数为0的时候,排除虚数,只输出实数就行了。3:这道题考虑四则运算去分情况考虑就行了。 代码: # include <stdio.h> double lemon ( double a , double b ) { if ( b < 0 ) //考虑负数的问题 { printf ( "(%.1lf%.1lfi)" , a , b ) ; } else printf ( "(%.1lf+%.1lfi)" , a , b ) ; }

Java语言学习总结 基础篇 运算符方法语法结构

▼魔方 西西 提交于 2020-01-18 02:12:32
运算符方法语法结构 运算符 运算符主要有+ - * / 四则运算符,含义与数学中的相同。常量与常量,变量与变量,变量与常量之间均可以进行四则运算。特别注意整型除法运算,运算结果取整。比如10/3=3. 不会等3.333333… 要使结果为3.33333… 需让分子分母至少一项为float 或double型。即10.00/3=3.3333 代码实例如下: public class Demo040perator { public static void main ( String [ ] args ) { //两个常量之间可以进行数学运算 System . out . println ( 20 + 30 ) ; //输出结果为50 //两个变量之间也可以进行数学运算 int a = 20 ; int b = 30 ; System . out . println ( a - b ) ; // 输出结果为-10 // 变量和常量之间可以混合使 用 System . out . println ( a * 10 ) ; // 200 int x = 10 ; int y = 3 ; int result1 = x / y ; System . out . println ( result1 ) ; // 输出结果为3而不是3.3333... int z = 10.0 ; System .

第五篇——C++实现四则运算

自闭症网瘾萝莉.ら 提交于 2020-01-17 06:31:37
写一个能自动生成小学四则运算题目的命令行 “软件”, 分别满足下面的各种需求。下面这些需求都可以用命令行参数的形式来指定: a) 除了整数以外,还要支持真分数的四则运算。 (例如: 1/6 + 1/8 = 7/24) b) 让程序能接受用户输入答案,并判定对错。 最后给出总共 对/错 的数量。 c) 逐步扩展功能和可以支持的表达式类型,最后希望能支持下面类型的题目 (最多 10 个运算符,括号的数量不限制): 25 - 3 * 4 - 2 / 2 + 89 = ? 1/2 + 1/3 - 1/4 = ? (5 - 4 ) * (3 +28) =?d) 一次可以批量出 100 道以上的题目,保存在文本文件中, 并且保证题目不能重复,(1+2) 和 (2+1) 是重复的题目。 怎么保证题目不重复呢,请看详细题目要求。 #include<iostream.h> #include<stdlib.h> #include<conio.h> void DealFenshu(int m, int a[][2]) { for(int p=0;p<m;p++) { int i=(int)rand()%10; int j=(int)rand()%10; while(j==0||i>=j) { i=(int)rand()%10; j=(int)rand()%10; } int x=(int)rand()

软件工程--四则运算表达式(6)

本小妞迷上赌 提交于 2020-01-16 18:42:23
四则运算题目生成器 这篇文章详细讲述了需求分析当中功能需求第四阶段的实现过程和内容,对需求分析阶段感兴趣,请移步 软件工程–四则运算表达式 对于网页之前的分析过程,请移步 功能需求和设计阶段 网页的后端实现过程,请移步 软件工程–四则运算表达式(4) 网页的前端实现过程,请移步 软件工程–四则运算表达式(5) 做题和历史记录的设计过程 做题部分主要承担着以下功能 1.接受登录用户的做题请求 2.回传给用户一个表单用于填写做题信息 3.接收用户的表单,从数据库中取出相应的数据并且新建一个History记录保存用户的做题信息 4.给用户回传一个界面用于做题 5.接收用户做题信息并且对用户做题情况进行记录 6.返回用户答题成绩界面 7.可以让用户看到自己做错的题的信息 可以看到做题部分的功能是相对比较复杂的,而且里面需要进行的逻辑判断很多才能保证做题信息的严密性与安全性,尤其是对于如何保存用户的做题信息上,用户可能会多次提交同一个表单,多次提交刷分,要防止此类攻击的发生 而且在编写过程中也遇到了一些我目前难以解决的情况,比如如何实现表单长度的动态加载,以及对于其中的每一项进行赋值,网页的左右分栏问题等,接下来将介绍我是如何想尽各种办法绕开这些问题实现需求功能的 用例图 类图 编码过程 视图部分 出题部分 #question/views.py def generator ( request

软件工程:四则运算题目生成器的生成部分

末鹿安然 提交于 2020-01-15 23:09:02
四则运算表达式生成 软件工程大作业的结对项目–四则运算题目生成器 讲述的是前两个阶段的概要设计、详细设计、编码的内容。 整个项目的文章的链接 类的选择 有三个类,分别是存储运算符和运算数节点的二叉树类 BiTree,生成四则运算表达式的类 QuestGenerator和计算表达式结果的类solvable。QuestGenerator中的方法调用Bitree中的方法,将运算符和运算数保存在树节点中,然后生成表达式,接着调用solvable中的方法计算答案 顺序图 精化类的设计 BiTree类 属性部分 有lchild rchild this_level value这四个数据结构 方法部分 分别是getOperOrder获得当前符号优先级 set_lchild设置左子树 set_rchild设置右子树 to_string将表达式转换为一字符串 QuestGenerator类 属性部分 有output_list和deduplicate_set这两个数据结构 方法部分 generate方法构建一棵二叉树 其中调用了solvable类的方法solve求解表达式 deduplicate方法给表达式判重 format方法交换左右子树 change_pow方法转换乘方符号 round_up方法对结果进行四舍五入 solvable类 属性部分,是prior这个数据结构 方法部分