结对编程---结对项目带UI的小初高数学学习软件
带UI的小初高数学学习软件
一.题目要求
功能:
1、所有功能通过图形化界面操作,可以是桌面应用,可以是网站(编程语言和技术不限);
2、用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册;
3、用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功;
4、密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量;
5、用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题;
6、最后一题提交后,界面显示分数,分数根据答对的百分比计算;
7、用户在分数界面可选择退出或继续做题;
8、小初高数学题目要求见个人项目。
二.功能实现
1.图形化界面:采用html和css,以及js来构建前端,打开网页后整体显示为:
可以在账号密码中输入手机号,手机号输入不正确会提示,我们点击注册,可以获得注册的界面。
之后注册完毕后登录系统即可操作:
2.用户注册功能由于无法实现数据库连接而失败
3.题目生成:选择小学这个选项,输入10,点击开始,系统将随机生成题目:
题目完全随机,且生成的四个选项中有正确的答案,功能实现,快速做完10道题目后
上方提示有:
100分满分,得到10分,说明对了一个题目
三。代码检查
一.界面设计
整体采用网页的设计流程,由于功能简单,直接在前端实现了功能,所以导致数据库难以链接
专门看到算法这一部分,算法的设计并不是很难,采用js来实现:用两个参数来区别高中和初中的题目很好的避免了代码的重复:
代码用了随机数来生成需要的几个对象数字,难点在于如何计算,这里采用将先化简在求值得方式,由于三角函数无法计算,所以采用几种
特殊情况下的三角函数值,随机数在数组中的某个位置也对应了一个对应得值,也就是代码中timu和jiantimu两个东西,timu是用户看到得题目
样式而jiantimu则是化简好得”算式字符串",然后可以用eval()函数计算出值即可
三.自己的经验与教训
1.这是我的第一次结对编程体验,给我带来一种新的编码方式,通过两个结对编写代码,我们互相发现对方编码中的小错误,互相提醒,提高了我们编码的正确性,减少了我们后期的调整调试的时间,很大提到了我们的编码效率。同时,我们又在不同的方面了解更多一些,我更熟悉后台编码的实现,而我的队友更熟悉前端界面的实现,我们各有所长,在相应的部分我们可以发挥各自的长处,大大提高了我们整个项目的实现效率。在这次结对编程中,通过和队友的对比也发现了自己还有很多不足,在接下来的学习中,我将会更加努力提升自己的能力。
2.加强了我自己的自主学习能力,让我对一门全新语言进行了了解与学习加强了我对网页的理解,知道了一个项目开发中会出现大量的矛盾,而这又要我们进行良好的协商与沟通。就像我们这次出现的问题,由于操作简单
我们直接将数据的处理放在了js的脚本上,而没有去写后端,造成的结果是我用的浏览器根本没有权限去访问本地的数据库,甚至当我调用文件生成的时候,只能生成,写入,但是读不了文件,这是个很大的问题