博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件工程课堂作业(二)续——升级完整版随机产生四则运算题目(C++)
阅读量:5097 次
发布时间:2019-06-13

本文共 3767 字,大约阅读时间需要 12 分钟。

一、设计思想:

      1、根据题目新设要求,我将它们分为两类:一类是用户输入数目,根据这个数目改变一系列后续问题;另一类是用户输入0或1,分情况解决问题。

      2、针对这两类要求,具体设计思路已在上篇博文中写出。有改动的地方:

          ①避免重复之前想的解决办法是比较,相同则重新产生,这样比较繁琐。经过上网查和询问同学,学到了一个函数,将问题解决了;

          ②是否有括号的问题,可用switch结构,分情况输出即可;

          ③分数和小数问题根本上是一个问题,在这里只说明一个,可以另设两个参数,随机生成作为小数部分,再输出即可;

          ④该程序有很多地方需要用户输入数值,有时会输入不符合逻辑的数,针对这个问题,我在每一次需要用户输入的地方都加了一个while循环语句,若不符合条件则需要重新输入。

二、源代码:

1 //信1201-1班——胡亚宝   2015/03/13   随机生成四则运算题目  2   3 #include "stdafx.h"  4 #include "stdlib.h"  5 #include 
6 7 int _tmain( ) 8 { 9 srand(time(NULL)); //避免题目重复 10 int x1,x2,flag,i,j; 11 int x3,x4; 12 int a[10]; 13 printf("---------------------------欢迎使用本系统打印题目!----------------------------\n"); 14 //可定制打印的题目数 15 printf("请输入要打印的题目数:"); 16 scanf("%d",&a[0]); 17 while(a[0]<=0) //题目数必须为正数 18 { 19 printf("请重新输入有效的题目数:"); 20 scanf("%d",&a[0]); 21 }; 22 //可定制运算数的范围 23 printf("请输入运算数的范围:"); 24 scanf("%d",&a[2]); 25 while(a[2]<=0) //运算数必须为正数 26 { 27 printf("请重新输入有效的范围:"); 28 scanf("%d",&a[2]); 29 }; 30 //可定制题目中是否有乘除法 31 printf("请选择否有乘除法(是->1;否->0):"); 32 scanf("%d",&a[1]); 33 while((a[1]!=1)&(a[1]!=0)) //只能选择1或0 34 { 35 printf("请重新输入有效的数值:"); 36 scanf("%d",&a[1]); 37 }; 38 //可定制题目结果是否有负数 39 printf("请选择结果有无负数(是->1;否->0):"); 40 scanf("%d",&a[3]); 41 while((a[3]!=1)&(a[3]!=0)) //只能选择1或0 42 { 43 printf("请重新输入有效的数值:"); 44 scanf("%d",&a[3]); 45 }; 46 //可定制结果是否有余数 47 printf("请选择结果有无余数(是->1;否->0):"); 48 scanf("%d",&a[4]); 49 while((a[4]!=1)&(a[4]!=0)) //只能选择1或0 50 { 51 printf("请重新输入有效的数值:"); 52 scanf("%d",&a[4]); 53 }; 54 55 //可定制是否支持小数 56 printf("请选择是否支持小数(是->1;否->0):"); 57 scanf("%d",&a[5]); 58 while((a[5]!=1)&(a[5]!=0)) //只能选择1或0 59 { 60 printf("请重新输入有效的数值:"); 61 scanf("%d",&a[5]); 62 }; 63 64 //可定制是否加括号 65 printf("请选择是否加括号(是->1;否->0):"); 66 scanf("%d",&a[6]); 67 while((a[6]!=1)&(a[6]!=0)) //只能选择1或0 68 { 69 printf("请重新输入有效的数值:"); 70 scanf("%d",&a[6]); 71 }; 72 73 //循环打印符合要求的题目 74 for(i=0;i

三、运行结果:

四、心得体会:

      1、编程过程中,一些基础的内容经常弄错、遗漏,比如输入、函数的定义等,需要练习加以巩固;

      2、开始我想的是将每一个新设功能写一个函数,再用主函数调用,但是真正编写的时候,由于功能之间有交叉,这样变量的引用和调用就出现了问题,最后我将它们都写到主函数中,各个参数都一次声明。这样的优点是编程方便、调用简单,缺点是不够清晰明了,当程序再大一些的时候非常不方便,以后需要找到别的方法去解决这个问题;

      3、我用的语言是C++,它的界面不如C#美观、友好,但是编程简单、方便。

五、PSP0级相关日志

1、项目计划日志:

周活动总结表

姓名:胡亚宝                                                            日期:2015/3/13

日期\任务 听课     编写程序 阅读书本 考研复习   日总计  
周日            
周一            
周二 300 60 60     420
周三 100 25 40 60   225
周四 200 210 30     440
周五 200  30       230
周六            
周总结  800 325  130  60    1315 

阶段时间和效率                                                                        周数:1

不包括上一周在内的累计时间                                                                  

总计                         
平均          
最大          
最小          

以前各周的累计时间                                                                             

总计 800  325    130 60  1315 
平均 800     325   130   60     1315    
最大 800 325  130  60  1315 
最小 800  325 130  60 1315 

2、时间记录日志:

学生:胡亚宝                                                                     日期:3/13

          教师:王建民                                                                      课程: PSP          

日期 开始时间 结束时间 中断时间 净时间 活动 备注
3/10 08:00 12:00 40 200 听课(软件工程、操作系统) 课间休息
  14:30 15:30   60 读书(梦断代码)  
  16:10 18:00 10 100 听课(Windows高级编程) 课间休息
  19:30 21:00 30 60 编写程序(升级版四则运算)  
3/11 08:00 09:50 10 100 听课(计算机网络) 课间休息
  10:00 11:10 10 60 考研复习  
  16:10 16:35   25 编写程序(升级版四则运算)  
  21:00 21:40   40 读书(梦断代码)  
3/12 09:00 09:50   50 编写程序(升级版四则运算)  
  10:10 12:00 10 100 听课(计算机接口技术) 课间休息
  14:00 15:50 10 100 听课(嵌入式开发技术) 课间休息
  16:10 19:50 60 160 编写程序(升级版四则运算) 吃饭
  20:30 21:00   30 读书(梦断代码)  
3/13 08:00 12:00 40 200 听课(软件工程、操作系统) 课间休息
  14:30 15:00    30 编写程序(升级版四则运算)  

 3、缺陷记录日志:

学生:胡亚宝                                                                        日期:3/13

教员:王建民                                                                         程序号:01

日期 编号 类型    引入阶段 排除阶段 修复阶段 修复缺陷
3/10  1  001  设计 编译  10min  
描述:设计程序时调用函数传参错误
  002  设计   编译 1min   
描述:使用了某一函数没有它的头文件
 3/11  3 003  编码  调试  5min   
描述:使用do while循环时结构用错
 3/12 004  编码  编译  1min  
描述: 使用scanf输入时漏掉了“&”
    5  005 编码  编译  1min   
描述:使用某一变量没有提前声明      
    6  006 编码  编译  2min   
描述:使用数组时 ,整个数组和数组中某一元素弄混,导致出错     
    7  004 编码  编译  1min  
描述:使用scanf输入时漏掉了“&”      
  3/13  8 007  编码  编译  1min  
描述:判断条件的等于应该是“==”,而我错用了“=”

转载于:https://www.cnblogs.com/huyabaoboke/p/4333825.html

你可能感兴趣的文章
文件拓展名/HTML转义字符/RGB颜色参考/网页字体参考
查看>>
Android常用的UI布局
查看>>
科研呢喃3-论科研选题
查看>>
python (2) 之 pyc
查看>>
TextInputLayout setError() setErrorEnable()
查看>>
HDD&Memory&CPU调度机制(I/O硬件性能瓶颈)
查看>>
city
查看>>
Weex 相关文章收集
查看>>
Android Ap 开发 设计模式第八篇:抽象工厂模式
查看>>
【查阅】教你使用SQL SERVER复制
查看>>
如何用C语言画一个圣诞树?
查看>>
REDIS源码中一些值得学习的技术细节02
查看>>
hrbust1758
查看>>
Java-Class-I:com.alibaba.fastjson.JSONObject
查看>>
Node.js:连接 MongoDB
查看>>
monkey脚本
查看>>
#define、const、typedef的差别
查看>>
delphi的取整函数round、trunc、ceil和floor
查看>>
[bzoj 3622]已经没有什么好害怕的了
查看>>
两个经典的小例子:杨辉三角和水仙花
查看>>