没有域名如何访问网站,合肥网站建设与设计,师大暨大网站建设,seo优化系统哪家好题目要求 我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子#xff0c;请实现它#xff0c;要求#xff1a; 能够自动生成四则运算练习题可以定制题目数量用户可以选择运算符用户设置最大数#xff08;如十以内、百以内等#xff09;用户选择是否有括号、…题目要求 我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子请实现它要求 能够自动生成四则运算练习题可以定制题目数量用户可以选择运算符用户设置最大数如十以内、百以内等用户选择是否有括号、是否有小数用户选择输出方式如输出到文件、打印机等最好能提供图形用户界面根据自己能力选做以完成上述功能为主队伍 本次作业要求两个人合作完成驾驶员和导航员角色自定鼓励大家在工作期间角色随时互换。驾驶员我 1.能够完成全部代码工作程序基本实现全部要求功能并将代码上传至coding.net或者GitHub代码托管系统中。 2.能够对导航员在本次编程工作中起到的作用给出客观评价并完成500字以上的总结。领航员霍超然 1.能够辅助驾驶员完成全部代码工作并且为关键函数选用合适的覆盖标准设计测试用例并编写代码进行单元自动测试。 2.能够根据上次作业的代码检查表对驾驶员的本次工作进行评价。 3.能够对本次工作完成500字以上的总结。 程序实现1.重要变量 int m;//数值范围[0,m]
int sl;//生成算式的数量
int zl; //算式种类
int xs;//是否有小数
int kh;//是否有括号
int gs;//输出形式 用户通过提示输入这些变量的值用来选择要输出什么形式的算式2.无括号情况 在无括号情况下我默认为算式为二元式通过主函数提示用户输入数据来实现选择要进行什么操作。代码如下 void scwukuohao()//无括号的二元式
{double a, b, t 0;a rand() % (m);b rand() % (m);if (xs0)//用户不需要小数时调用{while (sl)//生成的个数控制{a rand() % (m);b rand() % (m);if (zl 4)//用于实现随机生成四种算式{t 1;zl rand() % 4;//zl将在0123中随机取值}switch (zl)//通过zl的值输出不同的算式{case 0://输出加法{if (gs 1) { printf(%.0lf%.0lf\n, a, b); break; }else { fprintf(f3, %.0lf%.0lf\n, a, b); break; }}case 1://输出减法{if (a b){if (gs 1) { printf(%.0lf-%.0lf\n, a, b); break; }else { fprintf(f3,%.0lf-%.0lf\n, a, b); break; }}else{if (gs 1) { printf(%.0lf-%.0lf\n, b, a); break; }else { fprintf(f3, %.0lf-%.0lf\n, b, a); break; }}}case 2:if (gs 1) { printf(%.0lf*%.0lf\n, a, b); break; }//输出乘法else{ fprintf(f3,%.0lf*%.0lf\n, a, b); break; }case 3:if (gs 1) { printf(%.0lf/%.0lf\n, a, b); break; }//输出除法else{ fprintf(f3,%.0lf/%.0lf\n, a, b); break; }}if (t 1){zl 4;}sl--;}}return;
} 在用户需要小数时代码基本相同只需要将随机出的数变成小数即可。代码如下 a rand() % (m*10)/10.01;
b rand() % (m * 10) / 10.0 1; 2.有括号情况 在有括号时我预设了8种算式格式通过随机变量来随机输出这八种算式代码如下 void scyoukuohao()//有括号的多元式
{double a, b, c, d;int tt;if (xs 0)//没有小数时调用{while (sl){a rand() % (m);b rand() % (m);c rand() % (m);d rand() % (m);tt rand() % 8;//用于随机生成预设的8种算式格式switch (tt){case 0:if (gs 1) { printf((%.0lf%.0lf)*%.0lf/%.0lf\n, a, b, c, d); break; }else{ fprintf(f3,(%.0lf%.0lf)*%.0lf/%.0lf\n, a, b, c, d); break; }case 1:{if (a b){if (gs 1) { printf((%.0lf-%.0lf)*%.0lf/%.0lf\n, a, b, c, d); break; }else{ fprintf(f3,(%.0lf-%.0lf)*%.0lf/%.0lf\n, a, b, c, d); break; }}else{if (gs 1) { printf((%.0lf-%.0lf)*%.0lf/%.0lf\n, b, a, c, d); break; }else { fprintf(f3,(%.0lf-%.0lf)*%.0lf/%.0lf\n, b, a, c, d); break; }}}case 2:if (gs 1) { printf(%.0lf*(%.0lf%.0lf)/%.0lf\n, a, b, c, d); break; }else { fprintf(f3,%.0lf*(%.0lf%.0lf)/%.0lf\n, a, b, c, d); break; }case 3:if (gs 1) { printf(%.0lf/(%.0lf%.0lf)*%.0lf\n, a, b, c, d); break; }else{ fprintf(f3,%.0lf/(%.0lf%.0lf)*%.0lf\n, a, b, c, d); break; }case 4:{if (c d){if (gs 1) { printf((%.0lf%.0lf)*(%.0lf-%.0lf)\n, a, b, c, d); break; }else{ fprintf(f3,(%.0lf%.0lf)*(%.0lf-%.0lf)\n, a, b, c, d); break; }}else{if (gs 1) { printf((%.0lf%.0lf)*(%.0lf-%.0lf)\n, a, b, d, c); break; }else { fprintf(f3,(%.0lf%.0lf)*(%.0lf-%.0lf)\n, a, b, d, c); break; }}}case 5: {if (a b){if (gs 1) { printf((%.0lf-%.0lf)/(%.0lf%.0lf)\n, a, b, c, d); break; }else{ fprintf(f3,(%.0lf-%.0lf)/(%.0lf%.0lf)\n, a, b, c, d); break; }}else{if (gs 1) { printf((%.0lf-%.0lf)/(%.0lf%.0lf)\n, b, a, d, c); break; }else { printf((%.0lf-%.0lf)/(%.0lf%.0lf)\n, b, a, d, c); break; }}}case 6:if (gs 1) { printf((%.0lf%.0lf)*(%.0lf%.0lf)\n, a, b, c, d); break; }else { fprintf(f3,(%.0lf%.0lf)*(%.0lf%.0lf)\n, a, b, c, d); break; }case 7: {if (a bcd){if (gs 1) { printf((%.0lf-%.0lf)/(%.0lf-%.0lf)\n, a, b, c, d); break; }else { fprintf(f3,(%.0lf-%.0lf)/(%.0lf-%.0lf)\n, a, b, c, d); break; }}if(abcd){if (gs 1) { printf((%.0lf-%.0lf)/(%.0lf-%.0lf)\n, b, a, c, d); break; }else { fprintf(f3,(%.0lf-%.0lf)/(%.0lf-%.0lf)\n, b, a, c, d); break; }}if (abc d){if (gs 1) { printf((%.0lf-%.0lf)/(%.0lf-%.0lf)\n, a, b, d, c); break; }else { fprintf(f3,(%.0lf-%.0lf)/(%.0lf-%.0lf)\n, a, b, d, c); break; }}if(abcd){if (gs 1) { printf((%.0lf-%.0lf)/(%.0lf-%.0lf)\n, b, a, d, c); break; }else{ fprintf(f3,(%.0lf-%.0lf)/(%.0lf-%.0lf)\n, b, a, d, c); break; }}}}sl--;}} 在用户需要小数时代码基本相同只需要将随机出的数变成小数即可。代码如下 a rand() % (m*10)/10.01;
b rand() % (m * 10) / 10.0 1;
c rand() % (m * 10) / 10.0 1;
d rand() % (m * 10) / 10.0 1; 样例测试1.测试一 输出全是加法的有小数的20以内的10个算式直接输出 输出到文件2.测试二 输出随机法则的有小数的20以内的10个算式直接输出 输出到文件3.测试三 输出有括号的无小数的20以内的10个算式。直接输出 输出到文件 总结 个人总结 这次结对作业我作为驾驶员参与了完成在领航员的辅助下独立完成了所有代码的编写工作。这次作业我没有像之前在网上搜索现成的算法而是自己思考。这是我的一次提升。但遗憾的是有关于程序的图形化方面我并没有吃透许多东西都是一知半解并且因为开始作业的时间较晚没有精力学习完这方面的知识于是就没有实现程序的图形化。这是一大遗憾但我会继续学习争取在下次作业完全吃透这方面的知识。对领航员的评价 这次作业是由霍超然同学作为领航员的。霍同学的思维很开阔在思路上给予了我很大的帮助。我们在一起进行代码的设计时霍同学提出的预设算式格式的方法为我节省了很多工作量之前我一直在苦思冥想如何随机的在算式中加入括号霍同学的思路虽然导致程序少了些变通但胜在实现简单很容易实现。同时在进行测试时霍同学很严谨认真为我找出了很多bug。在于他的合作中我在他的身上学到了很多以后我们的合作一定会更加默契。对作业总结 我认为结对编程主要有不少好处首先起到督促的作用。这主要是因为如果我一个人编程可能会出现消极的情绪而两个人共同编程会起到促进作用。其次对函数的语句能进一步优化在自己敲代码时另一个人可以反思代码有什么问题、哪里可以优化这些都够使代码质量得到很大的提升。最后是更有效的找错我要找出自己写的bug是一件很困难的事情。但是有伙伴在一个不同的视角寻找问题就能很快地找到一些我不易发现的bug。 代码地址点我(ง •_•)ง转载于:https://www.cnblogs.com/mayingjiu123/p/8848942.html