此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/7631
git地址:https://e.coding.net/wxyao/sizeyunsuan.git
结对伙伴:梅小雨
功能1. 四则运算
支持出题4个数的四则运算题目,所有题目要求作者有能力正确回答
1.重难点:随机生成题目以及计算正确题目的数量。
2.编程收获:经过一系列的思考和讨论,我们决定用后缀表达式来实现四则运算,锻炼了解决问题的思维方式。


代码片段:
void First()
{
int i,test=0,counter=0;
float ans;
int n=20;
while(n--)
{
//strcpy(str1,GetStr());
//printf("1");
//puts(str);
GetStr();
float Tans=Arithmetic(str1);
//printf("2");
for(i=0; i<7; i++)
{
printf("%c",str1[i]);
}
printf("=\n");
printf("?");
scanf("%f",&ans);
if(Tans==ans)
{
printf("答对啦,你真是个天才!\n");
counter++;
}
else
{
printf("再想想吧,答案似乎是%.2f喔!\n",Tans);
}
}
printf("你一共答对%d道题,共20道题。",counter);
}
功能2. 支持括号
1.重难点:怎么在加入括号以后程序能正确运行
2.编程收获:我们在加括号期间,出现了很多bug,反复修改了好几次,才终于实现。


代码片段:
switch(KH)
{
case 0:
for(i=7; i>0; i--)
str1[i]=str1[i-1];
for(i=8; i>4; i--)
str1[i]=str1[i-1];
str1[0]='(';
str1[4]=')';
str1[9]='\0';
break;
case 1:
for(i=7; i>0; i--)
str1[i]=str1[i-1];
for(i=8; i>6; i--)
str1[i]=str1[i-1];
str1[0]='(';
str1[6]=')';
str1[9]='\0';
break;
case 2:
for(i=7; i>2; i--)
str1[i]=str1[i-1];
for(i=8; i>6; i--)
str1[i]=str1[i-1];
str1[2]='(';
str1[6]=')';
str1[9]='\0';
break;
case 3:
for(i=7; i>2; i--)
str1[i]=str1[i-1];
str1[2]='(';
str1[8]=')';
str1[9]='\0';
break;
case 4:
for(i=7; i>4; i--)
str1[i]=str1[i-1];
str1[4]='(';
str1[8]=')';
str1[9]='\0';
break;
default:
break;
}
功能3.限定题目数量,"精美"打印输出,避免重复
1.重难点:如何实现输入数字就出现对应数量的题目
2.编程收获:在这一功能里,我和梅小雨绞尽脑汁只实现了一半的功能,实现了输入数字必须是正整数,但是出现对用数字题目数量这一共功能没有实现。

代码片段:
for(int i=0; i<len; i++)
{
if(string1[i]<'0'||string1[i]>'9')
{
printf("题目数量必须是正整数。");
flag=false;
break;
}
}
体会与收获:
很感谢我的伙伴——梅小雨同学,她的基础很好,在我们的合作中她对我的帮助很大,也让我学到了很多新东西,我在本科期间也按老师要求和同学组队编写过程序,但是氛围没有和梅小雨同学合作的氛围和谐,两人结对完成项目让我们的思维方式和能力都要有了很大提高,此外,我们的打字速度很慢,打字速度跟不上思维,所以耽误了很多时间,为了完成这次作业,我们走了很多弯路,也请教了学姐,结对也让我意识到我的编程基础还很薄弱,以后需要加强。
至少5项在编码、争论、复审等活动中花费时间较长,给你较大收获的事件:
1.在使用switch语句时我们遇到了困难,怎么运行都有问题,最后是梅小雨发现我们忘记加break了,问题才得以解决。
2.在功能一中,我们一开始一点思路也没有,不知道怎么随机运算,后来请教了学姐才有了一点思路,花费了我们一个下午的时间。
3.我们以前没有接触过单元测试,对这个很不了解,我们请教学姐以后又查了很多资料,在电脑里下载了好几个软件,还是没有成功,不仅浪费了很多时间,电脑运行也变得很卡,我当时特别烦,梅小雨同学很耐心地安慰我。
4.在功能二中,我们添加了括号以后,程序出现了很多bug,我们只好一个语句一个语句的查看,一条一条的改,其中有一处循环我们以为和功能一是一样的,直接粘贴过去,结果发现不可以,修改又用了我们好长时间。
5.在功能三中,我们先后试了for循环,while循环等好几种方法,只实现了功能三的部分功能,这种反复修改又反复失败的经历让我觉得超级心累,最大的收获就是清楚的认识到自己的水平很差。
工作地点:净月校区一食堂二楼
照片:
