結對編程作業-同學代碼分析
阿新 • • 發佈:2018-09-28
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());
結對編程作業-同學代碼分析