1、主讲:李荔 liliscfc.edu,C+程序设计,四川农业大学,序 言,本课程的特点:1、理论知识较少,实际操作较多2、需要掌握一定的英文单词3、有大量的实例,学习本课程的目的:1、应试2、应用,本课程的学习要求: 理论课: 1、将重要概念勾画在书上2、记忆典型的实例的编程方法上机操作课:1、所有程序名以自已名字拼音字母加题目编号取名,以章节为单位存放在以自已学号建的文件夹中。如学号为20082037的张三同学第4章第三题,程序名应取为zhangshan4_3.c,并存在“20082037四章”文件夹中。2、当堂完成上机任务后,将作业拷贝给学习组长,然后由组长课后即时统一交给老师。,本课程的
2、考核方法: 必修:平时成绩占30分,期末卷面成绩占70分。 选修:平时成绩占40分,期末卷面成绩占60分。旷课在三次及三次以上记不合格。理论课,上机课迟到四次及四次以上记不合格。理论课,上机课无故提前下课以旷课记。作业两次及两次以上未交记不合格。,时间安排: 课表上全为理论课时间,上机时间另行安排,推荐参考书: 书名 作者 出版社 1、C语言程序设计(第2版) 谭浩强 清华大学出版社 2、C程序设计试题汇编(第二版)谭浩强 清华大学出版社 3、C+程序设计教程(第二版) 钱能 清华大学出版社 4、C+程序设计教程(第2版) 李春葆 清华大学出版社 5、C/C+程序设计教程 郑秋生 电子工业出版
3、社 6、C/C+程序设计教程(第2版)孙淑霞等 电子工业出版社,第1章 计算机与程序设计,讲授内容,计算机系统的基本组成、工作原理 程序设计的基本过程和方法 程序设计语言基本概念及其发展历史 结构化程序设计和面向对象程序设计方法 典型的C+编程环境、开发过程和程序结构 程序设计风格,1.1 计算机系统概述,计算机系统 机器系统 能接收和存储信息 能对数据进行处理和计算 能输出结果计算机系统由硬件系统和软件系统组成 硬件系统包括CPU、显示器、内存、硬盘、键盘等 软件系统包括各种程序和文档,计算机硬件是软件实现的基础 运算器对数据进行算术运算和逻辑运算 主存储器存储二进制信息,与运算器、控制器等
4、直接交换信息 控制器按程序的要求,控制计算机各功能部件协调一致地动作 控制器 + 运算器 = 中央处理器 中央处理器 + 主存储器 = 处理机,输入设备将用户信息(数据、程序等)变换为计算机能识别和处理的信息形式 输出设备将计算机中二进制信息变换为用户所需要并能识别的信息形式 辅助存储器存储主存储器难以容纳、又为程序执行所需要的大量文件信息,计算机软件计算机系统中的指挥者 系统软件最靠近硬件,如编译程序和操作系统等 支撑软件支撑其它软件的开发和维护,如各种数据库管理系统、接口软件和工具组 应用软件用于特定应用领域,如财务管理系统上述分类是交叉和变化的 一个软件可以在一个系统中是系统软件,在另一
5、个系统中是支撑软件 在同一系统中,一个软件可以既是系统软件,也是支撑软件,1.2 程序设计基本概念,问题求解过程步骤 问题定义明确要解决的问题 算法设计把要求解的问题转化为计算机的解题步骤 程序编码对设计出来的算法进行代码的编写 测试和调试发现和纠正程序中的错误,算法与程序 算法由有限个步骤组成的求解问题的方法 算法的特点 有穷性:执行有穷个步骤后必须终止 确定性:每一个步骤必须是无二义的 能行性:每一个步骤都可以在有限时间内做完 输入:一般有输入信息 输出:一般有一个或多个输出信息,算法的描述方式 文字描述 自然语言 例:P5 图形描述 流程图、盒图,PAD图等 流程图的符号:起止框 输入/
6、输出框处理框 过程 判断框连接点 流程线例:图1-2 P6 程序语言描述 计算机程序,如C+ 例:P7,程序的组成 数据 数据结构,程序处理的对象 操作 处理规则,处理数据的操作步骤,即算法程序 数据结构 算法,程序设计和程序编码 先设计,后编码 设计是基础,是编码的依据 设计的好坏影响代码的质量,程序设计语言:描述数据和对数据的操作由语法、语义和语用3个方面组成: 语法:构成语言的各个记号之间的组合规律 语义:各个记号的特定含义 语用:程序与使用者的关系 机器语言 P8 用机器基本指令编码,二进制形式 汇编语言 使用一组助记符编码,需要汇编才能运行 高级语言 表示方法更接近于待解问题的表示方
7、法,需要编译才能运行 源程序-目标程序,1.3 程序设计方法,结构化程序设计 任何程序逻辑都可以用顺序、选择和循环三种基本结构表示,结构化程序设计 自顶向下,逐步求精 描述问题,分析问题,分解问题成相对独立的子问题(反复进行,逐步分解) 描述子问题的数据和操作 模块化原则 尽量采用典型基本控制结构:顺序、选择、循环 缺点(对于大型软件开发) 稳定性低、可修改性和可重用性差,面向对象程序设计 面向问题 现实世界是由对象组成的 问题由哪些对象组成?对象之间如何相互作用? 易于扩展、可维护性好,面向对象分析和设计步骤 找出问题中的对象和类 确定每个对象应具备的属性和功能 确定类、对象之间关系,相互作
8、用的方式 用程序代码实现这些对象和类,结构化程序设计:将问题分解,程序由许多功能不同的函数组成,数据与函数分离,程序通过函数之间的相互调用来完成功能。面向对象程序设计:将问题抽象成若干类,将数据与数据操作封装在一起,程序由对象组成,通过对象之间相互传递消息,进行消息响应和处理来完成功能。,1.4 C与C+,C语言的历史 起源于Algol 60 在Algol 60的基础上发展出CPL语言 1967年发展为BCPL,用于编写操作系统和编译器 1970年贝尔实验室将BCPL改良成B,并用B语言实现了第一个UNIX操作系统 1972年左右,Dennis Ritchie和Ken Thompson在贝尔实
9、验室设计UNIX系统时,开发出了C语言 之后,C语言发展出很多版本 1988年,美国国家标准化协会(ANSI)制定了C的标准ANSI C,C语言的特点 数据类型丰富 运算符丰富,共34个运算符 支持结构化程序设计 方便、灵活,结合了高级语言的基本结构、语句和低级语言的实用性 程序生成代码质量高、程序执行效率高 可移植性好,可用于UNIX 、AIX、WINDOWS等操作系统,C+语言 在C语言中引入了面向对象的思想 是一种混合型的语言,同时支持结构化程序设计和面向对象程序设计方法 兼容C语言,可不加修改地使用C语言代码 允许数据抽象,支持封装、继承和多态等特征,1.5 C+编程简介,步骤一:,1
10、、,或2、,步骤二:直接建立源程序文件 单击“文件”单击“新建”单击“文件”选项卡单击“C+ Source File”, 进入以下画面:,3、选择文件存放目录,2、输入源程序文件名,1、建立C的源程序文件,4、单击确定后,就可以编辑源程序。,步骤二:先建立工程,再建立源程序文件 单击“文件”单击“新建”单击“文件”单击“工程”选项卡,进入以下画面:,7、单击FileView,8、单击+,展开,9、右击 Source Files,弹出快捷菜单,14、单击+号,展开,15、双击要编辑的源程序文件名,编辑窗口,编译信息窗口,编译 连接 运行,例: /* /*ch1.1.cpp* /* # inclu
11、de void main( )cout “hello World.n”;,二.最小样板程序,运行结果为:hello World.,例 : /*-ch1_2.cpp - */#include void main( )int a,b,result; cout a b;result=3*a-2*b+1;cout “Result is ” resultendl;,例1-2:C+程序:输入一个人的姓名,然后输出“HELLO,* * *,/ ex1_2.cpp: 输入姓名,然后在屏幕输出问候信息。# include int main( ) char name20; / 输出提示信息cout name; /
12、 输入姓名cout “HELLO,“ name “! n“; / 输出信息,并使用n换行return 0; / 指示程序运行 ,C+程序是由函数构成的,由一个主函数和若干个函数构成。 C+程序是函数驱动的。 例1-3: /*ch1_3.cpp*#include #include double max(double x, double y);void main( )double a, b, c;cout ab;c=max(a,b);cout “The squart of maximum=”sqrt( c);,double max(double x, double y) if (xy)return
13、 x;elsereturn y; ,包含函数调用的程序设计,运行结果: Input two numbers: 10.0,25.0 The squart of maximum=5.0,1.6 程序设计风格,用好的设计方法编写结构好的程序 提高程序的可读性、可理解性和可修改性,以利于程序查错、测试及维护 程序员要养成良好的程序设计风格,注意点 以简洁明了的方式编写C+程序 缩排规则 标识符命名规则 注释 注意大小写英文字母 输出信息直观清晰,布局合理,学习目的检测,了解计算机系统、程序设计语言、程序设计的基本概念 掌握简单C+程序的结构 明确程序设计风格的意义,作业,1.7 1.8 预习第二章 1、基本数据类型有哪些? 2、运算符分为几大类?,