3程序控制结构.doc

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 程序控制结构 通过第二章的学习,我们已经可以设计简单的C++程序了。之所以说它简单,是因为所举的例程都是执行的。程序运行过程。语句执行的称之为控制。 图3.1 顺序结构执行流程图 例3.1 在学生管理系统的系统菜单中,包括输入学生成绩、修改学生成绩、删除学生成绩、计算每个学生的总分、计算每个学生的平均分、按学号或姓名查询学生成绩、按班级查询学生成绩、成绩排序、按班级统计学科总分和按班级统计平均分等子菜单,这里只是列出该系统的部分菜单。 思路分析:输出菜单就是输出若干选项,供用户选择。因此,可以采用顺序结构,依次输出各个选项(带有编号),具体各个选项的功能实现在以后章节逐步讲解。 编写程序如下: #includeiostream.h void main() { cout 学生管理系统endl; coutendl; cout ==============endl; coutendl; cout 1.输入学生成绩endl; cout 2.修改学生成绩endl; cout 3.删除学生成绩endl; cout 4.计算每位学生的总分endl; cout 5.计算每位学生的平均分endl; cout 6.按学号或姓名查询学生成绩endl; cout 7.按班级查询学生成绩endl; cout 8.成绩排序endl; cout 9.按班级统计学科总分,平均分等endl; coutendl; } 程序执行时,依次输出各个菜单项,程序执行后,运行结果如图3.2所示。 图3.2 例3.1的运行结果 例3.2 输入两个学生的成绩cj1和cj2,交换后输出。 思路分析: 变量的交换不能直接互相赋值,这样会导致其中一个变量值丢失。实现二个的变量交换有二种方法。 方法一:借助第三变量t实现交换。交换过程如图3.3所示。 图 3.3 借助中间变量的交换示意图 具体程序代码如下: #include iostream.h void main() { int cj1,cj2,t; cout输入第一个学生的成绩:endl; cincj1; cout输入第二个学生的成绩:endl; cincj2; cout交换前:endl; cout第一个学生的成绩为:cj1endl; cout第二个学生的成绩为:cj2endl; t=cj1; cj1=cj2; cj2=t; cout交换后:endl; cout第一个学生的成绩为:cj1endl; cout第二个学生的成绩为:cj2endl; } 方法二:不使用第三个变量实现交换。 #include iostream.h void main() { int cj1,cj2; cout请输入两个学生的成绩:endl; cout第一个学生的成绩为:endl; cincj1; cout第二个学生的成绩为:endl; cincj2; cout交换:endl; cout第一个学生的成绩为:cj1endl; cout第二个学生的成绩为:cj2endl; cj1=cj1+cj2; cj2=cj1-cj2; cj1=cj1-cj2; cout交换后:endl; cout第一个学生的成绩为:cj1endl; cout第二个学生的成绩为:cj2endl; } 对比分析:第一种方法使用了附加的一个内存单元,增加了空间开销;而第二种方法通过简单的加、减运算来实现,增加了时间开销。二种方法的效果是相同的。 例3.3 输入一个三位整数x,输出各个位的数字,比如输入123,输出1 2 3。 分析:本题主要是考察取整运算符“/”和求余运算符“%”的使用。具体步骤为:用100整除x得到百位数,用10求余x得到个位数,用100求余x得到中间数y,然后再用10整除y得到个位数。 #include iostream.h void main() { int x,a,b,c; cout请输入一个三位正整数:; cinx; a=x/100; //百位数 c=x%10; //个位数 y=x%100; b=y/10; //十位数 cout百分位数:aendl; cout十分位数:bendl; cout个位数:cendl; } 提示: (1)该题目可以有多种解法,比如求解十位数的时候,可以先用10整除x得到由百位数、十位数组成的两位数,然后再用10求余这个二位数就得到十位数。 (2)该题目的算法可以用于同类其它问题的求解。例如,水仙花数的求解。所

文档评论(0)

2011doc66 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档