码迷,mamicode.com
首页 > 其他好文 > 详细

结对编程——队友代码的优缺点分析

时间:2019-09-19 23:25:51      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:规范   main   路径   bre   结对编程   password   利用   文件   while   

一·项目的需求分析

  需求文档中给出5个需求,第一个是用户的登录要求用户名和密码相匹配,并且有着初始的出题类型;需求二则限制题目的操作数和取值范围;

需求三要求我们输入题目数量,这里给出限定条件10-30个题目并且要求同一位老师的题目不能一样;需求四则要我们满足切换出题类型;需求五则

是对题目保存路径和文件的要求。

二·代码优缺点分析

  main函数大体框架为:一个循环加一个if的判断语句来确定登陆对象,并且每一个登录对象都有一个唯一的标识,eg:张三1的标识为(0,1),再将其标

识传递给user_do函数。分析一下这个main的框架,利用一个while(cout<<"请输入用户名和密码:"<<endl,cin>>user>>password)循环来实现对错误的登录的

处理,算是满足了需求一。

string user,password;
	void xiaoxue(int a, int b, string str);
	void chuzhong(int a, int b, string str);
	void gaozhong(int a, int b, string str);
	void user_do(int a, int b);
	while(cout<<"请输入用户名和密码:"<<endl,cin>>user>>password) {
		//小学
		if(user=="张三1"&&password=="123") {
			cout<<"当前选择为小学出题"<<endl;
			cout<<"准备生成"<<"小学数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"<<endl;
			user_do(0,1);
		} else if(user=="张三2"&&password=="123") {
			cout<<"当前选择为小学出题"<<endl;
			cout<<"准备生成"<<"小学数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"<<endl;
			user_do(0,2);
		} else if(user=="张三3"&&password=="123") {
			cout<<"当前选择为小学出题"<<endl;
			cout<<"准备生成"<<"小学数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"<<endl;
			user_do(0,3);
		}
		//初中
		else if(user=="李四1"&&password=="123") {
			cout<<"当前选择为初中出题"<<endl;
			cout<<"准备生成"<<"初中数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"<<endl;
			user_do(1,4);
		} else if(user=="李四2"&&password=="123") {
			cout<<"当前选择为初中出题"<<endl;
			cout<<"准备生成"<<"初中数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"<<endl;
			user_do(1,5);
		} else if(user=="李四3"&&password=="123") {
			cout<<"当前选择为初中出题"<<endl;
			cout<<"准备生成"<<"初中数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"<<endl;
			user_do(1,6);
		}
		//高中
		else if(user=="王五1"&&password=="123") {
			cout<<"当前选择为高中出题"<<endl;
			cout<<"准备生成"<<"高中数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"<<endl;
			user_do(2,7);
		} else if(user=="王五2"&&password=="123") {
			cout<<"当前选择为高中出题"<<endl;
			cout<<"准备生成"<<"高中数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"<<endl;
			user_do(2,8);
		} else if(user=="王五3"&&password=="123") {
			cout<<"当前选择为高中出题"<<endl;
			cout<<"准备生成"<<"高中数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):"<<endl;
			user_do(2,9);
		} else cout<<"请输入正确的用户名、密码"<<endl;
	}
}

  

  再来看user_do函数,同样一个while(cin>>num0)循环,num0是一个字符串型,紧接着就是将字符型转为整型数据,接下来加是对于

切换类型的判断,并且加了一个新的标识代表切换类型,之后便是数值判断,调用出题函数。代码如下:

while(cin>>num0) {
		num1=num0.substr(0,6);
		stringstream ss0;
		ss0<<num0;
		ss0>>num;
		if(num1!="切换为");
		else if(num0=="切换为小学") {
			degree=0;
			cout<<"准备生成小学数学题目,请输入生成题目数量"<<endl;
		} else if(num0=="切换为初中") {
			degree=1;
			cout<<"准备生成初中数学题目,请输入生成题目数量"<<endl;
		} else if(num0=="切换为高中") {
			degree=2;
			cout<<"准备生成高中数学题目,请输入生成题目数量"<<endl;
		} else {
			cout<<"请输入小学、初中和高中三个选项中的一个"<<endl;
		}
		if(num!=-1) {
			if(num<10||num>30)cout<<"请输入10~30之间的数据"<<endl;
			else {
				string timu;
				if(degree==0)xiaoxue(num,add,timu);
				else if(degree==1)chuzhong(num,add,timu);
				else if(degree==2)gaozhong(num,add,timu);
				if(degree==0)cout<<"备生成小学数学题目,请输入生成题目数量"<<endl;
				else if(degree==1)cout<<"准备生成初中数学题目,请输入生成题目数量"<<endl;
				else if(degree==2)cout<<"准备生成高中数学题目,请输入生成题目数量"<<endl;
			}
		} else break;
	}
	if(num==-1) {
		cout<<"已退出当前账号"<<endl;
	}

  优点总结: 代码的缩进、排列整洁美观,大致思路清晰,需求满足的挺好,注释也是恰到好处,主函数的架构野写得挺好。

  缺点:没有对出过的题目进行查重,代码的大括号和变量的命名不是很符合编程规范。

 

结对编程——队友代码的优缺点分析

标签:规范   main   路径   bre   结对编程   password   利用   文件   while   

原文地址:https://www.cnblogs.com/FIRE11/p/11553071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!