代码改变世界

2017-2018-1 20179226 《构建之法》第1周学习总结

2017-12-02 09:05  20179226任逸飞  阅读(205)  评论(1编辑  收藏  举报

教材学习内容总结

1.1软件=程序+软件工程

1.程序,在这里指的是源程序,就是一行行的代码。它们是建立在数据结构上的一些算法。程序还要对数据进行操作,有静态和动态。

1.2软件工程是什么

1.软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。
2.软件有各种分类方法,例如系统软件、应用软件、恶意软件。
3.软件开发过程难题:
1)复杂性:大型软件有超过百万行源代码,上万个不同文件。
2)不可见性:工程师看不到自己的源代码如何具体在机器上执行。
3)易变性:软件修改十分容易。
4)服从性:服从系统其他组成部分的要求。
5)非连续性:输入很小的变化都会引起输出上极大的变化。
4.计算机科学和软件工程关系:互利双赢。计算机理论的进展会帮助软件工程;软件工程的进展会帮助计算机科学家更有效的实验和探索。

教材学习中的问题和解决过程

  • 问题1:在网上看到了这个问题**有人认为,现在绝大多数编程语言都是以英语为基础,中国人编程还要学习英语,这增加了不必要的障碍。 如果有 “中文编程”, 则是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么,它能极大增加中国程序员的效率么? **下面是一个人的微博截图感觉十分有趣,是不是中文编程真的会更方便一些呢?
  • 问题1解决方案: 中文编程技术关键不是简单程序编写汉字标识使用,而是程序代码的编译技术必须自己掌握,编程与编译必须互为统一发展。

代码调试中的问题和解决过程

  • 问题1:编写自动生成小学四则运算题目的程序。
  • 问题1解决方案:

    代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

int main()
{
    int i=0;
    int n=0;
    int x=0;
    int type;
    char flag;
    int left, right;
    float result;
    printf("请输入要出的题目数量\n");
    scanf("%d",&n);
    srand(unsigned(time(NULL)));
    while(x<n)
    {
        type = rand() % 4;
        left = rand() % 100;
        right = rand() % 100;
        switch(type)
        {
           case 0:
               printf("%d + %d = ?\n", left, right);
                break;
            case 1:
                printf("%d - %d = ?\n", left, right);
                break;
           case 2:
                printf("%d * %d = ?\n", left, right);
                break;
            case 3:
                printf("%d / %d = ?\n", left, right);
                break;
        }
        i++;
        while(i>=n)
        {
            printf("一共 %d 题\n",i); 
            printf("继续?[Y/N]\n");
            fflush(stdin);
            scanf("%c",&flag);
            if(flag=='Y'||flag=='y')
            {
                printf("请输入要出的题目数量\n");
                scanf("%d",&n);
                i=0;
                break;
             }
            printf("谢谢使用!\n");
            fflush(stdin);
            getchar();
            return 0;
            }
     }
}
  • 问题2:在找代码时出现了#include <windows.h>的头文件,linux环境下并没有这个头文件,查找资料后也没有发现可以替换的头文件,将#include <windows.h>头文件删除后有一些函数的定义则出现了错误,不知应该如何解决然后换了个代码。