队友使用的是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出现的概率更小。
③操作逻辑清晰,用户体验较好。
缺点:①括号的位置随机,有可能产生没有意义的括号,比如将一个数字或者全部式子括了起来,没有进行判断。
总结:
总体来说我觉得队友的代码写得很规范,条理清晰,我也学到了许多写代码方面需要注意的,受益匪浅。