收藏 分销(赏)

简单三角函数胡计算器.pptx

上传人:丰**** 文档编号:11421937 上传时间:2025-07-23 格式:PPTX 页数:425 大小:1.66MB 下载积分:25 金币
下载 相关 举报
简单三角函数胡计算器.pptx_第1页
第1页 / 共425页
简单三角函数胡计算器.pptx_第2页
第2页 / 共425页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第六级,第七级,第八级,2021/12/15,第,1,篇,基础篇,简单三角函数计算器项目概述,任务描述,采用结构化程序设计思想,综合运用,C,语言知识,完成简单三角函数计算器的开发。该系统主要包括输入要计算的角度、选择要计算的三角函数(正弦、余弦、正切、余切)、输出计算结果等功能。,任务分析,实现一个简单三角函数计算器,能够完成计算出正弦、余弦、正切、余切等三角函数值。,除了实现计算功能外,还需要实现基本的人机交互。比如,程序运行后,首先显示一个菜单(以下统称为主菜单),提示用户选择要进行哪种计算;用户选择后,该系统提示用户输入角度,并接收用户输入的角度;计算该角度的三角函数;然后在屏幕上输出计算结果;最后提示用户“按任意键返回主菜单”。在主菜单中,用户选择“,0,”时,退出程序。,学习目标,熟悉,C,语言开发集成环境,理解将实际问题中的信息抽象为,C,语言数据类型及变量的方法,理解结构化程序设计思想,掌握,C,语言中表示数据的方法,掌握,C,语言程序人机交互的实现方法,掌握,C,语言程序的三种基本结构,掌握,C,语言用户自定义函数的定义、调用方法,完成简单三角函数计算器的开发,知识要点,系统开发涉及的知识点包括:基本数据类型、常量和变量、运算符和表达式、输入输出函数、顺序结构程序设计、选择结构程序设计、循环结构程序设计和函数等内容。,任务分解,任务一 构建开发环境,任务二 主菜单的顺序执行,任务三 主菜单的选择执行,任务四,主菜单的循环执行,任务五 利用函数优化源代码,任务一 构建开发环境,本任务要搭建,C,语言的集成开发环境,并熟悉在该环境中开发,C,语言程序的步骤。后续任务均在该环境中完成。,任务描述,选择一种,C,语言开发集成环境,并完成安装。熟悉在该环境中开发,C,语言程序的过程。,任务分析,本书中采用,VC+6.0,开发环境。本任务需要下载,VC+6.0,安装包,并完成安装,构建,C,语言开发环境。在该环境中,运行本章例题,熟悉,C,语言程序的开发过程。,学习目标,了解,C,语言的发展及特点。,掌握,C,语言程序的基本结构。,掌握使用,VC+6.0,开发,C,语言程序的过程。,能够构建,C,语言开发环境。,相关知识,一、程序设计语言,1.,低级语言,低级语言依赖于所在的计算机系统,也称为面向机器的语言。由于不同的计算机系统使用的指令系统可能不同,因此使用低级语言编写的程序移植性较差。低级语言主要,2.,高级语言,高级语言是面向用户的、基本上独立于计算机种类和结构的语言,其最大的优点是形式上接近于算术语言和自然语言。高级语言编写的程序易读、易修改、移植性好。包括机器语言和汇编语言。,相关知识,二、,C,语言发展及特点,1.C,语言的发展,C,语言是,1972,年由美国的,Dennis M.Ritchie,和,Ken Thompson,设计开发的,由早期的编程语言,BCPL,(,Basic Combined Programming Language,)发展演变而来。早期的,C,语言主要用于编写,UNIX,操作系统的核心。,目前,在计算机上广泛使用的,C,语言编译系统有,Borland C+,、,Turbo C,、,Microsoft Visual C+,(简称,VC+,)等。本书使用的开发环境是,VC+6.0,系统。,相关知识,2.C,语言的特点,和其他语言相比,,C,语言具有书写格式自由、数据类型丰富、语句功能强大、执行速度快和存储控制能力强等特点。,(,1,)语言简洁、紧凑,使用方便、灵活。,(,2,)数据结构丰富,具有现代化语言的各种数据结构。,(,3,),C,语言是结构式语言。,(,4,)把高级语言的基本结构和语句与低级语言的实用性结合起来。,(,5,)程序可移植性好。,(,6,)表达力强。,相关知识,三、,C,语言程序的基本结构,1.,几个简单的,C,语言程序,2.C,语言程序的基本结构,(,1,)一个,C,语言,源程序,可以由一个或多个,源文件,组成。,(,2,)源程序中可以有,预处理命令,(,include,),通常放在源文件或源程序的最前面。,(,3,)每个源文件可由一个或多个,函数,组成。,(,4,)每个源程序必须有一个且只能有一个主函数,main(),,由系统自动地调用,是程序执行的起始点。主函数的位置是任意的,可以在程序开头、两个函数之间或程序的结尾。,(,5,)所有语句必须以分号结束,但预处理命令、,函数头,和函数体的花括号,“”,之后不能加分号。,(,6,)可以用“,/*/,”对,C,语言程序的任何部分做注释,以增强程序的可读性。,VC+,中还可以用“,/,”给程序加注释。,相关知识,3.C,语言程序的书写规则,(,1,),C,语言源程序一般用小写字母书写。,(,2,)一个说明或一条语句占一行。,(,3,)用“,”括起来的部分,通常表示程序的某一层次结构。,(,4,)低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。增加程序的可读性。,(,5,)对程序有必要的注释,以增强程序的可读性。,相关知识,四、,C,语言程序的运行过程,任务实施,一、安装,VC+6.0,二、利用,VC+6.0,运行,C,程序,拓展提升,一、编程时常犯的错误,二、程序调试的基本方法,小 结,C,语言的特点。,C,语言程序的基本结构。,使用,VC+6.0,开发,C,语言程序的过程。,构建,C,语言开发环境。,第,1,篇,基础篇,简单三角函数计算器项目概述,学习目标,熟悉,C,语言开发集成环境,理解将实际问题中的信息抽象为,C,语言数据类型及变量的方法,理解结构化程序设计思想,掌握,C,语言中表示数据的方法,掌握,C,语言程序人机交互的实现方法,掌握,C,语言程序的三种基本结构,掌握,C,语言用户自定义函数的定义、调用方法,完成简单三角函数计算器的开发,任务分解,任务一 构建开发环境,任务二 主菜单的顺序执行,任务三 主菜单的选择执行,任务四,主菜单的循环执行,任务五 利用函数优化源代码,任务二 主菜单的顺序执行,在任务一中,我们已经搭建好,C,语言的集成开发环境,从任务二开始逐步进行教学项目的开发。本任务首先完成项目主菜单的显示与顺序执行。,任务描述,实现项目主菜单的显示,接收用户从键盘输入的角度,按主菜单顺序依次计算其正弦、余弦、正切、余切等,4,个三角函数,并输出计算结果。,项目主菜单包括四项功能:正弦、余弦、正切、余切,如图,2-1,所示。,任务分析,该任务需要解决四个问题,即如何显示主菜单、如何接收从键盘输入的数据、如何计算正弦、余弦、正切、余切,以及如何输出计算结果。,(,1,)显示主菜单。,(,2,)接收从键盘输入的数据。,(,3,)计算正弦、余弦、正切、余切。,(,4,)输出计算结果。,学习目标,掌握,C,语言的基本数据类型。,理解将实际问题中的信息抽象为,C,语言数据的方法。,掌握常量和变量的概念及使用方法。,掌握常用运算符的使用方法。,掌握数据输入输出的常用方法。,实现项目主菜单的显示和顺序执行。,相关知识,一、数据类型,相关知识,二、常量与变量,1.,常量,常量是指在程序运行过程中始终不发生变化的量,主要包括整型常量、实型常量、字符型常量和字符串型常量。,2.,变量,变量是指在程序运行过程中其值可以改变的量,通常用变量来保存程序执行时的输入数据、中间结果和最终结果等。,相关知识,三、运算符与表达式,用来表示各种运算的符号称为“运算符”。用运算符把操作数连接在一起组成的式子称为“表达式”。表达式按照运算符的运算规则进行运算,得到一个结果,称为“表达式的值”。,相关知识,1.,算术运算符与算术表达式,相关知识,2.,赋值运算符与赋值表达式,相关知识,3.,关系运算符与关系表达式,相关知识,4.,逻辑运算符与逻辑表达式,相关知识,四、数据类型转换,C,语言中的数据类型转换有两种方式:自动类型转换和强制类型转换。,1.,自动类型转换,自动类型转换是指,C,语言的编译系统按既定的规则进行类型转换。其转换规则为:,(,1,)在,C,语言的一般表达式中,不同类型数据进行运算时,其转换原则是:参加运算的各种变量转换成它们之间占用空间最长的数据类型。,(,2,)在,C,语言的赋值表达式中,如果赋值号左右两边的类型不一致,则右边的值先转换成与赋值号左边的变量相同的类型,然后再进行赋值。,相关知识,2.,强制类型转换,上面的数据类型转换是,C,语言自动完成的。在编写程序时,可以根据需要进行强制类型转换。一般格式是:,(,),功能:将表达式的值强制转换为指定的数据类型,即在括号内标出的数据类型。,相关知识,五、格式输入,/,输出函数,1.,格式输出函数,printf(),printf(),函数是一个标准的库函数,它的函数原型在头文件“,stdio.h,”中,但不要求在使用,printf(),函数前必须使用文件包含命令:,#include,。,函数功能:首先计算输出表列中各表达式的值,然后按照,中给出的格式说明,将各表达式的值转换成所需要的输出格式,在显示器上输出。,调用形式:,printf(,格式控制字符串,输出表列,);,相关知识,相关知识,2.,格式输入函数,scanf(),scanf(),函数是一个标准的库函数,它的函数原型在头文件“,stdio.h,”中,但不要求在使用,scanf(),函数前必须使用文件包含命令:,#include stdio.h,。,函数功能:从键盘按照,中规定的格式输入若干个数据,按,中变量的顺序,依次赋值给对应的变量。,调用形式:,scanf(,格式控制字符串,变量地址表列,);,相关知识,六、字符输入,/,输出函数,1.,字符输出函数,putchar(),putchar(),函数是一个标准的库函数,它的函数原型在头文件“,stdio.h,”中,要求在使用,putchar(),函数前必须使用文件包含命令:,#include stdio.h,。,函数功能:向终端输出一个字符或字符变量的值。,调用形式:,putchar(c);,相关知识,2.,字符输入函数,getchar(),getchar(),函数是一个标准的库函数,它的函数原型在头文件“,stdio.h,”中,要求在使用,getchar(),函数前必须使用文件包含命令:,#include stdio.h,。,函数功能:等待用户从标准输入设备键盘输入一个字符。如果输入成功,函数返回这个字符的,ASCII,值。,任务实施,一、显示主菜单,#include,#include,void main(),int x;,double sinx,cosx,tanx,cotx;,printf(nnnn);,printf(ttt,三角函数计算器,n);,printf(ttt-n);,printf(tttt1.,正弦,n);,printf(tttt2.,余弦,n);,printf(tttt3.,正切,n);,printf(tttt4.,余切,n);,printf(ttt-n);,printf(ttt,请输入角度,(0-180),:,);,任务实施,二、接收从键盘输入的数据,修改上面程序,在第,15,行后增加以下语句:,scanf(%d,/,接收用户从键盘输入的角度,任务实施,三、计算正弦、余弦、正切、余切,在语句,scanf(%d,&x),之后增加以下语句:,sinx=sin(x*3.14/180);,cosx=cos(x*3.14/180);,tanx=tan(x*3.14/180);,cotx=1/tan(x*3.14/180);,任务实施,四、输出计算结果,printf(nttt%d,的正弦值是:,%.2lf,。,x,sinx);,printf(nttt%d,的余弦值是:,%.2lf,。,x,cosx);,printf(nttt%d,的正切值是:,%.2lf,。,x,tanx);,printf(nttt%d,的余切值是:,%.2lf,。,n,x,cotx);,拓展提升,一、整型变量的类型,二、,sizeof,运算符,三、逗号运算符与逗号表达式,四、条件运算符与条件表达式,五、符号常量,六、位运算,小 结,C,语言的基本数据类型。,将实际问题中的信息抽象为,C,语言数据的方法。,常量和变量的概念及使用方法。,常用运算符的使用方法。,数据输入输出的常用方法。,项目主菜单的显示和顺序执行。,第,1,篇,基础篇,简单三角函数计算器项目概述,学习目标,熟悉,C,语言开发集成环境,理解将实际问题中的信息抽象为,C,语言数据类型及变量的方法,理解结构化程序设计思想,掌握,C,语言中表示数据的方法,掌握,C,语言程序人机交互的实现方法,掌握,C,语言程序的三种基本结构,掌握,C,语言用户自定义函数的定义、调用方法,完成简单三角函数计算器的开发,任务分解,任务一 构建开发环境,任务二 主菜单的顺序执行,任务三 主菜单的选择执行,任务四,主菜单的循环执行,任务五 利用函数优化源代码,任务三 主菜单的选择执行,在任务二里,我们完成了项目主菜单的显示与顺序执行。运行程序后,接收用户输入的角度,计算其正弦、余弦、正切、余切等,4,个三角函数,并在屏幕上输出计算结果。但是有时用户并不需要计算全部,4,个三角函数,只需要计算其中,1,个。这种情况下,源代码不需要顺序执行全部语句,而是根据用户的需要有选择地执行部分语句。比如用户只想计算正弦,程序只需执行正弦的计算语句和输出语句,其余,3,个三角函数的计算和输出语句则不需执行。这就是主菜单的选择执行,需要用,C,语言中的选择语句实现。,任务描述,实现项目主菜单的选择执行。具体为,屏幕输出主菜单,用户根据菜单提示选择三角函数类型,并输入角度,程序计算并输出对应的三角函数值。如图,3-1,所示。,任务分析,本任务要根据用户对主菜单的选择进行不同的计算。主菜单共有,4,个选项,相应地,程序就需要处理,4,种不同的情况,这在,C,语言里称为分支结构。,C,语言有两种语句实现分支结构:一是,if,语句;二是,switch,语句。,本任务将分别用,if,语句和,switch,语句实现主菜单的选择执行。,学习目标,理解,C,语言的三种程序结构。,理解程序流程图。,掌握选择结构程序设计的思想和方法。,掌握,if,语句实现分支结构的方法。,掌握,switch,语句实现分支结构的方法。,能运用,C,语言分支结构解决实际问题。,相关知识,一、程序设计,1.,程序设计的步骤,程序设计的一般步骤如下:,分析问题。针对具体的实际问题,分析问题涉及到的各种数据信息及其基本结构。,设计数据结构。数据结构是指对数据的描述。通过分析要解决的任务,确定输入数据和输出数据,并在程序中指定数据的类型和数据的组织形式。,设计算法。算法是指计算机解决问题的操作方法和步骤,即对计算机求解步骤的具体描述。,编写程序。根据确定的数据结构和算法,使用选定的计算机语言编写程序代码。,调试程序。将编写好的程序代码输入到计算机中,对程序进行测试并修正,直到程序符合任务要求为止。,数据结构设计和算法设计处于核心的位置。,相关知识,2.,算法的表示,(,1,)自然语言,自然语言即人们日常使用的语言,如汉语、英语或其他国语言。,(,2,)流程图,流程图是指用规定图形符号、流程线和文字说明表示各种操作的图形。,(,3,),N-S,图,N-S,图去掉了箭头,全部算法写在一个矩形框内。做图简单,面积小,适于结构化程序设计。,(,4,)伪代码法,伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。每一行或几行表示一个基本操作。书写方便,格式紧凑,便于向计算机语言算法(即程序)过渡。,相关知识,2.,算法的表示,(,1,)自然语言,【例,3-1,】输入,3,个数,输出其中最大的数。用自然语言描述算法。,分析:定义,4,个变量用于存放,3,个数及,3,个数中的最大数,比较是两两进行的。设输入的,3,个数分别为,A,、,B,、,C,最大数放在,MAX,中。,第一步:输入,A,、,B,、,C,的值。,第二步:比较,A,、,B,的值,把大数放入,MAX,中。,第三步:比较,C,、,MAX,的值,把大数放入,MAX,中。,第四步:输出,MAX,,算法结束。,相关知识,2.,算法的表示,(,2,)流程图,相关知识,2.,算法的表示,(,3,),N-S,图,相关知识,2.,算法的表示,(,4,)伪代码法,input A,、,B,、,C,if A B,MAX=A,else,MAX=B,if C MAX,MAX=C,output MAX,相关知识,二、三种基本程序结构,程序的三种基本控制结构是顺序结构、选择结构和循环结构。,顺序结构是最简单的一种结构,在顺序结构程序中,各语句按照书写的先后顺序依次执行。选择结构根据判断结果确定不同的后续语句,主要用于描述程序中根据某些数据的取值或者计算结果选取不同操作的处理方式。循环结构是指利用给定条件控制某组语句重复执行多次的流程。,相关知识,1.,顺序结构,相关知识,2.,选择结构,相关知识,3.,循环结构,循环结构又称为重复结构,即在一定条件下反复执行某一部分的操作。这里的一定条件称为循环条件,通常用关系表达式或逻辑表达式表示。反复执行的部分称为循环体。循环结构是,3,种基本结构中较复杂的一种结构。循环结构有当型和直到型两种主要形式。,(,1,)当型循环结构,功能:先判断条件是否成立,若条件成立则执行循环体,然后重新去判断条件是否成立,若条件成立则继续执行循环体,如此反复直到条件不成立为止。如图,3-9,所示。,(,2,)直到型循环结构,功能:先执行循环体,再去判断条件是否成立,若成立则去执行循环体,直到条件不成立为止。如图,3-10,所示。,循环结构一般包含以下,4,个部分。,(,1,)初始化部分:为循环变量及各种有关变量赋初值。,(,2,)循环体:重复执行的部分。,(,3,)修改部分:修改循环变量的值,为下一次重复执行做准备。,(,4,)判断检查部分:判断检查循环变量的值,是否已超过循环变量的终值,若未超过则继续重复执行循环体,否则结束。,相关知识,三、,if,语句,if,语句有种形式:单分支,if,语句、双分支,if,语句、多分支,if,语句。,1.,单分支,if,语句,格式如下:,if(,表达式,),语句;,功能:若表达式的值为真,则执行其后的语句,否则不执行语句。,相关知识,2.,双分支,if,语句,格式如下:,if(,表达式,),语句,1,;,else,语句,2,;,功能:若表达式的值为真,则执行语句,1,,否则执行语句,2,。,相关知识,3.,多分支,if,语句,格式如下:,if(,表达式,1),语句,1;,else if(,表达式,2),语句,2;,else if(,表达式,m),语句,m;,else,语句,n;,功能:由上而下,依次判断表达式的值,当某个表达式的值为真时,就执行其对应的语句。执行完毕后,跳出,if,选择语句,继续执行其下一条语句。如果所有的表达式全为假,则执行,else,后的语句,n,。,相关知识,4.if,语句的嵌套,在,if,语句中,语句,1,和语句,2,本身也可以是,if,语句,此时称为,if,语句的嵌套。格式如下:,if(,表达式,1),if(,表达式,2),语句,1;,else,语句,2;,else,if(,表达式,3),语句,3;,else,语句,4;,相关知识,四、,switch,语句,使用,if,语句实现复杂问题的多分支选择时,程序的结构显得不够清晰,因此,,C,语言提供了一种专门用来实现多分支选择结构的,switch,语句,又称开关语句。,switch,语句的一般形式如下:,switch(,表达式,),case,常量,1:,语句,1;,case,常量,2:,语句,2;,case,常量,n:,语句,n;,default:,语句,n+1;,任务实施,一、,使用,if,语句实现,二、使用,if,嵌套语句实现,使用,switch,语句实现,拓展提升,一、,用条件表达式实现简单的选择结构,二、,在程序中使用条件表达式,小 结,C,语言的三种程序结构。,选择结构程序设计的思想和方法。,if,语句实现分支结构的方法。,switch,语句实现分支结构的方法。,C,语言分支结构解决实际问题的方法。,第,1,篇,基础篇,简单三角函数计算器项目概述,学习目标,熟悉,C,语言开发集成环境,理解将实际问题中的信息抽象为,C,语言数据类型及变量的方法,理解结构化程序设计思想,掌握,C,语言中表示数据的方法,掌握,C,语言程序人机交互的实现方法,掌握,C,语言程序的三种基本结构,掌握,C,语言用户自定义函数的定义、调用方法,完成简单三角函数计算器的开发,任务分解,任务一 构建开发环境,任务二 主菜单的顺序执行,任务三 主菜单的选择执行,任务四,主菜单的循环执行,任务五 利用函数优化源代码,任务四 主菜单的循环执行,在任务三里,我们完成了项目主菜单的选择执行,接收用户的选择,并执行对应的功能。但是每次运行程序只能选择主菜单中的一项功能,执行完这项功能后直接退出程序。我们希望程序开始运行后,只要不选择“退出”功能,程序就一直运行。具体为,程序运行后,显示主菜单,根据用户选择执行完一项功能后,返回到程序主菜单,等待用户再次选择,直到用户选择“退出”,程序结束。在这个过程中,主菜单的显示是重复性的操作。在,C,语言中,称为循环执行,可以利用,C,语言提供的循环语句实现。,任务描述,本任务中实现项目主菜单的循环执行,即每执行完一项功能后,返回到程序主菜单,等待用户再次选择,直到用户选择“退出”,整个程序运行结束,如图,4-1,所示。这是典型的循环结构,只要用户不输入“,0”,,则计算并输出三角函数值(当输入,1,4,时)或者提示选择错误(当输入,1,4,之外的数值时)后,就再次显示主菜单,等待用户再次选择;直到用户输入“,0”,,程序才结束。,任务分析,无论采用哪种循环语句,循环结构必须指定循环条件和循环体。在本任务中,循环条件是:用户输入的选项不为“,0”,。循环体包括:三角函数的计算及输出、项目主菜单的显示、接收用户输入的选项。即,只要用户不选择“,0”,,每执行完一项功能,就会显示项目主菜单;如果用户选择了“,0”,,则退出循环体,不再显示项目主菜单。,任务四将用三种方法实现项目主菜单的循环执行。,学习目标,理解循环结构程序设计的思想和方法,掌握,while,、,dowhile,和,for,语句的使用格式和执行过程,掌握,while,、,dowhile,和,for,语句实现循环结构的方法,掌握,break,和,continue,语句的使用方法和区别,能运用,C,语言中的循环语句解决实际问题,相关知识,一、,while,语句,1.while,语句的语法格式,while,语句的一般形式为:,while,(表达式),循环体,2.while,语句的执行过程,相关知识,3.while,语句应用举例,相关知识,二、,dowhile,语句,1.dowhile,语句的语法格式,dowhile,语句的一般形式为:,do,循环体,while(,表达式,);,其中,,do,是,C,语言的关键字,必须和,while,联合使用。,dowhile,语句由,do,开始,到,while,结束。注意,在,while,的表达式后必须有分号,表示该语句的结束。其他同,while,语句。,相关知识,2.dowhile,语句的执行过程,(,1,)首先执行循环体语句,然后判断表达式的值为真(非,0,)还是为假(,0,)。,(,2,)如果表达式的值为真,则重复步骤(,1,);如果表达式的值为假,则循环结束,执行,while,语句之后的语句。,相关知识,3.dowhile,语句应用举例,相关知识,三、,for,语句,相关知识,3.for,语句应用举例,相关知识,四、,break,语句,break语句通常用在循环语句和switch语句中。break在switch语句中的用法在前面已经讲过,这里不再重复。当break,语句用于,while,、,dowhile,和,for,循环语句中时,可使程序终止,break,语句所在层的循环,提前退出循环。,相关知识,五、,continue,语句,相关知识,2.continue,语句应用举例,相关知识,3.break,和,continue,语句的区别,相关知识,六、几种循环的比较,1,3,种循环都可以用来处理同一问题,一般情况下它们可以互相代替。,2,在,while,循环和,dowhile,循环中,只在,while,后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句。,for,循环可以在“表达式,3,”中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式,3,中,因此,,for,语句的功能更强,凡用,while,循环能完成的,用,for,循环都能实现。,3,用,while,和,dowhile,循环时,循环变量初始化的操作应在,while,和,dowhile,语句之前完成。而,for,语句可以在表达式,1,中实现循环变量的初始化。,4,while,循环、,dowhile,循环和,for,循环,都可以用,break,语句跳出循环,用,continue,语句结束本次循环。,任务实施,一、使用,while,语句实现,二、使用,dowhile,语句实现,三、使用,for,语句实现,拓展提升,一、循环嵌套,二、,while,循环和,dowhile,循环的比较,三、循环结构的测试,小 结,循环结构程序设计的思想和方法,while,、,dowhile,和,for,语句的使用格式和执行过程,while,、,dowhile,和,for,语句实现循环结构的方法,break,和,continue,语句的使用方法和区别,运用,C,语言中的循环语句解决实际问题,第,2,篇,提高篇,学生信息管理系统项目概述,采用结构化程序设计思想,综合运用,C,语言知识,完成学生信息管理系统的开发。该系统主要包括学生信息的录入与浏览、成绩的统计分析、补考名单的输出、学生信息的查询与修改等功能。,任务分析,根据系统主要功能,可以将系统划分为录入学生信息、浏览学生信息、成绩统计分析、输出补考名单、查询学生信息、修改学生信息等,6,个模块。,任务分析,(,1,)录入学生信息。接收用户从键盘输入的学生信息,包括姓名、班级、学号、成绩。,(,2,)浏览学生信息。输出所有学生的信息,包括姓名、班级、学号、成绩。,(,3,)成绩统计分析。输出最高分、最低分、平均分,统计各分数段人数及比例。分数段共有优秀、良好、中等、及格、不及格五个等级,分别对应百分制的,90,x,100,、,80,x90,、,70,x80,、,60,x70,、,x60,。,(,4,)输出补考名单。查找不及格学生,输出其学号及姓名。,(,5,)查询学生信息。按学号查找并输出指定学生的信息。,(,6,)修改学生信息。按学号查找并修改指定学生的信息,比如班级、姓名、成绩。,学习目标,理解将实际问题中的信息抽象为,C,语言数组、结构体变量的方法,理解指针的概念和使用方法,掌握数组、结构体表示数据的方法,掌握文件读写操作的方法,完成学生信息管理系统的开发,知识要点,系统开发涉及的知识点主要包括程序的,3,种基本结构、函数、数组、指针、结构体、文件等内容。其中程序的,3,种基本结构、函数已经在第一篇进行了介绍。,数组、指针、结构体、文件的知识将在本篇详细介绍。,任务分解,任务六 学生成绩信息的统计分析,利用数组处理学生信息里的数值类数据(成绩)。,任务七 学生综合信息的管理,利用结构体处理学生综合信息,包括数值型及字符型数据。,任务八 学生信息的存储,利用磁盘文件保存学生信息。,任务六 学生成绩信息的管理,本章我们将进行学生成绩统计分析系统的开发。系统功能主要包括:输入学生成绩、浏览学生信息、找出最高分、最低分、计算平均分、统计各分数段人数及比例、输出需补考学号、按学号查询成绩、按学号修改成绩等。,任务描述,本任务实现学生成绩信息的统计分析。从系统具体功能可知,系统主模块应包含显示主菜单、输入学生成绩、浏览学生成绩、成绩统计分析、输出补考学号、查询学生成绩、修改学生成绩等,7,项。,任务分析,采用结构化程序设计思想,每个模块都定义为一个功能相对独立的函数,各模块对应函数如下:,(,1,)显示主菜单。函数为,MainMenu(),。,(,2,)录入学生成绩。函数为,Input(),。,(,3,)浏览学生成绩。函数为,Display(),。,(,4,)成绩统计分析。函数为,Analyze(),。,(,5,)输出补考名单。函数为,Output(),。,(,6,)查询学生成绩。函数为,Search(),。,(,7,)修改学生成绩。函数为,Modify(),。,学习目标,理解利用数组存放信息的思想和方法,能将实际问题中的数据信息抽象为数组,掌握数组的定义与初始化的操作方法,掌握对数组元素输入、输出、查找、修改的操作方法,完成学生成绩信息统计分析系统的开发,相关知识,通常,在程序中参与操作的数可以分为两种形式:一种是单一数据;另一种是批量数据。单一数据是指用于描述一个事物或一个概念且相对独立的数据;而批量数据是指将若干个具有相同性质的数据组织在一起且共同参与某项操作的数据集合。,数组是,C,语言提供的一种专门用来组织批量数据的数据类型,它可以将性质相同且需要共同参与某项操作的多个数据有效地组织起来,是一种应用十分频繁且非常重要的数据类型。,相关知识,一、一维数组,1.,一维数组的定义,一维数组变量的定义格式如下:,元素类型,数组变量名,;,例如,:,float score6;,相关知识,2.,一维数组的初始化,数组初始化的基本格式为,元素类型 数组变量名,=,元素初值,1,,元素初值,2,,,.,,元素初值,n;,例如,,float score6=70,68,82,58,92,89;,相关知识,3.,一维数组元素的引用及基本操作,对数组元素的引用格式如下,数组变量名,下标表达式,其中,“数组变量名”是一个已经定义的数组变量,“下标表达式”的结果应该是一个介于数组下标取值范围内的整型数值。例如,,score0,、,score1,、,score5,分别表示,score,数组的各个元素。,相关知识,(,1,)数组的赋值,数组的赋值有三种方法,一是在定义数组型变量的同时对其进行初始化;二是利用赋值语句为数组赋值;三是调用标准输入函数为数组赋值。,当为数组中的某个特定元素赋值时,需要通过数组变量名和下标值指出相应的数组元素。例如:,score5=78;,scanf(%f,/,程序等待用户通过键盘输入,1,个实型数值,赋给,score,数组中下标是,2,的元素。,相关知识,当需要为数组中的每个元素赋值时,应该使用循环结构。例如:,int i;,for(i=0;i6;i+)/,给,score,数组中的每个元素赋值,20,scorei=20;,C,语言除了在定义数组时可以为数组整体赋值之外,不能在其他情况对数组进行整体赋值。例如,下面的用法是错误的。,int array10;,for(i=0;i10;i+),scanf(%d,array);,相关知识,(,2,)数组的输出,与数组型变量赋值一样,数组的输出是通过输出数组型变量中的每一个元素值实现的。例如:,int i;,for(i=0;i6;i+)/,依次输出,score,数组中的,6,个元素,printf(%.2f,scorei);,相关知识,【例,6-1,】从键盘输入,10,个整数,找出最大值并输出。,相关知识,例,6-2,】从键盘输入,10,个学生的百分制成绩,计算平均成绩并输出。,相关知识,【例,6-3,】从键盘输入某班(每班最多,50,人)学生的百分制成绩(输入,-1,时表示该班成绩输入完毕),求平均成绩并输出。,相关知识,【例,6-4,】从键盘输入,10,个学生的百分制成绩,统计各分数段人数及比例。分数段共有优秀、良好、中等、及格、不及格五个等级,分别对应百分制的,90,x,100,、,80,x90,、,70,x80,、,60,x70,、,x60,。,相关知识,【例,6-5,】从键盘输入,10,个学生的百分制成绩,判断是否有不及格的学生。,相关知识,【例,6-6,】从键盘输入,10,个学生的百分制成绩,查找不及格的学生,输出其在数组中的顺序号及成绩。,相关知识,【例,6-7,】计算选手得分。假设有,10,位评委打分,计算选手最终得分的方法是:首先去掉一个最高分和一个最低分,然后计算剩余,8,个分数的平均值,所得结果就是选手的最终得分。编程实现该功能。,相关知识,【例,6-8,】统计选举结果。假设有,5,位候选人,编程统计每位候选人的得票数目及选举结果。,相关知识,二、字符数组,前面介绍的数组都是数值型的数组,数组中的每一个元素都是用来存放数值型的数据。数组不仅可以是数值型的,也可以是字符型的或其他类型的(比如指针类型、结构体类型)。用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。,相关知识,1.,字符数组的定义及初始化,(,1,)先定义数组再逐个赋值,相关知识,(,2,)定义字符数组时对各元素赋值,即初始化。,char str10=I,a,m,L,i,l,y,.;,char str10=L,i,l,y;,相关知识,2.,字符串,字符串是一种常用的数据形式,是指一个有限长度的字符序列。在,C,语言中,并没有直接提供字符串数据类型,而是借助于字符型数组实现字符串的组织。,在,C,语言中,字符串常量用一对双引号括起来。例如,“,Lily Xu,”、“张三”、“山东职业学院”、“男”都是字符串常量。,相关知识,在,C,语言中,字符串用字符型数组存储,并且以,0,作为结束标志。例如,char s11=I am Lily.,;,相关知识,3.,字符数组的输入输出,字符数组的输入输出有两种方法。一种是逐个字符输入输出;另一种是整个字符串输入输出。,相关知识,(,1,)逐个字符输入输出。,用字符输入输出函数,getchar(),和,putchar(),或者用格式化输入输出函数,scanf(),和,printf(),的格式符“,%c”,,结合循环实现逐个字符输入或输出。例如,,char name10;,for(i=0;i10;i+),scanf(%c,/,或者,namei=getchar();,for(i=0;i10;i+),printf(%c,namei);/,或者,putchar(namei);,相关知识,(,2,)整个字符串输入输出,用格式化输入输出函数,scanf(),和,printf(),的格式符“,%s,”将整个字符串一次输入或输出。,char name10;,scanf(%s,name);,printf(%s,name);,用,gets(),和,puts(),函数实现整个字符串的输入输出。,相关知识,三、字符串标准函数,相关知识,四、数组作函数参数,1.,数组元素作函数参数,数组元素作函数的实参,与普通变量作实参一样,传递方式是单向值传递方式。,相关知识,2.,数组名作为函数参数,在,C,语言程序中,有时需要把数组的全部元素传递到另一个函数中去处理,此时可以用数组名作为函数参数。,任务实施,一、搭建系统整体框架,二、具体函数的实现,(,1,)录入学生成绩函数,(,2,)浏览学生成绩函数,(,3,)成绩统计分析函数,(,4,)输出补考名单函数,(,5,)查询学生成绩函数,(,6,)修改学生成绩函数,拓展提升,一、二维数组,1.,二维数组的定义,定义二维数组的一般形式为:,类型名,数组名,常量表达式,1,常量表达式,2;,拓展提升,2.,二维数组的初始化,二维数组的初始化形式有以下几种。,(,1,)对每个元素进行初始化,int a34=12,11,10,9,8,7,6,5,4,3,2,1;,int a34=12,11,10,9,8,7,6,5,4,3,2,1;,int a4=12,11,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服