欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C语言程序设计-2设计.ppt

    • 资源ID:6503999       资源大小:642KB        全文页数:78页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计-2设计.ppt

    ,C语言程序设计-2设计,4.分支程序设计计算行李托运费5.复杂分支程序设计字符菜单6.循环程序设计小学加减法练习,C语言程序设计,项目四 分支程序设计计算行李托运费,学习目标,了解程序结构。了解关系运算及关系表达式。了解逻辑运算及逻辑表达式。掌握使用if语句实现单分支和双分支的方法,乘坐飞机旅行,行李托运费用的计算比较复杂。如果完全依靠人工计算,会花费许多时间,而且很容易出现计算错误。如果能够使用计算机来自动计算行李费用,就可以大大提高工作效率,进而给人们带来很多方便。本项目将编写一个能够根据旅客所持机票的种类和行李重量进行判断和计算的程序,只要输入机票种类、机票等级和行李的重量,就可以知道是否需要支付费用,费用是多少。,项目四 分支程序设计计算行李托运费,项目四 分支程序设计计算行李托运费,任务一 了解程序的基本结构任务二 了解if语句任务三 了解C语言的关系运算和逻辑运算任务四 进行程序总体设计任务五 选择机票类型和机票等级,输入行李重量任务六 计算行李托运费用,输出计算结果任务七 设置系统密码,任务一 了解程序的基本结构,程序按照语句出现的先后顺序来执行。出现在前面的语句先执行,出现在后面的语句后执行。称为“顺序结构”的程序。根据条件进行选择,决定下一步到底要执行什么操作的程序结构就称为“选择结构”,也叫做“分支结构”。程序的某些部分需要反复执行,称为“循环结构”,被反复执行的部分就叫做“循环体”。,程序的基本结构,任务一 了解程序的基本结构,分支结构根据分支的多少,可以分为“单分支结构”、“双分支结构”和“多分支结构”单分支结构是指条件成立时执行某操作,条件不成立则什么也不执行,直接执行后面的操作。双分支结构是指条件成立时执行一种操作,条件不成立则执行另外一种操作,执行完毕后再执行后面的操作。多分支结构是指根据条件的不同,选择多种不同的操作。,任务二 了解if语句,在C语言中可以使用if语句来实现分支。if语句又叫做条件语句,可以通过判断条件是否成立来决定程序的流程(在可能执行的流程中选择执行其中的一个)。,任务二 了解if语句,一、if语句的格式if语句的一般格式 if(表达式)语句组 else 语句组 或:if(表达式)语句组 else 语句组,任务二 了解if语句,二、使用if语句实现分支(1)实现单分支 省略else子句格式如下:if(表达式)语句执行过程:当条件表达式的值成立,即判定为逻辑“真”时,则执行语句;否则直接转向执行下一条语句。,任务二 了解if语句,二、使用if语句实现分支(2)实现双分支 指定else子句格式如下。if(表达式)语句 else 语句执行过程:当条件表达式的值不等于(即判定为逻辑“真”)时,则执行语句,然后转向下一条语句;否则,执行语句。,任务二 了解if语句,二、使用if语句实现分支(3)实现多分支 if语句嵌套格式如下:if(表达式)语句 else if(表达式)语句 else if(表达式)语句 else if(表达式)语句 else 语句,如果一条语句中又完整地包含着另一条语句,则称为语句的“嵌套”。,任务三 了解C语言的关系运算和逻辑运算,一、了解关系运算关系运算实际上就是比较运算,即将两个数据进行比较,判定两个数据是否符合给定的关系。关系运算符,任务三 了解C语言的关系运算和逻辑运算,关系运算符的优先级 在关系运算符中,“”、“=”“”“=”优先级相同,“=”与“!=”也相同,且前4个高于后两个。关系运算符与算术运算符、赋值运算符的优先级关系(由高到低)如下:算术运算符 关系运算符 赋值运算符,(3)关系表达式关系表达式是指用关系运算符将两个表达式连接起来,进行比较运算的式子。例如:ab,a+bc-d,(a=3)=b,(ab)=(bc)等均为合法的关系表达式。关系表达式可以求值,它的值是逻辑值,即为“真”(true)或“假”(false)。若表达式为真(即true)则返回1;否则,表达式为假(即false),返回0。,任务三 了解C语言的关系运算和逻辑运算,任务三 了解C语言的关系运算和逻辑运算,二、了解逻辑运算逻辑运算符C语言的逻辑运算符有3种&:当且仅当两个运算量的值都为“真”时,运算结果为“真”;否则为“假”。|:当且仅当两个运算量的值都为“假”时,运算结果为“假”;否则为“真”。!:当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。,逻辑表达式的真值表,任务三 了解C语言的关系运算和逻辑运算,二、了解逻辑运算逻辑运算符的优先级 逻辑“非”的优先级最高,逻辑“与”次之,逻辑“或”最低,优先关系(由高到低)为:!(非)&(与)|(或)。与其他种类运算符的优先关系(由高到低)为:!算术运算 关系运算&|赋值运算。逻辑表达式逻辑表达式是指用逻辑运算符将一个或多个表达式连接起来进行逻辑运算的式子。逻辑表达式常用于表示多个条件的组合。逻辑表达式的值为逻辑值,即“真(非0)”或“假(0)”。在判断一个表达式是“真”或“假”时;是以0和非0为依据:如果为0,则判定为“逻辑假”;如果为非0,则判定为逻辑“真”。,任务四 进行程序总体设计,设计复杂的程序,通常都不直接编写代码,而是先对系统进行分析和设计。,任务五选择机票类型和机票等级,输入行李重量,一、设计程序界面 程序界面是程序与用户进行交互的接口。作为真正实用的程序,它的界面首先必须美观。另外设计界面还有一个重要的原则,就是界面要方便用户的操作,要减少用户操作步骤和记忆负担,而且最好能够提供给用户足够的操作提示,使得用户不需花费大量的时间即可学会操作程序。满足以上条件的程序就认为是界面友好的程序。,本项目的程序界面显示欢迎信息“Welcome to the baggage check-cost computing system!”(欢迎使用行李托运费计算系统)提示用户选择机票类型和机票等级,#include main()int t_type;/*ticket type*/int t_class;/*ticket class*/float weight;/*baggage weight*/float cost;clrscr();printf(nn*Welcome to the baggage check-cost computing system!*n);printf(n Please choose your ticket type:n);printf(t 1.Adultn);printf(t 2.Childn);printf(t 3.Babyn);printf(Your choice is(input 1,2 or 3,then press Enter):);scanf(%d,任务六计算行李托运费用,输出计算结果,计算行李托运费第1种情况:旅客如果持成人票坐头等舱,而且他携带的行李没有超过40公斤,则他应支付的费用为0,也就是说“成人票”(t_type=1)、“坐头等舱”(t_class=1)、“行李不超过40公斤”(weight=40)这3个条件必须同时都满足,才符合这种情况,只要有一个条件不满足则不符合。t_type=1”加以声明。其他情况依次类推还可将程序简化,if(t_type=1|t_type=2),简化后的程序:,printf(n*n);printf(n Your check-cost is%8.2f YUANn,cost);printf(n*n);,任务六计算行李托运费用,输出计算结果,输出计算结果程序如下:,任务七 设置系统密码,假设计算系统不希望被未授权使用,而是希望只有拥有系统密码的人员才能使用该系统。那么,就需要在程序运行时,首先提示用户输入密码,只有密码输入正确,才能正常进入系统,如果密码输入错误则显示提示信息:“你的密码有误!”,而不运行系统。,int password;printf(Please input your password:n);scanf(%d,C语言程序设计,项目五 复杂分支程序设计字符菜单,学习目标,了解使用if语句实现多分支的方法。掌握使用switch语句完成多分支的方法。了解break语句的使用方法。,项目五复杂分支程序设计字符菜单,项目一到项目三主要使用顺序结构形式进行设计,即所有语句按照在源程序中的先后顺序逐条语句执行。项目四介绍了选择结构中的单分支和双分支的设计方法。而本项目将介绍如何利用更复杂的多分支和分支嵌套更灵活的控制程序流程。本项目将介绍C语言中多分支选择结构的设计方法,并以一个带有字符菜单的简单程序编写过程为例进行说明。,项目五复杂分支程序设计字符菜单,任务一 复习选择结构任务二 了解switch-case语句任务三 菜单的显示任务四 接受用户的选择任务五 根据用户选择执行不同操作任务六 菜单的再次显示,任务一 复习选择结构,多分支的if-else语句格式:if(条件1)语句1;else if(条件2)语句2;else if(条件3)语句3;else 语句n;执行该语句时,顺次判断各条件,一旦满足某一个条件n,就接着执行对应的语句n。并且不再执行其他判断,直接退出整个if-else语句。,if(score=0/*无效成绩*/,任务二 了解switch-case语句,switch语句的语法格式:switch(整型表达式)case 常量表达式1:语句序列1;case 常量表达式2:语句序列2;case 常量表达式n:语句序列n;default:语句序列n+1;,例子switch(s)case 1:a+;b-;break;case 2:a+=3;break;case 3:a+=5;break;default:a*=2;,注意,(1)switch后面括号“()”中的表达式必须是整型表达式,即它的值必须是int,char这样的整数类型。并且switch后面的括号“()”不能省略,也不能使用空表达式。(2)case语句后面的常量表达式也必须是整数类型,而且不能是变量(3)case语句起着分支判断作用,所以case后面的值必须互不相同。(4)“case表达式:”后面可以是多条语句,不用加大括号“”。但是switch语句的整体要用大括号“”括起来。,注意,(5)当switch括号中表达式的值与任意一个case表达式的值都不匹配时,就执行default语句。switch语句中也可以没有default语句。(6)当根据switch表达式的值选择匹配的分支后,将顺序执行分支的语句序列,直到执行到break语句时结束,并退出switch语句。所以如果没有break语句,就会继续执行下一个分支的操作。(7)各个case语句和default语句的出现顺序可以任意。写在最后面的分支语句(包括default语句)可以不加break语句。(8)选择一条分支语句(包括default语句)并执行结束后(遇到break语句或者遇到switch的右大括号“”),switch语句也就结束了。,例子:将分数score转换为等级 将score/10作为switch分支表达式,switch(int)(score/10)case 10:if(score!=100)printf(Invalid!n);/*无效成绩*/break;break;case 9:printf(Excellentn);/*优秀*/break;case 8:printf(Goodn);/*良好*/break;case 7:printf(Satisfactoryn);/*中等*/break;case 6:printf(Passn);/*及格*/break;case 5:case 4:case 3:case 2:case 1:case 0:printf(“Failn”);break;/*不及格*/default:printf(Invalid!n);/*无效成绩*/,任务三 菜单的显示,菜单的显示非常简单,直接输出提示字符串即可。printf(=Menu=n);printf(=n);printf(1:Calculate the Absolute Value.n);/*计算绝对值*/printf(2:Odd-Even Judgement.n);/*判断奇偶*/printf(“3:Upper Case to Lower Case.n”);/*大写字母转小写*/printf(4:Quit!n);/*退出*/printf(=n);printf(Choose the menu item and input its number!n);,任务四 接受用户的选择,这种字符菜单当然不能象Windows应用程序那样用鼠标操作,只能通过键盘输入选择。而最简单的输入方式,是用户通过输入对应菜单项的编号选择某一项。代码如下所示。int choice;scanf(%d,任务五 根据用户选择执行不同操作,使用switch语句来实现会使结构更明确。switch(choice)case 1:计算绝对值;break;case 2:判断奇偶;break;case 3:case 4:,计算绝对值 根据绝对值的特点,正数和0的绝对值是其本身,负数绝对值是它的相反数。所以,对待两种情况应该分别处理。printf(Input a integer:n);scanf(“%d”,/*非负数的绝对值是其本身*/,整判断奇偶 数n的奇偶性通过表达式“n%2”的值来判断。如果模运算结果为0,说明n为偶数,否则就是奇数。printf(Input a integer:n);scanf(%d,/*奇数*/,大写字母转小写字母 小写字母和对应大写字母的ASCII码的差值是固定的。固定差值可以用表达式“a-A”表示。所以大写字母ch对应的小写字母为“ch+固定差值”,也就是“ch+a-A”。fflush(stdin);printf(Input a char in Upper case:n);scanf(%c,任务六 菜单的再次显示,使用第3种结构:循环结构while语句的一般形式:while(条件表达式)语句序列;while语句的执行过程如下:首先计算条件表达式的值,如果条件成立(为“真”),则执行大括号里面的语句,然后再一次判断条件是否成立。一旦条件不成立,就退出循环,while语句执行结束。,只要用户没有选择第4个菜单项“Quit”,那么就一直循环显示菜单。这里设置结束标志“int stop”,用它的值标识用户是否选择了退出。stop为0表示用户没有选择退出,为1表示选择退出。将while循环的条件设为“stop=0”,并且case 4 的操作设为“stop=1”。这样,一旦用户选择退出,那么当再次进行条件判断时,由于不再符合循环要求,程序就会退出while循环,程序结束。,while(不退出)显示菜单;/*根据用户的选择执行相应操作*/switch(选择)case 1:case 2:,#includemain()int choice,stop=0;/*choice存储选择的菜单编号,stop表示是否终止*/int n;char ch;while(stop=0)/*主要用户不选择菜单4,就一直循环*/choice=0;/*初始化为0*/*显示菜单*/printf(=Menu=n);printf(=n);printf(1:Calculate the Absolute Value.n);printf(2:Odd-Even Judgement.n);printf(3:Upper Case to Lower Case.n);printf(4:Quit!n);printf(=n);printf(“Choose the menu item and input its number!n”);,scanf(%d,case 3:/*大写字母转化成小写字母*/fflush(stdin);printf(Input a char in Upper case:n);scanf(%c,/*将结束标识置为1*/,C语言程序设计,项目六 循环程序设计小学加减法练习,学习目标,了解程序的循环结构。熟悉随机数的意义及随机函数。熟悉for循环。熟悉while循环。了解continue语句。了解好程序的标准。,本项目编写一个供小学生进行十以内的加减法练习的程序。可以让用户来选择进行加法练习或减法练习根据用户的选择随机产生10道加法或减法算术练习题由用户计算并输入答案,根据用户的计算结果,统计并显示用户答对的题目个数。可以提示用户是否继续练习。如果用户选择退出,则结束程序运行。,项目六 循环程序设计小学加减法练习,任务一 显示提示信息,由用户选择执行不同操作任务二 出加法题任务三 出减法题任务四 出10道题任务五 对用户计算结果进行判断,给出成绩任务六 实现“再来一次”,项目六 循环程序设计小学加减法练习,任务一显示提示信息,由用户选择执行不同操作,、程序的总体设计首先分析本程序的功能和基本结构。,程序运行后,进入开始界面,显示欢迎信息,提示用户进行选择。如果用户选择“1”,则依次出现10道加法练习题,请用户输入计算结果。如果用户选择“2”,则依次出现10道减法练习题,请用户输入计算结果。如果用户选择“3”,则退出程序。10道题都回答完毕后,统计正确题目个数,并输出结果。提示用户是否需要继续练习,用户回答“是”(Y),则返回到第一步,用户回答“否”(N),则结束程序运行。,任务一显示提示信息,由用户选择执行不同操作,显示提示信息,printf(*nn);printf(Welcome to the arithmetic exercise system!nn);printf(tt1.Addition exercisen);printf(tt2.Subtraction exercisen);printf(tt3.Exitnn);printf(*nn);printf(Please input your choice(1,2 or 3):);、,任务一显示提示信息,由用户选择执行不同操作,根据用户选择,执行不同操作,获得用户输入用变量option来保存用户输入的数值。int option;scanf(%d,执行不同的操作根据变量option的值来确定执行什么操作。,使用if语句完成设计if(option=1)/*生成10道加法算术题,并统计答案正确的题的个数,输出结果*/else if(option=2)/*生成10道减法算术题,并统计答案正确的题的个数,输出结果*/else if(option=3)printf(nGoodbey!);/*打印“再见!”*/exit(0);/*正常结束程序*/else printf(Your input is error!n);,任务一显示提示信息,由用户选择执行不同操作,根据用户选择,执行不同操作,使用switch语句完成设计switch(option)case 1:/*生成10道加法算术题*/break;case 2:/*生成10道减法算术题*/break;case 3:printf(nGoodbey!);exit(0);break;case else printf(Your input is error!n);,任务二 出加法题,程序每次运行时都能出现不同的题目,需要用到随机函数“rand()”。随机函数“rand()”功能是产生一个“0RAND_MAX”随机整数。一般地,如果想产生X和Y之间的数,可以使用下面的公式。k=rand()%(Y-X+1)+X;,任务二 出加法题,程序每次运行时都能出现不同的题目,需要用到随机函数“rand()”。随机函数“rand()”功能是产生一个“0RAND_MAX”随机整数。一般地,如果想产生X和Y之间的数,可以使用下面的公式。k=rand()%(Y-X+1)+X;一般要使用函数“srand”设定一个种子,通常利用系统的时间作为随机数种子。,#include#include#includemain()int a,b;srand(time(0);a=rand()%10;b=rand()%10;printf(t%d+%d=n,a,b);,任务二 出加法题,设定系统当前时间为随机数生成器种子并生成两个随机数,产生减法题和产生加法题的方法相似,分别产生被减数和减数。如果被减数小于减数,需重新产生被减数和减数再次判断被减数是否大于减数,如果是,就不断反复执行上述过程,直到被减数大于或等于减数,才输出减法算术题。产生被减数a和产生减数b这两步操作可能会被执行多次。当程序中出现了需要反复执行的部分,这样的程序就是“循环结构”程序。,任务三 出减法题,了解循环结构循环结构是组成程序的三种基本结构之一。在C语言中,循环结构可以分为下面两种情况。第1种情况:先进行条件判断,如果条件成立就反复执行循环体语句,条件不成立,则退出循环。第2种情况:先执行一遍循环体语句,然后进行条件判断,如果条件成立就反复执行语句,条件不成立,则退出循环,,任务三 出减法题,a)先判断,后执行,(b)先执行,后判断,循环结构,任务三 出减法题,C语言中,使用while语句完成第1种“先判断,后执行”的循环,使用do-while语句完成第2种“先执行,后判断”的循环。,While语句while语句的一般格式:while(表达式)循环体语句,“while(表达式)”中的表达式就是循环条件,它与“if(表达式)”中的表达式一样,一般为逻辑表达式或关系表达式,也允许是其他类型的数据,如整型实型字符型等。循环体语句可以是一条语句,也可以是多条语句。当循环体语句仅由一条语句构成时,可以不使用复合语句形式(省略大括号)。while语句的执行过程首先求解表达式的值,当表达式的值为“真”(非0)时,执行while语句中的循环体语句,执行完循环体语句后,继续下一次条件判断;否则,跳过while语句中的循环体语句,执行while语句的下一条语句。,任务三 出减法题,任务三 出减法题,Do-While语句Do-While语句的一般格式:Do循环体语句While(表达式);,Do-While语句的执行过程 首先执行一遍循环体语句,然后求解表达式的值,当表达式的值为真(非0)时,再执行一遍循环体语句,否则,结束循环,执行Do-While语句的下一条语句。,#include#include#includemain()int a,b;srand(time(0);do a=rand()%10;b=rand()%10;printf(t%d+%d=n,a,b);while(ab);,用Do-While语句解决问题。,任务三 出减法题,任务四 出10道题,使用While语句和Do-While语句出10道加法题 需要一个变量控制循环的次数,这样的变量称之为“循环变量”。,任务四 出10道题,#include#include#includemain()int a,b,ii=0;while(i10)srand(time(0);a=rand()%10;b=rand()%10;printf(t%d+%d=n,a,b);i+;,用while语句出10道加法题,任务四 出10道题,用While语句和Do-While语句出10道减法题continue语句 其语义是:结束本次循环,即不再执行循环体中continue 语句之后的语句,转入下一次循环条件的判断与执行。continue语句只结束本层本次的循环,并不跳出循环。break语句 其语义是:中断当前的循环语句,不管循环条件成立不成立,也不管后面还有没有循环体的其他语句,都强行中断,结束当前循环,接着执行循环体后面的语句。break语句只能结束本层循环,而不影响外层的循环,如果外面还有嵌套的循环,则继续执行。,任务四 出10道题,使用continue语句来完成出10道减法题,main()int a,b,i=0;while(i10)srand(time(0);a=rand()%10;b=rand()%10;if(ab)continue;printf(t%d-%d=n,a,b);i+;,任务四 出10道题,用For语句出10道加法题For语句是语言所提供的功能更强、使用更广泛的一种循环语句。for语句的一般形式:for(表达式1;表达式2;表达式3)循环体语句;,任务四 出10道题,for语句的执行过程 求解表达式1的值。计算表达式2的值,若值为“真”(非0)则执行循环体一次,否则跳出循环。求解表达式3的值,然后转回第2步重复执行。,任务四 出10道题,#include#include#includemain()int a,b,i;for(i=0;i10;i+;)srand(time(0);a=rand()%10;b=rand()%10;printf(t%d+%d=n,a,b);,用for语句出10道加法题,#include#include#includemain()int a,b,i;for(i=0;i10;i+;)do srand(time(0);a=rand()%10;b=rand()%10;while(ab);printf(t%d-%d=n,a,b);,用for语句完成出10道减法题,任务四 出10道题,任务四 出10道题,循环的嵌套在一个循环的循环体中还包括循环语句的结构,就称之为“循环的嵌套”。循环的嵌套也称为多重循环。for语句可以与while,do-while语句相互嵌套,构成多重循环。,任务五 对用户计算结果进行判断,给出成绩,for(i=1;i=10;i+)srand(time(0);a=rand()%10;b=rand()%10;c=a+b;printf(t(%d)%d+%d=,i,a,b);scanf(%d,给出成绩,任务六 实现“再来一次”,char again=y;while(again=y|again=Y)/*此处省略了*/fflush(stdin);printf(Do you want do it again(Y/N)?n);scanf(%c,用while语句实现“再来一次”,

    注意事项

    本文(C语言程序设计-2设计.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开