结对编程1 - 四则运算生成器的改进(201421123040,60,61)
題目要求
我們在個人作業1中,用各種語言實現了一個命令行的四則運算小程序。進一步,本次要求把這個程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手機上的),成為一個有基本功能、一定價值的程序。在下面的功能需求中實現兩個:
記錄用戶的對錯總數,程序退出再啟動的時候,能把以前的對錯數量保存并在此基礎上增量計算。
有計時功能,能顯示用戶開始答題后的消耗時間。
界面支持中文簡體/中文繁體/英語,用戶可以選擇一種;
需求分析
經過三個人的討論,決定使用php來實現本次作業,并打算將題目要求中的三個功能全部實現,實現前端操作界面。
分工
本次結對編程由于班級人數的原因,我們的小組中有三人,分別是谷天鵬(61),常昊(60),孫佳萱(40)
谷天鵬
完成具體網頁界面的編寫,php與前臺js交互部分的編寫,實現利用數據庫記錄對錯總數。
語言切換的設計與編寫。
各種方法的封裝。
常昊
建立數據庫。
編寫計時器算法并完成計時器功能。
孫佳萱
中英文切換語言詞典等js配置文件的編寫
web界面的樣式整改。
設計與實現部分
三部分功能
記錄用戶的對錯總數,程序退出再啟動的時候,能把以前的對錯數量保存并在此基礎上增量計算。
流程圖
代碼
$.post("ajaxTest.php", { wrongNum: wrongNum, rightNum: rightNum, lang: langShift}, function(data) { $('#record').text(data); } ); wrongNum = 0; rightNum = 0; } require './MySQLDB.class.php';//引入數據庫操作類//數據庫配置信息$config = array('host'=>'localhost','port'=>'3306','user'=>'root','pass'=>'123456','charset'=>'utf8','dbname'=>'sqltest',);$msq = MySQLDB::GetInstance($config);$sqlReadWrongNum="select wrong_num from hm2 where userid = 1"; $wrong = $msq -> getOneRow($sqlReadWrongNum); $wrongNumSum = $wrong['wrong_num'] + $_POST['wrongNum']; $sqlReadRightNum="select right_num from hm2 where userid = 1"; $right = $msq -> getOneRow($sqlReadRightNum); $rightNumSum = $right['right_num'] + $_POST['rightNum'];$sqlWrong = "update hm2 set wrong_num=$wrongNumSum where userid = 1"; $sqlRight = "update hm2 set right_num=$rightNumSum where userid = 1"; $msq -> exec($sqlRight); $msq -> exec($sqlWrong); if($_POST['lang']==0){ echo "當前錯誤答案總數:$wrongNumSum"; echo "當前正確答案總數:$rightNumSum";}else{ echo "Wrong number:$wrongNumSum"; echo "Right number:$rightNumSum"; }有計時功能,能顯示用戶開始答題后的消耗時間。
流程圖
代碼
//@setTime計時函數 并在點擊事件中調用函數 function setTime() { var hour = parseInt(timeIndex / 3600);var minutes = parseInt((timeIndex % 3600) / 60); var seconds = parseInt(timeIndex % 60); hour = hour < 10 ? "0" + hour : hour; minutes = minutes < 10 ? "0" + minutes : minutes; seconds = seconds < 10 ? "0" + seconds : seconds; $("#timekeeping").val(hour + ":" + minutes + ":" + seconds); timeIndex++; }//@stopTimekeeping() 停止計時,更改答題input框為只讀 function stopTimekeeping() { clearInterval(times); $(".test_in").attr("readonly", "readonly"); }界面支持中文簡體/中文繁體/英語
流程圖
代碼
function changeLang(lang) {switch (lang) {case 'auto':if (langShift == 1) {langShift = 0;$('.en').css("display", "none");$('.zh').css("display", "");$('#btn_create').val('點擊開始生成題目');$('#btn_judge').val('判斷并生成答案');$('#stopTimekeeping').val('停止答題(計時)');} else {langShift = 1;$('.en').css("display", "inline");$('.zh').css("display", "none");$('#btn_create').val('Create Question');$('#btn_judge').val('Judge');$('#stopTimekeeping').val('Stop Timekeeping');};url = ""break;case 'en':langShift = 1;$('.en').css("display", "inline");$('.zh').css("display", "none");$('#btn_create').val('Create Question');$('#btn_judge').val('Judge');$('#stopTimekeeping').val('Stop Timekeeping');break;case 'zh':langShift = 0;$('.en').css("display", "none");$('.zh').css("display", "");$('#btn_create').val('點擊開始生成題目');$('#btn_judge').val('判斷并生成答案');$('#stopTimekeeping').val('停止答題(計時)');break;}}程序調試
PSP
psp總結
本次作業比預計實現所花的時間要短,果然人多力量大,雖然在過程中大家也產生過一些爭論,但是大家也克服了并解決了問題。
作業總結
與第一次作業相比,產生了非常大改動,原本的程序已經被改的面目全非,只好重新規劃。
返回錯誤與計時器比較簡單,語言切換功能不是非常靈活。
雖然基本實現了題目所要求的功能,但是需要改進加強的東西還有很多。
望多多指教!
Coding
https://coding.net/u/augur_g/p/homework-2/git
結對照片
轉載于:https://www.cnblogs.com/haogege/p/6544650.html
總結
以上是生活随笔為你收集整理的结对编程1 - 四则运算生成器的改进(201421123040,60,61)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘一键启动怎么还原u盘启动盘 如何恢复
- 下一篇: 电脑win7系统怎么破解密码 win7系