一、实验目标
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] != ' |