结对编程——队友代码分析

队友使用的是c++语言,IDE用得是VS2015。下面开始进行优缺点的分析。

优点:①严格按照代码规范,分文件进行模块的分类。整个工程一共有8个文件,Login.h,Login.cpp,Subject.h,Subject.cpp,User.h,User.cpp,UsersTable.h,main.cpp,类的声明在几个头文件中,然后再在另一个文件中对类中的方法进行具体实现。比如login类:

#pragma once

#include"User.h"

using namespace std;

class Login {

public:

       

        User login_verify();//验证登录并返回用户学历

private:

        string isInAccounts(User *user);//要登录的是否在用户表中

};

#include"Login.h"

#include"UsersTable.h"

#include<iostream>

#include<vector>

using namespace std;

User Login::login_verify()

{

        string name, password;

        cout << "输入用户名和密码,两者之间用空格隔开" << endl;

        cin >> name >> password;

        User *user=new User(name, password);

        string grade= isInAccounts(user);

        while ("null" == grade)

        {

                 name.clear(); password.clear();

                 cout << "请输入正确的用户名、密码,两者之间用空格隔开" << endl;

                 cin >> name >> password;

                 user->setName(name); user->setPassword(password);

                 grade = isInAccounts(user);

        }

        User user2(name, password,grade);

        delete user;

        return user2;

}

string Login::isInAccounts(User *user)//判断此用户是否在用户表中

{

        string ans = "null";

        for (int i = 0; i < UsersNum; i++)

        {

                 if (user->getName() == users[i].getName() && user->getPassword() == users[i].getPassword())

                 {

                         ans = users[i].getGrade();

                         user->setGrade(users[i].getGrade());

                         cout << "登录成功"<< endl;

                         break;

                 }

        }

        return ans;

}

变量与类的命名也符合规范,在适合的地方写了注释,易读性比较高。

②在生成题目的主要函数中,大量采用了goto条件跳转,一方面提高了代码的维护性,而且逻辑更为清晰,bug出现的概率更小。

③操作逻辑清晰,用户体验较好。

缺点:①括号的位置随机,有可能产生没有意义的括号,比如将一个数字或者全部式子括了起来,没有进行判断。

总结:

总体来说我觉得队友的代码写得很规范,条理清晰,我也学到了许多写代码方面需要注意的,受益匪浅。

猜你喜欢

转载自www.cnblogs.com/Skyrim-zero/p/9714249.html