結對程式設計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>
測試運作
計時功能
簡繁英切換
英文

簡體

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