第一堂 软件工程课

Posted zak-apple

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一堂 软件工程课相关的知识,希望对你有一定的参考价值。

新学期开始,第一堂的软件工程课,拿到书本看了下,感觉神一般得迷,就觉得很难学。以下是我上完第一次课得理解:

一.什么是软件工程?

1.软件工程

是把系统得、有序得、可量化得方法应用到软件得开发、运营和维护上得过程。

2.软件工程包括下列领域

软件需求分析、软件设计、软件构建、软件测试和软件维护。

3.软件工程和下列学科相关

计算机科学、计算机工程、管理学学、数学、项目管理学、质量管理、软件人体工学、系统工程、工业设计和用户界面设计。

二.软件工程和软件开发流程

1.人们在开发、运营、维护软件得过程中有很多技术、做法、习惯和思想体系。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。

2.软件开发流程得目的是为了提高软件开发、运营、维护效率,并提高软件得质量、用户满意度、可靠性和软件得可维护性。

三.软件工程得组成

 

程序=数据结构+算法

软件=程序+软件工程

软件公司=软件工程+商业模式

四.软件得特性

复杂性

不可见性

易变性

服从性

非连续性

五.课后练习

课上一道题目感觉充分得解释了什么是软件工程。用代码实现每天随机产生300道四则运算得小学题。

看到这题我首先想到了随机数,因为数不固定而且300道,只能用随机数来随机产生数来给出题目,而四则运算(即+,-,*,/),那我想到用数组来存储,课后突然老师点播说可以用case语句,我觉得这个看上去更名了,所以可以用C语言来完成这个题目,毕竟python太菜。我觉得这个程序主要有3个地方需要注意。首先是随机生成问题,只使用rand()是不对的,这样生成的数是伪随机数,上网查了一下得知最简单的解决方法是应该在主函数里加上一句srand(time(0)),这里我最初是在每个rand()前都加上了srand(time(0)),导致产生的随机数都一样,应该只要在主函数里加一句就行了。这是个值得注意的地方。其次是关于如何保证结果都是非负数,由于是四则运算,因此只有出现“-”号的时候才会有这种可能。我是这样解决的:用x和y来表示整数题目时2个运算数,当出现“-”时(if(op==‘-’)),通过while(x-y<0)语句来循环进行重新随机,知道产生x大于等于y为止。当遇到分数题目时候,采用a/b,c/d形式,同理通过while(a*d-b*c<=0)语句来循环进行重新随即。最后关于真分数的问题,并不难,真分数简单来讲就是分母比分子大的分数,因此只要保证a>b且c>d就好了。

char Operator()

{

    char op;

    int a;

    a=rand()%4+1;

    switch(a)

    {

        case1:return‘+‘;

        case2:return‘-‘;

        case3:return‘x‘;

        case4:return‘/‘;

    }

}void integer()

{

    int x,y;

    char op;

    x=rand()%100+1;

    y=rand()%100+1;

    op=Operator();

    if(op==‘-‘)

        while(x

        {

            x=rand()%100+1;

            y=rand()%100+1;

        }

    cout<

}void fraction()

{

    int a,b,c,d;

    a=rand()%100+1;

    b=rand()%100+1;

    c=rand()%100+1;

    d=rand()%100+1;

    char op;

    while(a<=b||c<=d)

    {

        a=rand()%100+1;

        b=rand()%100+1;

        c=rand()%100+1;

        d=rand()%100+1;

    }

    op=Operator();

    if(op==‘-‘)

        while((b*c-a*d)<0)

        {

            a=rand()%100+1;

            b=rand()%100+1;

            c=rand()%100+1;

            d=rand()%100+1;

        }

    cout<

}+void main()

{

    srand(time(0));

    int a,n,m;

    cout<<"请输入出题类型"<

    cout<<"1.整数四则运算"<

    cout<<"2.分数四则运算"<

    cin>>a;

    cout<<"请输入出题数目"<

    cin>>n;

    for(m=1;m<=n;m++)

    {

        if(a==1)

            integer();

        else            fraction();

    }

}

以上是关于第一堂 软件工程课的主要内容,如果未能解决你的问题,请参考以下文章

现代软件工程的构建之法

明天第一堂课

软件工程第一课

《代码大全》读后有感

C#第一堂课

s13day1第一堂课