天天看點

作業四

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#的一些基礎的知識點,了解了結對程式設計,進行了對四則運算的編寫.
......