天天看點

結對程式設計1

結對程式設計1 對項目的增量式開發和協作開發

@201421122090,@201421122083

需求分析(完成其中任意兩項即可)

[x]記錄使用者的對錯總數,程式退出再啟動的時候,能把以前的對錯數量儲存并在此基礎上增量計算(檔案導入或者是使用者根據曆史記錄選擇?)。
[√]有計時功能,能顯示使用者開始答題後的消耗時間(實時顯示或者退出時顯示)。
[√]界面支援中文簡體/中文繁體/英語,使用者可以選擇一種。
           

思維導圖

功能設計

計時與顯示時間
簡繁英語言切換
           

設計實作

計時功能

在點選生成題目按鈕後即開始計時,在函數中添加計時器timer,調用setInterval函數對每1000毫秒進行計時器内容改變。

簡繁英語言切換

在螢幕中添加簡繁英按鈕,點選後觸發點選事件,對文本域内容進行切換。

編碼規範

(對項目中可能出現的編碼狀況進行規範,對目前尚未使用到的日後再進行添加)

一、基本約定

1.程式編寫采用駝峰命名法+英文簡寫命名+動詞名詞命名,可以顯示變量内容,方法作用

如:

var calcResult

,

var timer

2.對每個方法前進行方法說明注釋,對于方法中的形參命名同上

如:

// 随機資料(分數和整數)
var ranNum = function () {
    //...
}
           

3.在變量聲明區提前聲明變量,在方法中聲明的變量最好不使用

i

j

x

y

z

,使用準确計數名稱來反映變量作用

//變量聲明區
var timer = document.getElementById("timer")
//...
//方法實作區
var ranData = function(){
    var data;
}
           

4.注釋規範

注釋中需要将方法作用寫出,對于晦澀難懂的實作細節需要詳細說明

5.對顯示出的标簽和文字使用簡體中文展示,編碼字元集使用UTF-8

二、使用模闆

1.css模闆

<style>
        body{
            margin: 0;
            padding: 0;
            height: 100%;
            background-color: skyblue;
        }
        #main{
            margin: 20px auto;
            width: 800px;
            text-align: center;
            background-color: white;
        }
        li{
            width: 100%;
            height: 20px;
            list-style: none;
        }
        #myform{
            margin: 20px auto;  
            width: 80%;
            text-align: left;
            text-align: center;
            /*background-color: skyblue;*/
        }
        label{
            font-size: 14px;
        }
        #calm{
            text-align: left;
        }
        li{
            width: 100%;
            height: 25px;
            margin: 2px 0;
            line-height: 25px;
            padding: 00px;
            padding-left: 20PX;
        }
        .name{
            position: absolute;
            /*left: 700px;*/
            /*display: inline-block;*/
            margin-top: 2.5px;
            width: 85px;
            height: 20px;
            /*border: 0;*/
            line-height: 20px;
            padding: 0;
            box-sizing: border-box;
        }
        .liSpan{
            display: inline-block;
            width: 120px;
            height: 20px;
            /*background-color: white;*/
            text-indent: 2em;
            line-height: 20px;
        }
        .liSpan1{
            display: inline-block;
            width: 240px;
            height: 20px;
            line-height: 20px;
            /*background-color: red;*/
        }
        .span{
            display: inline-block;
            width: 100px;
            margin-left: 100px;
            text-indent: 3em;
        }
        #button2{
            margin: 10px;
            display: inline-block;
            width: 95px;
        }
        #grade{
            height: 35px;
        }
        #timetable{
            position: absolute;
            top: 20px;
            left: 40px;
        }
    </style>
           

代碼說明

1.

計時功能

//js代碼
var timetable=document.getElementById("timetable");
var time =document.getElementById("time");
var timer =document.getElementById("timer");
tim = setInterval(function() {
    ti++;
    timer.innerHTML = ti + "s";
}, 1000);
time.innerHTML = "您的用時:"
           
<!--html-->
<div id="timetable">
    <span id="time">點選确認後開始計時</span>
    <br>
    <span id="timer"></span>
</div>
           

2.

語言切換

//js代碼
    var btns = document.querySelectorAll(".btn");
    for(var i = 0;i < btns.length;i++){
        var btn = btns[i];                  //擷取i的div标簽元素
        btn.onclick=function(nm){
            return function(){
                label1.innerHTML = intel[nm];
                label2.innerHTML = intel1[nm];
                button1.innerHTML = intel2[nm];
                button2.innerHTML = intel3[nm];
                contentR.innerHTML = intel4[nm];
                contentW.innerHTML = intel5[nm];
            }
        }(i);
    }
           
<!--html-->
        <div id="cLanguage">
            <button class="btn">簡體中文</button>
            <button class="btn">繁體中文</button>
            <button class="btn">英文</button>
        </div>
           

測試運作

計時功能

簡繁英切換

英文

![](http://chuantu.biz/t6/107/1508582040x463083759.png)

簡體

![](http://chuantu.biz/t6/107/1508582117x463083759.png)

繁體

PSP

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 計劃 20
Estimate 估計這個任務需要多少時間 5
Development 開發 500 700
Analysis 需求分析 (包括學習新技術) 30 10
Design Spec 生成設計文檔
Design Review 設計複審
Coding Standard 代碼規範
Design 具體設計
Coding 具體編碼 400 470
Code Review 代碼複審 8
Test 測試(自我測試,修改代碼,送出修改) 60 150
Reporting 報告
測試報告 12 45
計算工作量 3
并提出過程改進計劃

小結感受

結對程式設計讓我體會到了在做項目中身處在團隊中的好處,有不會的不懂的可以很快的詢問,自己有想法有意見也可以直接提出,讓程式設計效率直線提升。

隊友評價

我的隊友

@黃鴻偉 201421122083

認真勤勞,對每個代碼中的細節認真思考,會将自己的想法與看法即使的反映給我,雖然在編碼中有些不規範的地方,但總體使我們的項目進度很快增加,是位非常好的隊友。

合作時刻

項目位址>>