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

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

1)小伙伴信息:

       学号:130201238 赵莹

       博客地址:点我进入 小伙伴的博客

2)实现的功能:

  1. 实现带有用户界面的四则运算:将原只能在c free程序框内构建并运行,进一步完善为利用vs搭建Windows窗体完成运行,有关用户体验方面得到了提高。
  2. 加入登录窗口:此版本需固定登录名和密码才可登录,也可随及退出。原意是希望一人一账号,可以记录每个人的进度并更新。
  3. 密码隐藏:可加入设置选项,可隐藏or显示密码。
  4. 可清空现有题目。
  5. 支持负数:将负数加以括号,进行简单四则运算出题。只针对出题一方面,对于答题,暂未进行深入挖掘。
  6. 出题量和范围的自由设定。
  7. 混合出题:由两整数/两分数进行四则运算(加减乘除)。

    暂未实现的功能:

  1. 题目存在重复。
  2. 每道题目只涉及一个运算符:可设置新题型选项,加入多运算符。
  3. 答题功能未能加入:在用c有完成题目纠错并给出正确答案,因不熟悉c#的编写and时间紧迫,未能加入。
  4. 答题模式多样:此版本仅有混合运算,可扩充为多样式答题模块。

3)合作过程中的负责模块:

  1. 完成windows窗口排版。
  2. 完成所设计题目数量和范围的正常显示。
  3. 完成程序模块化。将case各选项中的冗长语句移出,添加到新创建相应的子程序中,便于审阅和纠错。
  4. 程序纠错。在进行编写的时出现了各式各样的错误,这时就需要纠错啦。比如在题目数量未按照输入数值显示、分数的出题对于分母为0的更改、考虑问题的不全面等等。
  5. 在程序正常运行的前提下,优化程序界面,规范代码格式。

(注:程序大多是在两人共同讨论推进的,同时其中因和结对小伙伴对c#的不熟悉,向其他小伙伴 频频再频频的求助,在此感谢感谢感谢!!)

4)结对伙伴的优缺点总结:

优点缺点
本人
1.尤为注重代码规范,编写的代码方便查看并纠错。(只说一句:I’m处女座)

2.善于提出问题,并快速寻求帮助,保证进程不拖沓。

3.宿舍地理位置优越,处于多学霸中心地带,请教问题时掌握快准狠的原则。

1.做事追求的更多一点,有自己的想法。容易和小伙伴发生摩擦。(结果还是美好滴!)

2.对c#的不熟悉,很容易拖慢整体进程。(解决办法:不断请求其他小伙伴)
小伙伴
1.对待问题显得沉稳,能够容(tuo)忍(zou)我并且找出问题。

2.牺牲个人时间也要完成代码编写。

3.编写代码比较细心。

1.很少主动请教其他小伙伴,性格偏内。(我外呀!)

2.同样地,对c#的不熟悉也造成了一定的困扰。

5)结对编程的优缺点总结:

优点缺点
结对编程
1.更快速的找到错误并解决。
2.思维的碰撞,使功能更完善。

3.为组成团队打下良好的基础。

4.在讨论过程中,不断加深印象。

5.减轻编程负担。

1.在两人对c#编程还不清晰的情况下,任意一人所添加的语句都需要做出多遍解释,造成项目的拖沓。相对应的,也会对此语句加深印象。

2.对一件问题各执己见,容易发生争执。相应的,无论在以后的团队项目中,亦或是工作中,都会养成善于听取他人意见或建议的习惯,不断完善自身。

6)照片

awj8QzS.jpg

7)程序截图

① 登录界面

PYADfzQ.png

② 运算界面

KEPH3pt.png

③ 清除程序

sBase3u.png

附录

//主界面

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 Enter
{

public partial class topic : Form
{
    /*
   public String getmax;
    public int maxnum;
    public String getmin;
    public int minnum;
    public Random R;

    public int den1, den2, num1, num2;
   */
    public topic()
    {
        InitializeComponent();
        /*
        //新增(可减少在每个函数内 重复定义)
   
        getmax = textMax.Text;
        getmin = textMin.Text;
        minnum = int.Parse(getmin);  //最小范围设定
        maxnum = int.Parse(getmax);  //最大范围设定
        R = new Random();  //取随机数
        den1 = R.Next(minnum, maxnum);
        num1 = R.Next(minnum, den1);
        den2 = R.Next(minnum, maxnum);
        num2 = R.Next(minnum, den2);
        */
    }

    //整数除法 case3
    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 + ")" + "=");

        }
    }

    //分数加法 case 4
    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) //当第一个分数分母den1!=0的情况,分析den2
        {
            if (den2 != 0)
            {
                list.Items.Add("(" + num1 + "/" + den1 + ")" + "+" + "(" + num2 + "/" + den2 + ")" + "=");
            }
            else if (den2 == 0)
            {
                list.Items.Add("(" + num1 + "/" + den1 + ")" + "+" + "(" + den2 + "/" + num2 + ")" + "=");
            }
        }
        else   //当第一个分数分母den1=0的情况,分析den2
        {
            if (den2 != 0)
            {
                list.Items.Add("(" + den1 + "/" + num1 + ")" + "+" + "(" + num2 + "/" + den2 + ")" + "=");
            }
            else if (den2 == 0)
            {
                list.Items.Add("(" + den1 + "/" + num1 + ")" + "+" + "(" + den2 + "/" + num2 + ")" + "=");
            }
        }
    }

    //分数减法 case 5
    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) //当第一个分数分母den1!=0的情况,分析den2
        {
            if (den2 != 0)
            {
                list.Items.Add("(" + num1 + "/" + den1 + ")" + "-" + "(" + num2 + "/" + den2 + ")" + "=");
            }
            else if (den2 == 0)
            {
                list.Items.Add("(" + num1 + "/" + den1 + ")" + "-" + "(" + den2 + "/" + num2 + ")" + "=");
            }
        }
        else  //当第一个分数分母den=0的情况,分析den2
        {
            if (den2 != 0)
            {
                list.Items.Add("(" + den1 + "/" + num1 + ")" + "-" + "(" + num2 + "-" + den2 + ")" + "=");
            }
            else if (den2 == 0)
            {
                list.Items.Add("(" + den1 + "/" + num1 + ")" + "-" + "(" + den2 + "/" + num2 + ")" + "=");
            }
        }
    }

    //分数乘法 case 6
    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) //当第一个分数分母den1!=0的情况,分析den2
        {
            if (den2 != 0)
            {
                list.Items.Add("(" + num1 + "/" + den1 + ")" + "*" + "(" + num2 + "/" + den2 + ")" + "=");
            }
            else if (den2 == 0)
            {
                list.Items.Add("(" + num1 + "/" + den1 + ")" + "*" + "(" + den2 + "/" + num2 + ")" + "=");
            }
        }
        else  当第一个分数分母den1=0的情况,分析den2
        {
            if (den2 != 0)
            {
                list.Items.Add("(" + den1 + "/" + num1 + ")" + "*" + "(" + num2 + "/" + den2 + ")" + "=");
            }
            else if (den2 == 0)
            {
                list.Items.Add("(" + den1 + "/" + num1 + ")" + "*" + "(" + den2 + "/" + num2 + ")" + "=");
            }
        }
    }
   
    //分数除法case 7
    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) //当第一个分数分母den1!=0的情况,分析den2
        {
            if (den2 != 0)
            {
                list.Items.Add("(" + num1 + "/" + den1 + ")" + "/" + "(" + num2 + "/" + den2 + ")" + "=");
            }
            else if (den2 == 0)
            {
                list.Items.Add("(" + num1 + "/" + den1 + ")" + "/" + "(" + den2 + "/" + num2 + ")" + "=");//换
            }
        }
        else  //当第一个分数分母den1 =0的情况,分析den2
        {
            if (den2 != 0)
            {
                list.Items.Add("(" + den1 + "/" + num1 + ")" + "/" + "(" + num2 + "/" + den2 + ")" + "=");
            }
            else if (den2 == 0)
            {
                list.Items.Add("(" + den1 + " / " + num1 + ")" + "/" + "(" + den2 + "/" + num2 + ")" + "=");
            }
        }
    }
   
    // 确认按钮(出题)
    private void btnOk_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; //分数除法

            }   
        } 
    }

    //清空按钮(清空输入数值,恢复初始化状态)
    private void btnClear_Click(object sender, EventArgs e)
    {
        textIn.Text = " ";  //设置为空
        textMax.Text = " ";
        textMin.Text = " ";
        list.Items.Clear();
    }
}
}



//登录界面

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 Enter
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    //登录按钮(跳转窗口至主界面——计算)
    private void btnEnter_Click(object sender, EventArgs e)
    {
        if (textName.Text == "JINGYAN" && textPassword.Text == "646646") //符合输入值,跳转
        {
            topic form = new topic();
            form.Show();
        }
    }

    //退出按钮(退出程序)
    private void button2_Click(object sender, EventArgs e)
    {
        this.Close();
    }
}
}

转载于:https://www.cnblogs.com/JINGY/p/5357224.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ChatGPT结对编程是一种将两个程序员合作编写代码的技术。这种技术可以提高编写代码的效率和质量,同时也可以提高两位程序员的技能水平。以下是ChatGPT结对编程的步骤: 1. 首先,找到一个合适的编程伙伴。最好是一个有一定编程经验的人,但如果你是新手,也可以与另一个新手合作。 2. 确定你们编写的代码项目。你们可以选择一个共同感兴趣的项目或者一个有挑战性的项目。确保你们都对项目有一定的理解。 3. 确定你们的角色。一个人可以担任主要代码编写者,另一个人可以担任代码审核者。这样可以确保代码的质量。 4. 确定编程环境。你们可以使用一个共同的编程环境,如Visual Studio Code或者Atom。也可以使用在线编程环境,如CodePen或JSFiddle。 5. 开始编写代码。一个人负责编写代码,另一个人负责审核代码。在编写代码的过程,你们可以随时通过聊天工具进行交流和讨论。 6. 定期进行代码审核。定期进行代码审核可以确保代码的质量。你们可以定期的分享代码,并相互审核对方的代码。 7. 完成项目并进行总结。完成项目后,你们可以总结你们的经验和教训,并提出改进建议。这将有助于你们以后更好的编写代码。 总之,ChatGPT结对编程是一种非常有用的技术,可以提高编写代码的效率和质量。通过合作编写代码,你们可以相互学习,相互支持,以及增强你们的编程技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值