C语言程序设计项目教程

上传人:沈*** 文档编号:167551533 上传时间:2022-11-03 格式:PPT 页数:230 大小:1.53MB
收藏 版权申诉 举报 下载
C语言程序设计项目教程_第1页
第1页 / 共230页
C语言程序设计项目教程_第2页
第2页 / 共230页
C语言程序设计项目教程_第3页
第3页 / 共230页
资源描述:

《C语言程序设计项目教程》由会员分享,可在线阅读,更多相关《C语言程序设计项目教程(230页珍藏版)》请在装配图网上搜索。

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

2、。通讯录信息输出主界面通讯录信息输出显示结果项目分析 本项目根据通讯录的具体情况,分析出需要输出的数据及数据类型,定义变量。根据提示录入通讯录信息,最后在屏幕上显示输出通讯录信息。程序结构设计如下:主函数主函数()声明变量、变量赋值声明变量、变量赋值;根据提示录入通讯录信息根据提示录入通讯录信息;在屏幕上显示输出通讯录信息在屏幕上显示输出通讯录信息;该程序的结构是顺序结构。使用格式化输入输出函数,实现录入及显示不同格式的通讯录信息。项目目标 知知识目标识目标 掌握C语言的基础知识,了解C语言的数据类型,了解常量和变量的概念,掌握变量的定义以及为它们赋值的方法,熟悉输入/输出函数、库函数的使用,

3、了解C程序的特点,掌握编辑、编译、链接和运行一个C语言程序的方法和步骤。能能力目标力目标 培养学生使用集成开发环境进行软件开发、调试的综合能力。素素质目标质目标 使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力。项目实现 任务一:分析需要输出的数据及数据的类型 任务二:声明变量、对变量进行赋值 任务三:根据提示录入通讯录信息 任务四:在屏幕上显示通讯录信息 任务五:在Turbo C环境下编写运行C语言程序任务一:分析需要输出的任务一:分析需要输出的数据及数据的类型数据及数据的类型整理QQ通迅录中涉及的数据。需要输出的基本信息需要输出的基本信息对应的英文对应的英文需要输出

4、的值需要输出的值编号编号ID1姓名姓名NameLiXiaoHong(李晓红)(李晓红)性别性别SexW(女)(女)年龄年龄Age25电话号码电话号码Telephone_num13098372766QQ号码号码QQ_num117609156MSN号码号码MSN_电子邮箱电子邮箱E_mailL城市城市CityWuHan(武汉)(武汉)职业职业ProfessionTeacher通讯地址通讯地址AddressHuazhongKeJiDaXue(华中科技大学)(华中科技大学)任务二:声明变量、对变任务二:声明变量、对变量进行赋值量进行赋值int id;char name20;char sex;int a

5、ge;char telephone_num12;long int qq_num;char msn_num30;char E_mail50;char city20;char profession30;char address60;该任务涉及的知识点有整型变量和字符型变量的定义方法。把表中各字段用相应类型的变量定义出来。任务三:根据提示录入通任务三:根据提示录入通讯录信讯录信息息printf(please input id number:n);scanf(%d,&id);printf(please input name:n);scanf(%s,name);printf(please input s

6、ex:n);scanf(%c,&sex);printf(please input age:n);scanf(%d,&age);printf(please input telephone_num:n);scanf(%s,telephone_num);printf(please input qq_num:n);scanf(%ld,qq_num);printf(please input msn_num:n);scanf(%s,msn_num);printf(please input E_mail:n);scanf(%s,e_mail);printf(please input city:n);scan

7、f(%s,city);printf(please input profession:n);scanf(%s,profession);printf(please input address:n);scanf(%s,address);scanf函数输入时,分别用到了%s、%d、%c、%ld等格式控制符。该任务涉及的知识点有printf函数和scanf函数的使用方法,通过printf函数输出一个提示输入的字符串,利用scanf函数来实现变量的输入。任务四:在屏幕上显示通任务四:在屏幕上显示通讯录信息讯录信息为了实现美观性,printf函数中还用到了“”,作为表头装饰字符。printf(nn);pri

8、ntf(TongXunLu-%s n,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,

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

10、按预期的输出。从C语言源程序到最后能够运行一般要经过如下4个步骤:1编辑源程序2编译3连接4运行编辑源程序源程序(.C)编译目标文件(.obj)连接可执行程序(.exe)运行输出结果相关知识 C语言基础:数据类型、常量、变量 C程序的结构特点 C程序输入输出操作 C程序的开发过程及环境C语言基础:数据类型、语言基础:数据类型、常量、变量常量、变量 数据类型为了便于C语言的数据处理,合理地使用存储空间,将数据划分为不同的类型,进行分类处理。数据类型基本类型整型字符型实型(小数)单精度型构造类型数组类型结构体类型共用体类型双精度型枚举类型指针类型空类型C语言基础:数据类型、语言基础:数据类型、常量

11、、变量常量、变量#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%xt%xn,a,b,c);/按十六进制输出变量的值/常量整型常量:整型常量:即整常数。包括十进制整数,八进制整数:用以0开头的数表示。十六进制整数:用以0 x开头的数表示。实型常量实型常量:是文字形式的实数。包括常规方法和科学记数法。字符型常量:字符型常量:用单引号括起来的一个字符。

12、还有不可显示的字符,叫做转义字符,字符串常量:字符串常量:也叫字符串,是用一对双引号界定的字符序列,如China、A和This is a simple program!等。字符形式字符形式功功 能能字符形式字符形式功能功能n换行换行反斜杠字符反斜杠字符t横向跳格(跳到下一个横向跳格(跳到下一个Tab位位置)置)单引号字符单引号字符v纵向跳格纵向跳格双引号字符双引号字符b退格退格?问号问号r回车回车ddd13位八进制数所代表的字位八进制数所代表的字符符f走纸换页走纸换页xhh12位十六进制数代表的字位十六进制数代表的字符符a响铃响铃 转义字符C语言基础:数据类型、语言基础:数据类型、常量、变量常

13、量、变量声明三个整型变量a,b,c和两个浮点型变量x,y,可用如下格式:int a,b,c;float x,y;在声明变量的时候可以给变量赋以初值,如:int d=84;float z=17.85;char c=x;变量变量是在程序的运行过程中,其值可以根据需要变化的量。变量需要有自己的名字来标识和被引用,同时每个变量都有自己的数据类型。因此变量在使用之前,需要首先声明其类型和名称。变量的声明格式如下:数据类型数据类型 变量名变量名1,变量名,变量名 2,变量名变量名n;注意:变量说明必须放在变量使用之前。一般放在函数体的开头部分。C程序的结构特点程序的结构特点【例1】已知三角形三条边的长度(

14、键盘输入),求三角形面积。#include#includevoid main()double x,y,z,p,s;scanf(%lf,%lf,%lf,&x,&y,&z);p=(x+y+z)/2;s=sqrt(p(p-x)(p-y)(p-z);printf(s=%fn,s);输入3,4,5回车,程序运行结果如下:s=6.000000一个C语言源程序可以由一个或多个源文件组成。每个源文件可由一个或多个函数组成。一个源程序只有一个main函数。一个函数由函数头和函数体组成。预处理命令通常应放在源文件或源程序的最前面。每一条语句必须以分号结尾。但预处理命令、函数头和花括号“”之后不加分号。标识符、关键

15、字之间必须至少加一个空格间隔。若已有明显的间隔符,也可不再加空格来间隔。函数函数描述描述函数函数描述描述fabs(x)绝对值:绝对值:|x|cos(x)余弦:余弦:cos xpow(a,x)幂:幂:axtan(x)正切:正切:tan xsqrt(x)平方根平方根:asin(x)反正弦:反正弦:arcsin xexp(x)指数:指数:exacos(x)反余弦:反余弦:arccos xlog(x)自然对数:自然对数:logexatan(x)反正切:反正切:arctan xlog10(x)常用对数:常用对数:log10 xfmod(x,y)取模:取模:x mod ysin(x)正弦:正弦:sin x

16、 常用的数学函数C程序的结构特点程序的结构特点【例2】已知半径求圆面积。#includevoid main()float PI=3.14159;int s,r=5;s=rrPI;printf(s=%dn,s);程序运行结果如下:s=78【例3】字符变量参与数值运算。#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 书写规则一个说明或一个语句占一行。用括起来的部分,通常表示程序的某一层次结构。一般与该结构语句的第一个字母对齐,并单独占一行。低一层次的语句

17、或说明可比高一层次的语句或说明缩进若干格后书写,以便看起来更加清晰,增加程序的可读性。C程序输入输出操作程序输入输出操作1赋值语句在赋值表达式的尾部加上“;”就构成了赋值语句。注意:注意:1)赋值符“=”右边的表达式也可以又是一个赋值表达式。2)给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其他同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。3)在变量说明中,不允许连续给多个变量赋初值。4)赋值表达式是可以出现在任何允许表达式出现的地方,而赋值语句则不能。a=b=c=d=e=5;按照赋值运算符的右接合性,因此实际上等效于:e=5;d=e;c=d;b=c;a=b;“if(x=y

18、+5)0)z=x;”,它的功能是若表达式“x=y+5”大于0则z=x。下述语句是非法的:“if(x=y+5;)0)z=x;”,因为“x=y+5;”是赋值语句,不能出现在表达式中。C程序输入输出操作程序输入输出操作输出格式控制是用双引号括起来的字符串,主要作用如下:1)格式说明,将要输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的,后跟一格式字符,例如“%d”。2)提供需要原样输出的文字或字符。调用printf函数时,格式控制符与输出表列从左到右在类型上一一匹 配。如果想输出字符“%”,那么应该在格式控制字符串中用连续两个%表示。例如:“printf(%f%,1.0/3);”则输出

19、0.333333%。输入格式控制是指定数据输入的转换格式,输入地址表列必须是合法的地址表达式,在使用scanf函数时应注意:1)输入地址表列应是变量地址,而不是变量名。2)若要输入long型数据,在%和d之前必须加1,输入double型数据时,在%和f(e)之间也必须加1,否则得不到正确的数据。3)格式说明的类型与输入对象在类型上应该一一对应匹配,个数也应相同。4)格式字符前可用一个整数指定输入数据所占宽度,但不能对实型数指定小数位宽度。5)用scanf函数输入多个数值型数据时,数据之间用分隔符隔开,可以是空格符、回车符或制表符(Tab键)。6)如在格式控制符字符串中有格式字符以外的字符,那么

20、在组织数据输入时必须原样输入。7)用scanf函数输入多个字符型数据时,当输入数据少于变量数时,空格符、回车符、制表符都将作为间隔符读入。2输入/输出语句C语言通过调用标准库函数提供的输入和输出函数实现数据的输入与输出。(1)格式化输入输出函数)格式化输入输出函数输出函数printf(),一般调用形式如下:printf(输出格式控制输出格式控制,输出表列输出表列);输入函数scanf(),一般调用形式如下:scanf(输入格式控制输入格式控制,输入地址表输入地址表列列);C程序输入输出操作程序输入输出操作putchar函数只能向终端输出一个字符。【例】#include void main()c

21、har 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函数只能从输入终端接收一个字符。在输入时,空格符、回车符、制表符都将作为字符读入,只有当输入回车键时,读入才开始执行。使用getchar函数还应注意几个问题:1)getchar函数只能接受单个字符,2)在TC屏幕下运行含本函数程序时,将退出TC屏幕进入用户屏幕等待用户输入。输入完毕再返回TC屏幕。2输入/输出语句(2)字符输入输出函

22、数字符输入输出函数实现字符的输入与输出,注意在使用前必须在程序文件开始加上#include。输出函数putchar(),一般调用形式如下:putchar(输出项输出项);输入函数getchar(),一般调用形式如下:char ch;ch=getchar();C程序输入输出操作程序输入输出操作Gets输入函数说明:从键盘输入的字符串内容可以含有空格,按回车键则结束串的输入。2输入/输出语句(3)字符串的输入输出函数字符串的输入输出函数gets输入函数,等待用户从键盘输入一个字符串给计算机,形式如下:gets(字符型数组名或字符型指针名字符型数组名或字符型指针名);puts输出函数,将字符型数组名

23、或字符型指针名指示的内存空间存放的字符串内容显示于屏幕当前光标处。形式如下:puts(字符型数组名或字符型指针名字符型数组名或字符型指针名或字符串常量或字符串常量);C程序的开发过程及环境程序的开发过程及环境Turbo C 2.0(1)Turbo C 2.0的启动 找到tc.exe并运行它。(2)源程序和建立编辑通过“File”菜单中的“New”命令建立新的源程序。已存在的文件,可通过“File”菜单中的“Load”命令,或直接按F3键,将程序调入编辑区。保存编辑修改过的程序,可通过“File”菜单下的“Save”或“Write to”命令来实现,也可直接按F2键来完成。(3)源程序的编译、连

24、接和运行执行“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”下面填上源文件名,注意一定要加上扩展名.c,在Location下面选择文件的存放目录。上述工作做完后单击OK按钮,回到编辑窗口,此时编辑窗口为白色,并且

25、有输入焦点,可进行编辑、编译、连接和运行等操作。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指域宽,即对应的输出项在输出设备上所占的字符数。n指精度,用于说明输出的实型数的小数位数。未指定n时,隐含的精度为n=6位。5

26、)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格式中较短的一种输出,且不输出无意义的零。关于printf函数的进一步说明:对于单精度数,使用%f格式符输出时,

27、仅前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)根据格式字符的含义从输入流中取得数据,当输入流中数据类型与格式字符要求不符时,就认为这一项结束。2)根据格式项中指定的域

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

29、ain()char name10;/用来存放学生姓名/char id10;/用来存放学号/float yuwen;/实型变量yuwen,用来存放语文成绩/float yinyu;/实型变量yinyu,用来存放英语成绩/float shuxue;/实型变量shuxue,用来存放数学成绩/float jisuanji;/实型变量jisuanji,用来存放计算机成绩/float zhengzhi;/实型变量zhengzhi,用来存放政治成绩/float tiyu;/实型变量tiyu,用来存放体育成绩/float zongfen;/实型变量zongfen,用来存放总分/float pingjunfen

30、;/实型变量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,&yuwen);printf(please input yinyu:n);scanf(%f,&yinyu);训练内容:训练内容:输出学生成绩。说明:说明:学生成绩包括学号、姓名以及各科成绩、总分和平均成绩。首先定义字符型数组存放学生的姓名和学号,再定义多个

31、实型变量用来存放学生各科成绩,最后利用输出变量值的方式来输出各科成绩,直接输出表达式值的方式来输出总分和平均分。printf(please input shuxue:n);scanf(%f,&shuxue);printf(please input jisuanji:n);scanf(%f,&jisuanji);printf(please input zhengzhi:n);scanf(%f,&zhengzhi);printf(please input tiyu:n);scanf(%f,&tiyu);zongfen=yuwen+yinyu+shuxue+jisuanji+zhengzhi+tiy

32、u;pingjunfen=zongfen/6;printf(n);printf(name:t%sn,name);printf(id:t%sn,id);printf(yuwen:t%fn,yuwen);printf(yinyu:t%fn,yinyu);printf(shuxue:t%fn,shuxue);printf(jisuanji:t%fn,jisuanji);printf(zhengzhi:t%fn,zhengzhi);printf(tiyu:t%fn,tiyu);printf(zongfen:t%fn,zongfen);printf(pingjunfen:t%fn,pingjunfen)

33、;printf(n);拓展训拓展训练练#include void main()char name10;/用来存放职工姓名/char id10;/用来存放职工编号/float jbgz;/实型变量jbgz,用来存放基本工资/float gwjt;/实型变量gwjt,用来存放岗位津贴/float jbf;/实型变量jbf,用来存放加班费/float jj;/实型变量jj,用来存放奖金/float sdf;/实型变量sdf,用来存放水电费/float grsds;/实型变量grsds,用来存放个人所得税/float sfgz;/实型变量sfgz,用来存放实发工资/printf(please inpu

34、t name:n);scanf(%s,name);printf(please input id:n);scanf(%s,id);训练内容:训练内容:输出职工工资表。说明:说明:职工工资的计算方法是基本工资、岗位津贴、加班费和奖金4个项目的和,再扣除水电费和个人所得税。printf(please input jbgz:n);scanf(%f,&jbgz);printf(please input gwjt:n);scanf(%f,&gwjt);printf(please input jbf:n);scanf(%f,&jbf);printf(please input jj:n);scanf(%f,&

35、jj);printf(please input sdf:n);scanf(%f,&sdf);printf(please input grsds:n);scanf(%f,&grsds);sfgz=jbgz+gwjt+jbf+jj-sdf-grsds;printf(n);printf(name:t%sn,name);printf(id:t%sn,id);printf(jbgz:t%fn,jbgz);printf(gwjt:t%fn,gwjt);printf(jbf:t%fn,jbf);printf(jj:t%fn,jj);printf(sdf:t%fn,sdf);printf(grsds:t%fn

36、,grsds);printf(sfgz:t%fn,sfgz);printf(n);项目2 个人所得税计算 学习情境 项目分析 项目目标 项目实现 相关知识 总结提高 技能训练学习情境 本项目要求提示用户输入个人的收入后,给出纳税额度和税后工资。个人所得税税率表级数级数全月应纳税所得额全月应纳税所得额税率(税率(%)速算扣除法(元)速算扣除法(元)1不超过不超过500元的元的502超过超过500元至元至2000元的部分元的部分10253超过超过2000元至元至5000元的部分元的部分151254超过超过5000元至元至20000元的部分元的部分203755超过超过20000元至元至40000元的

37、部分元的部分2513756超过超过40000元至元至60000元的部分元的部分3033757超过超过60000元至元至80000元的部分元的部分3563758超过超过80000元至元至100000元的部分元的部分40103759超过超过100000元的部分元的部分4515375项目分析 在C语言中使用if语句解决有分支的情况,多分支情况下if语句嵌套使用。本项目首先从键盘输入个人全部工资,根据工资情况,分别利用超额累进税率的计算方法计算应交个人所得税额。项目目标 知知识目标识目标 掌握C语言程序设计知识。熟悉选择结构程序设计的方法,if语句及嵌套使用。进一步熟悉TC集成环境的程序编辑、编译、链

38、接、运行和调试方法。能能力目标力目标 培养学生使用集成开发环境进行软件开发、调试的综合能力。素质目标素质目标 使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力。项目实现 任务一:定义项目中的数据结构 任务二:实现显示不同的个人收入及不同的所得税额任务一:任务一:定义项目中的数定义项目中的数据结据结构构#includemain()double income,taxincome,tax;/定义变量收入、应税所得、个人所得税/1任务描述定义个人收入、交税后应得、个人所得税的数据类型double。2任务涉及的知识要点分析个人所得税项目中由于涉及不同的数值,用实型(双精度型)数据

39、类型合适。3任务分析与实现个人所得税项目包含3个变量:个人具体收入、交税后应得收入和所扣除的具体所得税。任务二:任务二:实现显示不同的个实现显示不同的个人收入及不同的所得税人收入及不同的所得税额额printf(please input your incomen);scanf(%g,&income);taxincome=income-1600;if(taxincome=0)tax=0;if(taxincome500&taxincome2000&taxincome5000&taxincome20000&taxincome40000&taxincome60000&taxincome80000&tax

40、income100000)tax=taxincome0.45-15375;printf(your income is:%gn,income);printf(your income tax is:%g,tax);1任务描述首先显示用户所要输入的具体的工资数,运行后输入显示交税后应得收入及扣除的具体所得税数目。2任务涉及的知识要点该任务涉及格式化输入、输出函数及if选择结构的使用。3任务分析与实现首先系统显示要随机输入的个人所得收入值,通过运行后,在系统界面上显示个人要交纳的个人所得税额以及个人除税后的金额。相关知识 C运算符概述 算术运算符与算术表达式 表达式中数据间的混合运算与类型转换 赋值运

41、算符与赋值表达式 逗号运算符和逗号表达式C运算符概运算符概述述1按照其功能分类按照其功能分类1)算术运算符:“+”“-”“”“/”“%”“+”“-”。2)关系运算符:“”“=”“”“=”“=”“!=”。3)逻辑运算符:“!”“&”“|”。4)位运算符:“”“”“|”“&”“”。5)赋值运算符:“=”及复合赋值运算符。6)条件运算符:“?:”。7)逗号运算符:“,”。8)指针运算符:“”“&”。9)求字节数运算符:“sizeof”。10)强制类型转换运算符:“(类型标识符)”。11)分量运算符:“.”“”。12)下标运算符:“”。13)其他运算符有函数调用运算符“()”等。2按其连接运算对象的个

42、数分类按其连接运算对象的个数分类1)单目运算符(仅对一个运算对象进行操作):“!”“”“+”“-”“-”(取负号)“(类型标识符)”“”“”“sizeof”。2)双目运算符(连接两个运算对象):“+”“-”“”“/”“%”“”“”“=”“=”“!=”“”“&”“”“|”“&”“|”“=”及复合赋值运算符。3)三目运算符(连接三个运算对象):“?:”。4)其他运算符:“()”“”“.”“”。1按照其功能分类2按其连接运算对象的个数分类算术运算符与算术表达算术运算符与算术表达式式1算术运算符算术运算符1)单目运算符:“-”(取负),“+”(取正)2)双目运算符:“+”(相加),“-”(相减),“”

43、(相乘),“/”(相除),“%”(取余数)2自增与自减运算符(自增与自减运算符(+与与-)作用:使变量的值增或减。1)+i,-i 使用之前,先使i的值加(减)12)i+,i-使用之后,使i的值加(减)1 3算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性1)算术表达式用算术运算符和括号将操作数连接起来的,符合C语法规则的式子。2)优先级:*%高于3)结合性:按自左至右的结合方向。1算术运算符2自增与自减运算符(+与-)3算术表达式和运算符的优先级与结合性表达式中数据间的混合运表达式中数据间的混合运算与类型转算与类型转换换1显式强制类型转换显式强制类型转换其一般形式为:(类型

44、标识符)(表达式)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=31显式强制类型转换2隐式强制类型转换赋值运算符与赋值表达赋值运算符与赋值表达式式1赋值运算符(赋值运算符(=)形式:变量名=常量或表达式作用:将右边常量或表达式的值赋给左边的变量。要求:如果表达

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

46、式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)

47、语句4 else 表达式5 最基本的形式最简单的形式层次形式选择结构是根据给定条件选择结构是根据给定条件来决定语句是否执来决定语句是否执行行1单分支选择结构单分支选择结构条件为真时执行指定的语句,否则就跳过这些语句。在C语言中,用if语句来描述单分支选择结构。2双分支选择结构双分支选择结构在条件为直或假时,分别执行指定的不同语句。在C语言中,用if-else语句来描述双分支选择结构。3if语句的嵌套语句的嵌套在if(或if-else)语句中,又包含一个或多个if(或if-else)语句。4多分支选择结构多分支选择结构依据一个表达式所取不同的值,分别执行指定的不同语句。在C语言中,用switch

48、语句来描述多分支选择结构。单分支选择结构双分支选择结构if语句的嵌套多分支选择结构技能训练自主训练拓展训练自主训自主训练练训练提示:训练提示:编程从键盘输入小孩的性别(用字符型变量s存储,输入字符W表示女性,输入字符M表示男性)、父母身高(用实型变量存储,f_h为其父身高,m_h为其母身高)、是否喜爱体育锻炼(用字符型变量sport存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对小孩的身高进行预测。训练内容:身高的预测。设f_h为其父身高,m_h为其母身高,身高预测公

49、式为男性成人时身高=(f_h+m_h)0.54(cm)女性成人时身高=(f_h 0.923+m_h)/2(cm)此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。拓展训拓展训练练根据用户输入的年龄计算他(她)的胖瘦程度并告诉用户,具体方法如下。(1)成人体重指数(kg/m2)体重(kg)/身高(m)的平方 超重:体重指数=2530 轻度肥胖:体重指数30 中度肥胖:体重指数35重度肥胖:体重指数40 (2)儿童(716岁)标准体重=年龄28轻度肥胖:超过标准体重20%30%中度肥胖:超过标准体重40%50%重度肥胖:超过标准体重50%以上(3)幼儿(

50、7岁以下)体重指数(kg/m2)体重(kg)/身高(m)的平方 正常:1518 超重:1820 轻度肥胖:2022 中度肥胖:2225 重度肥胖:25以上 训练内容:判断胖瘦。根据数据进行编程,要求程序可根据个人身高与实际体重,得出个人标准体重及体重是否正常的信息项目3 计算器设计 学习情境 项目分析 项目目标 项目实现 相关知识 总结提高 技能训练学习情境 开发简单的计算器程序,以便用于自己的学习工作。本项目主要实现两数据的加、减、乘、除、求余等多种情况的计算,效果如图所示。计算器的主界面计算器的运行界面计算器的退出界面项目分析 用键盘输入需要计算的数据,将结果输出到显示器或打印机上。现实生

51、活中经常会遇到多分支的情况,这些问题都可以用嵌套的if语句来处理,但如果分支较多,就显得嵌套的层次太多,程序冗长且可读性降低。switch语句就是专门为了解决多分支的问题而设计的。本例就是利用switch语句对各种选择进行判断和相应处理,实现计算器程序设计。项目目标 知知识目标识目标掌握分支结构程序设计,掌握switch语句,dowhile循环语句使用。能能力目标力目标培养学生使用开关语句开发程序,解决多分支情况。素素质目标质目标使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力项目实现 任务:设计测试主界面(6种情况)任务:设计测试主界面任务:设计测试主界面(6种情况种

52、情况)主要代码如下:printf(nt欢迎使用计算器 n );printf(n-n);printf(1.加法 2.减法n);printf(3.乘法 4.除法n);printf(5.余数 6.退出n);printf(-n);printf(nt请选择 1-6:n);scanf(%d,&a);switch(a)case 1:printf(%d+%d=%d,b,c,b+c);break;/加法运算/case 2:printf(%d-%d=%d,b,c,b-c);break;/减法运算/case 3:printf(%d%d=%d,b,c,bc);break;/乘法运算/case 4:printf(%d/

53、%d=%d,b,c,b/c);break;/除法运算/case 5:printf(%d%d=%d,b,c,b%c);break;/求余运算/case 6:printf(exit system);/退出系统/1、直接使用printf函数,其双引号内容原样输出。2、显示提示信息,由用户选择执行不同的操作。相关知识 switch语句 break语句switch语语句句Switch语句说明:1)计算表达式的值,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,但不能在执行完该标号的语句后自动跳出整个switch语句,而继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均

54、不相同时,则执行default后的语句。2)switch后面圆括号内的表达式的值和case后面的常量表达式的值只能是整型或字符型。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语语句句【例】给出百分制

55、成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8089为B,7079分为C,6069分为D,60分以下为E。#include main()int a;scanf(%d,&a);switch(a/10)case 10:printf(A);break;case 9:printf(A);break;case 8:printf(B);break;case 7:printf(C);break;case 6:printf(D);break;default:printf(E);1、break语句,专用于跳出switch语句。2、break 语句只有关键字break,没有参数。3、在每一case语

56、句之后增加break 语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。总结提高 在编写程序时,经常会碰到按不同情况分转的多路问题,这时可用if嵌套实现;但是若嵌套层次太多,容易出错,所以这时一般使用switch语句解决。为了在每次执行case语句后跳出switch语句,不要忘记使用break语句;switch也可以嵌套,break语句只跳出它所在的switch语句。switch语句后的表达式不能有分号。在使用时,case及default与其后面的常量表达式间至少要有一个空格。技能训练自主训练拓展训练自主训自主训练练说明:switch语句是用于处理多分支的语句。需要注意

57、的是,case后的表达式必须是一个常量表达式,所以在用switch语句之前,必须把0150之间的积分分别化成相关的常量。提示:1)直接使用printf函数对界面进行设计。2)把0150之间的积分分别化成相关的常量,可采用除10取整的方法。3)使用switch处理多分支语句。训练内容:企业员工年终奖管理程序。某企业发放的年终奖金根据职工该年的积分计算。积分等于或低于0分的,奖金为0;积分在119分之间的,奖金为积分数乘以100;积分在2029之间的,奖金为积分数乘以150;积分在3039之间的,奖金为积分数乘以200;积分在4049分之间的,奖金为积分数乘以250;积分在50分以上的,奖金都为积

58、分数乘以300。编写一程序,从键盘输入积分数,可以求出该职工的年终奖。拓展训拓展训练练说明:switch语句是用于处理多分支的语句。需要注意的是,case后的表达式必须是一个常量表达式,所以在用switch语句之前,必须把利润化成相关的常量。训练内容:企业员工工资等级管理程序。企业根据员工创造的利润将工资分为5个等级。利润低于或等于10万元时,为五等;利润高于10万元,低于20万元时,为四等;2040万元之间时,为三等;40100万元之间时,为二等;超过100万元时,为一等。从键盘中输入员工创造的利润,输出其工资等级。项目4 猜数字游戏 学习情境 项目分析 项目目标 项目实现 相关知识 总结提

59、高 技能训练学习情境 猜数字游戏是一种简单、轻松的休闲游戏。输入数字,与猜数比较,若不相等,根据提示(太大、太小、稍大、稍小)等情况,重新输入数字,与猜数进行比较,直至与猜数相等为止。猜数字游戏程序的主界面如下所示。项目分析 本项目运用选择结构、循环结构程序设计的方法,开发猜数字游戏。while、do-while和for语句用于循环结构。while和for语句是在循环顶部进行循环条件测试,如果循环条件第一次测试就为假,则循环体一次也不执行。do-while语句是在循环底部进行循环条件测试,因此,do-while循环至少执行一次。do-while语句适合于构造菜单子程序,因为菜单子程序至少要执行

60、一次,用户键入有效响应时,菜单子程序采取相应动作,键入无效响应时,则提示重新输入。项目目标 知识目标 掌握选择、循环结构程序设计的方法,以及使用条件语句和各种循环语句。能力目标 培养学生使用集成开发环境进行软件开发、调试的综合能力。素质目标 使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力。项目实现任务:猜数字功能任务:猜数字功任务:猜数字功能能#include#include#include void main()int c;int number;int guess;char ans;printf(游戏说明nn);printf(这是一个猜数字游戏,希望大家喜欢。本游戏

61、将随机产生一个数,需n);printf(要你猜出这个数,当然我们不可能让你乱猜的,我们会在每次猜测之后n);printf(给出提示,你的猜测结果大了还是小了.n);printf(希望大家喜欢.谢谢!nn);do srand(unsigned)time(NULL);number=rand()%100;/产生099之间的随机数。/do printf(n请您输入数字:n);fflush(stdin);scanf(%d,&guess);在此任务中,使用两层do-while语句来实现。外层do-while语句控制是继续进行游戏还是输入N退出。内层do-while语句控制输入的数值不等于程序给定的随机值(

62、1100之间),则程序一直循环运行下去,直到猜中给定的值。在内层do-while语句中,使用if-else语句判断输入值的范围,并给出相应的提示信息(太大、太小、稍大、稍小),直到猜中给定值,程序结束。if(guess-number=-10)&(guess-number 0)printf(太可惜了,稍微小了点!n);else if(guess-number 0)printf(太可惜了,稍微大了点!n);else if(guess-number 10)printf(可惜,太大了!n);else printf(n太棒了,您猜中了!n答案正是%d!n,number);while(guess!=num

63、ber);printf(n(默认设置为继续游戏,输入n离开游戏!)n);printf(您是否还想再玩一次?);fflush(stdin);ans=getchar();while(ans!=n&ans!=N);printf(n谢谢,再见!n);相关知识 while语句 do-while语句 for语句 循环的嵌套 几种循环的比较 break语句和continue语句while语语句句【例】用while语句求1100之和。#includemain()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%dn,sum);1、while语句的一般形式:whi

64、le(表达式)语句其中,表达式是循环条件,语句为循环体。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循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一

65、次循环语句,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(循环条件)”,则不做其他处理时便成为死循环。省略了“表达式3(循环变量增量)”,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。1、for语

66、句的一般形式:for(表达式1;表达式2;表达式3)语句2、for语句最简单的应用形式也是最容易理解的形式如下:for(循环变量赋初值;循环条件;循环变量增量)语句循环的嵌循环的嵌套套【例】九九表#includemain()int i,j;for(i=1;i=9;i+)printf(%4d,i);printf(n);for(i=1;i=9;i+)printf(-);printf(n);for(i=1;i=9;i+)for(j=1;j=9;j+)printf(%4d,ij);printf(n);1、循环嵌套即一个循环体内还包含另一个或几个完整的循环结构,当内嵌的循环中还嵌套其他循环时,成为多层循环。2、三种循环结构(for、while和do-while)可以互相嵌套,3、多重循环的使用与单一循环完全相同,但应特别注意内、外层循环条件的变化。几种循环的比几种循环的比较较1)4种循环都可以用来处理同一个问题,一般可以互相代替。但一般不提倡用goto循环。2)while循环和do-while循环的循环体中应包括使循环趋于结束的语句。for语句功能最强。3)用while循环和do-while循环

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!