zoukankan      html  css  js  c++  java
  • 作业四

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

    结对编程对象:130201105  何玥  http://www.cnblogs.com/heyue/

    //界面
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace FourOperations
    {
        public partial class 界面 : Form
        {
            public 界面()
            {
                InitializeComponent();
            }
            //题目生成
            private void button1_Click(object sender, EventArgs e)
            {
                Form1 form1 = new Form1();
                form1.Show();
            }
            //题目练习
            private void button2_Click(object sender, EventArgs e)
            {
                Form2 form2 = new Form2();
                form2.Show();
            }
        }
    }

    运行结果截图:

    //题目生成
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace FourOperations
    {
        public partial class Form1 : Form
        {
            public int choice;
            public Form1()
            {
                InitializeComponent();
            }
            //整数运算
            public void zhengshu()
            {
                String strnum = txtAmount.Text;//接收字符
                int num = Convert.ToInt32(strnum);//转义 题目个数
                Random R = new Random();
                int oper = 0;
                for (int i = 0; i < num; i++)
                {
                    int num1, num2;
                    num1 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text));
                    num2 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text));
                    oper = R.Next(0, 3);
                    switch (oper)//0-7分别表示加减乘除
                    {
                        case 0:
                            if (num2 >= 0)
                            { ListboxResult.Items.Add(num1 + "+" + num2 + "="); }
                            else
                            { ListboxResult.Items.Add(num1 + "+" + "(" + num2 + ")" + "="); }
                            break;
                        case 1:
                            if (num2 >= 0)
                            { ListboxResult.Items.Add(num1 + "-" + num2 + "="); }
                            else
                            { ListboxResult.Items.Add(num1 + "-" + "(" + num2 + ")" + "="); }
                            break;
                        case 2:
                            if (num2 >= 0)
                            { ListboxResult.Items.Add(num1 + "*" + num2 + "="); }
                            else
                            { ListboxResult.Items.Add(num1 + "*" + "(" + num2 + ")" + "="); }
                            break;
                        case 3:
                            if (num2 > 0)
                            { ListboxResult.Items.Add(num1 + "/" + num2 + "="); }
                            else if (num2 < 0)
                            { ListboxResult.Items.Add(num1 + "/" + "(" + num2 + ")" + "="); }
                            else
                            { i++; }
                            break;
                    }
                }    
            }
            //分数运算
            public void fenshu()
            {
                String strnum = txtAmount.Text;//接收字符
                int num = Convert.ToInt32(strnum);//转义 题目个数
                Random R = new Random();
                int oper = 0;
                for (int i = 0; i < num; i++)
                {
                    int num1, num2, num3, num4;//num1/num3第一个数;num2/num4第二个数
                    num1 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text));
                    num2 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text));
                    num3 = R.Next(0, int.Parse(txtMaxRange.Text));
                    num4 = R.Next(0, int.Parse(txtMaxRange.Text));
                    oper = R.Next(0, 3);
                    if (num3 != 0)
                    {
                        switch (oper)//0-7分别表示加减乘除
                        {
                            
                            case 0:
                                if (num4 != 0)
                                { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "+" + "(" + num2 + "/" + num4 + ")" + "="); }
                                else
                                { i--; }
                                break;
                            case 1:
                                if (num4 != 0)
                                { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "-" + "(" + num2 + "/" + num4 + ")" + "="); }
                                else
                                { i--; }
                                break;
                            case 2:
                                if (num4 != 0)
                                { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "*" + "(" + num2 + "/" + num4 + ")" + "="); }
                                else
                                { i--; }
                                break;
                            case 3:
                                if (num4 != 0)
                                { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "/" + "(" + num2 + "/" + num4 + ")" + "="); }
                                else
                                { i--; }
                                break;
                        }
                    }
                    else
                    {
                        i--;
                    }
                }
            }
            //混合运算
            public void hunhe()
            {
                String strnum = txtAmount.Text;//接收字符
                int num = Convert.ToInt32(strnum);//转义 题目个数
                Random R = new Random();
                int oper = 0;
                for (int i = 0; i < num; i++)
                {
                    int num1, num2, num3, num4;//num1/num3第一个数;num2/num4第二个数
                    num1 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text));
                    num2 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text));
                    num3 = R.Next(0, int.Parse(txtMaxRange.Text));
                    num4 = R.Next(0, int.Parse(txtMaxRange.Text));
                    oper = R.Next(0, 7);
                    if (num3 != 0)
                    {
                        switch (oper)//0-7分别表示加减乘除
                        {
                            case 0:
                                if (num2 >= 0)
                                { ListboxResult.Items.Add(num1 + "+" + num2 + "="); }
                                else
                                { ListboxResult.Items.Add(num1 + "+" + "(" + num2 + ")" + "="); }
                                break;
                            case 1:
                                if (num2 >= 0)
                                { ListboxResult.Items.Add(num1 + "-" + num2 + "="); }
                                else
                                { ListboxResult.Items.Add(num1 + "-" + "(" + num2 + ")" + "="); }
                                break;
                            case 2:
                                if (num2 >= 0)
                                { ListboxResult.Items.Add(num1 + "*" + num2 + "="); }
                                else
                                { ListboxResult.Items.Add(num1 + "*" + "(" + num2 + ")" + "="); }
                                break;
                            case 3:
                                if (num2 > 0)
                                { ListboxResult.Items.Add(num1 + "/" + num2 + "="); }
                                else if (num2 < 0)
                                { ListboxResult.Items.Add(num1 + "/" + "(" + num2 + ")" + "="); }
                                else
                                { i++; }
                                break;
                            case 4:
                                if (num4 != 0)
                                { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "+" + "(" + num2 + "/" + num4 + ")" + "="); }
                                else
                                { i--; }
                                break;
                            case 5:
                                if (num4 != 0)
                                { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "-" + "(" + num2 + "/" + num4 + ")" + "="); }
                                else
                                { i--; }
                                break;
                            case 6:
                                if (num4 != 0)
                                { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "*" + "(" + num2 + "/" + num4 + ")" + "="); }
                                else
                                { i--; }
                                break;
                            case 7:
                                if (num4 != 0)
                                { ListboxResult.Items.Add("(" + num1 + "/" + num3 + ")" + "/" + "(" + num2 + "/" + num4 + ")" + "="); }
                                else
                                { i--; }
                                break;
                        }
                    }
                    else
                    {
                        i--;
                    }
                }
            }
            //清除按钮
            private void btnClear_Click(object sender, EventArgs e)
            {
                txtAmount.Text = "";
                txtMinRange.Text = "";
                txtMaxRange.Text = "";
                ListboxResult.Items.Clear();
            }
            //确认按钮
            private void btnEnsure_Click(object sender, EventArgs e)
            {
                switch (choice)
                {
                    case 1: zhengshu(); break;
                    case 2: fenshu(); break;
                    case 3: hunhe(); break;
                }
            }
            //整数模式按钮
            private void rbtnZheng_CheckedChanged(object sender, EventArgs e)
            {
                if (rbtnZheng.Checked) choice = 1;
            }
            //分数模式按钮
            private void rbtFen_CheckedChanged(object sender, EventArgs e)
            {
                if (rbtnFen.Checked) choice = 2;
            }
            //混合模式按钮
            private void rbtnHun_CheckedChanged(object sender, EventArgs e)
            {
                if (rbtnHun.Checked) choice = 3;
            }
        }
    }

    运行结果截图:

        

        

    //题目练习
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace FourOperations
    {
        public partial class Form2 : Form
        {
            double[] ans;
            double[] input;
            public Form2()
            {
                InitializeComponent();
                ans = new double[20];
                input = new double[20];
            }
    
            private void btnStart_Click(object sender, EventArgs e)
            {
                Random R = new Random();
                int oper = 0;
                    int num1, num2;
                    num1 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text));
                    num2 = R.Next(int.Parse(txtMinRange.Text), int.Parse(txtMaxRange.Text));
                    oper = R.Next(0, 3);
                    switch (oper)//0-7分别表示加减乘除
                    {
                        case 0:
                            if (num2 >= 0)
                            { txtStart.Text = num1 + "+" + num2 + "="; }
                            else
                            { txtStart.Text = num1 + "+" + "("+ num2 +")"+ "="; }
                            ans[1] = num1 + num2;
                            break;
                        case 1:
                            if (num2 >= 0)
                            { txtStart.Text = num1 + "-" + num2 + "="; }
                            else
                            { txtStart.Text = num1 + "-" + "(" + num2 + ")" + "="; }
    
                            ans[1] = num1 - num2;
                            break;
                        case 2:
                            if (num2 >= 0)
                            { txtStart.Text = num1 + "*" + num2 + "="; }
                            else
                            { txtStart.Text = num1 + "*" + "(" + num2 + ")" + "="; }
                            ans[1] = num1 * num2;
                            break;
                        case 3:
                            if (num2 > 0)
                            { txtStart.Text = num1 + "/" + num2 + "="; }
                            else if (num2 < 0)
                            { txtStart.Text = num1 + "/" + "(" + num2 + ")" + "="; }
                            ans[1] = num1 / num2;
                            break;
                    }
                 
            }
    
            private void btnEnsure_Click(object sender, EventArgs e)
            {
                input[1] = Double.Parse(txtEnsure.Text);
                if (ans[1] == input[1]) {MessageBox.Show("回答正确!");}
                else { MessageBox.Show("回答错误,正确答案是" + ans[1]); };
            }
        }
    }

    运行结果截图:

    总结:

      通过这节课的学习,我学到了结对编程的一些知识,在编写这次作业的过程,我感受到了结对编程的重要性。最开始编程的时候,两个人各自都有自己的思路,我们先是进行了讨论,将各自的想法说出来,之后我们在综合两个人所想的,把自己没有想到的方面进行弥补,完成一个比较完整的思想。思路大概形成后,我们开始分工合作,一个人负责进行代码的编写,另一个人在旁边负责进行复审以及补充完整。完成一部分代码时,我们会把各自的工作调换一下,让每个人都可以有编写和复审的过程。在我们的这个程序中,她主要负责编写的是四则运算的整数运算部分,我主要负责编写的是四则运算的分数部分,混合运算以及题目的练习是将我们所编写的代码进行整合再修改。我们的这个程序主要实现了用户可以自设题目数量、数值的范围(支持正负数),支持整数的加减乘除和分数的加减乘除,以及判断对错,如果答案错误,则会输出正确答案。在结对编程的过程中,我发现结对编程大大提高了编写程序的效率,而且可以引导我想出更多的想法,将自己的想法更加完善,以及可以更加丰富程序的编写。同时,会发现结对的组员的一些优点,例如:她的有些想法可以让我扩大思考的范围。有时,在我编写的过程中,她的一些建议也会让我的思路更加的清晰,这些都可以感受到结对编程的重要性。通过这次的编写,我们发现程序中还有未完成的功能需要进行补充,所以我们会继续修改,完成一个比较全面的程序。

    照片:

     

     

    2. 学习进度表

    学习时间

    新增代码行

    博客量(篇)

    知识总结

    第一周

    6小时

    约100

    2

    数据库课设,巩固了上个学期的知识,将自己不是很熟练的东西重新进行学习。

    软件工程,在课下将教材大概的浏览了一下,了解了一些基础的概念。

    第二周

    10小时

     约150

    4

     软件工程,c语言中的随机数rand()函数,以及巩固了一下switch语句。

    数据库课设,建表,增删改查语句。

    第三周

    9小时

     约200

    5

    软件工程,巩固了c语言中的一些函数和循环语句,学习了代码规范、代码复审以及用PSP表格记录自己的学习时间。

    数据库课设,增删改查语句,完成报告。

    第四周

     15小时

     约800

     6

     软件工程,巩固了C#的一些基础的知识点,了解了结对编程,进行了对四则运算的编写.

    ......

     

     

  • 相关阅读:
    js的click事件传递参数方法
    https://en.wikipedia.org/wiki/Log-structured_merge-tree
    窗口标题
    编译器前端 后端
    https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/util/MurmurHash.html
    修改内存数据
    阿里巴巴建设业务中台的方法论 业务中台规范
    入 Go 必读:大型Go工程的项目结构及实战思考 原创 毛剑 QCon 今天
    https://github.com/golang/go/wiki/CommonMistakes
    goroutines inside of goroutines
  • 原文地址:https://www.cnblogs.com/zlyx/p/5337617.html
Copyright © 2011-2022 走看看