1. 程式人生 > >結對編程-隊友代碼分析

結對編程-隊友代碼分析

() 一起 的人 檢測 在一起 get 似的 登錄 div

按照老師的要求,對隊友的代碼進行解析,先說缺點在看優點,改正缺點學習優點,一起進步!

1.首先打開代碼的時候,關於賬號密碼的存儲,將賬號和密碼直接存儲在了一個數組中。按照“用戶名 密碼"的格式,這在之後的登陸檢測中確實可以方便檢測,但是個人感覺將賬號密碼直接存儲在一起會造成一些安全問題。

string allUser[]={"張三1 123","張三2 123","張三3 123","李四1 123","李四2 123","李四3 123","王五1 123","王五2 123","王五3 123"};
// 用戶賬號密碼信息

2.在用戶登錄的部分,默認了只擁有9個用戶,不考慮增加用戶的問題,用戶的類型選擇只是用了用戶編號除三的選擇方式,在增加用戶後可能會導致問題,拓展性不強。

string UserType[]={"小學","初中","高中"}; //用戶類型信息

    while(getline(cin,Account)){ //用戶登錄處理 
        for(user=0;user<9;user++){
            if(Account==allUser[user]){
                cout<<"當前選擇為"<<UserType[user/3]<<"出題"<<endl;
                flag_Account=1;
                break
; } else if(user==8){ cout<<"請輸入正確的用戶名、密碼"<<endl; } } if(flag_Account==1) break; } usertype=user/3; //0-2號用戶為小學,3-5號用戶為初中,6-8號用戶為高中

3.關於高耦合的問題,沒有將生成不同階段題目的代碼分離出main函數,只在main函數中使用了一個switch語句控制,導致main函數非常龐大,不利於修改和擴展。

4.在生成特殊符號的三個函數部分,觀察到了許多相似的代碼,或許可以專門分離出一個函數解決冗余問題。

關於函數的優點

1.在生成特殊符號的部分,使用了二維數組的方式來解決,將每個數字的座位二維數組的一行,用二維數組內的0,1值來判斷是否會出現特殊符號,與我的暴力判斷輸出不同,這樣的方式更加的精巧,雖然也會出現一些問題,但是能更加清晰的了解問題進行修改。

int Creat_list_bra(int oper_num,int list_bra[][2]){ //產生括號標誌數組,數組每一行代表一個操作數,第一個元素為1表示操作數左邊有左括號,第二個元素為1表示操作數右邊有有括號 
    while(1){
        int sum_fbra=0,sum_bbra=0;
        for(int i=0;i<oper_num;i++){
            if(i!=oper_num-1){
                list_bra[i][0]=rand()%2;
                if(list_bra[i][0]==1){
                    list_bra[i][1]=0;
                    sum_fbra++;
                }
                else if(list_bra[i][0]==0 && i!=0 && sum_fbra>sum_bbra){
                    list_bra[i][1]=rand()%2;
                    if(list_bra[i][1]==1)
                    sum_bbra++;
                }
            }
            else{
                if(list_bra[0][0]!=1)
                {
                    list_bra[i][1]=rand()%2;
                    if(list_bra[i][1]==1)
                    sum_bbra++;
                }
            }
        }
        if(sum_fbra==sum_bbra){  //當左右括號數量相等時結果合法 
            return 1;
        } 
    }
}

2.關於變量和函數的命名方式十分簡潔易懂,規範使用,不會對讀代碼的人造成誤解。

3.代碼內的縮進十分規範,在一些部分的分割也讓人看得非常舒服,代碼的註釋部分也解釋的十分到位,沒有多余的部分。

結對編程-隊友代碼分析