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