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


    队友使用的是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出现的概率更小。

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

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

    总结:

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

  • 相关阅读:
    node.js ---path模块
    es6箭头函数this问题
    Codeforces Round #576 (Div. 2) | CF1199 补题
    Hungary
    CF 1196D2 RGB Substring (hard version) --- 前缀和 + 思维
    康托展开
    POJ1821 Fence --- 单调队列 + DP
    素数筛
    自动化接口面试遇到的问题
    linux遇到的面试问题
  • 原文地址:https://www.cnblogs.com/Skyrim-zero/p/9714249.html
Copyright © 2020-2023  润新知