本周软件工程课程感想

由于我们团队项目进行到一半,不便传上来代码。我就这周软件工程课程的内容写一点感想吧。

下面这是我们图形学课程实验的部分代码:

/**********myInit**********/
void myInit()
{
    pn = 0;
    glClearColor(1.0, 1.0, 1.0, 0.0);
    glColor3f(0.2f, 0.2f, 0.9f);
    glPointSize(5.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluOrtho2D(-300, 300, -300, 300);
}

/**********myDisplay**********/
void myDisplay()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_LINES);
    glVertex2i(-301, 0);
    glVertex2i(301, 0);
    glVertex2i(0, -301);
    glVertex2i(0, 301);
    glEnd();
    glFlush();
}

/**********myMouse**********/
void myMouse(int button, int state, int x, int y)
{
    if (state == GLUT_DOWN)
    {
        pn++;
        p[pn].px = x - 300;
        p[pn].py = 300 - y;

        glBegin(GL_POINTS);
        glVertex2i(x - 300 , 300 - y);
        glEnd();
        glFlush();
    }
}

/**********main***********/
void main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(600, 600);
    glutInitWindowPosition(100, 150);
    glutCreateWindow("Tuxingxue2_1");

    //创建菜单,绑定右键
    int menu_id;
    menu_id = glutCreateMenu(right_menu);
    glutAddMenuEntry("Clear Screen", 0);
    glutAddMenuEntry("Draw Line", 1);
    glutAddMenuEntry("Draw Polygon", 2);
    glutAddMenuEntry("Draw Circle", 3);
    glutAddMenuEntry("Translate", 4);
    glutAddMenuEntry("Rotate", 5);
    glutAddMenuEntry("Size", 6);
    glutAddMenuEntry("Exit", 10);
    glutAttachMenu(GLUT_RIGHT_BUTTON);

    myInit();
    glutDisplayFunc(myDisplay);
    glutMouseFunc(myMouse);
    glutMainLoop();
}

//画圆
void DrawCircle(void)
{
    glBegin(GL_POLYGON);
    for (int i = 0; i < n; ++i)
    {
        glVertex2f(0.1*cos(2 * Pi / n*i), 0.1*sin(2 * Pi / n*i));
    }
    glEnd();
    glFlush();
}

//右键菜单内容选择事件在这里触发
void right_menu(int id)
{
    if (id == 10) exit(0);
    else if (id == 0)                            //Clear Screen
    {
        pn = 0;
        glClearColor(1.0, 1.0, 1.0, 0.0);
        glColor3f(0.2f, 0.2f, 0.9f);
        glPointSize(5.0);
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        gluOrtho2D(-300, 300, -300, 300);
        glutPostRedisplay();
    }
    else if (id == 1)                            //Draw Line
    {
        //glClear(GL_COLOR_BUFFER_BIT);
        DrawType = 0;
        glBegin(GL_LINES);
        for (int i = 1; i <= pn; i++)
        {
            glVertex2i(p[i].px, p[i].py);
        }
        glEnd();
        glFlush();
    }
    else if (id == 2)                            //Draw Polygon
    {
        DrawType = 1;
        //glClear(GL_COLOR_BUFFER_BIT);
        glBegin(GL_POLYGON);
        for (int i = 1; i <= pn; i++)
        {
            glVertex2i(p[i].px, p[i].py);
        }
        glEnd();
        glFlush();
    }
    else if (id == 3)                            //Draw Circle
    {
        DrawType = 2;
        //glClear(GL_COLOR_BUFFER_BIT);
        glBegin(GL_POLYGON);
        for (int i = 0; i < n; ++i)
        {
            glVertex2f(p[pn].px + R*cos(2 * Pi / n*i), p[pn].py + R*sin(2 * Pi / n*i));
        }
        glEnd();
        glFlush();
    }
    else if (id == 4)                            //Translate
    {
        glTranslatef(100, 80, 0.0);                //向右移动,向上移动
        glColor3f(0.0, 1.0, 0.0);
        
        switch (DrawType)
        {
        case 0:
            glBegin(GL_LINES);
            for (int i = 1; i <= pn; i++)
            {
                glVertex2i(p[i].px, p[i].py);
            }
            glEnd();
            break;
        case 1:
            glBegin(GL_POLYGON);
            for (int i = 1; i <= pn; i++)
            {
                glVertex2i(p[i].px, p[i].py);
            }
            glEnd();
            break;
        case 2:
            glBegin(GL_POLYGON);
            for (int i = 0; i < n; ++i)
            {
                glVertex2f(p[pn].px + R*cos(2 * Pi / n*i), p[pn].py + R*sin(2 * Pi / n*i));
            }
            glEnd(); 
            break;
        default:
            break;
        }
        
        //glLoadIdentity();
        glFlush();
    }
    else if (id == 5)                            //Rotate
    {
        //glTranslatef(100, 0, 0.0);
        glRotatef(60, 0, 0, 1.0);                //旋转60°
        //glTranslatef(-100, 0, 0.0);
        glColor3f(0.0, 1.0, 0.0);
        
        switch (DrawType)
        {
        case 0:
            glBegin(GL_LINES);
            for (int i = 1; i <= pn; i++)
            {
                glVertex2i(p[i].px, p[i].py);
            }
            glEnd();
            break;
        case 1:
            glBegin(GL_POLYGON);
            for (int i = 1; i <= pn; i++)
            {
                glVertex2i(p[i].px, p[i].py);
            }
            glEnd();
            break;
        case 2:
            glBegin(GL_POLYGON);
            for (int i = 0; i < n; ++i)
            {
                glVertex2f(p[pn].px + R*cos(2 * Pi / n*i), p[pn].py + R*sin(2 * Pi / n*i));
            }
            glEnd();
            break;
        default:
            break;
        }

        //glLoadIdentity();
        glFlush();
    }
    else if (id == 6)                                //Size
    {
        //glTranslatef(-100, -50, 0.0);
        glScalef(2, 2, 1.0);                        //x axis, y axis
        //glTranslatef(100, 50, 0.0);
        glColor3f(0.0, 1.0, 0.0);
        
        switch (DrawType)
        {
        case 0:
            glBegin(GL_LINES);
            for (int i = 1; i <= pn; i++)
            {
                glVertex2i(p[i].px, p[i].py);
            }
            glEnd();
            break;
        case 1:
            glBegin(GL_LINE_LOOP);
            for (int i = 1; i <= pn; i++)
            {
                glVertex2i(p[i].px, p[i].py);
            }
            glEnd();
            break;
        case 2:
            glBegin(GL_LINE_LOOP);
            for (int i = 0; i < n; ++i)
            {
                glVertex2f(p[pn].px + R*cos(2 * Pi / n*i), p[pn].py + R*sin(2 * Pi / n*i));
            }
            glEnd();
            break;
        default:
            break;
        }

        //glLoadIdentity();
        glFlush();
    }
}

这周的软件工程课着重讲解了程序代码的格式以及注释的重要性。所以我在写程序的时候注意了一下。当然肯定没有要求的那么标准,只是简单地将程序分了“块”,核心“块”前面加上必要的注释。然后在每个函数之前都有注释说明函数内容。只是还没达到非常正规的要求。未能加入函数的参数以及返回值的具体作用。即使只加入了这么一点代码,就会使整体看着十分舒服。时隔数天再读代码都会觉得思路清晰。以前改格式只是为了看着好看,并没有注意到内在的东西,比如即使是一个函数中的一段代码,在逻辑上也是有层次的,分“块”的意义就在此,将这些内在的逻辑清楚明白地展现出来,既美观整洁,又有利于团队合作。

转载于:https://www.cnblogs.com/Dmmuistirci/p/5540463.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言实训心得总结.doc C语言实训心得 10903090113 李新程 在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,感触良多。 在这次实训中,我对对C语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。这次的实训,使我对C语言的学习产生浓厚的兴趣。 还是这次实训,最令人激动的就是合作做项目,虽然那只是一个很小很小的项目。每天大家来得很早,大家在一起学习,取长补短,我们很好的在实训中长知识,提高我们的学习热情。实训中深切体会到了老师认真负责的伟大的精神和热情为同学指导的促学方式,虽然对有些时候老师没给我们指出解决问题的方法有些小抱怨,但是到了结束时才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多是老师给的感动,每天在我们来之前就到了教室,在讲课中海给我们分享他在公司上班的一些心得和体会,还有那些我们应该注意的事项,这些是平时上课时无法学到的,是更深层次的巨大收获。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值