构建之法第一章

除整数外,还要实现真分数的四则运算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系统。缘由很简单苹果手机价格高,安卓更加亲民。

     

     

5.软件工程是否是教那些不怎么会写程序的人开发软件? 你怎么看?

软件工程是教那些不会开发复杂项目的人怎样去编程的学科。当学习一门编程语言时,咱们会在学习过程当中试着编写一些小程序,这些程序可能只有几十行代码,而当咱们编写的程序变得复杂,须要成千上万行代码和复杂的逻辑结构时,咱们会发现本身变得又不会编程了;就会试着像之前同样按本身所想去实现这个复杂的程序,可是当程序的代码愈来愈多,结构愈来愈复杂时,会发现出现的错误也愈来愈多,同时很难去修改,甚至可能会出现不能修复的错误。因此,一个复杂系统的开发,须要一套规范的管理方法去管理这个开发的过程,软件工程就是关于怎样管理开发过程的学科。软件工程会使你知道怎样去作需求分析以了解程序须要实现的功能,怎样去作系统设计以构建程序的框架,怎样测试以验证程序功能的正确等。你能够经过软件工程的指导去实现一个结构清晰、可维护和健壮的程序。软件工程会教给你如何从工程的角度去完成一个项目的开发,如何处理开发过程当中的各类问题,如何创造一个完美的软件系统。

 6你所在的学校有计算机科学专业和软件工程专业么?相关专业的教学计划和毕业出路有什么不一样?

有,关于软件工程的教学计划有软件测试和软件开发,学习的相关软件知识更侧重于测试,相对于开发的偏写代码的不一样,测试行业试讲开发人员写的程序进行测试,检测其程序是否存高危bug,并能及时的使开发人员修正错误,减小软件开发须要使用的资金,同时软件测试也不必定须要很强的专业能力,相对开发对来讲更但愿测试一类的工做。 

相关文章
相关标签/搜索