结对编程1 - 四则运算生成器的改进(201421123060 61 40)

题目描述:

我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:

  1. 记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
  2. 有计时功能,能显示用户开始答题后的消耗时间。
  3. 界面支持中文简体/中文繁体/英语,用户可以选择一种。

 

分工说明:

  由于我们班人数为奇数,我们成立了三人小组,成员分别是谷天鹏(60),常昊(61),孙佳萱(40)。

谷天鹏:

  完成具体网页界面的编写,php与前台js交互部分的编写,实现利用数据库记录对错总数。

  语言切换的设计与编写。

  各种方法的封装。

常昊:

  建立数据库。

  编写计时器算法并完成计时器功能。

孙佳萱:

  中英文切换语言词典等js配置文件的编写

  web界面的样式整改。

程序设计与实现:

 1.存储正确及错误题目数量

流程图

具体代码

 1             $.post("ajaxTest.php", {
 2                     wrongNum: wrongNum,
 3                     rightNum: rightNum,
 4                     lang: langShift
 5                 },
 6                 function(data) {
 7                     $('#record').text(data);
 8                 }
 9             );
10             wrongNum = 0;
11             rightNum = 0;
12         }
 1 require './MySQLDB.class.php';//引入数据库操作类
 2 //数据库配置信息
 3 $config = array(
 4     'host'=>'localhost',
 5     'port'=>'3306',
 6     'user'=>'root',
 7     'pass'=>'123456',
 8     'charset'=>'utf8',
 9     'dbname'=>'sqltest',
10 );
11 $msq = MySQLDB::GetInstance($config);
12 
13 $sqlReadWrongNum="select wrong_num from hm2 where userid = 1";
14 $wrong = $msq -> getOneRow($sqlReadWrongNum);
15 $wrongNumSum = $wrong['wrong_num'] + $_POST['wrongNum'];
16 
17 $sqlReadRightNum="select right_num from hm2 where userid = 1";
18 $right = $msq -> getOneRow($sqlReadRightNum);
19 $rightNumSum = $right['right_num'] + $_POST['rightNum'];
20 
21 $sqlWrong = "update hm2 set wrong_num=$wrongNumSum where userid = 1";
22 $sqlRight = "update hm2 set right_num=$rightNumSum where userid = 1";
23 $msq -> exec($sqlRight);
24 $msq -> exec($sqlWrong);
25 if($_POST['lang']==0){
26 echo "当前错误答案总数:$wrongNumSum";
27 echo "当前正确答案总数:$rightNumSum";
28 }else{
29 echo "Wrong number:$wrongNumSum";
30 echo "Right number:$rightNumSum";
31 }

传入该次做题正确及错误数目,并在record div标签打印返回信息。

 

2.计时器功能

流程图

具体代码

 1         //@setTime计时函数 并在点击事件中调用函数
 2         function setTime() {
 3             var hour = parseInt(timeIndex / 3600);
 4             var minutes = parseInt((timeIndex % 3600) / 60);
 5             var seconds = parseInt(timeIndex % 60);
 6             hour = hour < 10 ? "0" + hour : hour;
 7             minutes = minutes < 10 ? "0" + minutes : minutes;
 8             seconds = seconds < 10 ? "0" + seconds : seconds;
 9             $("#timekeeping").val(hour + ":" + minutes + ":" + seconds);
10             timeIndex++;
11         }
12 
13         //@stopTimekeeping() 停止计时,更改答题input框为只读
14         function stopTimekeeping() {
15             clearInterval(times);
16             $(".test_in").attr("readonly", "readonly");
17         }

3.语言切换功能

根据不同性质的文本内容利用不同的方法实现中英文动态无刷新切换功能。

 

具体代码

        //切换语言
        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;
            }
        }

 程序展示

1.计时功能

 

2.记录对错

3.中英文切换(无刷新切换语言)

psp

 

自评

选择使用数据库保存数据是为了能更好的扩展功能,比如登录,注册和信息管理。第一周做时js占比重太大,所以并不好修改,只是利用ajax返回了对错数量和语言配置变量。做语言切换时想要使用cookie保存语言设置以便下次登录可以保存之前的语言配置,但没能完成,应该是cookie设置没有足够掌握,语言切换仍然不能灵活切换,只可以做到生成的文本部分利用中英文对照词典的方法做到切换语言,而别的部分仍然需要不小的工作量,程序如果复杂得话这就不是一个很好的方法。总体来说实现了题目要求的功能,但仍需努力,可以改进的地方还有很多。

 

 

 

项目地址:https://coding.net/u/augur_g/p/homework-2/git

转载于:https://www.cnblogs.com/augurG/p/6537373.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ChatGPT结对编程是一种将两个程序员合作编写代码的技术。这种技术可以提高编写代码的效率和质量,同时也可以提高两位程序员的技能水平。以下是ChatGPT结对编程的步骤: 1. 首先,找到一个合适的编程伙伴。最好是一个有一定编程经验的人,但如果你是新手,也可以与另一个新手合作。 2. 确定你们编写的代码项目。你们可以选择一个共同感兴趣的项目或者一个有挑战性的项目。确保你们都对项目有一定的理解。 3. 确定你们的角色。一个人可以担任主要代码编写者,另一个人可以担任代码审核者。这样可以确保代码的质量。 4. 确定编程环境。你们可以使用一个共同的编程环境,如Visual Studio Code或者Atom。也可以使用在线编程环境,如CodePen或JSFiddle。 5. 开始编写代码。一个人负责编写代码,另一个人负责审核代码。在编写代码的过程中,你们可以随时通过聊天工具进行交流和讨论。 6. 定期进行代码审核。定期进行代码审核可以确保代码的质量。你们可以定期的分享代码,并相互审核对方的代码。 7. 完成项目并进行总结。完成项目后,你们可以总结你们的经验和教训,并提出改进建议。这将有助于你们以后更好的编写代码。 总之,ChatGPT结对编程是一种非常有用的技术,可以提高编写代码的效率和质量。通过合作编写代码,你们可以相互学习,相互支持,以及增强你们的编程技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值