程序设计及应用

程序设计及应用"

作者:刘振安等
ISBN:9787302130178
定价:¥16
字数:千字
页数:
出版时间:2006.08.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

    本书分为基础、提高和课程设计3个部分。基础部分重在引入结构化编程和计算机解题基础知识,结合趣味性程序,解析学习难点。提高部分通过典型算法,简要介绍基于过程编程的基本方法,为编写实用程序打下基础。课程设计部分给出了难易不同的设计实例,以便学生巩固所学知识,扩大教师教学选择的余地。

    本书语言生动,叙述清楚,通俗易懂,实例丰富,不仅可作为高等学校文科类专业程序设计课程的教材,也可作为自学材料。

前言

序

能够满足社会与专业本身需求的计算机应用能力已成为合格的大学毕业生必须具备的素质。

文科类专业与信息技术的相互结合、交叉、渗透,是现代科学技术发展趋势的重要方面,是不可忽视的新学科的一个生长点。加强文科类专业的计算机教育是培养能够满足信息化社会对文科人才要求的重要举措,是培养跨学科、综合型文科通才的重要环节。因此,使用一定层次、一定内容的计算机科学与技术知识来武装文科类专业(包括哲学、经济学、法学、教育学、文学、历史学等学科和管理学中的一些专业)的学生(包括研究生、本科生和高职高专生),开设具有文科专业特色的计算机课程是十分必要的。

为了指导文科类专业的计算机教学工作,教育部高等教育司组织制定了《高等学校文科类专业大学计算机教学基本要求(2003年版)》(下面简称《基本要求》)。

《基本要求》把文科类计算机教学的知识结构分为两大部分:一是大学计算机公共基础课;二是在开设计算机公共基础课之后,体现专业特色或与专业教学相结合的后续课程。

计算机公共基础课是为了满足文科类专业的共同需要,而后续课程是为了满足各文科专业的不同需要。

公共基础课由①计算机基础知识(软、硬件平台)、②微机操作系统及其使用、③多媒体知识和应用基础、④办公软件应用、⑤计算机网络基础、⑥Internet基本应用、⑦电子政务基础、⑧电子商务基础、⑨数据库系统基础和⑩程序设计基础等10个模块构筑。这些内容都是每个文科学生应该掌握的,可为他们在与专业紧密结合的信息技术应用方向上深入学习打下基础。根据这些模块可以编著3本书:一是由模块①~⑥组成计算机应用基础;二是由模块⑤~⑧组成网络应用;三是由模块⑨~⑩组成数据库与程序设计。

后续课程在深度上超过了公共基础部分的相应模块,或者是开拓了新的应用领域。它在更大程度上决定了学生应用计算机技术解决本专业实际问题的能力与水平。故建议至少设置16门后续课程。包括:微机组装与维护、计算机网络技术及应用、网页设计基础、动态网页设计——服务器端应用开发、电子政务应用、电子商务应用、法律事务信息处理基础(电子法务概论)、多媒体技术及应用、三维建模与动画设计、数据库基础及其应用、社会统计学分析及应用(非财经类)、经济统计与分析软件应用基础(财经类)、信息处理基础、管理信息系统、财经信息化基础、程序设计及应用。

显然,包括文科在内的大学非计算机专业的计算机教学有着广阔的前景。

清华大学出版社推出的高等学校文科类专业大学计算机规划教材,就是根据《基本要求》编写而成的。它可以满足文科类专业计算机公共基础课及其后续课程的教学需要。 

信息技术的发展日新月异,文科类专业的计算机教学还处在探索和不断完善的阶段,因此对教材中的不足或错误,需要同行和读者批评指正。

卢湘鸿于北京中关村科技园

卢湘鸿北京语言大学信息科学学院计算机科学与技术系教授、教育部高等学校文科计算机基础教学指导委员会副主任。负责教育部高等教育司组织制定的《普通高等学校文科类专业计算机基础课程教学大纲(2000年版)》和《高等学校文科类专业大学计算机教学基本要求(2003年版)》的统稿工作。

考虑到高等院校中文科计算机课程的教学重在实用,所以本书在介绍“面向过程”的程序设计时,采取了引入C++特性的方法,以降低学习面向过程编程的难度,使学生在掌握C++语言知识的同时,也初步掌握C语言的基本知识。另外,本书不要求学生已经学过其他语言。

本书以够用为原则,尽量采取简化程序设计的措施,以便使程序员能集中精力设计更好的面向过程的程序。本书专门介绍了常用的逻辑求解问题、递推和递归以及调试等知识,也提供一些趣味性程序,以提高学习兴趣。

为了便于各校根据本校特点选择教学内容,全书分为基础部分、提高部分和课程设计三个部分。基础部分共4章。第1章“走进编程的殿堂”,重在引入编程概念。第2章“C++语言的基础知识”,重点引入C++语言基本数据类型和表达式。第3章“结构化编程基础”,结合实例简要介绍基于过程编程的基本方法。第4章“计算机解题基础知识”,用实际的例子说明使用计算机解决具体问题的思路。为了简化学习和提高学习兴趣,还通过典型例题和错误分析来研究容易出现的错误,解析学习的难点。同时,为了方便学习和实验,书中还简要介绍了基本的程序调试方法。其实,第6章6.1节的解题和算法描述以及第8章8.4节中有关测试与调试知识的简介,也属于基础部分的内容,应该酌情讲授。

提高部分共3章。第5章讲解函数与数组。一般认为函数与数组对文科学生来讲较难理解,但本书不涉及指针、重载、引用、传址、多维数组等概念,仅以够用为原则,主要让学生掌握函数在程序设计中的地位,所以还是比较容易理解的。第6章是解题实例。这一章将结合典型算法简要介绍基于过程编程的基本方法。第7章讨论结构和文件,属于可选教学内容。本章只是简要介绍结构和结构数组的基本概念和使用方法,没有介绍结构指针,所以内容较浅,文件也仅仅介绍作为字符流的基本使用方法。其实,这些知识属于课程设计内容的一部分,也为编写实用程序打下基础。

第8章提供了课程设计实例。为提供选择余地,本章给出了难易不同的设计实例,同时也介绍了软件测试的基础知识。

总之,本书这样编排的目的是为了减少教学和学习的难点,让学生把主要精力放在算法的设计上。

这本教材是在文科计算机基础教学指导委员会的支持下编写的,这只是一种尝试,不妥之处在所难免,希望读者给予批评指正。

刘振安2006年2月

目录

第1部分基础部分

第1章走进编程的殿堂3

1.1似曾相识燕归来3

1.2程序的编辑、编译和运行的

基本概念4

1.2.1密切配合的三个主要

步骤4

1.2.2编写控制台程序4

1.3工欲善其事,必先利其器8

1.3.1菜单栏9

1.3.2工具栏9

1.4打好编程基本功10

1.4.1自然语言与计算机语言

之间的鸿沟10

1.4.2面向过程与结构化程序

设计11

1.5C++更容易编制面向过程的

程序15

1.6本书的结构及教学建议15

1.6.1基础部分15

1.6.2提高部分16

1.6.3课程设计部分17

实验1练习使用集成环境17

习题117

第2章C++语言的基础知识18

2.1C++的基本数据类型18

2.1.1小荷才露尖尖角18

2.1.2标识符20

2.1.3变量21

2.1.4基本数据类型22

2.1.5常量23

2.1.6命名注意事项25

2.2C++的表达式26

2.2.1运算表达式和运算符26

2.2.2赋值运算符与赋值

表达式27

2.2.3逗号运算符与逗号

表达式28

2.3典型例题及错误分析28

2.3.1典型例题28

2.3.2初学者最容易出现的

语法错误29

2.3.3容易出现的其他错误30

2.4活捉臭虫保平安31

2.4.1一个简单的示例程序31

2.4.2编译程序32

2.4.3排错34

2.4.4基本调试命令简介35

实验2练习调试程序37

习题237

第3章结构化编程基础39

3.1程序语句39

3.2关系运算41

3.3逻辑运算42

3.4结构化程序设计概述44

3.5控制选择结构44

3.5.1用if语句实现选择结构

设计44

3.5.2用switch语句实现选择

结构设计48

3.6循环控制结构设计49

3.6.1while语句49

3.6.2do~while语句50

3.6.3for语句51

3.6.4break语句、continue

语句及goto语句52

3.7典型例题及错误分析55

3.7.1典型例题55

3.7.2错误分析55

实验3求水仙花数58

习题358

第4章计算机解题基础知识60

4.1枚举法60

4.1.1重复运算60

4.1.2分支运算61

4.1.3逻辑思维的计算机表示62

4.1.4使用枚举法解题的思路63

4.1.5参考程序64

4.2逻辑问题求解实例66

4.2.1赛车问题66

4.2.2新郎新娘问题68

4.3小结69

实验4编程调试实验70

习题470第2部分提高部分

第5章函数与数组73

5.1典型C++程序结构73

5.1.1环环相扣的函数74

5.1.2函数类型和返回值74

5.1.3函数原型显身手76

5.1.4函数调用形式77

5.1.5函数的形式参数和实在

参数79

5.1.6函数的返回区80

5.2变量的存储类型80

5.3一维数组83

5.4几个最常用的字符串函数85

5.5正确使用库函数和数组87

实验5函数编程实验89

习题589

第6章解题实例91

6.1解题和算法描述91

6.1.1计算机解题91

6.1.2常用过程设计算法描述

方法94

6.2递推算法95

6.2.1基础知识95

6.2.2递推实例96

6.3递归算法99

6.3.1递归与递推的比较99

6.3.2图解递归执行过程

实例101

6.4查找算法101

6.4.1线性查找102

6.4.2二分查找102

6.5冒泡排序104

6.5.1图解排序过程104

6.5.2算法分析104

6.5.3算法设计105

6.5.4参考程序105

实验6编程实验106

习题6106

第7章结构和文件108

7.1结构108

7.1.1结构定义及其变量的

初始化108

7.1.2结构数组109

7.2文件操作111

7.2.1写文件111

7.2.2读文件112

7.3综合实例115

实验7结构和文件编程实验116

习题7117第3部分课程设计部分

第8章课程设计实例121

8.1鸡兔同笼121

8.2求解百鸡问题123

8.3比赛评分程序125

8.3.1直接计算法125

8.3.2间接计算法126

8.4职工信息档案128

8.4.1设计要求128

8.4.2算法分析129

8.4.3参考程序133

8.4.4测试程序140

8.5测试与调试知识简介145

8.5.1软件测试145

8.5.2程序的测试与调试147

附录A按字母表顺序排序的C和C++

保留字151

附录BC语言关键字152

附录CC语言的printf格式输出函数153

附录DC语言的scanf格式输入函数156

参考文献158

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个