结对编程 搭档个人项目分析

看别人的代码,我觉得是一个痛苦又会有所收获的过程,很多和自己的逻辑不相符的算法思路都是皱着眉头硬看下去,但有的完全理解后,转念一想好像又确实没啥毛病,甚至还比自己的思路巧妙了那么一些,拓展了自己下一次在面对同样问题时的解决思路

队友和我自己一样,也是用了c++(虽然和java一样都半斤八两,但毕竟是大一就学的语言总有点亲切的味道?)

先说优点,首先是注释很清楚,清晰的注释无疑让我的阅读体验上升了不少,可以明了地看出算法的思路(缓缓放下了手中的刀.......)

int Primary(int number,string file_Name)  //生成小学试卷的函数 ,number为生成题目数量,file_Name为储存.txt文件目录
{
    int num_Bracket=0;  //括号数目
    int bra_left;  //左括号
    int bra_right;  //右括号
    int flag;
    int sum=0;
    srand(std::time(NULL));  //随机种子
    ofstream file;
    file.open(file_Name.data());  //打开需要储存的.txt文件
    for(int i=0;i<number;i++)  //循环生成题目
    {
        file<<i+1<<".";   //题目编号
        int num=rand()%4+1;  //随机操作数
        for(int j=0;j<=num;j++)
        {
            bra_left=rand()%3+1;   //随机数,判断是否生成左括号
            flag=rand()%4;  //随机符号
            if(bra_left!=1)  //不产生左括号
            {
                if(num_Bracket!=0)  //前面的算式存在左括号
                {
                    int bar_right=rand()%2+1;  //随机右括号 ,概率为1/2
                    if(bar_right==1)  //生成右括号情况
                    {
                        file<<rand()%100+1<<")"<<sym_Pri[flag];
                        num_Bracket--;  //括号数目减一
                    }
                    else
                        file<<rand()%100+1<<sym_Pri[flag];  //不生成右括号
                }
                else
                    file<<rand()%100+1<<sym_Pri[flag];  //没有左括号不生成右括号
            }
            else if(j==0)
            {
                file<<rand()%100+1<<sym_Pri[flag];
            }
            else
            {
                file<<"("<<rand()%100+1<<sym_Pri[flag];  //生成左括号,括号数目加一
                num_Bracket++;
            }
        }
        file<<rand()%100+1; //保证至少存在两个操作数
        if(num_Bracket!=0)  //是否都有对应的右括号
        {
            for(int i=0;i<num_Bracket;i++)
            {
                file<<")";  //不对应则吧右括号全部加在最后
            }
        }
        num_Bracket=0;
        file<<"="<<endl;
        file<<endl;  //换行
    }
    file.close();  //文件关闭
}

其次是老师上课时提到的高内聚问题,本次项目需求的小学、初中、高中出题算法都作为单独的方法放到了主函数外,每个模块都做好了自己的事,main函数中的调用就显得简单明了

再就是变量命名,虽然有点单词不太恰当(hhh),但该大写的地方都大写了,再加上注释也不会让人对变量或者函数的作用产生什么异议

然后就说到不好的地方

问题首先也出在上面粘出的代码上,在生成小学题目的算法中,为了不让一个括号直接包住了整个算式这样的情况发生,队友用这样的语句

else if(j==0)
            {
                file<<tri<<rand()%100+1<<sym_Pri[flag];
            }

即第一个操作数前一定不会有左括号,强行阻止了这一情况的发生,但这样的话,就导致了如(1+2)*3这样的算式不会存在的缺陷

再然后的话,就是回车打少了代码看着有点拥挤,按照我自己的习惯的话,我是习惯在一个功能模块写完之后多打一行回车,以分隔一下代码,感觉就像写作文时分自然段一样?

最后的话,众所周知,结对编程要写ui了,然后!我们!都用的!c++!

也许这就是命吧

eclipse,打开

我继续改代码了

溜了溜了

原文地址:https://www.cnblogs.com/suru723/p/9715210.html

时间: 2024-11-06 12:46:37

结对编程 搭档个人项目分析的相关文章

我的结对编程搭档——常秉玉

我和常秉玉以前关系就不错,这个人为人很随和,只是做事有点死板,他做事总是循规蹈矩,平常还总爱上纲上线.他其实还保持着一颗童心(我的意思就是他的情商低),总之和他在一起编程有一种互补的感觉. 在编程的时候,常秉玉还是比较认真的,我编程比较随意,不太注重格式,代码效率,他在这方面就给予了我很大帮助,经常会给我提出一些改良代码的建议,但是他还是有些死板,有时候遇到问题解决问题的能力有些欠缺,不能灵活地思考问题的原因.还有,在这次的debug过程中,他测试出了很多bug,他总是能以奇特的输入使程序崩溃,

结对编程-队友个人项目分析

本次个人项目题目为,中小学数学卷子自动生成程序,我的结对队友Y同学使用的是C++语言. Y同学最终完成的项目:在交互,账号登陆,切换,题目文件输出都能够基本满足需求:代码思路清晰,结构整洁,函数注释也恰到好处,代码可读性较强. 他的函数大致为DengLu_type( )(登陆初始化函数),Denglu1( ) (用户,密码输入),change_in( )(读取题目数目,切换试卷难度),create_paper( ) (产生试卷),get_time( )(获取当前时间)这几个部分,清晰的表达了其缀

结对编程队友个人项目分析

队友代码分析: 优点: 1:首先在函数中对账号进行了判断 具有良好的扩展性,也方便之后的功能里面增加新的账号,并且进行了注释 2.结构的逻辑性良好,根据不同的年级,通过if语句能够跳转到对应的模块进行输出 3.代码简洁明了,方便阅读以及理解代码的功能实现 4.变量命名规,具有良好可读性 5.在对输入判断这方面,提示的很好 缺点: 1.对账号密码判断位于一行,影响了代码的可读性 2.在生成出题文件这块,没有注释具体生成的文件的位置,影响后续的测试,并且在文件名字上,没有按照需求中所给的名字进行文件

十分有趣却有些遗憾的结对编程——两位女程序员的挣扎

两人合作项目作业正式开始,一次真正意义上能够了解对方能力并互相努力互相鼓励共同进步完成项目的愉快的小型团队合作,本次合作我们两位女生的火花碰撞的很不错,打开了结对编程的新世界 阅读目录 题目要求 关于驾驶员角色 代码思想 界面显示 关于我的导航员 个人感想 题目要求 要求: 本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题. 在此我们选择了能够更好处理的题目1: 我们在刚开始上课的时候介绍过一个小学四则运算自

结对编程项目分析

前言. 今天彻底完成了结对编程项目. 从个人项目开始到结对编程结束,过程一直比较坎坷. 个人项目的困难主要集中在出题方面,再详细点还是括号问题,最初的个人项目只能完成括号内括号,不能生成两个独立的括号,这个问题在结对编程开始时,参照搭档的c语言代码,已经得到解决.主要思想是建立两个列表分别记录每个数字左右两边的括号情况. 综述. 因为是第一次真正做一个ui的比较完整的小项目,第一次用python来做ui,一切也基本上是从零开始,从网上找资料学会最基本的之后,越往后就越需要自己一点点摸索. 在开始

结对编程个人项目分析

项目需求 个人项目:中小学数学卷子自动生成程序 用户: 小学.初中和高中数学老师. 功能: 1.命令行输入用户名和密码,两者之间用空格隔开(程序预设小学.初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学.初中和高中三个选项中的一个.否则提示“请输入正确的用户名.密码”,重新输入用户名.密码: 2.登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学.初中和高中三个选项中的一个

结对编程作业

这是第一次尝试结对编程,在本次结对编程作业中为了更好地体会它的好处和特点,我和我的搭档分别扮演了驾驶员和领航者的角色. 作为驾驶员:在我编程的过程中,出现了一些小问题,比如忘加分号,这些小问题可以及时的发现.有时我也会问我的领航者一些疑问,省去了上网查资料的过程,提高了编程的效率.在代码复审的过程中,有的问题我在自己调试的时候没有发现.比如输入某些数据的时候,离黄金点最近的玩家得0分.还有程序的功能上的一些缺陷,也被进一步完善.编程的时候我们会有一些交流,交流使我们互相更加了解对方的编程风格,在

结对编程过程总结

(1)工作中的照片 (2)对方性格评价: 1.我个友善的人,愿意合作与交流,在与我的合作学习和探究活动中,能选择自己擅长的方式(语言.文字.图表等)表述研究过程和结果;主动提供自己的资料和想法,与我分享自己智慧,思路,体验合作的愉快.能倾听和尊重我提出的不同观点和评议,能对研究过程和结果进行评议,并与我交换意见,充分体现结对编程的价值. 2.是个谦逊的人,在与我的合作交流中,我们做到相互尊重,相互信赖,认真倾听对方意见,勇于承认自己的不足,有虚心向对方学习请教的良好风尚,能在合作交流中正确地评价

结对编程—黄金点游戏WinForm单机版

本小游戏场景来自邹欣老师的<移山之道>一书: "阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫"黄金点"的游戏:N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金