C语言项目开发教程第1章.ppt
《C语言项目开发教程第1章.ppt》由会员分享,可在线阅读,更多相关《C语言项目开发教程第1章.ppt(66页珍藏版)》请在三一办公上搜索。
1、第一章,初步认识C语言,C语言是最通用和流行的计算机程序设计语言之一。在操作系统和系统实用程序以及需要对硬件进行操作的环境中,C语言明显优于其他高级语言,很多大型应用软件都是用C语言编写的。C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的 DEC PDP-11计算机上使用。它由早期的编程语言BCPL(Basic Combind Programming Language)发展演变而来。C语言从诞生到现在已有40多年的历史,仍以其紧凑的代码、灵活的表达方式、高效的运行效率、强大的功能,以及可直接操作计算机硬件等特点,深受广大开发人员和编程爱好者的喜爱。在
2、使用C语言开发具体项目之前,需要先了解一些关于C语言以及C语言程序的相关知识。通过对本章的学习,能够对C语言的产生和发展、C语言的特点、C语言的编程风格等有一定的认识。通过每一个任务的实现,了解C语言的运行环境和C语言程序的编写和执行过程,掌握用C语言解决问题的过程。,任务1.1 学生信息管理系统之菜单设计,任务目标掌握C语言的基本知识,包括C语言的发展历史、C语言的基本特点和C语言的结构特点等。比较C语言和其他语句之间的区别。熟悉C语言的开发集成环境,学会初步创建、编写、编译和执行一个C语言程序。掌握C语言的输入和输出函数的用法。实现学生管理系统菜单设计。,1.1.1 C语言基本知识,1C语
3、言发展历史C语言的发展颇为有趣。它的原型ALGOL 60语言出现于1960年,ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不适宜编写系统程序。1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。CPL语言更接近硬件,但规模比较大,难以实现。1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将BCPL语言煮干,提炼出它的精华。并且他用B语言写了第一
4、个UNIX操作系统。而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本可移植的C语言编译程序。,1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著The C Programming Language,对C语言的流行起到了很大的推动作用。1988年,随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准
5、,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准。C语言发展迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASE PLUS、DBASE 都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势了,如PC-DOS、WORDSTAR等就是用这种方法编写的。,2C语言的特点,C语言既有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不
6、仅仅是在软件开发上,就连各类科研都需要用到C语言。它适于编写系统软件、三维、二维图形和动画,具体应用比如单片机以及嵌入式系统开发。如今,越来越多的人在学习C语言,使用C语言,用C语言开发各个领域中的应用软件。C语言生命力之所以强,是因为其具有不同于其他语言的特点。其主要特点如下。(1)简洁紧凑、灵活方便。C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。(2)运算符丰富。C语言的运算符包含的范围很广泛,共有34个运算符。C语言把
7、括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。,(3)数据结构丰富。C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外,C语言具有强大的图形功能,支持多种显示器和驱动器,且计算功能、逻辑判断功能强大。(4)C语言是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式
8、提供给用户的,这些函数可方便地调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。(5)语法限制不太严格、程序设计自由度大。一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。(6)允许直接访问物理地址,可以直接对硬件进行操作。C语言允许直接访问物理地址,可以直接对硬件进行操作。因此既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。(7)C语言程序生成代码质量高,程序执行效率高。一般只比汇编程序生成的目标代码效率低10%20%。(8)C语言
9、适用范围大,可移植性好。C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。,3C语言的结构特点,先看下面的案例,通过案例来了解C程序的结构特点。【案例1-1】求两个数之和。源程序如下:#include/*将stdio.h文件包含在本程序中*/void main()/主函数/函数体开始 int a,b,c;/定义三个int类型的变量a,b,c a=3;b=2;/变量赋值 c=a+b;/将变量a和变量b的和赋给变量c printf(%dn,c);/*调用标准输出函数,按十进制整数形式输出变量c*/*函数体结束*/该程序实现的功能是求出整数数据a和b的和并输出。其中
10、a的值为3,b的值为2,将a和b的和赋值给c,然后输出变量c的值。程序运行结果如下:5Press any key to continue,代码中的“include”为文件包含命令,其意义为将或“”内指定的文件包含到本程序中,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h,因此也称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的函数原型,并有对应的函数实现。程序中调用一个库函数时,都必须包含该函数原型所在的头文件。在本案例中,使用了一个库函数prtinf,即标准输出函数。其所在的头文件名为stdio.h文件,因此在程序的主函数前用include命令包含了stdio.
11、h文件。因为在程序中使用了printf()函数,该函数为stdio.h中定义的标准输出函数,为了使用printf()函数,需要将包含该函数相关信息的头文件stdio.h包含到本文件中。“int a,b,c”的作用为声明三个int,即整数类型的变量,变量名分别为a、b、c,这三个变量的取值只能为整数。“/”和“/*/”均用来表示注释。“/”用来作单行注释,其后面本行内的内容为注释信息。“/*/”用作多行注释,“/*”和“*/”之间的内容均为注释信息,可有多行。注释是给阅读程序的人看的,用来辅助理解程序,在编译和运行阶段不起作用,注释信息可以添加在任何位置。“c=a+b”用来实现加法运算,表示将a
12、和b的值相加,再赋值给b。“printf(%dn,c)”用来输出。“%d”表示输出的信息为十进制整数,“n”为换行符,在信息输出后,屏幕上闪烁的光标将会显示在该输出的下一行。mian函数是主函数的函数名,表示这是一个主函数。在主函数main()中可以调用的函数包括标准库和自定义函数。,由上述例子可以看出,C语言结构和书写特点如下:C语言是由函数组成的。一个函数有一些语句组成,共同实现某一功能。在以后的案例中我们会看到每一个函数均可被其他函数调用,也可调用其他函数,main函数除外:main函数不能被其他函数调用。C程序可以有若干个函数组成,但是其中必须有一个且只能有一个是main()。程序的执
13、行必须从主函数main()开始,在主函数main()中结束。C语言程序书写自由,一行内可以写一条或多条语句,一条语句也可以写在多行。用 括起来的部分,通常表示程序的某一种层次结构。一般情况下,左右花括号各占一行,并上下对齐,便于检查花括号的成对性。C语言程序是区分大小写的,如输入Printf则程序会报错。程序的书写根据从属关系采用缩进的格式,可使程序的层次结构更加清晰,从而提高程序的可读性。同一层次要左右对齐,第一层次的语句或说明要比高一层次的语句缩进若干个字符,这样程序层次结构更加清晰。C语言中每一条语句和数据定义都必须以“;”结束。C语言用“/”或“/*/”来表示注释。编码过程中配合良好的
14、注释,可增加程序的可读性和可维护性。对于C程序的书写格式,读者可从后面的程序中逐渐体会,编码时遵循以上规则,以形成良好的编程风格。,1.1.2 C语言与其他语言,1C到C+计算机诞生初期,人们要使用计算机必须用机器语言或汇编语言编写程序。世界上第一种计算机高级语言诞生于1954年,它是FORTRAN语言。先后出现了多种计算机高级语言。其中使用最广泛、影响最大的当推Basic语言和C语言。C语言最初不是为初学者设计的,而是为计算机专业人员设计的。大多数系统软件和许多应用软件都是用C语言编写的。但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。C+是由AT&T Bell(贝尔)实验室的B
15、jarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。C+保留了C语言原有的所有优点,增加了面向对象的机制。C+是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C+。从C+的名字可以看出它是C的超越和集中。C+既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型程序设计语言。C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。而对于C+,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问
16、题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C+的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C+比C更先进,是因为“设计这个概念已经被融入到C+之中”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了?错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。语言本身而言,C是C+的子集,那么这是什么样的一个子集?从上文可以看出,C实现了C+中过程化控制及其他相关功能,而在C+中的C,相对于原来的C还有所加强,引入了重载、内联函数、异常处理等内容,C+更是拓展了面向对象设计的内容
17、,如类、继承、虚函数、模板和包容器类等。所以相对于C,C+包含了更丰富的“设计”的概念,但C是C+的一个子集,也具有强大的功能,同样值得学习。,2C语言到Java,Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了
18、显著优势和广阔前景。实际上,Java确实是从C语言和C+语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。比如Java语言的变量声明、操作符形式、参数传递、流程控制等方面和C语言,C+语言完全相同。Java与C的本质区别是Java面向对象编程,C是面向过程编程,这就使得Java具有重用的特性,在开发速度上比之C更快,但是在运行速度上却是C更快,因为C属于底层语言,它比Java更加亲近机器,所以在许多系统开发上一般是用C语言,比如Windows系统,Linux系统,都是用C语言开发的。Java中对内存的分配是动态的。它采用运算符new为每个对象分配内存空间。而且,实际内存还会
19、随程序运行情况而改变。程序运行中,Java系统自动对内存进行扫描,对长期不用的空间作为“垃圾”进行收集,使得系统资源得到更充分地利用。按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了由于内存管理方面的差错而导致系统出问题。而C语言通过malloc()和free()这两个库函数来分别实现分配内存和释放内存空间的,C+语言中则通过运算符operator new和operator delete来分配和释放内存。在C和C+中,程序员必须非常仔细地处理内存的使用问题。一方面,如果对已释放的内存再作释放或者对未曾分配的内存作释放,都会造成不可预料的后果;而另一方面,
20、如果对长期不用的或不再使用的内存不释放,则会浪费系统资源,甚至因此造成资源枯竭。,目前,Java主要用在Web开发,手机游戏及一些平台游戏的开发,因为它具有很好的跨平台性,现在Java与Linux结合得非常好,在手机等各种电子产品上应用非常广泛。C语言现在主要用与系统开发,桌面应用软件的开发,更多的是用在游戏领域,当然,只要你愿意,也可以开发Web程序,但是在开发难度上会增加不少。这些足以证明C语言是比Java更强大的语言,但是也比Java更加难以掌握,里面的指针是所有程序员都为之头痛的,而继承了C的所有优点的Java语言则完全没有这个问题,可以说Java是C语言的进化版本之一,为什么是之一呢
21、,因为还有C+,其实Java就是继承了C/C+的优点而产生的高级语言,它可以说具有两者的全部优点,并剔除了其中不好的地方,但即使如此也不能否认C/C+仍然具有强大的优势,尤其是在系统程序的开发上,这是Java无法比拟的。所以Java能做的C也可以做,而C能做的Java也可以做,只是两者的侧重点不一样。,3C语言的缺点,C语言的缺点主要是表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷,这也是C和C+的一大区别。C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不做检查等。从应用的角度,C语言比其他高级语言较难掌握。指针是C语言的一大特色,可以说C
22、语言优于其他高级语言的一个重要原因就是它有指针操作,可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。目前,C+在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性。,1.1.3 了解Visual C+6.0集成开发环境,集成开发环境(Integrated Developing Environment,IDE)是一个综合性的工具软件,它把程序设计全过程所需要的各项功能集合在一起,为程序设计人员提供完整的服务。但集成开发环境并不是把各种功能简单地拼接在一起,而是把它们有机地结合起来,统一在一个图形化操作界面下,为程序设计人员提
23、供尽可能高效、便利的服务。C语言的开发环境有很多,最流行的主要是Turbo C系列和Visual C+6.0开发环境。Turbo C系列对帮助理解内存溢出等概念比较方便;Visual C+6.0虽然常用来编写C+源程序,但它同时兼容C语言程序的开发,并且其编辑器除了具备一般文本编辑器的基本功能以外,还能根据C语言的语法规则,自动识别程序文本中的不同成分,并且用不同的颜色加以区别,为使用者提供很好的提示作用。因此本书选择VC+6.0作为C语言的开发工具。,1Visual C+6.0开发环境,Visual C+6.0,简称VC或者VC 6.0,是微软推出的一款C+编译器,将“高级语言”翻译为“机器
24、语言(低级语言)”的程序。Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。VC 6.0启动后,即进入如图1-1所示的主窗口程序。在VC 6.0的主界面中,最顶部是菜单栏和工具栏,主菜单共有9个菜单项;主界面的左侧是项目工作区窗口,用来显示工作区的信息;右侧是程序编辑窗口,用来输入和编辑源代码;下面是输出窗口,用来显示进行构建或调试等工作时的状态和数据信息;最底部是状态栏。各个窗口可以任意显示或隐藏。,2创建C项目,建立一个项目可以通过VC 6
25、.0的向导完成。单击主菜单中“文件”“新建”命令,弹出如图1-2所示的对话框。在“工程”选项中列出了16个可以建立的项目选项,编写一般C语言程序时选择“Win32 Console Application”选项,然后在右上侧的“工程名称”文本框中输入项目名称,“位置”中选择项目要保存的路径,单击下方的“确定”按钮即可进入下一个界面。工程名称可以由字母和数字组成,但是第一个字符必须是字母,下画线也被认为是字母。在如图1-3所示界面中,显示的是可以创建的应用程序类型。VC 6.0中可以创建的程序类型共有4种。在这里只需要选择默认的“一个空工程”选项,单击“完成”按钮,VC 6.0即可完成项目创建。项
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 项目 开发 教程
链接地址:https://www.31ppt.com/p-5426578.html