結對編程-四則運算

1、結對成員:

蔡少杭 201421122111
git

XXX XXXXXXXXXXXX小程序

項目開發的coding.net 地址:https://git.coding.net/HangZhe/HomeWork3.git學習

 

2、題目描述:

在我的做業1中,用各類語言實現了一個命令行的四則運算小程序。進一步,本次要求把這個程序作成GUI,成爲一個有基本功能、必定價值的程序。在下面的功能需求中實現兩個:測試

  1. 記錄用戶的對錯總數,程序退出再啓動的時候,能把之前的對錯數量保存並在此基礎上增量計算。字體

  2. 有計時功能,能顯示用戶開始答題後的消耗時間。this

  3. 界面支持中文簡體/中文繁體/英語,用戶能夠選擇一種;編碼

 

3、項目實現:

一、需求分析

  • 首先須要一個GUI界面,方便用戶操做,須要用到按鈕,文本框,文字等控件。
  • 我給本身分派的任務是完成記錄用戶的對錯總數,每次打開程序都能加載上次的對錯總數。
  • 她的任務是完成計時的功能,在點擊開始後開始計時,在用戶點擊提交或答徹底部題目後中止計時。
  • 語言選擇,設置爲三種,中文簡體,中文繁體和英文。

 

二、程序設計

  主要功能分爲:生成題目、記錄對錯數、計時、語言切換。其中計算使用的是第一次做業中的生成四則運算表達式的方式。對錯數打算是用文件記錄,每次運行的開始時候先從文件讀取對錯數,每次答對答錯都會對對錯數進行修改。計時功能,當用戶點擊開始按鈕開始答題時開始計時,結束答題或者答完全部題目後中止計時,使用的是C#中設置事件觸發時間間隔的方式。語言切換默認開始是中文,當用戶選擇對應的語言的時候會作相應的切換,計劃使用切換配置文件的方式來修改全部控件的文本。spa

 

三、代碼展現

記錄和讀取對措數.net

if (!File.Exists(@"E:\\result.txt"))
{
      FileStream fss = new FileStream("E:\\result.txt", FileMode.Create);
      StreamWriter sww = new StreamWriter(fss);
      //開始寫入
      sww.WriteLine("0");
      sww.WriteLine("0");
      //清空緩衝區
      sww.Flush();
      //關閉流
      sww.Close();
      fss.Close();
}

      FileStream fs = new FileStream("E:\\result.txt", FileMode.Open, FileAccess.Read);
      StreamReader read = new StreamReader(fs, Encoding.Default);
      string strReadline;
      while ((strReadline = read.ReadLine()) != null)
      {
           result_list.Add(strReadline);
      }

      read.Close();
      fs.Close();

      right_number=Convert.ToInt32(result_list[0]);
      wrong_number= Convert.ToInt32(result_list[1]);
      this.right_show_text.Text = right_number.ToString();
      this.wrong_show_text.Text = wrong_number.ToString();

      Program.right_wrong_init(right_number, wrong_number);

 

修改對錯數命令行

if (question_num <a)
{
     if (is_count)
     {
           is_count = false;
           this.anwser.Text = "";

                  
           Program.gen();
           question_num++;
           this.count_text.Text = "" + question_num.ToString() + "";
           this.label7.Text = Program.getNum();
      }
      else
      {      
             Program.gen();
             question_num++;   
             this.count_text.Text = "" + question_num.ToString() + "";
             this.label7.Text = Program.getNum();

             this.right_show_text.Text = Program.get_right_count().ToString();
             Program.add_wrong_count();
             this.wrong_show_text.Text = Program.get_wrong_count().ToString();


             FileStream fs3 = new FileStream("E:\\result.txt", FileMode.Create);
             StreamWriter sw3 = new StreamWriter(fs3);
             //開始寫入
                    sw3.WriteLine(Program.get_right_count().ToString());
                    sw3.WriteLine(Program.get_wrong_count().ToString());
              //清空緩衝區
              w3.Flush();
              //關閉流
              sw3.Close();
              fs3.Close();
}

 

計時

public Form1()
{
      InitializeComponent();

      //timer控件可用
      this.timer1.Enabled = true;

      //設置timer控件的Tick事件觸發的時間間隔
      this.timer1.Interval = 1800;

      //中止計時
      this.timer1.Stop();
}    

 

 //開始計時 this.timer1.Start(); 

 

private void timer1_Tick(object sender, EventArgs e)
{
            second_r++;
            if (second_r > 9)
            {
                second_r = 0;
                secend_l++;
            }
            if (secend_l > 5)
            {
                secend_l = 0;
                minute_r++;
            }
            if (minute_r > 9)
            {
                minute_r = 0;
                minute_l++;
            }
            time = minute_l.ToString()+minute_r.ToString()+":" +secend_l.ToString()+second_r.ToString();
            this.time_show_text.Text = time;
}

 

四、程序運行

1.主界面

 

 

2.開始以前必須輸入題目數和表達式中數的運算範圍,不大於這個值

 

3.開始答題,同時開始計時,答錯答對的題數是提取自文件的,隨着用戶的答題結果而發生變化

 

4.用戶輸入答案,點擊肯定進行比較,正確就答對題數加1,錯誤就答錯題數加1,而後點擊下一題換題目

 

 

5.題目作完或者結束答題,結束計時

  

 

五、小結感覺

本次做業是在第一次做業的基礎上製做出圖形界面,使用的是C#語言編寫的窗體運用程序,計時和對錯數記錄的功能都已經實現,語言切換方面遇到字體資源沒法加載的問題還在解決。

給我最大的感覺就是團隊協做真的頗有趣,剛開始確實會有一些編碼的不統一而產生分歧,可是隨着雙方規範的約定,就會很快適應對方的代碼,也就能成功地整合。

 

4、運用「漢堡包」的方式,評價結對夥伴:

優勢:隊友的思惟很活躍,我在思考一個問題沒有思路時,她能給出我不曾想到的解決思路,瞬間讓我恍然大悟。

缺點:一些變量名字的定義不是很好理解,須要詢問後才能知道。

但願她提升的地方:在定義變量名字時儘可能定義一些對方能瞬間理解的名字。

 

5、描述結對過程:

1.閱讀做業的要求,肯定此次做業的全部需求。

2.根據任務量和各自熟悉的領域劃分,各自負責對應的功能模塊。

3.制定編碼規範,約定參數傳遞的方式,使用的語言,環境,開發模式等等。

4.開始各自的開發,期間遇到難以解決的問題就提出,共同討論和解決。

5.完成各自功能模塊後,整合代碼,解決整合過程當中遇到的問題。

6.測試程序,排查BUG。

 

6、展現PSP:

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 計劃 20 15
· Estimate 估計這個任務須要多少時間 24 20
Development 開發 500 650
· Analysis 需求分析 (包括學習新技術) 30 60
· Design Spec 生成設計文檔 30 10
· Design Review 設計複審 30 15
· Coding Standard 代碼規範 20 20
· Design 具體設計 25 32
· Coding 具體編碼 200 350
· Code Review 代碼複審 20 25
· Test 測試(自我測試,修改代碼,提交修改) 30 25
Reporting 報告 30 45
· 測試報告 25 15
· 計算工做量 20 12
· 並提出過程改進計劃 20 10
相關文章
相關標籤/搜索