Exemple #1
0
        public int[] Arithmetic(int[] b1, int[] b2, char s, ref string problem)
        {
            int[] result = new int[2];
            switch (s)
            {
            case '+':
                s1 = b1[0] * b2[1] + b2[0] * b1[1];
                s2 = b1[1] * b2[1];
                calculation c1 = new calculation();
                s3        = c1.GetCommon(s1, s2);
                result[0] = s1 / s3;
                result[1] = s2 / s3;
                break;

            case '-':
                s1 = b1[0] * b2[1] - b2[0] * b1[1];
                s2 = b1[1] * b2[1];

                calculation c2 = new calculation();
                s3        = c2.GetCommon(s1, s2);
                result[0] = s1 / s3;
                result[1] = s2 / s3;
                //运算过程中出现负数,则主函数进行判断,舍去后重新生成计算式
                if (s1 < 0)
                {
                    problem = "重新生成";
                }
                break;

            case '*':
                s1 = b1[0] * b2[0];
                s2 = b1[1] * b2[1];
                calculation c3 = new calculation();
                s3        = c3.GetCommon(s1, s2);
                result[0] = s1 / s3;
                result[1] = s2 / s3;
                break;

            case '/':
                s1 = b1[0] * b2[1];
                s2 = b1[1] * b2[0];
                calculation c4 = new calculation();
                s3        = c4.GetCommon(s1, s2);
                result[0] = s1 / s3;
                result[1] = s2 / s3;
                break;
            }
            return(result);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            int r = 10;
            int n = 1;

            int[] result = new int[2];
            Console.WriteLine("请输入生成题目的数量");
            string nn = Console.ReadLine();

            while (int.TryParse(nn, out n) == false)
            {
                Console.WriteLine("输入有误,请重新输入数字");
                nn = Console.ReadLine();
            }
            Console.WriteLine("请输入题目中数值的范围");
            nn = Console.ReadLine();
            while (int.TryParse(nn, out r) == false)
            {
                Console.WriteLine("输入有误,请重新输入数字");
                nn = Console.ReadLine();
            }
            calculation c = new calculation();

            int[][] ic = new int[n][];//n个计算式中计算数的和数
            for (int i = 0; i < n; i++)
            {
                string a = c.GetProblem(r, ref result, ref ic[i]);
                for (int j = 0; j < i; j++)
                {
                    if (ic[j] == ic[i])
                    {
                        a = "重新生成";
                    }
                }
                while (a == "重新生成")
                {
                    a = c.GetProblem(r, ref result, ref ic[i]);
                    for (int j = 0; j < i; j++)
                    {
                        if (ic[j] == ic[i])
                        {
                            a = "重新生成";
                        }
                    }
                }
                //将题目存入Exercises.txt中,可追加
                using (StreamWriter sw = new StreamWriter(@"F:\作业\软件工程\2\Exercises.txt", true))
                {
                    sw.WriteLine(i + ".四则运算题目 " + a);
                }
                //将答案存入Answers.txt
                using (StreamWriter sw = new StreamWriter(@"F:\作业\软件工程\2\Answers.txt", true))
                {
                    if (result[0] == 0 || result[1] == 1)
                    {
                        sw.WriteLine(i + ".答案 " + result[0].ToString());
                    }
                    else
                    {
                        sw.WriteLine(i + ".答案 " + result[0].ToString() + "/" + result[1].ToString());
                    }
                }
            }
            Console.ReadKey();
        }