结对编程

从个人项目到结对编程

馋奶兔 提交于 2019-11-30 16:48:57
个人项目: 中小学数学卷子自动生成程序 结对编程 项目: 带 UI的小初高数学学习软件 从个人项目到结对编程,可以复用的就只有出题部分,由于个人项目时,出题函数做的并不是很好,好多括号加的没有必要,所以在做结对编程时,对出题函数进行了修改,下面是修改前和修改后的题目比较 接下来进行结对编程的内容,我的搭档负责设计界面和各个界面之间的连接,我负责计算得数等 1.首先将中缀表达式转化为后缀表达式,因为后缀表达式对计算机更友好,方便计算 原理就是:定义一个List用来存后缀表达式,一个栈来存表达式中的操作符,然后遍历字符串:   1.如果为数字,则直接存进List,如果为(,则直接入栈,   2.如果为),则将栈中的内容弹出存入List,直到遇到(,然后弹出(,   3.如果为操作符,如果当前操作符的优先级高于栈顶元素,则直接入栈,否则,弹出栈顶元素到List,知道栈顶元素的优先级低于当前操作符 (PS:优先级的定义为 (最低,其次是"+","-","*","÷",然后是"√","²","sin","cos","tan";) 2.接下来,进行运算  public static String operate(String p,Stack<String> v) 由于double有精度问题和计算机中的存储问题,所以我使用BigDecimal类进行精确运算   1.BigDecimal类的定义

【结对编程总结】数学题目生成系统项目

 ̄綄美尐妖づ 提交于 2019-11-30 16:45:58
这几天我与范章木同学结对制作了一个简易的数学题目生成系统项目,以下是结对与协作的过程中我收获的感触。 此次结对编程项目虽然基于个人项目,但经过几天的修改,最后成品几乎与个人项目无关,只保留了一点逻辑框架。 在此次结对编程项目中,为了满足项目需求,我重写了【题目生成模块】,给项目并加入了【短信发送模块】和【答题模块】。因为个人项目所作的UI过于小气,不易扩展更多功能,我与范章木同学一同又重写了所有的【UI界面】。 最终的项目可简单分为:用户管理模块,题目生成模块,短信发送模块,UI界面模块,数据库管理模块,分别由User、Question、SmsControl、UI、DBControl几个类负责。 题目生成模块 在个人项目中我简单实现了在可算约束下的题目随机生成,生成效果符合需要但方法不对,最后需求答案时很难计算,于是我直接重写了题目生成模块。 新的题目生成模块中将每个计算单独作为一个对象使用,每个符号运算对应着一个类,这些符号运算类都有一个共同父类Calculate,其规定了必须实现的多态方法。 每个符号运算类必须实现getValue()和getString()两种方法,在实际实现中,每个类内部有相应数量个Calculate成员变量指向其他符号运算。 当需要得到答案值或者式子,便从最表层开始从外向内递归调用相应函数,在每个对象内部组合传出,最终得到具体的式子

结对编程总结

笑着哭i 提交于 2019-11-30 16:44:18
这次结对编程,我们选用的是 java 语言,通过 eclipse 实现逻辑部分和 ui 显示。对于 ui 设计,因为 eclipse 软件自带有 gui ,而一开始设置显示窗口以及窗口内部件的大小是通过代码设置长、宽以及显示模式等,对于调整和美化很不方便,所以下载了可视化编辑窗口显示的插件,在这之后对于 ui 的设计以及编辑十分的方便,有利于很快得将部件调整到合适的位置和大小。 由于使用的 java 语言,特点是面向对象,因此我们将每一块的功能定义为一个大类,函数封装在类里面,便于在编程和调试时快速定位到想要编辑和修改调试的地方。很多的类我们将想要进行的操作放到构造函数中,这样的设计的好处就是如果需要实现某些功能的话只需要新生成这个类就可以了,不需要像把功能单独放在构造函数之外时还要再去调用函数,实现功能的同时减少了代码的数量。 因为是在个人项目的基础上添加功能并使用 ui 进行显示,所以就需要学习用 Java 实现 ui 的显示以及通过键盘和鼠标的输入信号来触发相应的事件。比如对于做题界面中每道题的按钮,我们通过多线程的方式监听鼠标,鼠标左键或右键点击触发跳转或标记题目的操作。 还有就是对于功能模块与功能模块直接的接合,需要弄清楚每一个模块的功能以及参数等,接合的同时进行多次调试,多考虑一些参数中的特殊情况,确保当前功能模块加上去之后在运行时不出现错误和 bug

结对编程总结

落爺英雄遲暮 提交于 2019-11-30 16:43:47
结对编程是个人项目的扩展与升级,在发布任务的第一天晚上我和队友就给对方讲解了自己的代码并且确定了各自的任务,因为队友的代码较我的更为符合要求,所以我们选取以陈同学的代码为基础进行修改。 六个类中第一个是aliyun的短信服务,Produce是生成题并且算分的功能,其余都是构建的界面,具体作用看名字应该容易区分。 结束之后再总结这次编程,最大的感觉是难度不大但是工作量较大。下面就是我对本次编程各方面的感受与收获 短信发送验证码服务,刚知道题目要求是没有想到真的可以实现手机号发送验证码的功能。开始的设想是生成随机数,在控制台或者界面输出充当验证码。但是经过百度以及周围同学的启发,我们选择了阿里云的短信服务,方便安全操作也不难,在申请通过后导入官网给的api就可以了。虽说难度不大但是收到短信的时候还是有一些小小的兴奋的 界面的设计,因为对java的ui功能并不是特别熟练,一开始对各种按钮、标签的位置大小设定都是一点点尝试的,后来发现了一个插件windowbuilder,可以直接在面板上添加配件,后台会自动生成代码,十分方便,这样界面的问题也就基本解决。后期只需要加上监听函数就可以了 遇到的另一问题就是当跳出提示验证码/密码错误的界面时如果关闭跳出界面原界面也会一起关闭,后来经百度了解到只要将参数“EXIT_ON_CLOSE”改为”HIDE_ON_CLOSE“即可解决。

结对编程 总结

送分小仙女□ 提交于 2019-11-30 16:42:26
结对编程总结 这次结对编程需要我们在个人项目的基础上,加入GUI界面设计,发送短信验证码,对题目分数进行判断等功能。个人项目里我用的C++语言,相对而言java真的会使编程过程轻松很多,所以这一次在我队友的基础上进行Java工程设计。 带UI的小初高数学学习软件 功能: 1、用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册; 2、用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功; 3、密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量; 4、用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题; 5、最后一题提交后,界面显示分数,分数根据答对的百分比计算; 6、用户在分数界面可选择退出或继续做题; 7、小初高数学题目要求见个人项目。 其中的重点便在于短信注册码的产生与界面的种种设计,我负则的内容为短信部分,登陆判断部分与部分GUI界面的设计等,相对而言更加的轻松: 在界面的设计上,我们参考了支付宝

结对编程总结

前提是你 提交于 2019-11-30 16:38:10
结对编程总结 这次结对编程需要我们在个人项目的基础上,加入GUI界面设计,发送短信验证码,对题目分数进行判断等功能。个人项目里我用的C++语言,相对而言java真的会使编程过程轻松很多,所以这一次在我队友的基础上进行Java工程设计。 带UI的小初高数学学习软件 功能: 1、用户注册功能。用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册; 2、用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功。密码6-10位,必须含大小写字母和数字。用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功; 3、密码设置成功后,跳转到选择界面,界面显示小学、初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量; 4、用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题目,题目全部为选择题),界面显示第一题的题干和四个选项,用户选择四个选项中的一个后提交,界面显示第二题,...,直至最后一题; 5、最后一题提交后,界面显示分数,分数根据答对的百分比计算; 6、用户在分数界面可选择退出或继续做题; 7、小初高数学题目要求见个人项目。 其中的重点便在于短信注册码的产生与界面的种种设计,我负则的内容为短信部分,登陆判断部分与部分GUI界面的设计等,相对而言更加的轻松: 在界面的设计上,我们参考了支付宝

复用个人项目实现结对编程项目总结

会有一股神秘感。 提交于 2019-11-30 16:37:53
一、项目需求 1、注册登录:用户提供手机号码,点击注册将收到一个注册码,用户使用该注册码完成注册并设置成功密码,然后利用注册信息登录; 2、功能选择:可以在线选择修改密码和继续做题; 3、正式出题:可以选择难度和题目数量,每道题有四个选项,最后显示得分; 4、结束部分:可选择继续做题或退出。 二、项目复用 之前的个人项目我和队友都是用C++写的,由于觉得java写界面和短信验证实现比C++容易,所以就改为java编程。这次的结对项目虽然有些功能实现仍然是参照了先前的个人项目,但是也有几个不同于个人项目的点: 1、注册登录: 在登录界面选择注册,注册时需要输入用户信息,其中密码必须限制在6-10位并且有大小写和数字,且再次输入的密码必须和先前一致,然后通过手机号接受短信验证码(事先在阿里云注册过),然后按下确定,如果密码不一致或者用户名手机号已被注册均会弹出提示信息,否则的话提示注册成功,并且会将用户信息存入到用户信息txt文件中,方便以后的查询使用和删除。后面的修改密码部分就是通过查询txt中用户信息以进行修改。 2、出题部分: 出题部分仍然是沿用了先前项目的思路,基本上没有多大问题,可以正常显示在界面上,只是需要添加一个计算结果。这次项目的主要问题就出现在了计算结果的部分,我们的思路是利用Java中自带的函数将带sin、cos、tan、幂和开方的数转化为正常的数替换到字符串中

软件工程导论——结对编程项目总结

眉间皱痕 提交于 2019-11-30 16:31:07
结对编程总结 1、关于复用个人项目实现结对编程项目 在与结对伙伴的讨论后,决定了各自负责的需求,那么我负责的是实现生成试卷以及答题窗口。对比个人项目,我需要实现的功能是显示一个答题窗口,而且每次显示一题,在答完了一题之后才可以进行答下一题,直到答完最后一题,点击提交试卷就会显示试卷分数。所以如何复用呢?相对于在个人项目中直接的生成试卷并写在 txt 文件中,这一次我把试卷题目和答案存储在一个二维字符串数组里,并且把生成试卷的方法以及显示窗口的方法写在两个类中,在显示窗口的类中调用生成试卷的类并实现其中的方法,将题目数据传到显示窗口类中,将其一题一题显示。 2、结对编程经验教训 ①控制显示内容 在做项目的过程中,一个待实现的需求是答完一题才能进入下一题的答题,在我把四个单选按钮实现之后,在 “下一题”这一个按钮上我发现无法直接让显示试题内容的标签的内容跳到下一题 ( 我用一个整数控制第几题,而按钮监听器无法对其进行控制 ) ,在查询了网上的做法之后,发现必须把控制显示试题第几题的整数设置为类的静态变量成员,如此才能在按钮的监听器上改变其的值,以此做到做完一题就会跳下一题。 ②关于静态方法以及类方法 在做项目之前与伙伴的讨论中,伙伴建议我多写几个类,这样可以做到每个功能对应的类,阅读起来一目了然,我也觉得这样做很好,但在实现窗口的类中 ( 此类为主类 )

结对编程-带UI的小初高数学学习软件-分析总结

自古美人都是妖i 提交于 2019-11-30 16:27:08
开发环境选择的是VS2015,使用Win32 API进行开发。我主要负责软件UI的设计和实现,队友负责算式的计算,最后一起实现短信验证码的发送功能,再进行整合。 代码复用的主要部分是生成题目的部分。 UI界面的实现:   并没有使用 已经将已经将Windows界面程序的创建过程完全封装的Qt或者MFC进行实现,而是比较底层的使用Win32 API 手动创建窗口以及各种需要用到的窗口控件和手写消息处理函数。怎样做的坏处很明显,就是会导致巨大的代码量以及长久的开发周期,但对于理解Windows窗口程序的底层实现原理会相当有帮助。   整个程序只创建了一个窗口,采用Dialog控件作为子窗体,将Edit,Button,等控件布局在Dialog上,组装成为一个类,用来表示一个界面,在进行界面切换时只需要对不同的类的实体进行新建和删除操作就行了。   每一个界面可能涉及到的操作和逻辑全部放到Dialog控件的消息处理函数里面实现,使程序结构更加分明。 短信验证码:   采用curl和OpeSSL实现发送短信验证码功能,因为软件下载和环境搭建过程相当繁琐。。。 经验与总结:   MSDN是个好东西。   加深了对Windows窗口程序运行机制的了解。   认识到了WM_COMMAND消息与WM_NOTIFY的区别。WM_NOTIFY与WM

结对编程感想

可紊 提交于 2019-11-30 16:26:52
结对编程要求实现一个带UI的小初高数学试卷出题系统。因为个人项目实现了针对小初高不同难度的数学出题,因此结对编程主要需要实现的是UI的设计。我和我的队友选择了使用NetBeans基于java来实现结对编程项目。NetBeans可以十分便利的创建窗口以及组件。在新建项目和新建JFrame窗口后,点击窗口可以在右侧组件面板中选择需要的按键以及输入框。因此,通过NetBeans方便的功能比较直接的完成了窗口的设计。因为结对编程出题要求为选择题,因此要对个人项目进行改进,主要是要增加选项,一个正确选项与三个随机错误选项。我们的解决方法是,先求得问题的正确答案,再在1-4中取随机数,确定正确答案选项位置,其他三个选项根据正确答案进行一些简单的随机运算即可。统计正确的题目数/全部题目数*100即可得到成绩。但是由于技术的不足,没有实现短信验证服务的功能,在导入阿里相关jar包时碰到了问题,由于时间关系不得不放弃。通过这次结对编程,我收获了很多,其中最为重要的不是专业知识的提升,而是和他人合作完成项目的经验,在未来的学习和工作中,和他人合作完成项目将是家常便饭,如果没有相关的经验,在和别人合作的过程中难免产生矛盾和问题,导致1+1<2。所以这次结对编程的体验对于未来的学习和工作生活都有着深远的影响。 来源: https://www.cnblogs.com/angra/p/11603980