C语言程序设计项目教程.ppt

上传人:小飞机 文档编号:5426466 上传时间:2023-07-05 格式:PPT 页数:230 大小:1.15MB
返回 下载 相关 举报
C语言程序设计项目教程.ppt_第1页
第1页 / 共230页
C语言程序设计项目教程.ppt_第2页
第2页 / 共230页
C语言程序设计项目教程.ppt_第3页
第3页 / 共230页
C语言程序设计项目教程.ppt_第4页
第4页 / 共230页
C语言程序设计项目教程.ppt_第5页
第5页 / 共230页
点击查看更多>>
资源描述

《C语言程序设计项目教程.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计项目教程.ppt(230页珍藏版)》请在三一办公上搜索。

1、高等职业教育“十二五”规划教材公共课系列,C语言程序设计项目教程,目录,由浅入深的知识点介绍,循序渐进的技能培养,基础篇,1,项目1 通讯录信息输出项目2 个人所得税计算项目3 计算器设计项目4 猜数字游戏,项目1 通讯录信息输出,学习情境项目分析项目目标项目实现,相关知识总结提高技能训练,学习情境,通讯录主要是为方便记录、查询同学、朋友、同事和亲戚等的联系方式、通讯地址,便于联系而建立的。在这个项目里我们主要学习C程序的编写格式、运行方法以及输入/输出函数的使用。,通讯录信息输出主界面,通讯录信息输出显示结果,项目分析,本项目根据通讯录的具体情况,分析出需要输出的数据及数据类型,定义变量。根

2、据提示录入通讯录信息,最后在屏幕上显示输出通讯录信息。程序结构设计如下:主函数()声明变量、变量赋值;根据提示录入通讯录信息;在屏幕上显示输出通讯录信息;该程序的结构是顺序结构。使用格式化输入输出函数,实现录入及显示不同格式的通讯录信息。,项目目标,知识目标 掌握C语言的基础知识,了解C语言的数据类型,了解常量和变量的概念,掌握变量的定义以及为它们赋值的方法,熟悉输入/输出函数、库函数的使用,了解C程序的特点,掌握编辑、编译、链接和运行一个C语言程序的方法和步骤。能力目标 培养学生使用集成开发环境进行软件开发、调试的综合能力。素质目标 使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位

3、需要的职业能力。,项目实现,任务一:分析需要输出的数据及数据的类型任务二:声明变量、对变量进行赋值任务三:根据提示录入通讯录信息任务四:在屏幕上显示通讯录信息任务五:在Turbo C环境下编写运行C语言程序,任务一:分析需要输出的数据及数据的类型,整理QQ通迅录中涉及的数据。,任务二:声明变量、对变量进行赋值,int id;char name20;char sex;int age;char telephone_num12;long int qq_num;char msn_num30;char E_mail50;char city20;char profession30;char address

4、60;,该任务涉及的知识点有整型变量和字符型变量的定义方法。把表中各字段用相应类型的变量定义出来。,任务三:根据提示录入通讯录信息,printf(please input id number:n);scanf(%d,scanf函数输入时,分别用到了%s、%d、%c、%ld等格式控制符。,该任务涉及的知识点有printf函数和scanf函数的使用方法,通过printf函数输出一个提示输入的字符串,利用scanf函数来实现变量的输入。,任务四:在屏幕上显示通讯录信息,为了实现美观性,printf函数中还用到了“”,作为表头装饰字符。printf(nn);printf(TongXunLu-%s n,

5、name);printf(n);printf(ID:tt%dn,id);printf(Name:tt%sn,name);printf(Sex:tt%cn,sex);printf(Age:tt%dn,age);printf(Tel_number:t%sn,telephone_num);printf(QQ number:t%ldn,qq_num);printf(MSN_ number:t%sn,msn_num);printf(E-mail:tt%sn,e_mail);printf(City:tt%sn,city);printf(Profession:t%sn,profession);printf(

6、Address:t%sn,address);printf(n);,该任务利用多个printf函数来实现最终通讯录的输入。,任务五:在Turbo C环境下编写运行C语言程序,在编译时在源程序编写过程中出现的错误,称为语法错误。在连接的过程中也可能发现错误,称为逻辑错误,应尽可能避免。运行包括:(1)应用运行:指程序正式投入使用后的运行,是通过程序运行完成预先设定的功能。(2)测试运行:指应用运行前的试运行,是为了验证整个应用系统的正确性。(3)调试运行:专门为验证某些函数的正确性而进行的。运行时,通过输入一些特定的数据,观察程序是否按预期的输出。,从C语言源程序到最后能够运行一般要经过如下4个步

7、骤:1编辑源程序2编译3连接4运行,相关知识,C语言基础:数据类型、常量、变量C程序的结构特点C程序输入输出操作C程序的开发过程及环境,C语言基础:数据类型、常量、变量,数据类型为了便于C语言的数据处理,合理地使用存储空间,将数据划分为不同的类型,进行分类处理。,C语言基础:数据类型、常量、变量,#includevoid main()int a;int b;int c;a=120:/为变量赋初值/b=0120;c=0 x120;printf(%dt%dt%dn,a,b,c);/按十进制输出变量的值/printf(%ot%ot%on,a,b,c);/按八进制输出变量的值/printf(%xt%x

8、t%xn,a,b,c);/按十六进制输出变量的值/,常量整型常量:即整常数。包括十进制整数,八进制整数:用以0开头的数表示。十六进制整数:用以0 x开头的数表示。实型常量:是文字形式的实数。包括常规方法和科学记数法。字符型常量:用单引号括起来的一个字符。还有不可显示的字符,叫做转义字符,字符串常量:也叫字符串,是用一对双引号界定的字符序列,如China、A和This is a simple program!等。,转义字符,C语言基础:数据类型、常量、变量,声明三个整型变量a,b,c和两个浮点型变量x,y,可用如下格式:int a,b,c;float x,y;在声明变量的时候可以给变量赋以初值,

9、如:int d=84;float z=17.85;char c=x;,变量变量是在程序的运行过程中,其值可以根据需要变化的量。变量需要有自己的名字来标识和被引用,同时每个变量都有自己的数据类型。因此变量在使用之前,需要首先声明其类型和名称。变量的声明格式如下:数据类型 变量名1,变量名 2,变量名n;注意:变量说明必须放在变量使用之前。一般放在函数体的开头部分。,C程序的结构特点,【例1】已知三角形三条边的长度(键盘输入),求三角形面积。#include#includevoid main()double x,y,z,p,s;scanf(%lf,%lf,%lf,输入3,4,5回车,程序运行结果如

10、下:s=6.000000,一个C语言源程序可以由一个或多个源文件组成。每个源文件可由一个或多个函数组成。一个源程序只有一个main函数。一个函数由函数头和函数体组成。预处理命令通常应放在源文件或源程序的最前面。每一条语句必须以分号结尾。但预处理命令、函数头和花括号“”之后不加分号。标识符、关键字之间必须至少加一个空格间隔。若已有明显的间隔符,也可不再加空格来间隔。,常用的数学函数,C程序的结构特点,【例2】已知半径求圆面积。#includevoid main()float PI=3.14159;int s,r=5;s=rrPI;printf(s=%dn,s);程序运行结果如下:s=78【例3】

11、字符变量参与数值运算。#includevoid main()char a,b;a=a;b=b;a=a-32;b=b-32;printf(%c,%cn%d,%dn,a,b,a,b);程序运行结果如下:BA,65,66,书写规则一个说明或一个语句占一行。用括起来的部分,通常表示程序的某一层次结构。一般与该结构语句的第一个字母对齐,并单独占一行。低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写,以便看起来更加清晰,增加程序的可读性。,C程序输入输出操作,1赋值语句在赋值表达式的尾部加上“;”就构成了赋值语句。注意:1)赋值符“=”右边的表达式也可以又是一个赋值表达式。2)给变量赋初值是变

12、量说明的一部分,赋初值后的变量与其后的其他同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。3)在变量说明中,不允许连续给多个变量赋初值。4)赋值表达式是可以出现在任何允许表达式出现的地方,而赋值语句则不能。,a=b=c=d=e=5;按照赋值运算符的右接合性,因此实际上等效于:e=5;d=e;c=d;b=c;a=b;“if(x=y+5)0)z=x;”,它的功能是若表达式“x=y+5”大于0则z=x。下述语句是非法的:“if(x=y+5;)0)z=x;”,因为“x=y+5;”是赋值语句,不能出现在表达式中。,C程序输入输出操作,输出格式控制是用双引号括起来的字符串,主要作用如下:1)格式

13、说明,将要输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的,后跟一格式字符,例如“%d”。2)提供需要原样输出的文字或字符。调用printf函数时,格式控制符与输出表列从左到右在类型上一一匹 配。如果想输出字符“%”,那么应该在格式控制字符串中用连续两个%表示。例如:“printf(%f%,1.0/3);”则输出0.333333%。输入格式控制是指定数据输入的转换格式,输入地址表列必须是合法的地址表达式,在使用scanf函数时应注意:1)输入地址表列应是变量地址,而不是变量名。2)若要输入long型数据,在%和d之前必须加1,输入double型数据时,在%和f(e)之间也必须加1

14、,否则得不到正确的数据。3)格式说明的类型与输入对象在类型上应该一一对应匹配,个数也应相同。4)格式字符前可用一个整数指定输入数据所占宽度,但不能对实型数指定小数位宽度。5)用scanf函数输入多个数值型数据时,数据之间用分隔符隔开,可以是空格符、回车符或制表符(Tab键)。6)如在格式控制符字符串中有格式字符以外的字符,那么在组织数据输入时必须原样输入。7)用scanf函数输入多个字符型数据时,当输入数据少于变量数时,空格符、回车符、制表符都将作为间隔符读入。,2输入/输出语句C语言通过调用标准库函数提供的输入和输出函数实现数据的输入与输出。(1)格式化输入输出函数输出函数printf(),

15、一般调用形式如下:printf(输出格式控制,输出表列);输入函数scanf(),一般调用形式如下:scanf(输入格式控制,输入地址表列);,C程序输入输出操作,putchar函数只能向终端输出一个字符。【例】#include void main()char a=B,b=o,c=k;putchar(a);putchar(b);putchar(b);putchar(c);putchar(t);putchar(a);putchar(b);putchar(n);putchar(b);putchar(c);getchar函数只能从输入终端接收一个字符。在输入时,空格符、回车符、制表符都将作为字符读入

16、,只有当输入回车键时,读入才开始执行。使用getchar函数还应注意几个问题:1)getchar函数只能接受单个字符,2)在TC屏幕下运行含本函数程序时,将退出TC屏幕进入用户屏幕等待用户输入。输入完毕再返回TC屏幕。,2输入/输出语句(2)字符输入输出函数实现字符的输入与输出,注意在使用前必须在程序文件开始加上#include。输出函数putchar(),一般调用形式如下:putchar(输出项);输入函数getchar(),一般调用形式如下:char ch;ch=getchar();,C程序输入输出操作,Gets输入函数说明:从键盘输入的字符串内容可以含有空格,按回车键则结束串的输入。,2

17、输入/输出语句(3)字符串的输入输出函数gets输入函数,等待用户从键盘输入一个字符串给计算机,形式如下:gets(字符型数组名或字符型指针名);puts输出函数,将字符型数组名或字符型指针名指示的内存空间存放的字符串内容显示于屏幕当前光标处。形式如下:puts(字符型数组名或字符型指针名或字符串常量);,C程序的开发过程及环境,Turbo C 2.0(1)Turbo C 2.0的启动 找到tc.exe并运行它。(2)源程序和建立编辑通过“File”菜单中的“New”命令建立新的源程序。已存在的文件,可通过“File”菜单中的“Load”命令,或直接按F3键,将程序调入编辑区。保存编辑修改过的

18、程序,可通过“File”菜单下的“Save”或“Write to”命令来实现,也可直接按F2键来完成。(3)源程序的编译、连接和运行执行“Run”命令来进行编译和连接。进入运行状态。或直接按Ctrl+F9键来完成。对运行结果,可通过“Run”菜单中的“User screen”命令或按Alt+F5键进入用户窗口查看。VC+6.0(1)VC+6.0的启动在“开始”菜单中选择“程序”菜单,进入VC+编辑窗口。(2)编辑C源程序选择“File”菜单中的“New”命令,弹出“New”对话框,在对话框中选择“File”选项卡,再选择“C+Source File”,在“File”下面填上源文件名,注意一定要

19、加上扩展名.c,在Location下面选择文件的存放目录。上述工作做完后单击OK按钮,回到编辑窗口,此时编辑窗口为白色,并且有输入焦点,可进行编辑、编译、连接和运行等操作。,C语言编程平台1、Turbo C 2.02、Visual C+6.0(简称VC+6.0)。,总结提高,printf格式控制符的完整格式scanf格式控制符的完整格式,printf格式控制符的完整格式,(1)完整格式格式字符:%、-、0、m.n、l或h。1)%:表示格式说明的起始符号,不可缺少。2)-:有-表示左对齐输出,如省略表示右对齐输出。3)0:有0表示指定空位填0,如省略表示指定空位不填。4)m.n:m指域宽,即对应

20、的输出项在输出设备上所占的字符数。n指精度,用于说明输出的实型数的小数位数。未指定n时,隐含的精度为n=6位。5)l或h:l对应整型指long型,对应实型指double型。h用于将整型的格式字符修正为short型。(2)格式字符格式字符用以指定输出项的数据类型和输出格式。1)d格式:用来输出十进制整数。2)o格式,以无符号八进制形式输出整数。3)x格式,以无符号十六进制形式输出整数。4)u格式,以无符号十进制形式输出整数。5)c格式,输出一个字符。6)s格式,用来输出一个串。7)f格式,用来输出实数(包括单、双精度),以小数形式输出。8)e格式,以指数形式输出实数。9)g格式,自动选f格式或e

21、格式中较短的一种输出,且不输出无意义的零。关于printf函数的进一步说明:对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位。对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位。,完整格式格式字符,scanf格式控制符的完整格式,(1)完整格式格式字符:%、m、l或h。1)格式字符与printf函数中的使用方式相同,有%d、%o、%x、%c、%s、%f、%e,无%u格式、%g格式。2)可以指定输入数据所占列宽,系统自动按它截取所需数据。3)%后的“”为附加说明符,用来表示跳过它相应的数据。4)输入数据时不能规定精度。(2)输入数据流分隔1)根据格式字符的含义从输

22、入流中取得数据,当输入流中数据类型与格式字符要求不符时,就认为这一项结束。2)根据格式项中指定的域宽分隔出数据项。3)隐示分隔符:空格、跳格符(t)、换行符(n)都是C语言认定的数据分隔符。4)显示分隔符:在输入数据时,在两个数据之间必须以这一个或多个字符分隔,关于scanf函数的进一步说明1)scanf函数中的格式控制后面应当是变量地址,而不应是变量名。2)如果在格式控制字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符。3)在用“%c”格式输入字符时,空格字符和转义字符都作为有效字符输入。4)scanf中不使用u说明符,对unsigned型数据用d、o、x说明符

23、输入。,完整格式输入数据流分隔,技能训练,自主训练拓展训练,自主训练,#include void main()char name10;/用来存放学生姓名/char id10;/用来存放学号/float yuwen;/实型变量yuwen,用来存放语文成绩/float yinyu;/实型变量yinyu,用来存放英语成绩/float shuxue;/实型变量shuxue,用来存放数学成绩/float jisuanji;/实型变量jisuanji,用来存放计算机成绩/float zhengzhi;/实型变量zhengzhi,用来存放政治成绩/float tiyu;/实型变量tiyu,用来存放体育成绩/

24、float zongfen;/实型变量zongfen,用来存放总分/float pingjunfen;/实型变量pingjunfen,用来存放平均分/clrscr();printf(please input students name:n);scanf(%s,name);printf(please input students id:n);scanf(%s,id);printf(please input yuwen:n);scanf(%f,训练内容:输出学生成绩。说明:学生成绩包括学号、姓名以及各科成绩、总分和平均成绩。首先定义字符型数组存放学生的姓名和学号,再定义多个实型变量用来存放学生各科

25、成绩,最后利用输出变量值的方式来输出各科成绩,直接输出表达式值的方式来输出总分和平均分。,printf(please input shuxue:n);scanf(%f,拓展训练,#include void main()char name10;/用来存放职工姓名/char id10;/用来存放职工编号/float jbgz;/实型变量jbgz,用来存放基本工资/float gwjt;/实型变量gwjt,用来存放岗位津贴/float jbf;/实型变量jbf,用来存放加班费/float jj;/实型变量jj,用来存放奖金/float sdf;/实型变量sdf,用来存放水电费/float grsds

26、;/实型变量grsds,用来存放个人所得税/float sfgz;/实型变量sfgz,用来存放实发工资/printf(please input name:n);scanf(%s,name);printf(please input id:n);scanf(%s,id);,训练内容:输出职工工资表。说明:职工工资的计算方法是基本工资、岗位津贴、加班费和奖金4个项目的和,再扣除水电费和个人所得税。,printf(please input jbgz:n);scanf(%f,项目2 个人所得税计算,学习情境项目分析项目目标项目实现,相关知识总结提高技能训练,学习情境,本项目要求提示用户输入个人的收入后,

27、给出纳税额度和税后工资。个人所得税税率表,项目分析,在C语言中使用if语句解决有分支的情况,多分支情况下if语句嵌套使用。本项目首先从键盘输入个人全部工资,根据工资情况,分别利用超额累进税率的计算方法计算应交个人所得税额。,项目目标,知识目标 掌握C语言程序设计知识。熟悉选择结构程序设计的方法,if语句及嵌套使用。进一步熟悉TC集成环境的程序编辑、编译、链接、运行和调试方法。能力目标 培养学生使用集成开发环境进行软件开发、调试的综合能力。素质目标 使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力。,项目实现,任务一:定义项目中的数据结构任务二:实现显示不同的个人收入及不

28、同的所得税额,任务一:定义项目中的数据结构,#includemain()double income,taxincome,tax;/定义变量收入、应税所得、个人所得税/,1任务描述定义个人收入、交税后应得、个人所得税的数据类型double。2任务涉及的知识要点分析个人所得税项目中由于涉及不同的数值,用实型(双精度型)数据类型合适。3任务分析与实现个人所得税项目包含3个变量:个人具体收入、交税后应得收入和所扣除的具体所得税。,任务二:实现显示不同的个人收入及不同的所得税额,printf(please input your incomen);scanf(%g,1任务描述首先显示用户所要输入的具体的工

29、资数,运行后输入显示交税后应得收入及扣除的具体所得税数目。2任务涉及的知识要点该任务涉及格式化输入、输出函数及if选择结构的使用。3任务分析与实现首先系统显示要随机输入的个人所得收入值,通过运行后,在系统界面上显示个人要交纳的个人所得税额以及个人除税后的金额。,相关知识,C运算符概述算术运算符与算术表达式表达式中数据间的混合运算与类型转换赋值运算符与赋值表达式逗号运算符和逗号表达式,C运算符概述,1按照其功能分类1)算术运算符:“+”“-”“”“/”“%”“+”“-”。2)关系运算符:“”“=”“”“”“|”“&”“”。5)赋值运算符:“=”及复合赋值运算符。6)条件运算符:“?:”。7)逗号

30、运算符:“,”。8)指针运算符:“”“&”。9)求字节数运算符:“sizeof”。10)强制类型转换运算符:“(类型标识符)”。11)分量运算符:“.”“”。12)下标运算符:“”。13)其他运算符有函数调用运算符“()”等。2按其连接运算对象的个数分类1)单目运算符(仅对一个运算对象进行操作):“!”“”“+”“-”“-”(取负号)“(类型标识符)”“”“”“sizeof”。2)双目运算符(连接两个运算对象):“+”“-”“”“/”“%”“”“=”“=”“!=”“”“&”“”“|”“&”“|”“=”及复合赋值运算符。3)三目运算符(连接三个运算对象):“?:”。4)其他运算符:“()”“”“

31、.”“”。,1按照其功能分类2按其连接运算对象的个数分类,算术运算符与算术表达式,1算术运算符1)单目运算符:“-”(取负),“+”(取正)2)双目运算符:“+”(相加),“-”(相减),“”(相乘),“/”(相除),“%”(取余数)2自增与自减运算符(+与-)作用:使变量的值增或减。1)+i,-i 使用之前,先使i的值加(减)12)i+,i-使用之后,使i的值加(减)1 3算术表达式和运算符的优先级与结合性1)算术表达式用算术运算符和括号将操作数连接起来的,符合C语法规则的式子。2)优先级:*%高于3)结合性:按自左至右的结合方向。,1算术运算符2自增与自减运算符(+与-)3算术表达式和运算

32、符的优先级与结合性,表达式中数据间的混合运算与类型转换,1显式强制类型转换其一般形式为:(类型标识符)(表达式)2隐式强制类型转换1)运用赋值运算符,2)在函数有返回值时总是将return后面的表达式值强制转换为函数的类型(当两者类型不一致时)。形式:(类型名)(表达式)注意:强制类型转换后并不改变原来变量的类型。【例】main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);输出结果:x=3.600000,i=3,1显式强制类型转换2隐式强制类型转换,赋值运算符与赋值表达式,1赋值运算符(=)形式:变量名=常量或表达式作用:将右边常

33、量或表达式的值赋给左边的变量。要求:如果表达式类型与左边的变量的类型不匹配,自动进行类型转换。2复合赋值运算符在赋值符“=”之前加上其他运算符,共有10种复合赋值运算符:+=,-=,=,/=,%=,=,&=,=,|=3赋值表达式定义:由赋值运算符将一个变量和一个表达式连接起来的式子。形式:变量=表达式说明:赋值表达式的值为被赋值的变量的值。赋值表达式中可以包含复合赋值运算符。【例】若a=12,计算表达式a+=a=aa运算后a的值。第一步:aaa a=a-aa=121212=132第二步:a+=132 a=a+(132)=264,1赋值运算符(=)2复合赋值运算符3赋值表达式,逗号运算符和逗号表

34、达式,1逗号运算符逗号运算符即,优先级为所有运算符中级别最低的。2逗号表达式形式:表达式1,表达式2,表达式n求解过程:顺次求解表达式1,表达式2,最后求解表达式n。逗号表达式的值为表达式n的值。,1逗号运算符2逗号表达式,总结提高,if语句的三种基本形式选择结构是根据给定条件来决定语句是否执行,if语句的三种基本形式,最基本的形式:if(表达式)语句1 else 语句2最简单的形式:if(表达式)语句层次形式:if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式4)语句4 else 表达式5,最基本的形式最简单的形式层次形式,选择

35、结构是根据给定条件来决定语句是否执行,1单分支选择结构条件为真时执行指定的语句,否则就跳过这些语句。在C语言中,用if语句来描述单分支选择结构。2双分支选择结构在条件为直或假时,分别执行指定的不同语句。在C语言中,用if-else语句来描述双分支选择结构。3if语句的嵌套在if(或if-else)语句中,又包含一个或多个if(或if-else)语句。4多分支选择结构依据一个表达式所取不同的值,分别执行指定的不同语句。在C语言中,用switch语句来描述多分支选择结构。,单分支选择结构双分支选择结构if语句的嵌套多分支选择结构,技能训练,自主训练拓展训练,自主训练,训练提示:编程从键盘输入小孩的

36、性别(用字符型变量s存储,输入字符W表示女性,输入字符M表示男性)、父母身高(用实型变量存储,f_h为其父身高,m_h为其母身高)、是否喜爱体育锻炼(用字符型变量sport存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对小孩的身高进行预测。,训练内容:身高的预测。设f_h为其父身高,m_h为其母身高,身高预测公式为男性成人时身高=(f_h+m_h)0.54(cm)女性成人时身高=(f_h 0.923+m_h)/2(cm)此外,如果喜爱体育锻炼,那么可增加身高2%;如果

37、有良好的卫生饮食习惯,那么可增加身高1.5%。,拓展训练,根据用户输入的年龄计算他(她)的胖瘦程度并告诉用户,具体方法如下。(1)成人体重指数(kg/m2)体重(kg)/身高(m)的平方 超重:体重指数=2530 轻度肥胖:体重指数30 中度肥胖:体重指数35重度肥胖:体重指数40(2)儿童(716岁)标准体重=年龄28轻度肥胖:超过标准体重20%30%中度肥胖:超过标准体重40%50%重度肥胖:超过标准体重50%以上(3)幼儿(7岁以下)体重指数(kg/m2)体重(kg)/身高(m)的平方 正常:1518 超重:1820 轻度肥胖:2022 中度肥胖:2225 重度肥胖:25以上,训练内容:

38、判断胖瘦。根据数据进行编程,要求程序可根据个人身高与实际体重,得出个人标准体重及体重是否正常的信息,项目3 计算器设计,学习情境项目分析项目目标项目实现,相关知识总结提高技能训练,学习情境,开发简单的计算器程序,以便用于自己的学习工作。本项目主要实现两数据的加、减、乘、除、求余等多种情况的计算,效果如图所示。,计算器的主界面,计算器的运行界面,计算器的退出界面,项目分析,用键盘输入需要计算的数据,将结果输出到显示器或打印机上。现实生活中经常会遇到多分支的情况,这些问题都可以用嵌套的if语句来处理,但如果分支较多,就显得嵌套的层次太多,程序冗长且可读性降低。switch语句就是专门为了解决多分支

39、的问题而设计的。本例就是利用switch语句对各种选择进行判断和相应处理,实现计算器程序设计。,项目目标,知识目标掌握分支结构程序设计,掌握switch语句,dowhile循环语句使用。能力目标培养学生使用开关语句开发程序,解决多分支情况。素质目标使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力,项目实现,任务:设计测试主界面(6种情况),任务:设计测试主界面(6种情况),主要代码如下:printf(nt欢迎使用计算器 n);printf(n-n);printf(1.加法 2.减法n);printf(3.乘法 4.除法n);printf(5.余数 6.退出n);prin

40、tf(-n);printf(nt请选择 1-6:n);scanf(%d,/退出系统/,1、直接使用printf函数,其双引号内容原样输出。2、显示提示信息,由用户选择执行不同的操作。,相关知识,switch语句break语句,switch语句,Switch语句说明:1)计算表达式的值,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,但不能在执行完该标号的语句后自动跳出整个switch语句,而继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。2)switch后面圆括号内的表达式的值和case后面的常量表达式的值只能是整型

41、或字符型。3)同一个子switch语句中,case后的各常量表达式的值不能相同。4)在case后允许有多个语句,可以不用括起来。5)各case和default子句的先后顺序可以变动,不会影响程序执行结果,default语句可以省略。6)在需要用switch语句选择关系型运行条件的时候,应先用if进行判断。,switch(表达式)case常量表达式1:语句1;case常量表达式2:语句2;case常量表达式n:语句n;default:语句n+1;,break语句,【例】给出百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8089为B,7079分为C,6069分为D,60分以下为E

42、。#include main()int a;scanf(%d,1、break语句,专用于跳出switch语句。2、break 语句只有关键字break,没有参数。3、在每一case语句之后增加break 语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。,总结提高,在编写程序时,经常会碰到按不同情况分转的多路问题,这时可用if嵌套实现;但是若嵌套层次太多,容易出错,所以这时一般使用switch语句解决。为了在每次执行case语句后跳出switch语句,不要忘记使用break语句;switch也可以嵌套,break语句只跳出它所在的switch语句。switch语句后的表

43、达式不能有分号。在使用时,case及default与其后面的常量表达式间至少要有一个空格。,技能训练,自主训练拓展训练,自主训练,说明:switch语句是用于处理多分支的语句。需要注意的是,case后的表达式必须是一个常量表达式,所以在用switch语句之前,必须把0150之间的积分分别化成相关的常量。提示:1)直接使用printf函数对界面进行设计。2)把0150之间的积分分别化成相关的常量,可采用除10取整的方法。3)使用switch处理多分支语句。,训练内容:企业员工年终奖管理程序。某企业发放的年终奖金根据职工该年的积分计算。积分等于或低于0分的,奖金为0;积分在119分之间的,奖金为积

44、分数乘以100;积分在2029之间的,奖金为积分数乘以150;积分在3039之间的,奖金为积分数乘以200;积分在4049分之间的,奖金为积分数乘以250;积分在50分以上的,奖金都为积分数乘以300。编写一程序,从键盘输入积分数,可以求出该职工的年终奖。,拓展训练,说明:switch语句是用于处理多分支的语句。需要注意的是,case后的表达式必须是一个常量表达式,所以在用switch语句之前,必须把利润化成相关的常量。,训练内容:企业员工工资等级管理程序。企业根据员工创造的利润将工资分为5个等级。利润低于或等于10万元时,为五等;利润高于10万元,低于20万元时,为四等;2040万元之间时,

45、为三等;40100万元之间时,为二等;超过100万元时,为一等。从键盘中输入员工创造的利润,输出其工资等级。,项目4 猜数字游戏,学习情境项目分析项目目标项目实现,相关知识总结提高技能训练,学习情境,猜数字游戏是一种简单、轻松的休闲游戏。输入数字,与猜数比较,若不相等,根据提示(太大、太小、稍大、稍小)等情况,重新输入数字,与猜数进行比较,直至与猜数相等为止。猜数字游戏程序的主界面如下所示。,项目分析,本项目运用选择结构、循环结构程序设计的方法,开发猜数字游戏。while、do-while和for语句用于循环结构。while和for语句是在循环顶部进行循环条件测试,如果循环条件第一次测试就为假

46、,则循环体一次也不执行。do-while语句是在循环底部进行循环条件测试,因此,do-while循环至少执行一次。do-while语句适合于构造菜单子程序,因为菜单子程序至少要执行一次,用户键入有效响应时,菜单子程序采取相应动作,键入无效响应时,则提示重新输入。,项目目标,知识目标 掌握选择、循环结构程序设计的方法,以及使用条件语句和各种循环语句。能力目标 培养学生使用集成开发环境进行软件开发、调试的综合能力。素质目标 使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力。,项目实现,任务:猜数字功能,任务:猜数字功能,#include#include#include vo

47、id main()int c;int number;int guess;char ans;printf(游戏说明nn);printf(这是一个猜数字游戏,希望大家喜欢。本游戏将随机产生一个数,需n);printf(要你猜出这个数,当然我们不可能让你乱猜的,我们会在每次猜测之后n);printf(给出提示,你的猜测结果大了还是小了.n);printf(希望大家喜欢.谢谢!nn);do srand(unsigned)time(NULL);number=rand()%100;/产生099之间的随机数。/do printf(n请您输入数字:n);fflush(stdin);scanf(%d,在此任务中

48、,使用两层do-while语句来实现。外层do-while语句控制是继续进行游戏还是输入N退出。内层do-while语句控制输入的数值不等于程序给定的随机值(1100之间),则程序一直循环运行下去,直到猜中给定的值。在内层do-while语句中,使用if-else语句判断输入值的范围,并给出相应的提示信息(太大、太小、稍大、稍小),直到猜中给定值,程序结束。,if(guess-number=-10),相关知识,while语句do-while语句for语句循环的嵌套几种循环的比较break语句和continue语句,while语句,【例】用while语句求1100之和。#includemain(

49、)int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%dn,sum);,1、while语句的一般形式:while(表达式)语句其中,表达式是循环条件,语句为循环体。2、while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。,do-while语句,【例】用do-while语句求1100之和。#includemain()int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);printf(%dn,sum);,1、do-while语句的一般形式:do语句while(表达式);2、do-while循环

50、与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句,,for语句,【例】用for语句求1100之和。#includemain()int sum,i;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(%d,sum);注意:for循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但“;”不能缺省。省略了“表达式1(循环变量赋初值)”,表示不对循环控制变量赋初值。省略了“表达式2(循环条件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号