结对编程项目--四则运算

1.同伴信息

王硕朋,计科13-1,学号:130201124

2.基本功能

这次作业是四则运算,就是加减乘除之间运算,通俗简单。

3.程序截图

1)窗体布局截图

2)程序运行截图

4.代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void Integerdivide()
        {
            String getmax = textMin.Text;
            int minnum = Convert.ToInt32(getmax);  //最小范围设定

            String getmin = textMax.Text;
            int maxnum = Convert.ToInt32(getmin);  //最大范围设定

            Random R = new Random();  //取随机数

            int den1, den2, num1, num2;
            den1 = R.Next(minnum, maxnum);
            num1 = R.Next(minnum, den1);
            den2 = R.Next(minnum, maxnum);
            num2 = R.Next(minnum, den2);

            if (den2 != 0)
                list.Items.Add(den1 + "/" + "(" + den2 + ")" + "=");
            else
            {
                list.Items.Add(den2 + "/" + "(" + den1 + ")" + "=");

            }
        }

        public void Fractionadd()
        {
            String getmax = textMin.Text;
            int minnum = Convert.ToInt32(getmax);  

            String getmin = textMax.Text;
            int maxnum = Convert.ToInt32(getmin);  

            Random R = new Random();  

            int den1, den2, num1, num2;
            den1 = R.Next(minnum, maxnum);
            num1 = R.Next(minnum, den1);
            den2 = R.Next(minnum, maxnum);
            num2 = R.Next(minnum, den2);

            if (den1 != 0)
            {
                if (den2 != 0)
                {
                    list.Items.Add("(" + num1 + "/" + den1 + ")" + "+" + "(" + num2 + "/" + den2 + ")" + "=");
                }
                else if (den2 == 0)
                {
                    list.Items.Add("(" + num1 + "/" + den1 + ")" + "+" + "(" + den2 + "/" + num2 + ")" + "=");
                }
            }
            else
            {
                if (den2 != 0)
                {
                    list.Items.Add("(" + den1 + "/" + num1 + ")" + "+" + "(" + num2 + "/" + den2 + ")" + "=");
                }
                else if (den2 == 0)
                {
                    list.Items.Add("(" + den1 + "/" + num1 + ")" + "+" + "(" + den2 + "/" + num2 + ")" + "=");
                }
            }
        }

        public void Fractiondelete()
        {
            String getmax = textMin.Text;
            int minnum = Convert.ToInt32(getmax); 

            String getmin = textMax.Text;
            int maxnum = Convert.ToInt32(getmin); 

            Random R = new Random(); 

            int den1, den2, num1, num2;
            den1 = R.Next(minnum, maxnum);
            num1 = R.Next(minnum, den1);
            den2 = R.Next(minnum, maxnum);
            num2 = R.Next(minnum, den2);

            if (den1 != 0)
            {
                if (den2 != 0)
                {
                    list.Items.Add("(" + num1 + "/" + den1 + ")" + "-" + "(" + num2 + "/" + den2 + ")" + "=");
                }
                else if (den2 == 0)
                {
                    list.Items.Add("(" + num1 + "/" + den1 + ")" + "-" + "(" + den2 + "/" + num2 + ")" + "=");
                }
            }
            else
            {
                if (den2 != 0)
                {
                    list.Items.Add("(" + den1 + "/" + num1 + ")" + "-" + "(" + num2 + "-" + den2 + ")" + "=");
                }
                else if (den2 == 0)
                {
                    list.Items.Add("(" + den1 + "/" + num1 + ")" + "-" + "(" + den2 + "/" + num2 + ")" + "=");
                }
            }
        }

        public void Fractionmultiply()
        {
            String getmax = textMin.Text;
            int minnum = Convert.ToInt32(getmax);  

            String getmin = textMax.Text;
            int maxnum = Convert.ToInt32(getmin);  

            Random R = new Random(); 

            int den1, den2, num1, num2;
            den1 = R.Next(minnum, maxnum);
            num1 = R.Next(minnum, den1);
            den2 = R.Next(minnum, maxnum);
            num2 = R.Next(minnum, den2);

            if (den1 != 0)
            {
                if (den2 != 0)
                {
                    list.Items.Add("(" + num1 + "/" + den1 + ")" + "*" + "(" + num2 + "/" + den2 + ")" + "=");
                }
                else if (den2 == 0)
                {
                    list.Items.Add("(" + num1 + "/" + den1 + ")" + "*" + "(" + den2 + "/" + num2 + ")" + "=");
                }
            }
            else
            {
                if (den2 != 0)
                {
                    list.Items.Add("(" + den1 + "/" + num1 + ")" + "*" + "(" + num2 + "/" + den2 + ")" + "=");
                }
                else if (den2 == 0)
                {
                    list.Items.Add("(" + den1 + "/" + num1 + ")" + "*" + "(" + den2 + "/" + num2 + ")" + "=");
                }
            }
        }

        public void Fractiondivide()
        {

            String getmax = textMin.Text;
            int minnum = Convert.ToInt32(getmax);  

            String getmin = textMax.Text;
            int maxnum = Convert.ToInt32(getmin);  

            Random R = new Random();

            int den1, den2, num1, num2;
            den1 = R.Next(minnum, maxnum);
            num1 = R.Next(minnum, den1);
            den2 = R.Next(minnum, maxnum);
            num2 = R.Next(minnum, den2);

            if (den1 != 0)
            {
                if (den2 != 0)
                {
                    list.Items.Add("(" + num1 + "/" + den1 + ")" + "/" + "(" + num2 + "/" + den2 + ")" + "=");
                }
                else if (den2 == 0)
                {
                    list.Items.Add("(" + num1 + "/" + den1 + ")" + "/" + "(" + den2 + "/" + num2 + ")" + "=");//换
                }
            }
            else
            {
                if (den2 != 0)
                {
                    list.Items.Add("(" + den1 + "/" + num1 + ")" + "/" + "(" + num2 + "/" + den2 + ")" + "=");
                }
                else if (den2 == 0)
                {
                    list.Items.Add("(" + den1 + " / " + num1 + ")" + "/" + "(" + den2 + "/" + num2 + ")" + "=");
                }
            }
        }

         private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            String getnum = textIn.Text;
            int num = Convert.ToInt32(getnum);  //输入题目数

            String getmax = textMin.Text;
            int minnum = Convert.ToInt32(getmax);  //最小数设定

            String getmin = textMax.Text;
            int maxnum = Convert.ToInt32(getmin);  //最大数设定

            int i;

            Random R = new Random();
            int import = 0;  

            for (i = 0; i < num; i++)
            {
                int den1, den2, num1, num2;
                den1 = R.Next(minnum, maxnum);
                num1 = R.Next(minnum, den1);
                den2 = R.Next(minnum, maxnum);
                num2 = R.Next(minnum, den2);

                import = R.Next(0, 8);  

                switch (import)
                {

                    case 0: list.Items.Add(den1 + "+" + "(" + den2 + ")" + "="); break;
                    case 1: list.Items.Add(den1 + "-" + "(" + den2 + ")" + "="); break;
                    case 2: list.Items.Add(den1 + "*" + "(" + den2 + ")" + "="); break;

                    case 3: Integerdivide(); break; //整数除法

                    case 4: Fractionadd(); break; //分数加法

                    case 5: Fractiondelete(); break; //分数减法

                    case 6: Fractionmultiply(); break;//分数乘法

                    case 7: Fractiondivide(); break; //分数除法

                }
            } 

        }

    }
}5.总结通过这几个学时的学习,以及老师和助教仔细教导,我技术突飞猛进,感谢老师助教和同学指导!
时间: 2024-08-07 16:42:46

结对编程项目--四则运算的相关文章

结对编程项目——四则运算

1. 结对编程项目---四则运算 (10分) 基本功能要求: 1) 实现一个带有用户界面的四则运算.2) 生成的题目不能重复.3) 支持负数,例如-1,-1/2,-3‘4/5等.(达成) 需要支持的基本设定参数 1) 题目的数量  2) 数值的范围  3) 题目中最多几个运算符(目前没有达成)  4) 题目中或运算过程中有无有分数(比如进行整数除法的时候不能除尽) 5) 题目中是否有乘除法  6) 题目中是否有括号 (目前没有达成) 7) 题目中或运算过程中有无负数         学习感受:

20165206 结对编程项目-四则运算 阶段一总结

20165206 结对编程项目-四则运算 阶段一总结 一.需求分析 通过命令行输入生成题目的数量,随机生成题目. 生成的题目不重复. 生成的四则运算题目支持整数.支持多运算符. 能够根据作答情况统计正确的个数. 二.设计思路 设计一个类来实现整数的四则运算. 用一个循环结构来生成随机数,生成题目. 设计一个类来比较输入的答案与正确答案是否一致. 判断做的题是否正确,并返回正确的个数. 设计单元测试,对代码进行测试及修改 UML图: 三.核心代码 生成随机数: while(true){ a=new

20165227 结对编程项目-四则运算 第一周

20165227 结对编程项目-四则运算 第一周 需求分析 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计题目完成数并计算正确率 设计思路 设计一个计算器能够实现简单的+.-.*./运算 通过编程实现多运算符计算.整数运算.真分数运算.判断结果等 进行junit检测 设计一个程序主类,达到生成随机数.题目.并判断正误 测试 UML类图 功能截图 结对感受 因为同为室友,所以结对起来更轻松方便,讨论的时间也更加地充足,对于队

20165318 结对编程项目-四则运算 阶段总结

20165318 结对编程项目-四则运算 阶段总结 一.需求分析 能随机生成n道四则运算题目,n由使用者输入 支持整数和分数 支持多运算符 能够判断正误,错误时能提醒并输出正确答案 能计算出正确率 能多次生成题目,直到使用者选择退出 后续拓展的可能 题目去重 文件: 处理生成题目并输出到文件 完成题目后从文件读入并判题 多语言支持:简体中文, 繁體中文, English 二.设计思路(同时输出UML类图) 首先考虑生成题目. 随机生成题目,用到Random函数,生成题目应该是同时随机生成数字和四

20165230 结对编程项目-四则运算 整体总结

20165230 结对编程项目-四则运算 整体总结 一.需求分析 随机生成题目 生成的题目个数从命令行输入 用户可选择生成不同难度的题目,比如通过参数指定: (1) 运算符个数范围 (2) 运算符限定(小学一年级题目只生成 + - 题目) 能多次生成题目 题目运算(判题) 支持多运算符 支持整数 支持真分数 题目合法性判断 可独立使用 可用于测试生成题目的正确性 扩展需求 题目去重 支持多语言 处理生成题目并输出到文件 完成题目后从文件读入并判题 二.设计思路 设计一个IntNumber类,用来

20165202 结对编程项目-四则运算 第二周

一.码云链接 二.需求分析 实现一个命令行程序,要求: 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计正确率 三.设计思路(同时输出UML类图) 这周的总体设计要在上周的基础上深化,上周我们的代码没有用到中缀表达式转后缀表达式,没有用到栈,所以这周不仅要对上一周的代码进行修改,而且还要在此基础上完成更深层的对真分数的要求. 实现四则运算中后缀转换类 实现四则运算后缀表达式计算类 实现四则运算真分数计算类 实现四则运算生成题

20165330 结对编程项目-四则运算 第二周

需求分析 实现一个命令行程序,要求:自动生成小学四则运算题目(加.减.乘.除) 可实现多个运算符一起运算 可以真分数形式输出结果 测试结果的正确性 统计题目完成数并计算正确率 设计思路 实验首先是完成一个计算器的功能,可以实现简单的+.-.*./运算,在这里设计一个主类生成随机数,生成题目,并判断正确率 实现多运算符,编入四个类分别实现整数运算.真分数运算.判断结果正确并计算正确率 利用JUnit检测非法输入 设计测试类,利用JUnit测试整数类与分数类的四则运算 UML类图 功能截图 Juni

20165235 结对编程项目-四则运算 整体总结

20165235 结对编程项目-四则运算 整体总结 一.需求分析 本次实验需要产生随机数然后对其进行相应的计算.产生随机数可以直接在主类中进行,四则运算可以通过堆栈实现,可能会出现分母为零的bug,也要对其进行相应的修复.可以将字符序列装换成字符数组,在对字符数组中"/"符号之后的数字进行判断,如果是0就返回-1. 二.设计思路 本次实验总共分为两个思路:(1)是通过类Operate中的calculate方法进行计算,计算的数值由主类Main给出.并对其修复了分母为零的bug(在Mai

20172327 结对编程项目-四则运算 第二周 阶段总结

20172327 结对编程项目-四则运算 第二周 阶段总结 结对编程项目-四则运算 第二周 输出阶段总结博客 结对对象: 学号:20172317 姓名:蒋子行 伙伴第二周博客地址: 学号:20172320 姓名:李闻洲 伙伴第二周博客地址: 担任角色: 驾驶员:蒋子行 副驾驶:李闻洲 马瑞蕃 小组结对编程的photo: 项目中自己负责的部分: 我在项目中真的没啥贡献,项目主要由祥哥主刀,我和李闻洲就是打杂的. 个人贡献度划分: 我在项目中真的没啥贡献,项目主要由祥哥主刀,我就是打杂的,提点建议和

20175212童皓桢 结对编程项目-四则运算 第一周

20175212童皓桢 结对编程项目-四则运算 第一周 需求分析 实现一个命令行程序,要求自动生成小学四则运算题目(加减乘除) 支持多运算符 测试结果的正确性,用户输入错误时给出正解 统计题目正确率 设计思路 首先要能够按照按人的一般习惯,生成自左向右计算的加减乘除算式. 随机生成多运算符,并随机生成相对应个数的整数 利用eval方法直接计算随机生成的算式的值,并和用户的输入作比较 判断正确率 设计测试类,利用JUnit测试整数的四则运算 UML类图 关键代码 如何生成符合要求格式的运算式 fo