欢迎来到天天文库
浏览记录
ID:43541602
大小:453.22 KB
页数:50页
时间:2019-10-10
《3程序控制结构》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第三章程序控制结构通过第二章的学习,我们已经可以设计简单的C++程序了。之所以说它简单,是因为所举的例程都是按照语句书写的顺序依次执行的。而实际的程序并不都是按我们的设想顺序执行。比如学生成绩管理系统,有时需要根据学生的成绩来决定下一步是否给予奖励,有时又需要用同一种方案重复统计每个学生的总分。从软件设计的角度说,程序的运行过程存在可选性和重复性。这种语句执行的秩序规则称之为程序控制结构。C++作为一种面向对象的高级程序设计语言,同样支持结构化的程序设计,它提供了顺序结构、选择结构和循环结构等三种基本的程序控制结构。从本章开始,我们将通过学习这三种控制结构,逐步进入软件设计的核心
2、一一算法设计。3.1顺序结构所谓顺序结构,就是按照语句岀现的先后顺序依次执行各条语句。在C++中,顺序结构主要是由数据输入和输出语句、表达式语句、空语句、复合语句等语句构成。图3.1给出了一个顺序结构的执行流程,整个程序只有一个入口和一个出口。程序执行时,依次执行语句1和语句2o图3.1顺序结构执行流程图例3.1在学生管理系统的系统菜单中,包括输入学生成绩、修改学生成绩、删除学生成绩、计算每个学生的总分、计算每个学生的平均分、按学号或姓名查询学生成绩、按班级查询学生成绩、成绩排序、按班级统计学科总分和按班级统计平均分等子菜单,这里只是列出该系统的部分菜单。思路分析:输出菜单就是输
3、出若干选项,供用户选择。因此,可以采用顺序结构,依次输出各个选项(带有编号),具体各个选项的功能实现在以后章节逐步讲解。编写程序如下:#includevoidmain()cout«H学生管理系统H«endl;cout«endl;cout«H==============M«endl;cout«endl;cout«H1•输入学生成绩H«endl;cout«n2•修改学生成绩H«endl;cout«H3•删除学生成绩H«endl;cout«n4•计算每位学生的总分H«endl;cout«H5•计算每位学生的平均分H«endl;cout«H6•按学号或姓名查询学生
4、成绩H«endl;cout«n7•按班级查询学生成绩H«endl;cout«H8•成绩排序H«endl;cout«"9•按班级统计学科总分,平均分等"«endl;cout«endl;}程序执行时,依次输出各个菜单项,程序执行后,运行结果如图3.2所示。cTMC:Document:sandSetting$ewSQI21I学生管理系统分覃绩分总话成总的的查生科绩绩绩生生名学学成成成聿姓询计生生生位位我查參入改123456789分生成绩,平均分等图3.2例3.1的运行结果例3.2输入两个学生的成绩cj1和cj2,交换后输出。思路分析:变量的交换不能直接互相赋值,这样会导致其中一
5、个变量值丢失。有二种方法。方法一:借助第三变量t实现交换。交换过程如图3.3所示。实现二个的变量交换cj2图3.3借助中间变量的交换示意图具体程序代码如下:#includeniostream.hHvoidmain()intcj1,cj2,t;cout«H输入第一个学生的成绩:H«endl;cin»cj1;cout«H输入第二个学生的成绩:H«endl;cin»cj2;cout«H交换前:H«endl;cout«H第一个学生的成绩为:H«cj1«endl;cout«H第二个学生的成绩为:H«cj2«endl;t=Cj1;cj1=cj2;cj2=t;cout«H交换后:M«endl;
6、cout«H第一个学生的成绩为:H«cj1«endl;cout«H第二个学生的成绩为:H«cj2«endl;}方法二:不使用第三个变量实现交换。#includeMiostream.hHvoidmain(){intcj1,cj2;cout«H请输入两个学生的成绩:H«endl;cout«H第一个学生的成绩为:H«endl;cin»cj1;cout«H第二个学生的成绩为:H«endl;cin»cj2;cout«H交换:H«endl;cout«H第一个学生的成绩为:H«cj1«endl;cout«H第二个学生的成绩为:H«cj2«endl;cj仁cj1+cj2;cj2=cj1-cj2;
7、cj1=cj1-cj2;cout«H交换后:H«endl;cout«H第一个学生的成绩为:H«cj1«endl;cout«H第二个学生的成绩为:H«cj2«endl;}对比分析:第一种方法使用了附加的一个内存单元,增加了空间开销;而第二种方法通过简单的加、减运算来实现,增加了时间开销。二种方法的效果是相同的。例3.3输入一个三位整数x,输出各个位的数字,比如输入123,输岀123o分析:本题主要是考察取整运算符“/”和求余运算符“%”的使用。具体步骤为:用100整除x得到百位数,
此文档下载收益归作者所有