除整数外,还要实现真分数的四则运算java
①主要函数:c++
char getSignal(); //获取随机运算符函数编程
int random(double,double); //获取随机数函数小程序
int getResult(int,int,char); //结果计算函数c#
int takeTest(); //题目生成函数浏览器
②主函数框架
void main()dom
{编程语言
int n,a,right=0;函数
double percent;
printf("Please enter the number of the test:");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
a=takeTest();
right=right+a;
}
printf("Powerful!\n");
printf("The number of right:%d\n",right);
percent=((double)right*100.00)/(double)n;
printf("The percent of right:%0.2f %%\n",percent);
}
③获取随机运算符函数:
char getSignal()
{
char signal[4]={'+','-','*','/'};
srand((unsigned)time(NULL));
return signal[rand()%4];
}
④获取随机数函数:
int random(double start, double end)
{
return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
}
⑤结果计算函数:
int getResult(int num1,int num2,char signal)
{
int res;
switch(signal)
{
case '+':
res=num1+num2;break;
case '-':
res=num1-num2;break;
case '*':
res=num1*num2;break;
case '/':
res=num1/num2;break;
default:
printf("运算符错误!\n");
}
return res;
}
⑥题目生成函数:
int takeTest()
{
int get;
int num1,num2,a;
char signal;
srand((unsigned)time(NULL));
signal=getSignal();
num1=random(0,1000);
num2=random(1,1000);
if(signal=='-')
{
if(num1<num2)
{
int temp;
temp=num1;
num1=num2;
num2=temp;
}
}
if(signal=='/')
{
if(num2==0)
{
int temp;
temp=num1;
num1=num2;
num2=temp;
}
}
printf("%d%c%d=",num1,signal,num2);
scanf("%d",&get);
fflush(stdin); //清空输入缓冲区
if(getResult(num1,num2,signal)==get)
{
printf("You're right!\n");
a=1;
}
else
{
printf("It's wrong!\n");
printf("The right answer is: %d\n",getResult(num1,num2,signal));
a=0;
}
return a;
}
支持多个运算符
# include <stdio.h>
int main(void)
{
double a, b;
int chose;
printf("欢迎使用个人计算器\n");
while (1)
{
printf("********************\n");
printf("一、两数相加\n");
printf("二、两数相减\n");
printf("三、两数相乘\n");
printf("四、两数相除\n");
printf("五、退出\n");
printf("********************\n");
scanf("%d", &chose);
/* if (chose<1 || chose>5)
{
printf("你的输入有误,请从新输入!\n");
continue;
}*/
switch (chose)
{
case 1:
printf("请输入第一个数字:\n");
scanf("%lf", &a);
printf("请输入第二个数字:\n");
scanf("%lf", &b);
printf("%lf+%lf = %lf\n", a, b, a+b);
break;
case 2:
printf("请输入第一个数字:\n");
scanf("%lf", &a);
printf("请输入第二个数字:\n");
scanf("%lf", &b);
printf("%lf-%lf = %lf\n", a, b, a-b);
break;
case 3:
printf("请输入第一个数字:\n");
scanf("%lf", &a);
printf("请输入第二个数字:\n");
scanf("%lf", &b);
printf("%lf*%lf = %lf\n", a, b, a*b);
break;
case 4:
printf("请输入第一个数字:\n");
scanf("%lf", &a);
printf("请输入第二个数字:\n");
scanf("%lf", &b);
printf("%lf/%lf = %lf\n", a, b, a/b);
break;
case 5:
printf("再见!\n");
return ;
default:
printf("你的输入有误,请从新输入!\n");
continue;
}
}
}
2.博客做业:我是吕越新,一名计算机应用技术专业的大二学生,我想经过对构建之法的学习,了解软件相关知识,从需求分析到最后软件投入市场过程当中如何提升软件质量,了解相关流程,针对不一样章节提炼出有内涵的东西,充分利用教材,弥补知识上的空缺,除了课上时间学习外,还要花费5小时闲暇时光在本书上,好好预习,复习,提升学习知识的能力,和小组成员共同进步,学会合做和互相配合,实现双赢。
3.快速看完整章教材,列出你不懂的5-10个问题,发布在你的我的博客上。
1我在《构建之法》第三版的26页看到这样一段话“若是用随机数以增长测试的真实性,好吗?
答:通常状况下很差,若是某个随机数致使程序出错,可是下一次运行又不能重复这一错误,则于事无补。咱们仍是要用随机数等办法“增长测试真实性”,但不是在单元测试中。单元测试不能解决全部问题,没必要指望它会发现全部的缺陷。
2.单元测试是应在最基本的功能/参数上验证程序的正确性
答:单元测试应该测试程序中最基本的单元—如在c++/c#/java中的类,在此基础上,能够测试一些系统中最基本的功能点(这些功能由几个基本点组成),从面向对象设计原理出发,系统中最基本的功能点也该由一个类及其方法来表现。单元测试API中的每个方法及每个参数。
3.单元测试应覆盖全部代码路径
单元测试应覆盖所测单元的代码路径,包括错误处理路径。为了保证代码覆盖率,单元测试必须测试公开的和私有的函数/方法。(基本路径测试法是在程序控制流图的基础上,经过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法)。
4.单元测试必需要用最熟悉代码的人(程序的做者来写)
代码的做者最了解代码的目的、特色和实现的局限性。因此,写单元测试没有比做者更适合的人选了。根据我实践的经验,本身的错误和缺点每每很难由本身发现,即便发现所需花费的时间成本也比较大。因此,才须要互测、互评。代码的做者虽然熟悉代码,但脑中倾向于验证代码的正确性而不是检查错误。有些疏忽很明显但容易视而不见,心中想象的代码是完美的,而屏幕上的代码却有失误。罗杰老师在第一节课时也提到,通常公司的开发人员和测试人员比例是1:1,有时甚至可能达到1:7.可见测试人员不可或缺。开发人员同时做测试人员既越俎代庖又效率低下。因此,我不是很理解和信服书做者的观点。
5.对于“回归测试”中的"回归”,咱们能够将其理解为“回归到之前不正常的状态”。
回归测试最好要自动化,由于这样就能够对于每个构建快速运行全部回归测试,以保证尽早发现问题。单元测试是回归测试的基础。在专一于模块基本功能的单元测试以外,还有功能测试------从用户的角度检车功能完成得怎么样。在微软的实践中,在一个项目的最后稳定阶段,全部人都要参加全面的测试工做,把之前发现并修复的Bug找出来,一个一个验证,以保证全部已经修复过的Bug的确获得了修复,而且每在最后一个版本中"复发",这是一个大规模的,全面的“回归测试”。
4.
一 游戏类软件
游戏有不少种类,分类方式有不少。好比说按照游戏内容分,分为射击游戏,益智游戏,策略游戏休闲游戏......等等。还能够按照游戏平台分类,游戏大小分类,运行方式分类等多种分类方式。本类软件能够说是最受欢迎的软件,几乎人人都会使用,可是每一个人玩的都不尽相同,由于人的喜爱不一样。游戏最大的乐趣在于,它能够实现现实中咱们想作却不能作的事。
二. 工具类软件
我对工具类软件是这样理解的:任何对咱们有帮助做用的软件,好比WinRar它是咱们压缩文件的工具,浏览器是咱们上网的工具,暴风影音是咱们看视频的工具,我第一次使用这类软件是大一初,决定我使用它有这么几个条件:1.互联网购物兴起。2.我拥有了本身的银行卡。3.淘宝网是我国最大的网购平台,支付宝对应淘宝。4.移动支付的快捷方便。
我国如今有超过四亿的智能机用户,使用移动平台支付的有不到2个亿,因此还有很大的发展空间,在将来20年,还会大行其道。
三 系统类软件
我对系统类软件不是很了解,在这里先科普一下:系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各类程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各类独立的硬件,使得它们能够协调工做 我第一次使用是时2016年,当时使用的是智能手机Android系统。缘由很简单苹果手机价格高,安卓更加亲民。
软件工程是教那些不会开发复杂项目的人怎样去编程的学科。当学习一门编程语言时,咱们会在学习过程当中试着编写一些小程序,这些程序可能只有几十行代码,而当咱们编写的程序变得复杂,须要成千上万行代码和复杂的逻辑结构时,咱们会发现本身变得又不会编程了;就会试着像之前同样按本身所想去实现这个复杂的程序,可是当程序的代码愈来愈多,结构愈来愈复杂时,会发现出现的错误也愈来愈多,同时很难去修改,甚至可能会出现不能修复的错误。因此,一个复杂系统的开发,须要一套规范的管理方法去管理这个开发的过程,软件工程就是关于怎样管理开发过程的学科。软件工程会使你知道怎样去作需求分析以了解程序须要实现的功能,怎样去作系统设计以构建程序的框架,怎样测试以验证程序功能的正确等。你能够经过软件工程的指导去实现一个结构清晰、可维护和健壮的程序。软件工程会教给你如何从工程的角度去完成一个项目的开发,如何处理开发过程当中的各类问题,如何创造一个完美的软件系统。
6.你所在的学校有计算机科学专业和软件工程专业么?相关专业的教学计划和毕业出路有什么不一样?
有,关于软件工程的教学计划有软件测试和软件开发,学习的相关软件知识更侧重于测试,相对于开发的偏写代码的不一样,测试行业试讲开发人员写的程序进行测试,检测其程序是否存高危bug,并能及时的使开发人员修正错误,减小软件开发须要使用的资金,同时软件测试也不必定须要很强的专业能力,相对开发对来讲更但愿测试一类的工做。