一、实验目标
1)体验敏捷开发中的两人合作。
2)进一步提高个人编程技巧与实践。
二 、实验内容
1)根据以下问题描述,练习结对编程(pair programming)实践;
2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
3)要求在结对编程工作期间,两人的角色至少切换 4 次;
4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
三、实验过程
1.流程图
2.结对编程过程
3.实验运行结果
4.实验代码
#include<stdio.h> | |
#include<stdlib.h> | |
#include<time.h> | |
#include<stack> | |
#include<windows.h> | |
using std::stack; | |
//计算算术表达式 | |
int ch2num ( const char &ch ) //读取运算符 | |
{ | |
int num ( -1 ); | |
switch ( ch ) | |
{ | |
case'#': | |
num = 0; | |
break; | |
case'+': | |
num = 1; | |
break; | |
case'-': | |
num = 2; | |
break; | |
case'*': | |
num = 3; | |
break; | |
case'/': | |
num = 4; | |
break; | |
case'(': | |
num = 5; | |
break; | |
case')': | |
num = 6; | |
break; | |
} | |
return num; | |
} | |
int operator_2 ( const int &num1, const int &num2, const char &ch ) //进行单个运算符的运算 | |
{ | |
int num ( -1 ); | |
switch ( ch ) | |
{ | |
case'+': | |
num = num2 + num1; | |
break; | |
case'-': | |
num = num2 - num1; | |
break; | |
case'*': | |
num = num2 * num1; | |
break; | |
case'/': | |
num = num2 / num1; | |
break; | |
} | |
return num; | |
} | |
int compare[5][6] = { { 0 }, { 1, 0, 0, 0, 0, 1 }, { 1, 0, 0, 0, 0, 1 }, { 1, 1, 1, 0, 0, 1 }, { 1, 1, 1, 0, 0, 1 } }; //创建一个二维数组记录运算符之间的优先级 | |
int Calculation ( char *str, int i ) //计算算术表达式主体函数 | |
{ | |
stack<int>S_num; //创建两个栈存放数值和运算符 | |
stack<char>S_ch; | |
while ( !S_ch.empty() ) | |
S_ch.pop(); | |
S_ch.push ( '#' ); | |
while ( !S_num.empty() ) | |
S_num.pop(); | |
int tnum ( 0 ); | |
for ( int i ( 0 ); str[i] != ' |