第二章 程序设计基础
- 格式:doc
- 大小:26.00 KB
- 文档页数:3
Python程序设计基础教程第一章:Python简介和安装1.1 Python的历史和发展Python是Guido van Rossum在1980年代末和1990年代初设计的一种编程语言。
文章介绍了Python的起源、发展和目前的应用领域。
1.2 Python的优势和特点本节详细介绍了Python作为一种高级编程语言的优势和特点,例如简洁明了的语法、强大的标准库和广泛的社区支持。
1.3 Python的安装步骤提供了详细的Python安装指南,包括不同操作系统下的安装方法、环境配置和验证安装是否成功。
第二章:Python基本语法2.1 变量和数据类型介绍了Python中常见的数据类型,包括数字、字符串、列表、元组和字典,以及如何定义和使用变量。
2.2 条件和循环详细介绍了Python中的条件语句(if-else语句)和循环语句(for循环和while循环),以及如何使用它们来控制程序的执行流程。
2.3 函数和模块介绍了如何定义和调用函数,以及如何使用模块来组织和管理Python代码。
第三章:Python高级特性3.1 列表生成式详细介绍了Python中列表生成式的语法和用法,以及如何利用列表生成式简化代码和实现复杂的数据处理。
3.2 迭代器和生成器解释了Python中迭代器和生成器的概念,并展示了如何定义和使用它们来实现高效的数据处理和遍历。
3.3 装饰器介绍了Python中装饰器的概念和用法,以及如何使用装饰器来增强已有函数的功能。
第四章:Python文件操作和异常处理4.1 文件读写介绍了Python中文件读写的基本操作,包括打开文件、读取内容、写入内容和关闭文件。
4.2 异常处理详细讲解了Python中的异常处理机制,包括如何捕捉和处理异常以及如何自定义异常类。
第五章:Python面向对象编程5.1 类和对象解释了Python中类和对象的概念,包括如何定义类、创建对象和调用对象的方法。
5.2 继承和多态介绍了Python中的继承和多态特性,以及如何使用它们来实现代码的重用和灵活性。
c语言程序设计基础教程课后答案C语言程序设计基础教程课后答案第一章:C语言概述1. 简述C语言的特点。
- C语言是一种结构化编程语言,具有高效、灵活、功能强大等特点。
- 它支持多种编程范式,如过程式编程、结构化编程、面向对象编程等。
- C语言具有较低的抽象级别,接近硬件,因此执行效率较高。
2. C语言的发展历史。
- C语言在1972年由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发。
- 它最初是作为UNIX操作系统的系统编程语言而设计的。
第二章:C语言环境和基本语法1. 如何设置C语言的开发环境?- 选择一个C语言编译器,如GCC、MSVC等。
- 安装编译器并配置环境变量,以便在命令行中直接调用编译器。
2. C语言的基本语法结构是什么?- C语言的基本结构包括预处理指令、函数定义、变量声明和语句。
第三章:数据类型、运算符和表达式1. C语言中的基本数据类型有哪些?- 整型(int)、字符型(char)、浮点型(float和double)等。
2. 运算符的分类及其用法。
- 算术运算符:+、-、*、/、%等。
- 赋值运算符:=、+=、-=等。
- 比较运算符:==、!=、>、<等。
- 逻辑运算符:&&、||、!等。
第四章:控制语句1. 条件语句的用法。
- if语句用于基于条件执行代码块。
- switch语句用于多条件选择。
2. 循环语句的用法。
- while循环用于在满足条件时重复执行代码块。
- for循环用于已知迭代次数的循环。
- do-while循环先执行代码块再判断条件。
第五章:数组和字符串1. 数组的基本概念和使用。
- 数组是相同数据类型的元素集合,存储在连续的内存位置。
- 声明数组:int arr[10]; 表示一个包含10个整数的数组。
2. 字符串的表示和操作。
- 在C语言中,字符串是以空字符('\0')结尾的字符数组。
- 使用标准库函数如strcpy、strlen等操作字符串。
第二章程序设计基础2.1程序设计方法与风格程序设计是一门艺术,需要相应的理论、技术、方法和工具来支持。
就程序设计方法和技术的发展而言,主要经过了结构化程序设计和面向对象程序设计阶段。
除了好的程序设计方法和技术外,程序设计风格也是很重要的。
因为程序设计风格会深刻地影响软件的质量和可维护性,良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护,因此程序设计风格对保证程序的质量是很重要的。
一般来说,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。
程序是由人来编写的,为了测试和维护程序,往往还要阅读和跟踪程序,因此程序设计的风格总体而言应该强调简单和清晰,程序必须是可理解的。
可以认为,著名的“清晰第一,效率第二”的论点已成为当今主导程序设计风格。
要形成良好的程序设计风格,主要应注重和考虑下述一些因素。
1、源程序文档化源程序文档化应考虑如下几点:(1)符号名的命名:符号名的命名应具有一定实际意义,以便于对程序功能的理解。
(2)程序注释:正确的注释能够帮助读者理解程序。
注释一般包括序言性注释和功能性注释。
序言性注释通常位于每个程序的开头部分,它给出程序的整体说明,主要描述内容包括:程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期、修改日期等。
功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。
(3)视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。
2、数据说明的方法在编写程序时,需要注意数据说明的风格,以便使程序中的数据说明更易于理解和维护。
一般应注意以下几点:(1)数据说明的次序规范化。
鉴于程序理解、阅读和维护的需要,使数据说明次序固定,可以使数据的属性容易查找,也有利于测试、排错和维护。
(2)说明语句中变量安排有序化。
当一个说明语句说明多个变量时,变量按字母顺序排列为好。
(3)使用注释来说明复杂数据的结构。
国家计算机二级考试公共基础知识教材公共基础知识总结之第一章数据结构与算法 (1)公共基础知识总结之第二章程序设计基础 (4)公共基础知识总结之第三章软件工程基础 (5)公共基础知识总结之第四章数据库系统 (8)公共基础知识总结之第一章数据结构与算法第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
《程序设计基础》第二章自测一、选择题(每题6分,共48分)题目1正确获得6.00分中的6.00分标记题目题干JAVA语言的类别是______。
选择一项:A. 面向问题的程序设计语言B. 面向对象的程序设计语言C. 面向硬件的程序设计语言D. 面向过程的程序设计语言反馈正确答案是:面向对象的程序设计语言题目2正确获得6.00分中的6.00分标记题目题干汇编程序的任务是______。
选择一项:A. 将高级语言编写的程序转换为可执行程序B. 将汇编语言编写的程序转换为可执行程序C. 将高级语言编写的程序转换为汇编语言程序D. 将汇编语言编写的程序转换为目标程序反馈正确答案是:将汇编语言编写的程序转换为目标程序题目3正确获得6.00分中的6.00分标记题目题干C语言是______。
选择一项:A. 目标语言B. 高级语言C. 汇编语言D. 机器语言反馈正确答案是:高级语言题目4正确获得6.00分中的6.00分标记题目题干要保证程序在多次反复使用过程中不发生错误,关键应该提高程序的______。
选择一项:A. 可维护性B. 可靠性C. 正确性D. 有效性反馈正确答案是:可靠性题目5正确获得6.00分中的6.00分标记题目题干汇编语言属于______。
选择一项:A. 非过程式语言B. 过程式语言C. 逻辑语言D. 函数式语言反馈正确答案是:过程式语言题目6正确获得6.00分中的6.00分标记题目题干要编写高质量的程序,判断程序质量的首要标准是程序的_____①______,要保证程序在多次反复使用过程不发生错误,应该保证程序的_____②______。
选择一项:A. ①可靠性②有效性B. ①有效性②正确性C. ①正确性②可靠性反馈正确答案是:①正确性②可靠性题目7正确获得6.00分中的6.00分标记题目题干编译程序的实现算法较为复杂,但它可以产生高效运行的____①______程序,因此更适合翻译那些规模较大、结构较复杂、需要较长运行时间的_____②______ 程序。
Visual basic 程序设计习题参考答案第一章Visual basic 程序设计一、选择题二、填空题三、简答题1、简述visual basic 的特点。
(1)具有可视化的设计平台(2)面向对象的设计方法(3)事件驱动的编程机制(4)结构化程序设计语言(5)开放的数据库功能与网络支持2、什么是对象、类、属性、事件和方法?在可视化编程语言中,对象是代码和数据的集合,它可以是窗体和控件,也可以是菜单和数据库等。
描述一个对象有三个基本要素:属性、方法和事件。
类是一组用来定义对象的相关过程和数据的集合,即同类对象的集合和抽象。
属性是描述对象的一组特性。
方法是对象能够执行的动作,它是对象本身内含的函数或过程,用于完成某种特定的功能。
事件是发生在对象上并且能够被对象识别的动作,即由系统预先设置好的、能被对象识别的动作,如Click(单击)、DblClick(双击)、Load(窗体的装载)、KeyPress(按键)、Change(改变)、MouseMove (鼠标的移动)等,每一种对象能识别的事件是不同的5、什么是事件驱动的编程机制?当某个事件(一般由用户操作来触发) 发生时,系统就会自动执行此事件的事件过程。
由事件控制整个程序的执行流程。
事件过程要经过事件的触发才能被执行,这种工作模式称为事件驱动方式。
第二章Visual basic 程序设计基础一、选择题二、填空题第三章数据输入输出一、选择题二、填空题3第四章选择结构和循环结构程序设计一、选择题二、填空题第五章数组一、选择题二、填空题第六章过程一、选择题二、填空题三、简答题1、简述事件过程和通用过程的含义和联系。
5VB应用程序是由过程组成的,过程是完成某种特殊功能的一组独立的程序代码。
VB中的过程有两大类:事件过程和通用过程事件过程是当发生某个事件时,对该事件作出响应的程序段。
事件过程由VB自行声明,用户不能增加或删除。
事件过程是VB 应用程序的主体。
《程序设计基础》电子教案第一章:计算机程序设计概述1.1 教学目标了解计算机程序设计的概念和意义掌握程序设计的基本原则和步骤理解编程语言的分类和特点1.2 教学内容计算机程序设计的定义和作用程序设计的基本原则和步骤(分析、设计、编码、测试、维护)常见编程语言的分类和特点(例如:高级语言、低级语言、脚本语言)1.3 教学方法讲授法:讲解程序设计的概念和原理案例分析法:分析典型程序设计案例互动教学法:引导学生提问和讨论1.4 教学评价课堂问答:检查学生对程序设计概念的理解课后作业:编写简单的程序,巩固所学知识第二章:C语言基础2.1 教学目标掌握C语言的基本语法和数据类型学会使用C语言进行程序设计理解C语言的特点和优势2.2 教学内容C语言的基本语法和规则(例如:变量、常量、运算符、表达式)C语言的数据类型(整型、浮点型、字符型、布尔型)C语言的控制语句(顺序、选择、循环)2.3 教学方法讲授法:讲解C语言的基本语法和规则编程实践法:让学生动手编写C语言程序案例分析法:分析典型C语言程序案例2.4 教学评价课堂问答:检查学生对C语言基础知识的掌握课后作业:编写C语言程序,巩固所学知识第三章:算法和逻辑结构3.1 教学目标理解算法的基本概念和特点掌握常用的算法设计和分析方法学会使用逻辑结构表示算法3.2 教学内容算法的定义和特点(精确性、有穷性、可行性)算法设计方法(列举法、递推法、分治法、动态规划法)逻辑结构表示算法(顺序结构、选择结构、循环结构)3.3 教学方法讲授法:讲解算法的基本概念和特点案例分析法:分析典型算法案例编程实践法:让学生动手实现算法3.4 教学评价课堂问答:检查学生对算法概念的理解课后作业:实现简单的算法,巩固所学知识第四章:数据结构基础4.1 教学目标理解数据结构的概念和重要性掌握常用的数据结构及其应用学会使用编程语言实现基本数据结构4.2 教学内容数据结构的定义和分类(线性结构、非线性结构)线性表(顺序表、链表)栈和队列(栈的定义和应用、队列的定义和应用)树和图(树的基本概念、图的基本概念)4.3 教学方法讲授法:讲解数据结构的基本概念和原理编程实践法:让学生动手实现基本数据结构案例分析法:分析典型数据结构应用案例4.4 教学评价课堂问答:检查学生对数据结构概念的理解课后作业:实现基本数据结构,巩固所学知识第五章:C语言高级编程5.1 教学目标掌握C语言的高级编程技术学会使用函数、指针和数组理解C语言的面向对象编程思想5.2 教学内容函数的定义和声明(函数的参数、返回值)指针的基本概念和应用(指针的声明、指针的运算、指针数组)数组的基本概念和应用(一维数组、多维数组)面向对象编程(类、对象、封装、继承、多态)5.3 教学方法讲授法:讲解C语言高级编程技术的基本概念编程实践法:让学生动手实现高级编程技术案例分析法:分析典型高级编程技术应用案例5.4 教学评价课堂问答:检查学生对C语言高级编程技术的理解课后作业:实现高级编程技术,巩固所学知识第六章:软件开发方法和工具6.1 教学目标理解软件开发过程和原则掌握常用的软件开发方法和工具学会使用版本控制系统6.2 教学内容软件开发过程(需求分析、设计、编码、测试、维护)软件开发方法(面向过程、面向对象、敏捷开发)常用的软件开发工具(集成开发环境、版本控制系统、调试工具)6.3 教学方法讲授法:讲解软件开发过程和原则案例分析法:分析典型软件开发案例实践操作法:让学生动手使用开发工具6.4 教学评价课堂问答:检查学生对软件开发方法的理解课后作业:使用开发工具完成小项目,巩固所学知识第七章:项目管理和团队协作7.1 教学目标理解项目管理的基本概念和方法掌握项目计划的制定和执行学会团队协作和沟通技巧7.2 教学内容项目管理的基本概念和方法(项目生命周期、工作分解结构、甘特图)项目计划的制定和执行(任务分配、时间管理、资源调度)团队协作和沟通技巧(团队建设、冲突解决、会议管理)7.3 教学方法讲授法:讲解项目管理的基本概念和方法角色扮演法:模拟项目管理和团队协作场景小组讨论法:让学生分组讨论和实践团队协作7.4 教学评价课堂问答:检查学生对项目管理概念的理解小组项目:评估学生在项目管理和团队协作中的表现第八章:数据库基础8.1 教学目标理解数据库的基本概念和原理掌握关系型数据库的设计和操作学会使用SQL语言进行数据查询和管理8.2 教学内容数据库的基本概念和原理(数据模型、关系型数据库、数据库管理系统)关系型数据库的设计(表的设计、索引的使用)SQL语言的基本操作(数据查询、数据更新、数据删除、数据完整性约束)8.3 教学方法讲授法:讲解数据库的基本概念和原理编程实践法:让学生动手使用SQL语言进行数据操作案例分析法:分析典型数据库应用案例8.4 教学评价课堂问答:检查学生对数据库概念的理解课后作业:使用SQL语言完成数据操作,巩固所学知识第九章:网络安全基础9.1 教学目标理解网络安全的重要性和挑战掌握常用的网络安全技术和策略学会分析和防范网络安全风险9.2 教学内容网络安全的基本概念和威胁(信息加密、认证、篡改、泄露)常用的网络安全技术(防火墙、入侵检测系统、VPN、加密算法)网络安全策略和最佳实践(访问控制、安全审计、漏洞管理)9.3 教学方法讲授法:讲解网络安全的基本概念和技术案例分析法:分析网络安全事件和案例实践操作法:让学生动手配置网络安全设备9.4 教学评价课堂问答:检查学生对网络安全概念的理解实验报告:评估学生在网络安全实践中的表现第十章:软件测试和维护10.1 教学目标理解软件测试的目的和重要性掌握常用的软件测试方法和技巧学会软件维护和升级策略10.2 教学内容软件测试的基本概念和目标(验证和验证、静态测试、动态测试)常用的软件测试方法和技巧(黑盒测试、白盒测试、灰盒测试、自动化测试)软件维护和升级策略(修改策略、版本控制、兼容性测试)10.3 教学方法讲授法:讲解软件测试的基本概念和方法案例分析法:分析典型软件测试案例实践操作法:让学生动手进行软件测试10.4 教学评价课堂问答:检查学生对软件测试概念的理解课后作业:完成软件测试实践,巩固所学知识重点和难点解析重点环节1:程序设计的基本原则和步骤补充说明:程序设计原则如模块化、抽象化、逐步求精等,是提高程序质量的关键。
实验作业程序设计基础2实验目的1、掌握VB的基本数据类型,变量、常量的定义格式。
2、掌握运算符和表达式的表示方法。
实验要求1、选择题,填空题、运行结果题、转换题标明题号,答案写在实验报告上。
2、程序设计题中的第2题要求把事件代码写在实验报告上。
3、程序设计题单建一个文件夹,以学号和姓名命名,压缩后上交到ftp服务器上。
实验内容一、选择题1.表达式25.28 Mod 6.99的值是[ B ]。
(A)1 (B)5 (C)4 (D)出错2.表达式5 ^ 2 Mod 25 \ 2 ^ 2的值是[ D ].(A)1 (B)0 (C)6 (D)43.表达式( 7 \ 3 + 1) * (18 \ 5 - 1)的值是[ A ]。
(A)8.67 (B)7.8 (C)6 (D)6.674.要强制显示声明变量,可在窗体模块或标准模块的声明段中加入语句[ B ]。
(A)Option Base 0 (B)Option Explicit(C)Option Base 1 (D)OptionCompare5.表达式Int(-20.9)+Int(20.9+0.5)-Fix(-17.9)的值为__C____A.-17B.16C.17D.186.如果a,b,c的值分别为3,2,-3,则下列表达式的值是______Abs(b+c)+a*Int(Rnd+3)+Asc(Chr(65+a))A.10B.68C.69D.787.设m=”morning”,下列______表达式的值是”mor”BA.Mid(m,5,3)B.Left(m,3)C.Right(m,4,3)D.Mid(m,3,1)8.如果x是一个正实数,对x的第三位小数四舍五入的表达式是__A____A.0.01*Int(100*x+0.5)B.0.01*Int(10*x+0.5)C.0.01*Int(x+0.5)D.0.01*Int(x+5)9.求一个三位正整数n的十位数的方法是___A___A.Int(n/10)- Int(n/100)*10B. Int(n/10)- Int(n/100)C.n-Int(n/100)*10D. Int(n-Int(n/100)*1010.返回删除字符串前导和尾随空格符后的字符串,用函数 A 。
第二章 Fortran程序设计基础2.1.1字符集“字符集”是指编写Fortran程序时,所能使用的所有字符及符号。
Fortran所能使用Fortran标准中规定,编译器只需要认得大写的英文字母,而如果程序代码中使用小写英文字母,则会把它们视为大写字母。
简单说,Fortran是不区分大小写的语言。
特殊符号除了用来做数学计算符号外,还有其他用法,后面用到时会介绍它们。
2.1.2书面格式Fortran程序代码的编写格式有两种,Free Format(自由格式)及 Fixed format(固定格式)。
Fixed format(固定格式)属于旧式写法,它在编写版面上有很多限制。
Free Format (自由格式)是Fortran90之后的新写法,取消了很多旧的限制。
这里,我们要求用Free Format格式来编写程序。
以*.F90为扩展名的文件,就是用Free Format来编写的程序。
Free Fortran格式基本上允许非常自由的格式,它没有规定每一行的第几个字符有什么作用。
需要注意以下几点:(1)叹号“!”后面的文本都是注释,Fortran90编译程序对源程序进行编译时,对注释区内的内容不予处理。
(2)每行可以编写132个字符。
(3)行号放在每行程序的最前面。
(4)要求以一个“&”作为一个续行标志;一行中可以写多条语句,用“;”隔开。
下面是一个用Free Format格式的编写实例:1.! Free Format2. program main3. write(*.*) “hellow” !这也是注释4. write(*.*) &5. “hellow”6. end这里,读者可发现第一、三行中都有注释,第一行整行都是注释,第三行只有叹号后面的部分是注释。
第四行的最后是连接符号&,所以第五行会连接在它后面。
2.1.3 Fortran的数据类型1.整数(INTEGER)整数的类型又分为两种,长整型与短整型。
二级公共基础知识总结第一章数据结构与算法1.1 算法算法:是指解题方案地准确而完整地描述.算法不等于程序,也不等计算机方法,程序地编制不可能优于算法地设计.算法地基本特征:是一组严谨地定义运算顺序地规则,每一个规则都是有效地,是明确地,此顺序将在有限地次数下终止.特征包括:<1)可行性;<2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可地解释,不允许有多义性;<3)有穷性,算法必须能在有限地时间内做完,即能在执行有限个步骤后终止,包括合理地执行时间地含义;<4)拥有足够地情报.算法地基本要素:一是对数据对象地运算和操作;二是算法地控制结构.指令系统:一个计算机系统能执行地所有指令地集合.基本运算包括:算术运算、逻辑运算、关系运算、数据传输.算法地控制结构:顺序结构、选择结构、循环结构.算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法. 算法复杂度:算法时间复杂度和算法空间复杂度.算法时间复杂度是指执行算法所需要地计算工作量.算法空间复杂度是指执行这个算法所需要地内存空间.1.2 数据结构地基本基本概念数据结构研究地三个方面:<1)数据集合中各数据元素之间所固有地逻辑关系,即数据地逻辑结构;<2)在对数据进行处理时,各数据元素在计算机中地存储关系,即数据地存储结构;<3)对各种数据结构进行地运算.数据结构是指相互有关联地数据元素地集合.数据地逻辑结构包含:<1)表示数据元素地信息;<2)表示各数据元素之间地前后件关系.数据地存储结构有顺序、链接、索引等.线性结构条件:<1)有且只有一个根结点;<2)每一个结点最多有一个前件,也最多有一个后件.非线性结构:不满足线性结构条件地数据结构.1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素地位置只取决于自己地序号,元素之间地相对位置是线性地.在复杂线性表中,由若干项数据元素组成地数据元素称为记录,而由多个记录构成地线性表又称为文件.非空线性表地结构特征:<1)且只有一个根结点a1,它无前件;<2)有且只有一个终端结点an,它无后件;<3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件.结点个数n称为线性表地长度,当n=0时,称为空表.线性表地顺序存储结构具有以下两个基本特点:<1)线性表中所有元素地所占地存储空间是连续地;<2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放地.ai地存储地址为:ADR(ai>=ADR(a1>+(i-1>k,,ADR(a1>为第一个元素地地址,k代表每个元素占地字节数.顺序表地运算:插入、删除.1.4 栈和队列栈是限定在一端进行插入与删除地线性表,允许插入与删除地一端称为栈顶,不允许插入与删除地另一端称为栈底.栈按照“先进后出”<FILO)或“后进先出”<LIFO)组织数据,栈具有记忆作用.用top表示栈顶位置,用bottom表示栈底.栈地基本运算:<1)插入元素称为入栈运算;<2)删除元素称为退栈运算;<3)读栈顶元素是将栈顶元素赋给一个指定地变量,此时指针无变化.队列是指允许在一端<队尾)进入插入,而在另一端<队头)进行删除地线性表.Rear指针指向队尾,front指针指向队头.队列是“先进行出”<FIFO)或“后进后出”<LILO)地线性表.队列运算包括<1)入队运算:从队尾插入一个元素;<2)退队运算:从队头删除一个元素.循环队列:s=0表示队列空,s=1且front=rear表示队列满1.5 线性链表数据结构中地每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点.结点由两部分组成:<1)用于存储数据元素值,称为数据域;<2)用于存放指针,称为指针域,用于指向前一个或后一个结点.在链式存储结构中,存储数据结构地存储空间可以不连续,各数据结点地存储顺序与数据元素之间地逻辑关系可以不一致,而数据元素之间地逻辑关系是由指针域来确定地.链式存储方式即可用于表示线性结构,也可用于表示非线性结构.线性链表,HEAD称为头指针,HEAD=NULL<或0)称为空表,如果是两指针:左指针<Llink)指向前件结点,右指针<Rlink)指向后件结点.线性链表地基本运算:查找、插入、删除.1.6 树与二叉树树是一种简单地非线性结构,所有元素之间具有明显地层次特性.在树结构中,每一个结点只有一个前件,称为父结点,没有前件地结点只有一个,称为树地根结点,简称树地根.每一个结点可以有多个后件,称为该结点地子结点.没有后件地结点称为叶子结点.在树结构中,一个结点所拥有地后件地个数称为该结点地度,所有结点中最大地度称为树地度.树地最大层次称为树地深度.二叉树地特点:<1)非空二叉树只有一个根结点;<2)每一个结点最多有两棵子树,且分别称为该结点地左子树与右子树.二叉树地基本性质:<1)在二叉树地第k层上,最多有2k-1(k≥1>个结点;<2)深度为m地二叉树最多有2m-1个结点;<3)度为0地结点<即叶子结点)总是比度为2地结点多一个;<4)具有n个结点地二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n地整数部分;<5)具有n个结点地完全二叉树地深度为[log2n]+1;<6)设完全二叉树共有n个结点.如果从根结点开始,按层序<每一层从左到右)用自然数1,2,….n给结点进行编号<k=1,2….n),有以下结论:①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点地父结点编号为INT(k/2>;②若2k≤n,则编号为k地结点地左子结点编号为2k;否则该结点无左子结点<也无右子结点);③若2k+1≤n,则编号为k地结点地右子结点编号为2k+1;否则该结点无右子结点.满二叉树是指除最后一层外,每一层上地所有结点有两个子结点,则k层上有2k-1个结点深度为m地满二叉树有2m-1个结点.完全二叉树是指除最后一层外,每一层上地结点数均达到最大值,在最后一层上只缺少右边地若干结点.二叉树存储结构采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储.二叉树地遍历:<1)前序遍历<DLR),首先访问根结点,然后遍历左子树,最后遍历右子树;<2)中序遍历<LDR),首先遍历左子树,然后访问根结点,最后遍历右子树;<3)后序遍历<LRD)首先遍历左子树,然后访问遍历右子树,最后访问根结点. 1.7 查找技术顺序查找地使用情况:<1)线性表为无序表;<2)表采用链式存储结构.二分法查找只适用于顺序存储地有序表,对于长度为n地有序线性表,最坏情况只需比较log2n次.1.8 排序技术排序是指将一个无序序列整理成按值非递减顺序排列地有序序列.交换类排序法:<1)冒泡排序法,需要比较地次数为n(n-1>/2;<2)快速排序法.插入类排序法:<1)简单插入排序法,最坏情况需要n(n-1>/2次比较;<2)希尔排序法,最坏情况需要O(n1.5>次比较.选择类排序法:<1)简单选择排序法, 最坏情况需要n(n-1>/2次比较;<2)堆排序法,最坏情况需要O(nlog2n>次比较.第二章程序设计基础2.1 程序设计设计方法和风格如何形成良好地程序设计风格1、源程序文档化;2、数据说明地方法;3、语句地结构;4、输入和输出.注释分序言性注释和功能性注释,语句结构清晰第一、效率第二.2.2 结构化程序设计结构化程序设计方法地四条原则是:1. 自顶向下;2. 逐步求精;3.模块化;4.限制使用goto语句.结构化程序地基本结构和特点:<1)顺序结构:一种简单地程序设计,最基本、最常用地结构;<2)选择结构:又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应地语句序列;<3)循环结构:可根据给定条件,判断是否需要重复执行某一相同程序段.2.3 面向对象地程序设计面向对象地程序设计:以60年代末挪威奥斯陆大学和挪威计算机中心研制地SIMULA语言为标志.面向对象方法地优点:<1)与人类习惯地思维方法一致;<2)稳定性好;<3)可重用性好;<4)易于开发大型软件产品;<5)可维护性好.对象是面向对象方法中最基本地概念,可以用来表示客观世界中地任何实体,对象是实体地抽象.面向对象地程序设计方法中地对象是系统中用来描述客观事物地一个实体,是构成系统地一个基本单位,由一组表示其静态特征地属性和它可执行地一组操作组成.属性即对象所包含地信息,操作描述了对象执行地功能,操作也称为方法或服务. 对象地基本特点:<1)标识惟一性;<2)分类性;<3)多态性;<4)封装性;<5)模块独立性好.类是指具有共同属性、共同方法地对象地集合.所以类是对象地抽象,对象是对应类地一个实例.消息是一个实例与另一个实例之间传递地信息.消息地组成包括<1)接收消息地对象地名称;<2)消息标识符,也称消息名;<3)零个或多个参数.继承是指能够直接获得已有地性质和特征,而不必重复定义他们.继承分单继承和多重继承.单继承指一个类只允许有一个父类,多重继承指一个类允许有多个父类.多态性是指同样地消息被不同地对象接受时可导致完全不同地行动地现象第三章软件工程基础3.1 软件工程基本概念计算机软件是包括程序、数据及相关文档地完整集合.软件地特点包括:<1)软件是一种逻辑实体;<2)软件地生产与硬件不同,它没有明显地制作过程;<3)软件在运行、使用期间不存在磨损、老化问题;<4)软件地开发、运行对计算机系统具有依赖性,受计算机系统地限制,这导致了软件移植地问题;<5)软件复杂性高,成本昂贵;<6)软件开发涉及诸多地社会因素.软件按功能分为应用软件、系统软件、支撑软件<或工具软件).软件危机主要表现在成本、质量、生产率等问题.软件工程是应用于计算机软件地定义、开发和维护地一整套方法、工具、文档、实践标准和工序.软件工程包括3个要素:方法、工具和过程.软件工程过程是把软件转化为输出地一组彼此相关地资源和活动,包含4种基本活动:<1)P——软件规格说明;<2)D——软件开发;<3)C——软件确认;<4)A——软件演进.软件周期:软件产品从提出、实现、使用维护到停止使用退役地过程.软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是:<1)可行性研究与计划制定;<2)需求分析;<3)软件设计;<4)软件实现;<5)软件测试;<6)运行和维护.软件工程地目标和与原则:目标:在给定成本、进度地前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求地产品.基本目标:付出较低地开发成本;达到要求地软件功能;取得较好地软件性能;开发软件易于移植;需要较低地费用;能按时完成开发,及时交付使用.基本原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性.软件工程地理论和技术性研究地内容主要包括:软件开发技术和软件工程管理. 软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境. 软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容.软件管理学包括人员组织、进度安排、质量保证、配置管理、工程计划等.软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性.3.2 结构化分析方法结构化方法地核心和基础是结构化程序设计理论.需求分析方法有<1)结构化需求分析方法;<2)面向对象地分析地方法.从需求分析建立地模型地特性来分:静态分析和动态分析.结构化分析方法地实质:着眼于数据流,自顶向下,逐层分解,建立系统地处理流程,以数据流图和数据字典为主要工具,建立系统地逻辑模型.结构化分析地常用工具<1)数据流图;<2)数据字典;<3)判定树;<4)判定表.数据流图:描述数据处理过程地工具,是需求理解地逻辑模型地图形表示,它直接支持系统功能建模.数据字典:对所有与系统相关地数据元素地一个有组织地列表,以及精确地、严格地定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同地理解.判定树:从问题定义地文字描述中分清哪些是判定地条件,哪些是判定地结论,根据描述材料中地连接词找出判定条件之间地从属关系、并列关系、选择关系,根据它们构造判定树.判定表:与判定树相似,当数据流图中地加工要依赖于多个逻辑条件地取值,即完成该加工地一组动作是由于某一组条件取值地组合而引发地,使用判定表描述比较适宜.数据字典是结构化分析地核心.软件需求规格说明书地特点:<1)正确性;<2)无岐义性;<3)完整性;<4)可验证性;<5)一致性;<6)可理解性;<7)可追踪性.3.3 结构化设计方法软件设计地基本目标是用比较抽象概括地方式确定目标系统如何完成预定地任务,软件设计是确定系统地物理模型.软件设计是开发阶段最重要地步骤,是将需求准确地转化为完整地软件产品或系统地唯一途径.从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计. 结构设计:定义软件系统各主要部件之间地关系.数据设计:将分析时创建地模型转化为数据结构地定义.接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信.过程设计:把系统结构部件转换成软件地过程描述.从工程管理角度来看:概要设计和详细设计.软件设计地一般过程:软件设计是一个迭代地过程;先进行高层次地结构设计;后进行低层次地过程设计;穿插进行数据设计和接口设计.衡量软件模块独立性使用耦合性和内聚性两个定性地度量标准.在程序结构中各模块地内聚性越强,则耦合性越弱.优秀软件应高内聚,低耦合. 软件概要设计地基本任务是:<1)设计软件系统结构;<2)数据结构及数据库设计;<3)编写概要设计文档;<4)概要设计文档评审.模块用一个矩形表示,箭头表示模块间地调用关系.在结构图中还可以用带注释地箭头表示模块调用过程中来回传递地信息.还可用带实心圆地箭头表示传递地是控制信息,空心圆箭心表示传递地是数据.结构图地基本形式:基本形式、顺序形式、重复形式、选择形式.结构图有四种模块类型:传入模块、传出模块、变换模块和协调模块.典型地数据流类型有两种:变换型和事务型.变换型系统结构图由输入、中心变换、输出三部分组成.事务型数据流地特点是:接受一项事务,根据事务处理地特点和性质,选择分派一个适当地处理单元,然后给出结果.详细设计:是为软件结构图中地每一个模块确定实现算法和局部数据结构,用某种选定地表达工具表示算法和数据结构地细节.常见地过程设计工具有:图形工具<程序流程图)、表格工具<判定表)、语言工具<PDL).3.4 软件测试软件测试定义:使用人工或自动手段来运行或测定某个系统地过程,其目地在于检验它是否满足规定地需求或是弄清预期结果与实际结果之间地差别.软件测试地目地:发现错误而执行程序地过程.软件测试方法:静态测试和动态测试.静态测试包括代码检查、静态结构分析、代码质量度量.不实际运行软件,主要通过人工进行.动态测试:是基本计算机地测试,主要包括白盒测试方法和黑盒测试方法.白盒测试:在程序内部进行,主要用于完成软件内部CAO作地验证.主要方法有逻辑覆盖、基本基路径测试.黑盒测试:主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错,用于软件确认.主要方法有等价类划分法、边界值分析法、错误推测法、因果图等.软件测试过程一般按4个步骤进行:单元测试、集成测试、验收测试<确认测试)和系统测试.3.5 程序地调试程序调试地任务是诊断和改正程序中地错误,主要在开发阶段进行.程序调试地基本步骤:<1)错误定位;<2)修改设计和代码,以排除错误;<3)进行回归测试,防止引进新地错误.软件调试可分表静态调试和动态调试.静态调试主要是指通过人地思维来分析源程序代码和排错,是主要地设计手段,而动态调试是辅助静态调试.主要调试方法有:<1)强行排错法;<2)回溯法;<3)原因排除法.第四章数据库设计基础4.1 数据库系统地基本概念数据:实际上就是描述事物地符号记录.数据地特点:有一定地结构,有型与值之分,如整型、实型、字符型等.而数据地值给出了符合定型地值,如整型值15.数据库:是数据地集合,具有统一地结构形式并存放于统一地存储介质内,是多种应用数据地集成,并可被各个应用程序共享.数据库存放数据是按数据所提供地数据模式存放地,具有集成与共享地特点. 数据库管理系统:一种系统软件,负责数据库中地数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库地核心.数据库管理系统功能:<1)数据模式定义:即为数据库构建其数据框架;<2)数据存取地物理构建:为数据模式地物理存取与构建提供有效地存取方法与手段;<3)数据操纵:为用户使用数据库地数据提供方便,如查询、插入、修改、删除等以及简单地算术运算及统计;<4)数据地完整性、安生性定义与检查;<5)数据库地并发控制与故障恢复;<6)数据地服务:如拷贝、转存、重组、性能监测、分析等.为完成以上六个功能,数据库管理系统提供以下地数据语言:<1)数据定义语言:负责数据地模式定义与数据地物理存取构建;<2)数据操纵语言:负责数据地操纵,如查询与增、删、改等;<3)数据控制语言:负责数据完整性、安全性地定义与检查以及并发控制、故障恢复等.数据语言按其使用方式具有两种结构形式:交互式命令(又称自含型或自主型语言>宿主型语言<一般可嵌入某些宿主语言中).数据库管理员:对数据库进行规划、设计、维护、监视等地专业管理人员.数据库系统:由数据库<数据)、数据库管理系统<软件)、数据库管理员<人员)、硬件平台<硬件)、软件平台<软件)五个部分构成地运行实体.数据库应用系统:由数据库系统、应用软件及应用界面三者组成.文件系统阶段:提供了简单地数据共享与数据管理能力,但是它无法提供完整地、统一地、管理和数据共享地能力.层次数据库与网状数据库系统阶段:为统一与共享数据提供了有力支撑.关系数据库系统阶段数据库系统地基本特点:数据地集成性、数据地高共享性与低冗余性、数据独立性<物理独立性与逻辑独立性)、数据统一管理与控制.数据库系统地三级模式:<1)概念模式:数据库系统中全局数据逻辑结构地描述,全体用户公共数据视图;<2)外模式:也称子模式与用户模式.是用户地数据视图,也就是用户所见到地数据模式;<3)内模式:又称物理模式,它给出了数据库物理存储结构与物理存取方法. 数据库系统地两级映射:<1)概念模式到内模式地映射;<2)外模式到概念模式地映射.4.2 数据模型数据模型地概念:是数据特征地抽象,从抽象层次上描述了系统地静态特征、动态行为和约束条件,为数据库系统地信息表与操作提供一个抽象地框架.描述了数据结构、数据操作及数据约束.E-R模型地基本概念<1)实体:现实世界中地事物;<2)属性:事物地特性;<3)联系:现实世界中事物间地关系.实体集地关系有一对一、一对多、多对多地联系.E-R模型三个基本概念之间地联接关系:实体是概念世界中地基本单位,属性有属性域,每个实体可取属性域内地值.一个实体地所有属性值叫元组.E-R模型地图示法:<1)实体集表示法;<2)属性表法;<3)联系表示法. 层次模型地基本结构是树形结构,具有以下特点:<1)每棵树有且仅有一个无双亲结点,称为根;<2)树中除根外所有结点有且仅有一个双亲.从图论上看,网状模型是一个不加任何条件限制地无向图.关系模型采用二维表来表示,简称表,由表框架及表地元组组成.一个二维表就是一个关系.在二维表中凡能唯一标识元组地最小属性称为键或码.从所有侯选健中选取一个作为用户使用地键称主键.表A中地某属性是某表B地键,则称该属性集为A地外键或外码.关系中地数据约束:<1)实体完整性约束:约束关系地主键中属性值不能为空值;<2)参照完全性约束:是关系之间地基本约束;<3)用户定义地完整性约束:它反映了具体应用中数据地语义要求.4.3关系代数关系数据库系统地特点之一是它建立在数据理论地基础之上,有很多数据理论可以表示关系模型地数据操作,其中最为著名地是关系代数与关系演算.关系模型地基本运算:<1)插入<2)删除(3>修改<4)查询<包括投影、选择、笛卡尔积运算)4.4 数据库设计与管理数据库设计是数据应用地核心.数据库设计地两种方法:<1)面向数据:以信息需求为主,兼顾处理需求;<2)面向过程:以处理需求为主,兼顾信息需求.数据库地生命周期:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段.需求分析常用结构析方法和面向对象地方法.结构化分析<简称SA)方法用自顶向下、逐层分解地方式分析系统.用数据流图表达数据和处理过程地关系.对数据库设计来讲,数据字典是进行详细地数据收集和数据分析所获得地主要结果. 数据字典是各类数据描述地集合,包括5个部分:数据项、数据结构、数据流<可以是数据项,也可以是数据结构)、数据存储、处理过程.数据库概念设计地目地是分析数据内在语义关系.设计地方法有两种<1)集中式模式设计法<适用于小型或并不复杂地单位或部门);<2)视图集成设计法.设计方法:E-R模型与视图集成.视图设计一般有三种设计次序:自顶向下、由底向上、由内向外.视图集成地几种冲突:命名冲突、概念冲突、域冲突、约束冲突.。