结对编程:对个人项目(试卷自动生成)的评价

时间:2019-09-19
本文章向大家介绍结对编程:对个人项目(试卷自动生成)的评价,主要包括结对编程:对个人项目(试卷自动生成)的评价使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

优点:

一、代码逻辑清晰,可读性高

1、从main函数中主要分为了三个部分:小学出题(number0)、初中出题(number1)、高中出题(number2)

            number0:
            cout<<"****************当前选择为小学出题****************"<<endl;
            cout<<"请输入切换试卷类型或者生成试卷"<<endl;
            cout<<"command=>";
            cin>>command;
            if(command=="切换为初中")
            {
                goto number1;
            }
            if(command=="切换为高中")
            {
                goto number2;
            }
            if(command=="生成试卷")
            {
                number4: 
                cout<<"准备生成小学数学题目,请输入生成题目数量(10-30之内包含10和30)(输入-1将退出当前用户,重新登录):";
                int number;
                cin>>number;
                if(number==-1)
                {
                    goto number3;    
                }
                else if(number>30||number<10)
                {
                    goto number4;
                }
                else 
                {
                    string str=".\\"+name+"\\小学\\"+getTime()+".txt";
                    pri_ques(number,str);
                }
                    cout<<"****************出题完成****************"<<endl; 
            }
        }

(其他类似)

另外加入number3为退出登录节点,number4位重新输入数量节点

2、基于年级出题的函数,三个函数负责各年级出题。通过在for循环中依次为式子添加操作数以及符号,在一个循环中,加一个操作数,再加一个符号,同时写入文件。循环结束,式子完成写入文件。

二、巧妙设置符号随机出现

string high_symbol()
{
	string ss;
	int x=rand()%3;
	if(x==0)
	{
		ss="sin";
	}
	else if(x==1)
	{
		ss="cos";
	}
	else if(x==2)
	{
		ss="tan";
	}
	else if(x==3)
	{
		ss="";
	}
	return ss;
}
                st1=high_symbol();
                out<<st1;

通过设置0-3分别对应sin cos tan 以及 空,最后返回的st1也是这四种结果,可以使得在每一个操作数前都随机取一个st1,这样就实现了可能出现sin cos tan可能不出现的效果。这比我设置sin cos tan随机从式子中哪个位置开始出现方便得多。

三、代码运行速度快

与我代码相比较,何同学的代码一打开来就可以直接输入,而我的需要让程序加载一会,这也可能是因为他的代码更加详尽,通过牺牲代码长度换来代码运行速度。

缺点:

一、重复的代码块略多

由于代码思想的不同,何同学想的是一边生成一边写入,这就决定了在生成式子的函数中,初中高中无法直接调用小学函数,这也就导致初中高中需要把小学函数做的事情再做一遍。

二、查重部分较为复杂

还是因为是一边生成一边写入的方法,这会带来问题:即使这个式子重复了可是已经写入了。所以当重复时就需要先删除当前文件的最后一行,而删除文件的操作又是比较麻烦的。光是删除最后一行的操作就近乎100行。

原文地址:https://www.cnblogs.com/neti/p/11552628.html