结对编程之队友代码分析

优点:

  1. Java GUI界面:

界面简约,操作简单,实用性强

    2 .独特的解题思想(上代码)

//生成对应年级的题目

    public String getSubject(int type) {

Random rand = new Random();

int Num,NumOpe;

if(type
== 0)   NumOpe = 4; //小学运算符下标取前4个

else if(type == 1) 
NumOpe = 12;    //初中运算符取前12个

else NumOpe = 24;   //高中运算符取前24个

Num = rand.nextInt(4)+2;  //操作数个数

String Subject1 = " "//初始化题目 序号(eg:1.)后有空格

for(int i = 0; i < Num; i++)

{

if(i ==
Num-1)  //最后一个操作数则后面不用加运算符

Subject1 += (rand.nextInt(100)+1);

else

Subject1 += (rand.nextInt(100)+1) + (Operator[rand.nextInt(NumOpe)]);

}

return Subject1;
    }

短短一个几行的函数,生成了具有不同长度,不同类型,随机化程度高的算术题,充分展现思维的灵活性,也让我学到了这种巧妙的解题方式;

    3.程序较高的模块性:

所有操作封装成对应的函数,主函数简单明了;

       public static int toHash(String str)
       void re_title(String name)
        String getTime()
       public Boolean check_xiaoxue()
        public Boolean check_chuzhong()
       public Boolean check_gaozhong()
        public String getSubject(int type)

    4. I/O处理人性化:

可以自由的改变输出文件夹的位置

File folder = new File("F:\\试卷");  //生成放试卷的文件夹
if(!folder.exists()){  //如果文件夹不存在
    folder.mkdir();   //创建文件夹
}
 5.  Hash去重:简单高效的去重方式
public static int toHash(String str)                                                    //字符串哈希函数,返回字符串生成哈希值
{
    int hashcode = 0;
    int length = str.length();
    int letterValue = 0;
    for(int i = 0; i < length; i++)
    {
        letterValue += str.charAt(i);
        hashcode = letterValue % 301;
    }
    return hashcode;
}
缺点:
    代码过长,可以写一些复用函数来精简代码;

原文地址:https://www.cnblogs.com/suwenjiang/p/9710902.html

时间: 2024-10-07 02:11:04

结对编程之队友代码分析的相关文章

结对编程:队友代码分析

按照结对编程要求,对队友的代码进行分析.在代码中发现的问题可以提醒队友或者警示自己. 优点: 一.代码以外: 1.使用语言为Python,比起JAVA和C++方便许多,而且实现许多功能也方便许多,可以说是从开始就为拓展打好了基础.事实上也的确因为这点,我们选用了他的代码作为核心 2.文件按功能分为几个文件,命名为CreatSymbol.CreatFirst.CreatSecond.CreatThird.Test.各个函数位置明确,命名规范 3.注释详细且明确.文件/函数的开头都有注释,各关键部分

中小学数学卷子自动生成程序-结对编程之队友代码分析

一.编程语言:C++ 二.代码解读与分析: 1. 项目逻辑 通过输入信息与数组中存储账户信息比对完成用户登录.根据不同的类型要求生成相应类型的试卷并查重.将生成题目以指定的形式存放在指定文件夹下.过程中可切换试卷类型. 2.函数功能说明 int main():主函数负责调用各个功能函数,将各个功能模块按照项目实际的使用情况与应用逻辑结合适当的提示性信息进行组织和套用. void SetPrimary(int n):生成小学类型的试卷. void SetMiddle(int n):生成初中类型的试

结对编程_队友代码分析

项目需求:完成一个能够根据用户身份和用户请求自动生成小学,初中,高中试卷的程序,具体要求就不细说了. 队友代码的赏析:首先我得说说他的优点,不然你看缺点可能会很累(开个玩笑啦),程序的基本功能可以实现,能够对不同用户的不同需求通过随机数生成相应试卷,同时也能够创建txt文件在个人相对应的文件夹目录下,对于稳健操作的相关代码有一定的了解,实现通过循环输入判断输入是否合法,生成的三个等级的试卷有难度区分度并满足出题的基本要求. 不足: 1.从生成的题目来看,首先漏了两个要求,一个是比较难处理的括号问

结对编程——对队友代码分析

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

结对编程评价队友代码

队友使用C++实现该个人项目,十分地面向过程 1.首先是用户初始化 优点:使用map方便检索 缺点:增加用户比较麻烦 2.main函数实现 登陆.生成题目.切换题目难度功能 其中使用while循环来实现各功能界面间切换的功能,第一层while循环是登陆,登陆成功进入第二层循环生成题目,若输入“切换为XX”,但XX不为小学初中高中的任意一个,会进入第三层循环要求输入以上任一难度. 优点:层次分明,层层递进 缺点:如果界面数量变多,继续使用该方法会使得代码臃肿,可读性变差 3.使用流水线方式生成一道

结对编程队友代码分析

这次结对编程的队友是可熊,感谢可熊不嫌弃我这个鶸,,和我组队 通过分析可熊的代码,深刻体会到了自己代码的不规范以及代码可延展性的缺失 比如using namespace std; ,这一行代码虽然自己写的时候很方便,但没有考虑到别人的编程习惯,某些工程代码里会出现以关键字做变量名的情况,这样写会不兼容 所以要用cin,cout作为标准输入输出应该如下面代码: int x; std::cin >> x ; std::cout << x << std::endl; 或者像这

结对编程初体验——代码复审

这一次和室友结对编程,第一项任务就是互看代码.想到上一次这样认真看她的C++代码,是一年前学程序设计这门课时,帮她人工debug.虽然都是从头到尾认真读代码.通逻辑,感觉却是不同的,之前的关注点是bug在哪,而现在却是带着任务的,要关注代码核查表中的项目.结果看着看着,总感觉自己在找茬dbq 回归正题↓ 编译环境:Dev-C++ 5.9.2 程序语言:C++ (一)优点: 能发现的优点,大多都是自己的缺点 1.代码可读性强. 通过详细的注释,即便是我们两个的个人项目使用的不是同一种语言,我看懂她

软件工程导论 结对编程 队友代码分析

这次的个人项目是中小学数学卷子自动生成程序,每个人都自己动手编写了自己的代码.今天的任务是看队友的代码,并指出他代码中的优点和缺点. 以下是对队友代码的个人评价. 优点: ①代码结构组织有序. 代码非常的模块化,每一个函数的功能清晰明了,框架结构清晰.而我是一个main()函数写到底,这一点我应该以后注意. 他的框架 我的框架 ②交互友好 经过对程序的实际测试,发现交互是非常友好的,我每一步都知道我应该输入什么内容,他做的比项目原本需求的交互更好. 比需求更加人性化. ③程序严谨,测试未发现明显

结对编程之队友篇

我的队友是戴旭文,他的编程能力的确比较强,我们一起讨论这个作业的时候,他的想法比较多,而且我没有想到的他也帮助我引导我怎么去构想,也感谢老师给我安排了一个这么给力的队友. 一开始我们都坚持各自的想法,觉得还是自己的想法好,别人的都不好,争执不下,本想那就自己做自己的,但是如果这样的话,那我们结对编程就没有什么意义了,最后各自让步,俩人一起讨论一个比较适合彼此想法的思路.我们一般约在图书馆六楼研究室一起学习,有时候编程过程中我们有需要翻资料书籍的,就直接可以到图书馆五楼借相关的专业书籍查找资料,这