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