結對編程1

隊友學號:慄海輝 201421123121 黃良靜 201421123103

題目描述:

咱們在我的做業1中,用各類語言實現了一個命令行的四則運算小程序。進一步,本次要求把這個程序作成GUI(能夠是Windows PC 上的,也能夠是Mac、Linux,web,手機上的),成爲一個有基本功能、必定價值的程序。在下面的功能需求中實現兩個:html

1.記錄用戶的對錯總數,程序退出再啓動的時候,能把之前的對錯數量保存並在此基礎上增量計算。
2.有計時功能,能顯示用戶開始答題後的消耗時間。
3.界面支持中文簡體/中文繁體/英語,用戶能夠選擇一種。git

題目要求:

1.一個小組中的兩個同窗選取比較優秀的 做業1 (兩我的的都獨立完成了), 把它做爲本次做業的基礎,而後再修改。
2.結對編程實現上述功能,一樣的,在程序正式開發以前,請先預估下PSP每一個環節的消耗時間,並在過程當中統計實際耗時,最後提交PSP表格。依然注意,這個主要是給大家本身看的,沒必要造假數據。
3.在兩人合做的過程當中, 請看下面的內容web

a. 知足代碼風格規範和代碼設計規範(參考書第4章4.1-4.3內容)http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html編程

  • 請重視這點,在開發時兩我的要有口頭上的溝通:「好的,咱們一塊兒在開發中遵照一塊兒承認的編碼規範」
  • 請把大家約定的編碼規範文檔也提交到git

b. 給人提意見的方式——送一個漢堡包http://www.cnblogs.com/xinz/archive/2011/08/22/2148776.html小程序

c. 理解領航員和駕駛員兩種角色關係,並在結對編程中兩我的輪流作對方的角色。兩人都必須參與本次做業的編碼工做,並在git提交日誌上體現這點。函數

需求分析:

  • 記錄用戶的對錯總數,程序退出再啓動的時候,能把之前的對錯數量保存並在此基礎上增量計算。
    • 1.首先應該建立一個用於存放錯誤題目的.txt文件。
    • 2.在每次判斷函數之後若判斷爲錯誤,應把生成的題目自動存放到txt文件中。
    • 3.每次增長錯誤題目的時候記錄的錯題數目應該+1.
    • 4.錯誤題目的數量也保存到一個文件中記錄下來,每當有錯誤實時更新錯誤數量。
  • 有計時功能,能顯示用戶開始答題後的消耗時間。
    • 1.首先記錄時間的計數器不能被界面覆蓋應該放置在明顯的頂部或者右上方。
    • 2.在運行過程當中不該該應在未作完題目以前不可以終止計時,而且在答題完成之後終止技術工做。
    • 3.在每次從新開始答題的時候計時器自動清零。
  • 界面支持中文簡體/中文繁體/英語,用戶能夠選擇一種。
    • 1.引用SetThreadUILanguage函數用於轉換語言
    • 2.添加改變語言的按鈕,用於連接不一樣語言的切換
    • 3.用不一樣的按鈕實現改變不一樣的語言。
    • 4.初始使用語言爲系統語言。

程序設計:針對選擇的新開發功能作設計,使用思惟導圖

代碼展現:

初始化賦值正確錯誤題數

FILE * in;
    if (fopen_s(&in, "tf.txt", "r")!=0)
    {
        fopen_s(&in, "tf.txt", "w");
    }
    fscanf_s(in, "%d,%d", &t, &f);
    fclose(in);
    n = t + f;

寫入編碼

FILE * out;
             fopen_s(&out, "tf.txt", "w");
    fprintf_s(out, "%d,%d", t, f);
    fclose(out);

插入定時器

void CMFCApplication1Dlg::OnTimer(UINT_PTR nIDEvent)
{
    // TODO: 在此添加消息處理程序代碼和/或調用默認值
    static UINT s1 = 0;
    static UINT f1 = 0;
    static UINT h1 = 0;
    CString str;
    switch (nIDEvent) 
    {
    case 1:
        s1++;
        if (s1 == 60) { s1 = 0; f1++; }
        if (f1 == 60) { f1 = 0; h1++; }
        str.Format(_T("%02i:%02i:%02i"), h1, f1, s1);
        SetDlgItemText(IDC_EDIT6, str);
        break;
    case 2:
        s2++;
        if (s2 == 60) { s2 = 0; f2++; }
        if (f2 == 60) { f2 = 0; h2++; }
        str.Format(_T("%02i:%02i:%02i"), h2, f2, s2);
        SetDlgItemText(IDC_EDIT8, str);
        break;
    }
    CDialogEx::OnTimer(nIDEvent);
}

使用定時器

SetTimer(1, 1000, NULL);

使用代碼實如今生成題目前沒法提交答案,提交答案前沒法生成下一道題。.net

GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);

切換語言

以改線程語言來切換使用的語言包命令行

SetThreadUILanguage(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));  \\使用English(美式)

程序運行截圖:

小結感覺:結隊編程真的可以帶來1+1>2的效果嗎?經過此次結隊編程,請談談你的感覺和體會。

經歷了第一次結隊編程明顯的問題主要體如今不一樣人的心理上的差別。平時編程都是本身一我的搞定。不管是編程方向仍是編程結構都是本身作主。可是結隊編程是兩我的的事情,編寫代碼用的基本語法和編寫規範都要讓兩我的都看的舒服都要看的懂才能夠。在開發過程當中,要打起100%的精神。兩我的在不斷的審查過程當中不管是編寫代碼的人仍是審查的人都應該從新再講代碼從新審視。將往往段程序作到準確無誤。線程

碼市連接 https://git.coding.net/lenmo/MFC_sizeyunsuan.git

描述結隊的過程,提供非擺拍的兩人在討論、細化和編程時的結隊照片:

提供這次結隊做業的PSP:

相關文章
相關標籤/搜索