(服务器也不用来干什么,就维持着个博客,感觉浪费,所以迁移过来了)
知识点部分
软件包括了使计算机运行所需的各种程序和相关的文档资料。
程序是指令的集和,而指令就是计算机可以识别的命令。
指令系统:一台计算机所能识别的所有指令的集合。
机器语言:计算机硬件系统可以识别的二进制指令组成的语言。
汇编语言:机器指令映射为一些可以被人读懂的助记符(ADD,SUB)。
汇编程序将汇编语言转换为机器语言。
高级语言:屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定含义得到数据命名和容易理解的执行语句。
面向对象:将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征)形成类。
优点:(1)代码重用(2)缩短软件开发周期(3)使得软件风格统一
结构化程序设计与面向对象的方法对比
结构化:自顶向下,逐步求精,其程序结构是按功能划分为若干个基本模块,模块直接形成树状结构,模块之间的关系尽可能简单,功能上独立,每个模块内部均是由顺序,选择,循环三种结构组成的,模块化的实现方法就是使用子程序。缺点:数据和数据处理过程分割为相互独立的实体,数据结构发生改变时,相关处理过程也要发生改变。
面向对象的方法:将数据和对数据的操作方法放在一起,作为一个相互依存,不可分割的整体—对象。对同类型对象抽象出其共性,形成类,类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。
优点:程序模块独立,数据安全,重用性好。
对象:属性和行为的集合。
类,具有相同属性和服务的对象的集合。
封装:将对象的属性和行为结合成一个独立的,不可分割的系统单位,并尽可能隐藏对象的内部结构。
继承:特殊类的对象拥有一般类的全部属性与服务,称作特殊类对一般类的继承。
多态:一般类中定义的属性或行为,被特殊类继承后,面对不同数据类型表现出的不同行为。
软件工程:分析->设计->编程->测试->软件维护
二进制的优点:易于物理实现,二进制数运算简单,机器可靠性高,通用性强。
位(bit)表示1位二进制信息
字节(byte)一个字节,由8位二进制数字组成(1byte=8bit)
原码,反码,补码(负数的反码+1)
源程序(cpp)-- 编译 -- 目标程序(obj,一般是生成汇编语言,也有可能是机器语言)-- 汇编 -- 机器码 -- 链接动态库和静态库 -- 可执行程序(exe)
课后题部分
1.简述计算机程序设计语言的发展历程。
计算机程序设计语言经历了:机器语言,汇编语言,高级语言等阶段。C++是一种面向对象的编程语言,属于高级语言。
2.面向对象的编程语言有哪些特点。
封装,继承,多态。面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。C++语言是目前应用最广的面向对象的编程语言。
3.什么是结构化程序设计方法?这种方法有哪些优点和缺点?
结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。
虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。
由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。
4.什么是对象?什么是面向对象方法?这种方法有哪些特点?
从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。
面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体--对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过实现继承与多态性,还可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。
面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。
5.什么叫做封装?
封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。
6.面向对象的软件工程包括哪些主要内容?
面向对象的软件工程是面向对象方法在软件工程领域的全面应用,它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容。
7.简述计算机内部的信息可分为几类?
计算机内部的信息可以分成控制信息和数据信息二大类;控制信息可分为指令和控制字两类;数据信息可分为数值信息和非数值信息两类。
8.什么叫二进制?使用二进制有何优点和缺点?
二进制是基数为2,每位的权是以2
为底的幂的进制,遵循逢二进一原则,基本符号为0和1。采用二进制码表示信息,有如下几个优点:1.易于物理实现;2.二进制数运算简单;3.机器可靠性高;4.通用性强。其缺点是它表示数的容量较小,表示同一个数,二进制较其他进制需要更多的位数。
9.请将以下十进制数值转换为二进制和十六进制补码:
(1)2 (2)9 (3)93(4)-32 (5)65535 (6)-1
(1) (2)10= (10)2 = (2)16
(2) (9)10= (1001)2 = (9)16
(3) (93)10= (1011101)2 = (5D)16
(4) (-32)10= (11100000)2 = (E0)16
(5) (65535)10 = (11111111 11111111)2 = (FFFF)16
(6) (-1)10= (11111111 11111111)2 = (FFFF)16
10.请将以下数值转换为十进制:
(1)(1010)2(2)(10001111)2 (3)(01011111 11000011)2
(4)(7F)16 (5)(2D3E)16 (6)(F10E)16
(1)(1010)2 = (10)10
(2)(10001111)2 =(143)10
(3)(01011111 11000011)2 = (24515)10
(4)(7F)16 = (127)10
(5)(2D3E)16 = (11582)10
(6)(F10E)16 = (61710)10
11.简要比较原码、反码、补码等几种编码方法。
原码:将符号位数字化为 0 或 1,数的绝对值与符号一起编码,即所谓"符号──绝对值表示"的编码。
正数的反码和补码与原码表示相同。
负数的反码与原码有如下关系:
符号位相同(仍用1表示),其余各位取反(0变1,1变0)。
补码由该数反码的最末位加1求得