混合运算(控制台)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication2
{
    class Program
    {
        static int sun;
        private static int x, y, z;
        private static string  f;
        private static string  h;
        static void Main(string[] args)
        {
            Console.Write("请输入随机数的范围(9-10):");
            string azzz = Console.ReadLine();
            string regex = @"(\d+)\D+(\d+)";
            Match mstr = Regex.Match(azzz, regex);
            int s1 = int.Parse(mstr.Groups[1].Value);
            int s2 = int.Parse(mstr.Groups[2].Value);
            random(s1,s2);
            Console.Write("请输入答案:");
            int l = int.Parse(Console.ReadLine());
            rightanswer(f, h, x, y, z);
            if (l == sun)
            {
                Console.WriteLine("回答正确!");
            }
            else
            {
                Console.WriteLine("回答错误!");
            }
            Console.Read();
        }
        private static void random(int a,int b)
        {
            Random si = new Random();
            x = si.Next(a, b);
            y = si.Next(a, x);
            z = si.Next(a, y);
            string[] operators = new string[] { "+", "-", "*", "/" };
             f = operators[new Random().Next(0, 4)];
             h = operators[new Random().Next(0, 4)];
            string z1 = "=";
            string xfyhz = x + f + y + h + z + z1;
            Console.WriteLine(xfyhz);

        }
        private static int rightanswer(string a1, string a2, int c, int d, int e)
        {
            string a12 = a1 + a2;
            switch (a12)
            {
                case "++":
                    sun = c + d + e;
                    break;
                case "+-":
                    sun = c + d - e;
                    break;
                case "-+":
                    sun = c - d + e;
                    break;
                case "--":
                    sun = c - d - e;
                    break;
                case "-*":
                    sun = c - d * e;
                    break;
                case "+*":
                    sun = c + d + e;
                    break;
                case "*/":
                    sun = c * d / e;
                    break;
                case "**":
                    sun = c * d * e;
                    break;
                case "*-":
                    sun = c + d - e;
                    break;
                case "*+":
                    sun = c * d + e;
                    break;
                case "/*":
                    sun = c / d * e;
                    break;
                case "/-":
                    sun = c / d - e;
                    break;
                case "/+":
                    sun = c / d + e;
                    break;
                case "//":
                    sun = c / d / e;
                    break;
                case "-/":
                    sun = c - d / e;
                    break;
                case "+/":
                    sun = c + d / e;
                    break;
            }

            return sun;

        }
    }
}

总结:
改了很长时间,真是一点细微的细节都能决定程序的运行是否成功!写代码应该仔细,仔细,再仔细!

时间: 2025-01-03 16:08:03

混合运算(控制台)的相关文章

软件工程学习之小学四则混合运算出题软件 Version 1.00 设计思路及感想

对于小学四则混合运算出题软件的设计,通过分析设计要求,我觉得为了这个软件在今后便于功能上的扩充,可以利用上学期所学习的<编译原理>一课中的LL1语法分析及制导翻译的算法来实现.这样做的好处有以下几点: 1. 由于LL1制导翻译是一项成熟且可靠的技术,并且其递归下降算法易于改编为算式生成算法: 2. 我们有系统的方法可以获得较复杂表达式的LL1文法,则可以方便地生成形式丰富的算式: 3.由于四则混合运算中需要考虑运算优先级的问题,那么采用LL1分析器可以很方便的实现计算表达式的功能: 4.当用户

基于MFC的含四则混合运算的计算器

今天无意间发现win7系统的标准型计算器连最基本的四则混合运算都没做,刚刚好公司给了我一个工作任务,就是用MFC实现一个含四则混合运算的计算器. 我在网上查询资料,发现大部分只是实现了基本的加减乘除运算,而含四则混合运算的也没有能够说得清楚明白.于是我搜索四则混合运算算法,发现要实现四则混合运算,就要用到逆波兰算法,而使用逆波兰算法,就要先把算术式从中缀表达式转换为后缀表达式. 所谓中缀表达式,就是我们平常的算术式,例如:1+2-3*4/5. 而后缀表达式,就是将运算符写在操作数之后,上面算术式

JAVA实现简单四则混合运算

JAVA实现简单四则混合运算,说明:该计算器支持实则混合运算,如 2*(3+1 )/ 4-3 *9+ 8/ 3*4- 5,则输出:-19.333332 需要说明的事括号必须是英文的.源码如下仅供学习: 运行后直接在Console里面敲然后回车即可 [1].[代码] [Java]代码 跳至 [1] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

C语言写的秒速计算四则混合运算项目

开发语言:C语言 开发工具:Visual Studio 2017 整理时间:2017年8月2日 源代码:500行: 开发方式:C语言多文件模式开发 实现功能:在文件中写入四则混合运算表达式(无论有多长...),按运行即可得出结果. 四则混合运算表达式形如: (19+67)*33-45/5+17*52+39/3+.... 意义:在实际快速计算的同时,对学习也有如下意义:对堆栈的学习应用,多多文件的学习巩固 项目演示截图: 其他C语言项目参考:

第四次作业 结对编程 (四则混合运算)

一 需求分析 本次我们做的程序是数学的四则混合运算,并且增加了部分人性化的功能,接下来,我们谈谈这个程序的相关需求,此程序是一个1—10的四则混合运算,那么可以想到主要用于小学生,(ps 个人想法,不排除其他高年级的使用,因为用户可以输入任意的随机数范围),此外,本程序还可能会出现在家庭.教育机构和部分教学网站上面,因为他们可能会给学生出一些简单的数学题目,可以自由设置测试时间,题目数量等内容,而这一程序正好解决了这一个问题,我想,产品的需求必须首先知道用户需要什么,要以客户为中心.而这个产品正

三则混合运算下的取模

取模的一个简单性质:加法,减法,乘法,以及三则的混合运算在过程中取模与算出最终结果取模结果一样 这个性质使一些超出long long 的数据便于被记录存储并运算: 首先用string s ; cin >> s;来写入数据,读成字符串之后虽然进行了记录,但并不能很方便地进行运算与使用, 这时使用for()循环,一点点读取字符串,并对每一步的结果都进行取模,则可 顺利将很大的数据转化为一个可以用int 或 long long 存储的数据 如下题代码(红点标记的两行)就是利用了过程与结果取模一致这个

MathExamV2.0四则混合运算计算题生成器

MathExamV2.0四则混合运算计算题生成器----211606360 丁培晖 211606343 杨宇潇 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 ? Estimate ? 估计这个任务需要多少时间 60 100 Development 开发 ? Analysis ? 需求分析 (包括学习新技术) 360 440 ? Design Spec ? 生成设计文档 20 20 ? D

加/减/乘/除四则混合运算(C 语言)

逆波兰表达式(也称为后缀表达式) C 语言简单实现,(也称为后缀表达式) 本示例旨在展示逆波兰表达式原理,作简单的混合运算,不作容错处理也不保证结果,若混合运算字符串中有负数等,自行调试解决 列如计算: 20.5+(100-(3+2)*8)/(8-5) - 10 后缀表达式为:20.5 100 3 2 + 8 * - 8 5 - / 10 - + C  语言代码如下: #include <stdio.h> #include <stdlib.h> #include <strin

-=,+=混合运算详解

+=与-=运算符混合计算解析: int x = 3; x += x -= x -= x += x -= x; 详解:算数运算按运算符优先级运算,从右至左计算. 1. x=x-x; 实际为 3 - 3 计算结果为0: 2. x=x+x; 实际为 3 - 0,0是第1步结果,计算结果为3: 3. x=x-x; 实际为 3 - 3,3是第2步结果,计算结果为0: 4. x=x-x; 实际为 3 - 0,0是第3步结果,计算结果为3: 5. x=x+x; 实际为 3 + 3,3是第4步结果,计算结果为6