C语言程序设计 课件 1创建第一个C程序_第1页
C语言程序设计 课件 1创建第一个C程序_第2页
C语言程序设计 课件 1创建第一个C程序_第3页
C语言程序设计 课件 1创建第一个C程序_第4页
C语言程序设计 课件 1创建第一个C程序_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计创建第一个C语言程序项目1“学生成绩管理系统”中相关数据设计及简单处理项目2项目中学生成绩的等级判定项目3项目中的设计数据处理及封面与菜单的初步项目4学生成绩的分组汇总程序项目5利用数组完善项目中数据的处理项目6利用函数进行项目的整体框架设计项目7利用结构体实现项目项目8利用指针优化项目项目9利用文件完善项目项目10项目1创建第一个C语言程序目标TARGET知识目标能够使用了解C语言的产生、发展和特点掌握C程序的实现过程和结构熟悉VisualC++6.0开发环境理解程序设计的思想、方法以及算法了解软件编程的规范目标TARGET技能目标熟悉VisualC++6.0环境能够在VisualC++6.0下运行、调试C程序认识C程序任务1.1创建及运行第一个C程序任务1.2运用算法描述问题任务1.3任务1.1认识C程序

任务描述认识第一个C程序,其运行结果是在计算机屏幕上输出一行文本信息(项目名称)“学生成绩管理系统”。任务分析这是一个简单的C语言程序,只需要一条格式输出语句即可实现上述功能。算法设计输出文本“学生成绩管理系统”,可以使用格式输出函数实现。任务1.1认识C程序

实现在线测试系统主页面的布局和美化某班级需要一个学生成绩管理系统,该系统应具有学生成绩的添加、删除、查询、修改、插入和排序等处理功能,提供数字按键菜单操作方式,如图0-1所示。程序代码#include"stdio.h"/*编译预处理命令*/voidmain(){ printf("学生成绩管理系统\n");

/*在屏幕上输出学生成绩管理系统*/}/*main()主函数结束*/执行结果1认识C语言及C程序Part◎C语言的特点◎C程序的实现过程◎C程序的结构◎C语言的产生和发展C语言的产生和发展

1972年美国贝尔实验室DennisRitchie和BrainKernighan首先推出1983年美国贝尔实验室DennisRitchie和BrainKernighan改进推出(TheCProgramingLanguage)1983年美国国家标准协会ANSI,制定标准C(ANSIC)20世纪80年代中期美国贝尔实验室B.Stroustrup博士C++微软MSC++\VisualC++,BorlandTurboC++\C++Builder面向过程面向对象C语言的特点

简洁紧凑、灵活方便.语言功能丰富。C是结构式语言。C语言允许直接访问物理地址,可以直接对硬件进行操作。因此既具有高级语言的功能,又具有低级语言的许多功能。C语言程序生成代码质量高,程序执行效率高。C语言具备良好的可移植性。C程序的实现过程

源程序文件(*.C)可执行文件(*.exe)结果目标文件(*.obj)编辑

编译链接运行C程序的实现过程

1.编辑。可以用任何一种编辑软件将在纸上编写好的C语言程序输入计算机,并将C语言源程序文件*.c以纯文本文件形式保存在计算机的磁盘上(不能设置字体、字号等)。2.编译。编译过程使用C语言编译程序将编辑好的源程序文件“*.c”,翻译成二进制目标代码文件“*.obj”。编译程序对源程序逐句检查语法错误发现错误后,不仅会显示错误的位置(行号),还会告知错误类型信息。我们需要再次回到编辑软件修改源程序的错误,然后,再进行编译,直至排除所有语法和语义错误。C程序的实现过程

3.链接。程序编译后产生的目标文件是可重定位的程序模块,不能直接运行。链接将编译生成的各个目标程序模块和系统或第三方提供的库函数“*.lib”链接在一起,生成可以脱离开发环境、直接在操作系统下运行的可执行文件“*.exe”。4.运行程序。如果经过测试,运行可执行文件达到预期设计目的,这个C语言程序的开发工作便到此完成了。如果运行出错,这说明程序处理的逻辑存在问题,需要再次回到编辑环境针对程序出现的逻辑错误进一步检查、修改源程序,重复编辑→编译→链接→运行的过程,直到取得预期结果为止。C程序的结构

#include"stdio.h"/*编译预处理命令*/voidmain(){intiScore1,iScore2,iScore3;/*定义整型变量iScore1、iScore1、iScore1*/floatfAverage;/*定义单精度浮点型变量fAverage*/iScore1=86;/*给变量iScore1赋值86*/iScore2=79;/*给变量iScore2赋值79*/iScore3=92;/*给变量iScore3赋值92*/fAverage=(iScore1+iScore2+iScore3)/3.0;/*计算平均成绩*/printf("Theaverageis%f\n",fAverage);/*输出平均成绩*/}例1-1班级一学习小组有三名同学,C语言程序设计这门课程的成绩分别为86、79、92,计算他们的平均成绩,并输出。说明:(1)#include是编译预处理命令,放在源程序的最前面,编译预处理命令后面不加分号。(2)main()为主函数,其中main是函数的名字,“()”里是函数的参数,此处为空。void是一种数据类型,空类型。函数是由函数头和函数体组成的。函数头包括函数的返回至类型、函数名和函数参数,函数体是由一对“{}”括起来的用于完成某种功能的语句的集合。函数一般包括变量定义语句部分和执行语句部分。(3)程序的变量在使用前需要先进行定义,在同一个函数中变量定义语句放在执行语句的前面。“intiScore1,iScore2,iScore3;”和“floatfAverage;”都是变量定义语句。说明:(4)从“iScore1=86;”语句开始,下面的全部是执行语句部分,其中“iScore1=86;”、“iScore2=79;”、“iScore3=92;”这三条语句都是赋值语句,即分别将整数86、79、92给整型变量iScore1、iScore2和iScore3。(5)“fAverage=(iScore1+iScore2+iScore3)/3.0;”这条语句的作用是将变量iScore1、iScore2和iScore3的值相加,然后除以3,得到的结果赋值给单精度浮点型变量fAverage。(6)“printf("Theaverageis%f",fAverage);”是调用库函数printf(),输出相应文本及fAverage的值。(7)“/*……*/”括起来的注释部分,用来对程序进行说明,向用户提示或解释程序的意义。程序编译时,计算机不会对注释做任何处理,注释可以出现在程序的任何位置,它的出现不会对程序的执行有任何影响。注意:(1)在C程序中,每一条语句的最后都有一个分号“;”,表示一条语句的结束。(2)C程序中是区分大小写的。(3)程序中的许多符号如逗号“,”、分号“;”、双引号“""”都是英文状态下的符号,输入应格外注意。任务1.2创建及运行第一个C程序

任务描述在VisualC++6.0环境下,创建及运行第一个C程序,计算机屏幕上输出一行文本信息(项目名称)“学生成绩管理系统”。任务分析熟悉VisualC++6.0环境,能够正确编辑、链接、运行C程序。算法设计与程序代码算法与程序代码参考任务1-1。2C程序的开发环境Part◎在VisualC++6.0集成开发环境下运行C程序◎C程序的开发环境C程序的开发环境

C语言的运行环境很多,有MicrosoftVisualC++、MicrosoftVisualStudio、DEVC++、BorlandC++、BorlandC++Builder、GNUDJGPPC++、HighC、TurboC、C-Free和Win-TC等等,每一种运行环境都有自身的特点,读者可以根据自己的特点酌情选用。这里我们主要介绍MicrosoftVisualC++6.0。VisualC++6.0是微软推出的一款编译器,是一个功能强大的可视化软件开发工具,它将程序代码的编辑、编译、连接和调试等功能集于一体。C程序的开发环境单击【开始】按钮,在打开的【开始】菜单中选择【所有程序】,单击【MicrosoftVisualStudio6.0】,选择【MicrosoftVisualC++6.0】,或者双击桌面上的MicrosoftVisualC++6.0图标,启动VisualC++6.0,进入MicrosoftVisualC++6.0集成开发环境,如图1-3所示。在VisualC++6.0集成开发环境下运行C程序

1.创建工程(1)选择菜单中的【文件】命令,打开菜单,单击菜单项【新建】,打开【新建】对话框,如图1-4所示。在VisualC++6.0集成开发环境下运行C程序

1.创建工程(2)选择菜单中的【文件】命令,打开菜单,单击菜单项【新建】,打开【新建】对话框,如图在【新建】对话框中,选择【工程】选项卡,在左侧列表中选择“Win32ConsoleApplication”类型,VisualC++6.0将创建一个控制台应用程序。在右侧【工程名称】文本框中输入工程名称,如“MyAve”,单击【位置】文本框右侧的小按钮,在弹出的对话框中选择存储位置,如“D:\MYC”,如图1-5所示。在VisualC++6.0集成开发环境下运行C程序

1.创建工程(3)单击【确定】按钮,弹出【Win32ConsoleApplication-步骤】对话框,选择默认单选项【一个空工程】,即创建一个空的工程,不包含任何的源文件,如图1-6所示。在VisualC++6.0集成开发环境下运行C程序2.创建文件(1)单击【确定】按钮,弹出【Win32ConsoleApplication-步骤】对话框,选择默认单选项【一个空工程】,即创建一个空的工程,不包含任何的源文件,如图选择菜单中的【文件】命令,打开菜单,单击菜单项【新建】,打开【新建】对话框,如图1-7所示。在VisualC++6.0集成开发环境下运行C程序2.创建文件(2)单击【确定】按钮,弹出【Win32ConsoleApplication-步骤】对话框,选择默认单选项【一个空工程】,即创建一个空的工程,不包含任何的源文件,如图(2)在【新建】对话框中,选择【文件】选项卡,在左侧列表中选择“C++SourceFile”类型,在右侧【文件】文本框中输入文件名称,如“LT1-1.c”,这里文件名必须以.c结尾,因为C程序源程序的扩展名为.c,如图1-5所示,其他选项默认即可。其中默认将该文件添加到刚刚所建的工程MyAve中,位置是“D:\MYC\LT1-1.c”,如图1-7所示。菜单中的【文件】命令,打开菜单,单击菜单项【新建】,打开【新建】对话框,如图1-7所示。在VisualC++6.0集成开发环境下运行C程序2.创建文件(3)单击【确定】按钮,则回到VisualC++6.0界面,同时打开代码编辑窗口。打开【工作空间】窗口,在其下方选择【FileView】选项卡,可以看到在SourceFiles文件夹中多了一个文件LT1-1.c,如图1-8所示。在VisualC++6.0集成开发环境下运行C程序3.编辑C程序源文件在打开的代码编辑窗口例1-1的程序代码,如图1-9所示。在VisualC++6.0集成开发环境下运行C程序4.编译选择菜单中的【组建】命令,打开菜单,单击菜单项【编译】,对C源程序进行编译,同时在VisualC++6.0下部输出窗口中显示调试信息,如图1-10所示。如果程序存在语法错误,那么读者需要根据输出窗口中的错误提示,返回代码编辑窗口修改程序,然后再次进行编译,直到提示无错误为止,如图1-9所示。在VisualC++6.0集成开发环境下运行C程序5.链接选择菜单中的【组建】命令,打开菜单,单击菜单项【组建】,在VisualC++6.0下部输出窗口中显示调试信息,与编译过程类似。如果程序存在错误,那么读者需要根据输出窗口中的错误提示,返回代码编辑窗口修改程序,然后再次进行编译、连接,直到提示无错误为止。在VisualC++6.0集成开发环境下运行C程序6.运行选择菜单中的【组建】命令,打开菜单,单击菜单项【!执行LT1-1.exe】,可以看到屏幕中弹出一DOS输出窗口,如图1-11所示。注意:在VisualC++6.0环境下,编译、链接和运行不仅可以用菜单命令进行操作还可以使用快捷键进行操作,编译、链接和运行分别对应的快捷键是Ctrl+F7、F7和Ctrl+F5。也可以使用命令按钮进行操作,对应的命令按钮分别是、、。任务1.3运用算法描述问题

任务描述班级一学习小组有三名同学,C语言程序设计这门课程的成绩分别为86、79、92,计算他们的平均成绩,并输出。请利用流程图描述法给出其算法。任务分析用流程图或者NS流程图图描述算法。任务1.3运用算法描述问题

算法设计3程序算法基础Part◎程序设计语言◎程序◎程序设计方法◎程序设计的一般步骤◎算法◎软件编程规范程序

程序是程序设计中最为基本的概念,由有限的指令序列构成,它的作用是告诉计算机当前的处理对象与处理步骤,使计算机完成相应的任务。VisualC++6.0是微软推出的一款编译器,是一个功能强大的可视化软件开发工具,它将程序代码的编辑、编译、连接和调试等功能集于这里的处理对象即数据,包括数据的类型、数据的组织形式和数据之间的相互关系,可以被称为“数据结构”;而处理步骤指的是“操作”,也就是算法。换言之算法和数据结构是程序的两个重要方面。因此,著名的科学家沃思(NiklausWirth)提出过一个经典的公式:

算法+数据结构=程序程序设计语言程序设计语言是建立在一定语法规则之上、用于向计算机传递程序设计人员思想的一批特殊符号的集合。它能够使程序设计人员准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。自20世纪60年代以来,世界上公布的程序设计语言已有上千种之多,但是只有很小一部分得到了广泛的应用。从发展历程来看,程序设计语言可以分为机器语言、汇编语言、高级语言、非过程化语言4代。C语言就是高级语言中的代表之一。程序设计方法

1.程序设计程序设计(Programming)是人们借助程序设计语言,将某一任务的处理对象、处理方法及处理步骤转化为计算机能够处理的符号序列(语句、命令、指令),以及指挥计算机完成相应任务的过程。它是软件构造活动中的重要组成部分。程序设计方法

2.结构化程序设计方法结构化程序设计思想源于20世纪60年代,是至今仍被广泛应用的一种计算机软件开发技术。所谓的结构化程序设计方法指的是“按照一组能够提高程序易读性和易维护性的规则进行程序设计的方法”。其要点如下:原则:(1)程序的质量标准是“清晰第一,效率第二”。(2)遵循自顶向下、逐步求精、模块化设计的原则。自顶向下:指从问题的全局下手,把一个复杂的任务分解成许多易于控制和处理的子任务,子任务还可能做进一步分解,如此重复,直到每个子任务都容易解决为止。逐步求精:指在将抽象问题分解成若干个相对独立的小问题时,要逐级地由抽象到具体、又粗到细、由表及里进行细化,直到将问题细化到可以用程序的3种结构来实现为止。模块化:指解决一个复杂问题是自顶向下逐层把软件系统划分成一个个较小的、相对独立但又相互关联的模块的过程。程序设计方法

2.结构化程序设计方法(3)使用顺序、选择、循环这三种基本结构表示程序逻辑,即由这三种结构组合或者嵌套而成,并且要满足下面的条件。每个程序模块只准许有一个入口和一个出口。没有死语句(永远执行不到的语句)。没有死循环(永远不能终止的循环)。程序设计方法

2.结构化程序设计方法(4)程序的书写必须,按照一定的规范和格式进行。不能随便拼凑。(5)程序的设计风格要以好的可读性为标准,以使用程序的用户为核心,外观美观,结构流畅、语句简洁。程序设计的一般步骤

(1)分析问题对于接受的任务要进行认真的分析,研究所给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法,完成实际问题。(2)设计算法即设计出解题的方法和具体步骤。(3)编写程序将算法翻译成计算机程序设计语言,对源程序进行编辑、编译和连接。程序设计的一般步骤

(4)运行程序,分析结果运行可执行程序,得到运行结果。能得到运行结果并不意味着程序正确,要对结果进行分析,看它是否合理。不合理要对程序进行调试,即通过上机发现和排除程序中的故障的过程。(5)编写程序文档许多程序是提供给别人使用的,如同正式的产品应当提供产品说明书一样,正式提供给用户使用的程序,必须向用户提供程序说明书。内容应包括:程序名称、程序功能、运行环境、程序的装入和启动、需要输入的数据,以及使用注意事项等。算法算法(Algorithm)是对特定问题求解方法与步骤的描述,是程序求解问题的核心内容。1.算法的特征(1)有穷性:一个算法应包含有限的操作步骤,而不能是无限的。(2)确定性:算法中的每一个步骤都应当是确定的,而不应当是含糊的、摸棱两可的。即必须有明确的含义,不能存在二义性。(3)可行性(有效性):算法中的每一个步骤都应当能有效地执行,并得到确定的结果。(4)有零个或多个输入。算法1.算法的特征(5)有一个或多个输出。一个好的算法不仅要满足上述特征,还应当达到以下要求:正确性:运行该算法,能获得正确的结果。可读性:易于理解和交流健壮性:具有很好的适应能力,具有很好的容错能力。高效性:尽可能追求较少的时间与空间占用(越简单越好)。算法1.算法描述(1)自然语言描述法自然语言即人类日常使用的语言,可以是中文、英文等。用自然语言描述的算法通俗易懂,不用专门的训练,较为灵活。但是,自然语言也有一些缺点。首先自然语言具有歧义性,容易导致算法执行的不确定性;其次自然语言的语句一般较长,导致描述的算法太长;再者自然语言表示的算法不便翻译成计算机程序设计语言。上面例1-2使用的即是自然语言描述法。算法1.算法描述(2)流程图描述法流程图是使用一组规定的符号、流程线和文字说明来表示各种操作、算法的方法。其优点是清晰简洁,直观形象,容易表达选择结构,不依赖于任何具体的计算机和计算机程序设计语言,从而有利于不同环境的程序设计。其缺点是占用篇幅较长,画起来比较麻烦,而且使用流程线可以使流程任意转向,不能保证算法的结构化。会造成阅读和修改上的困难,可以借助于专用的流程图制作软件来提升绘制和修改。ANSI规定了一些常用的流程图符号,见表1-1所示。连接点算法

常用的流程图符号符号符号名称含义起止框算法的开始和结束输入/输出框输入/输出操作处理框对框内的内容进行处理判断框对框内的条件进行判断流程线流程线的方向连接点常用于换页处,表示两个具有同一标记的“连接点”应连接成一个点预先定义的进程预先定义的函数、子例程等算法

流程图表示3中基本结构图1-13(a)顺序结构图1-13(b)选择结构算法

流程图表示3中基本结构算法例1-2比较两个人的身高,将个子较高的那个人的身高输出到屏幕上。要想解决上面的问题,需要定义变量fTall1和fTall2分别存储两个人的身高,fMax存放身高的最大值,计算最大值即比较两个数的大小。具体的步骤如下:(1)输入2个人的身高分别存入变量fTall1和fTall2中。(2)比较2个人的身高,如果fTall1较大,则把第一个人的身高值赋值给fMax。否则,将第二个人的身高赋值给fMax。(3)输出fMax的值,即个子较高的人的身高。

问题分析算法例1-3用流程图描述法描述例1-2的算法如图1-14所示。算法1.算法描述(3)N-S流程图描述法N-S流程图类似流程图,也被称为盒图或NS图(NassiShneiderman图)。1972年,N-S流程图由美国学者I.Nassi和B.Shneiderman提出(以两个人的名字的头一个字母组成)。它是一种在流程图中完全去掉流程线,将全部算法写在一个矩形阵内,在框内还可以包含其他框的流程图形式。即由一些基本的框组成一个大的框,N-S图包括顺序、选择和循环三种基本结构。其优点是形象直观,功能域明确,具有良好的可见度,很容易确定局部和全局数据的作用域,很容易表示嵌套关系及模块的层次关系。其缺点是不可能任意转移控制,修改需要重画整个图。算法N_S流程图表示3中基本结构图1-15(a)顺序结构图1-15(b)选择结构算法

流程图表示3中基本结构图1-15(c)当型循环结构

图1-15(d)直到型循环结构算法例1-4用N-S流程图描述法描述例1-2的算法如图1-16所示。算法1.算法描述(4)伪代码描述法伪代码描述法是使用介于自然语言与编程语言之间的文字和符号描述算法的方法。其优点是回避了程序设计语言的严格、烦琐的书写格式,书写方便,同时具备格式紧凑,易于理解,便于向计算机程序设计语言过渡。其缺点是伪代码的种类繁多,语句不容易规范,有时会产生误读。算法例1-5用N-S流程图描述法描述例1-2的算法如图1-16所示。INPUTftall1,ftall2IFftall1>ftall2THENftall1-〉fmaxELSEftall2-〉fmaxPRINTfmax算法1.算法描述(5)程序设计语言描述法计算机是无法识别自然语言、流程图和为代码的。只有使用程序设计语言编写的程序,经过编译、连接成可执行程序后,才能被计算机执行。因此,使用任何方法描述的算法,最终都要将其转化成程序。其优点是可被计算机识别并执行。其缺点是必须严格遵循所使用的语言的语法规则。算法例1-6用程序设计语言描述法描述例1-2的算法如下所示。#include"stdio.h"voidmain(){floatftall1,ftall2,fmax;scanf("%f%f",&ftall1,&ftall2);if(ftall1>ftall2)fmax=ftall1;elsefmax=ftall2;printf("%f",fmax)

;}软件编程规范1.程序的可读性原则(1)编程规范概要①程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。②打算干什么,要简单,直截了当,代码精简,避免垃圾程序。③尽量使用标准库函数和公共函数。④不要随意定义全局变量,尽量使用局部变量。⑤使用括号以避免二义性。软件编程规范1.程序的可读性原则(2)可读性要求①可读性第一,效率第二。②主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。③常量定义(define)有相应说明。④处理过程的每个阶段都有相关注释说明。⑤利用缩进来显示程序的逻辑结构,缩进量一致,可以以Tab键为单位。⑥循环、分支层次不要超过五层。⑦适当的使用注释,注释可以与语句在同一行,也可以在上行。⑧保持各种运算的标准形式,通过括号避免运算符的二义性。软件编程规范2.匈牙利命名法匈牙利命名法是一种编程时的命名规范,以一个或者多个小写字母开头作为前缀,表示类型;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。其缺点是在使用匈牙利命名法时会产生冗余。匈牙利命名法有其优点但也有缺点,这就需要在使用中扬长避短,合理应用它。拓展案例案例1-1写出下面问题的算法。问题描述比较三个人的身高,将个子较高的那个人的身高输出到屏幕上。拓展案例

算法设计拓展案例案例1-2写出下面问题的算法。问题描述本题是一个经典的数学问题。对于一个大于2的正整数,判断它是不是一个素数。。拓展案例

算法设计拓展活动查资料对比国内外软件行业发展现状,体会软件发展对国力的重要性,认识“中国芯”,作为新时代的大学生,要认真学习计算机程序设计,奋发图强,为祖国的腾飞,为实现中国梦而努力学习!

制造中国芯,实现中国梦项目小结本项目主要介绍了C语言的产生、发展和特点,C程序的实现过程和结构,VisualC++6.0开发环境,程序设计的思想、方法以及算法以及软件编程的规范等。重点掌握在VisualC++6.0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论