1. 程式人生 > >結對編程作業-同學代碼分析

結對編程作業-同學代碼分析

cti spa ++ 顯示 沒有 原函數 word pat color

查看了同學的代碼,發現其代碼總體寫的簡潔優美。

優點有:

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());

結對編程作業-同學代碼分析