结对编程作业-同学代码分析

查看了同学的代码,发现其代码总体写的简洁优美。

优点有:

1.所有常用中文字符都放进了数组,方便之后的运用

2.用一个for循环判断所有登陆情况,十分方便

for(int i=0;i<9;i++)
    {
        if(user == userLib[i] && password == passwordLib[i])
        {
            flag = 1;
            flagNianji = i/3;
            break;
        }
    }

3.小中高每个阶段都完整包含之前的需求

4.切换和输出函数功能完整且简洁

缺点有:

1.可能出现一个数两边有括号

int temp1 = (rand()%100)+1;
                if(rand()%10 == 0)          //左括号
                {
                    fout<<"(";
                    flagZuoKuohao++;
                }
                fout<<temp1;
                if(rand()%10 == 1)        //右括号
                {
                    if(flagZuoKuohao>flagYouKuohao)
                    {
                        fout<<")";
                        flagYouKuohao++;
                    }
                }

因为两个rand()值不同,有可能同时取到左右括号。

可以先设一个变量保存rand(),这样能避免一个数同时出现左右括号

2.三角函数没有设定特殊值,现实意思较小

3.输出时间命名文件函数较为繁琐,可以优化

原函数:

string date()
{
    time_t tv;
    tv = time(NULL);//time(&tv); get current time;
    //cout << ctime(&tv) << endl;//显示当前时间
    tm *local;
    local = localtime(&tv);
    //cout << asctime(local) << endl;//显示当前时
    char *temp = asctime(local);
    const char *d = " :";
    char *p;
    p = strtok(temp,d);
    string date[8];
    int dateCount = 0;
    while(p != NULL)
    {
        date[dateCount] = p;
        dateCount++;
        p = strtok(NULL,d);
    }
    int len = date[dateCount-1].length();
    char temp1[5];
    for(int i=0;i<len-1;i++)
    {
        temp1[i] = date[dateCount-1][i];
    }
    date[dateCount-1] =temp1;
    for(int i=0;i<13;i++)
    {
        if(date[1] == mouth1[i])
        {
            date[1] = mouth2[i];
            break;
        }
    }
    string ans = temp1+days[0]+date[1]+days[1]+date[2]+days[2]+date[3]+days[3]+date[4]+days[4]+date[5]+days[5];
    string temp2 = ".txt";
    ans+=temp2;
    //cout<<ans<<endl;
    return ans;
}

可以按下面这种方式,更简洁:

CreateDirectory(name.c_str(),NULL);//创建该账户的文件夹 
    time_t t = time(0);    //获取时间戳
    char tmp[64];
    strftime(tmp,sizeof(tmp),"%Y年-%m月-%d日-%H时-%M分-%S秒.txt",localtime(&t));//将时间戳转换成日期
    string path=name+"//"+tmp;//进入name目录下,以时间命名 
    ofstream file;
    file.open(path.c_str());

猜你喜欢

转载自www.cnblogs.com/tzx2233/p/9716539.html