教学目的
教学目的:《程序设计基础》是计算机系的一门专业基础课。本课程在第一学年开设。后续课程有、《数据结构》、《面向对象程序设计》等。通过本课程的学习,要求学生掌握程序的基本结构,能够对维数组进行遍历,能够定义并使用简单函数,掌握主程序中使用函数建立功能模块的方法,能用流程图描述简单问题的算法,能够根据流程图和算法,编制出相应的C语言程序。
教学要求
通过本课程的学习,学生应达到下列基本要求:
1.能用流程图描述简单问题的算法;
2.掌握程序的基本结构和C语言的基本语法;
3.能够根据流程图和算法,编制出相应的C语言程序;
4.掌握C语言的流程控制结构;
5.能够定义并使用简单函数,掌握主程序中使用函数建立功能模块的方法;
6.掌握指针、结构体的概念与基本使用方法;
7.掌握文件的概念以及在程序中使用文件的方法。
课程必备知识
先修课程:计算机导论
知识要点
第一章 C语言概述
1、语言简介
2、程序设计的基本概念
3、简单C程序介绍
4、程序设计的基本流程
通过本章的学习,要求掌握以下知识要点:
1、C语言的发展历史与基本特点
2、程序设计的基本概念
3、程序、程序设计与程序设计语言、算法、数据与数据结构
4、C程序的基本结构与特点
5、程序设计的基本流程
6、编辑、编译、链接、测试(调试与执行)
第二章 C语言基本语法元素
1、数据类型
2、量与表达式
3、语句
4、基本输入输出函数
5、程序设计风格
通过本章的学习,要求掌握以下知识要点:
1、数据类型
2、确定数据对象的存储格式、取值范围、可实施的操作集
3、量与表达式
4、操作符、操作数、表达式、赋值与初始化
5、语句
6、简单语句、复合语句与空语句
7、基本输入输出函数
8、prinLf与scanf
9、程序设计风格
第三章 程序流程控制
1、结构化程序设计基础
2、布尔数据
3、if分支结构
4、switch分支结构
5、while循环结构
6、for循环结构
7、问题求解与结构化程序设计
通过本章的学习,要求掌握以下知识要点:
1、结构化的意义
a)使程序结构更清晰,提高了程序的可靠性、可读性与可维护性
2、三种控制结构:顺序结构、分支结构与循环结构
a)顺序结构:由一组顺序执行的语句序列构成
b)分支结构:if语句与switch语句,break语句
c)循环结构:while循环与for循环,break语句与continue语句
3、零碎知识点
a)枚举类型、用户自定义类型、条件表达式、关系表达式、逻辑表达式和递增递减表达式
4、结构化程序设计方法
a)自项向下逐步求精
b)先整体后局部更易于把握事物的本质
第四章 函数
1、函数声明与调用
2、函数定义
3、函数调用规范
4、程序的结构化与模块化
5、程序测试与代码优化
通过本章的学习,要求掌握以下知识要点:
1、函数声明与调用
a)函数定义
b)函数调用规范
2、函数参数与函数返回值
a)参数传递规范
b)函数调用栈框架
3、程序的结构化与模块化
4、程序测试与代码优化
第五章 算法
第六章 程序组织与软件开发方法
1、库与接口
2、随机数库
3、作用域与生存期
4、宏
5、条件编译
6、典型软件开发流程
通过本章的学习,要求掌握以下知识要点;
1、程序组织结构
a)多文件工程项目的组织、头文件的包含策略、作用域与生存期、static与extern关键字、宏、条件编译
2、库与接口的基本概念与设计原则、设计方法
a)库:将复杂代码按照逻辑和功能进行分组以相互独立开来
b)库与用户之间只能通过接口进行通讯
c)库设计原则:用途…致、操作简单、功能充足、性能稳定
3、程序设计与软件工程的关系
a)自顶向下、逐步求精
b)需求分析、概要设计、详细实现、编码实现和系统测试
第七章 程序组织与软件开发方法
1、字符
2、字符串
3、数组
4、结构体
5、数据集
通过本章的学习,要求掌握以下知识要点:
1、复合数据类型及其组织方式
a)字符串与字符;
b)数组:相同性质元素的顺序集合
c)结构体:不同性质元素的集合
2、数据集
a)查找
b)排序
c)可以使用C标准库中的查找排序函数
第八章 指针
1、指针数据类型
2、指针与函数
3、指针与复合数据类型
4、再论字符串
5、动态存储管理
通过本章的学习,要求掌握以下知识要点:
1、指针的应用
a)指针的定义、使用
b)指针与函数、数组、结构体、字符串的关系
c)C标准库与动态存储管理技术
2、指针的使用场合
a)作为函数通信的手段
b)作为构造复杂数据结构的手段
c)作为动态存储管理的手段
d)作为执行特定程序代码的手段
第九章 文件与数据存储
1、文件的基本概念
2、文件的基本操作
3、文件的读写
4、数据存储
通过本章的学习,要求掌握以下知识要点:
1、文件的定义、性质与分类
2、文件的基本操作
3、文件的读写
a)面向字符的文件读写
b)面向字符串(文本行)的文件读写
c)面向格式化输入输出的文件读写
d)面向数据块的文件读写
4、数据的持久化
a)数据持久化的意义
b)动态数组的持久化
参考书目
1、《C程序设计语言》 B.WKernigham,D.M.Ritch著 机械工业出版社 2004.1
2、《C程序设计第三版》 三陵 谭浩强著 清华大学出版社 2005.7