源代码C++程序设计基础案例教程吴艳清华大学出版社.docx

上传人:b****7 文档编号:11139699 上传时间:2023-02-25 格式:DOCX 页数:143 大小:793.40KB
下载 相关 举报
源代码C++程序设计基础案例教程吴艳清华大学出版社.docx_第1页
第1页 / 共143页
源代码C++程序设计基础案例教程吴艳清华大学出版社.docx_第2页
第2页 / 共143页
源代码C++程序设计基础案例教程吴艳清华大学出版社.docx_第3页
第3页 / 共143页
源代码C++程序设计基础案例教程吴艳清华大学出版社.docx_第4页
第4页 / 共143页
源代码C++程序设计基础案例教程吴艳清华大学出版社.docx_第5页
第5页 / 共143页
点击查看更多>>
下载资源
资源描述

源代码C++程序设计基础案例教程吴艳清华大学出版社.docx

《源代码C++程序设计基础案例教程吴艳清华大学出版社.docx》由会员分享,可在线阅读,更多相关《源代码C++程序设计基础案例教程吴艳清华大学出版社.docx(143页珍藏版)》请在冰豆网上搜索。

源代码C++程序设计基础案例教程吴艳清华大学出版社.docx

源代码C++程序设计基础案例教程吴艳清华大学出版社

第2章C++简单程序设计

【例2-1】C++简单小程序应用案例。

题目:

要求用户输入一个矩形的长和宽,求其面积。

#include//预处理命令行

voidmain()//函数头

{

inta,b,s;

cout<<"pleaseinputtwonumbers:

\n";

cin>>a>>b;

s=a*b;//求矩形面积,结果赋值给变量s

cout<<"theareais:

"<

}

【例2-2】变量定义语句的应用案例。

题目:

编写程序实现计算任意长、任意宽的矩形面积。

#include

voidmain()

{

doublex,y,area;//定义了三个双精度类型变量x、y、area

cin>>x>>y;//通过键盘任意输入两个双精度数给矩形的长和宽

area=x*y;

cout<<"theareais:

"<

}

其运行结果为:

【例2-3】define定义符号常量的应用案例。

题目:

利用define命令定义符号常量,验证符号常量的应用。

#include

#definePI3.14

voidmain()

{

doubler,area;

cin>>r;//通过键盘任意输入一个双精度数给作为圆的半径值

area=PI*r*r;//编译后area=3.14*r*r

cout<<"theareais:

"<

}

其运行结果为:

【例2-5】输出格式控制的应用案例。

题目:

格式输出控制符的验证。

#include

voidmain()

{

inta,b,c,d,e;

cout<<"pleaseinputfivenumbers(a-dec,b-oct,c-hex,d-hex,e-dec):

"<

cin>>a;

cin>>oct>>b;

cin>>hex>>c;

cin>>d;

cin>>dec>>e;

cout<<"hex:

a="<

cout<<"dec:

b="<

cout<<"dec:

c="<

cout<<"oct:

d="<

cout<<"oct:

e="<

cout<

}

程序运行时,输入:

1217a2ff10

其运行结果为:

 

第3章程序设计结构

【例3-1】顺序结构的应用案例1。

题目:

要求用户通过键盘输入一直角三角形的底长和高,然后计算出此直角三角形的面积。

#include

voidmain()

{

floatx,h,area;

cout<<”pleaseinputtwonumbers:

”<

cin>>x>>h;

cout<<”x=”<

area=1.0/2*x*h;

cout<<”area=”<

}

其运行结果为:

【例3-2】顺序结构应用案例2。

题目:

通过程序设计实现求任意两个实型数据的和。

#include

voidmain()

{

floatx,y,add;

cout<<”pleaseinputtwonumbers:

”<

cin>>x>>y;

cout<<”x=”<

add=x+y;

cout<

}

其运行结果为:

【例3-3】单分支结构应用案例1。

题目:

通过键盘输入任意两个整数,输出较大的数。

#include

voidmain()

{

inta,b,max;

cout<<”请输入两个数字:

”;

cin>>a>>b;

if(a>b)

max=a;

if(a<=b)

max=b;

cout<<”两个数中较大的是:

”<

}

其运行结果为:

【例3-4】单分支结构应用案例2。

题目:

通过键盘输入任意两个整数,要求第一个数中放大数,第二个数中放小数。

#include

voidmain()

{

inta,b,t;

cout<<”请输入两个数字:

”;

cin>>a>>b;

cout<<”交换前的结果:

”<

if(a

{

t=a;

a=b;

b=t;

}

cout<<”交换后的结果:

”<

}

其运行结果为:

【例3-5】双分支结构应用案例1。

题目:

利用双分支结构改写【例3-3】,实现两个数中输出较大数。

#include

voidmain()

{

inta,b,max;

cout<<”请输入两个数字:

”;

cin>>a>>b;

if(a>b)

max=a;

else

max=b;

cout<<”两个数中较大的是:

”<

}

其运行结果为:

【例3-6】双分支结构应用案例2。

题目:

通过键盘输入任意一个年份,判断该年份是否为闰年。

(闰年的条件是:

年份可以被4整除但是不能被100整除,或者年份可以被400整除)。

#include

voidmain()

{

intyear;

cout<<”请输入一个年份(四位):

”;

cin>>year;

if((year%4==0&&year%100!

=0)||(year%400==0))

cout<

”<

else

cout<

”<

}

运行结果为:

【例3-7】多分支结构的应用案例1。

题目:

将键盘输入的百分制成绩转换成五级计分制的成绩输出。

五级计分制成绩确定规则:

’A’(90~100)、’B’(80~89)、’C’(70~79)、’D’(60~69)、’E’(60分以下,不包括60)

#include

voidmain()

{intscore;

chargrade;

cout<<”请输入一个分数值(0~100):

”;

cin>>score;

if(score>=90&&score<=100)

grade=’A’;

elseif(score>=80&&score<=89)

grade=’B’;

elseif(score>=70&&score<=79)

grade=’C’;

elseif(score>=60&&score<=69)

grade=’D’;

else

grade=’E’;

cout<

”<

}

其运行结果为:

【例3-8】多分支结构的应用案例2。

题目:

用户通过键盘输入任意一个年份与月份,自动显示该年的当月所包含的天数。

#include

voidmain()

{

intyear,month,day;

cout<<”请输入一个年份(四位):

”;

cin>>year;

cout<<”请输入一个月份:

”;

cin>>month;

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)

day=31;

elseif(month==4||month==6||month==9||month==11)

day=30;

else

{

if(year%4==0&&year%100!

=0)

day=29;

else

day=28;

}

cout<

}

其运行结果为:

【例3-9】多分支结构应用案例3。

题目:

修改例3-7,利用开关语句实现成绩的等级。

#include

voidmain()

{intscore;

chargrade;

cout<<”pleaseinputascore:

”;

cin>>score;

switch(score/10)

{

case10:

case9:

grade=’A’;break;//若score/10结果为10,则执行case9后的语句序列

case8:

grade=’B’;break;

case7:

grade=’C’;break;

case6:

grade=’D’;break;

default:

grade=’E’;

}

cout<<”thegradeofscoreis:

”<

}

其运行结果为:

【例3-10】多分支结构应用案例4。

题目:

设计一个小型计算器,能够实现加、减、乘、除和乘方的运算。

#include

#include

voidmain()

{

floatx1,x2;

charop;

cout<<”请输入两个数值:

”;

cin>>x1>>x2;

cout<<”请输入一个运算符:

”;

cin>>op;

switch(op)//字符类型表达式

{

case'+':

cout<

case'-':

cout<

case'*':

cout<

case'/':

cout<

case'^':

cout<

default:

cout<<"theerrorofoperator!

"<

}

}

其运行结果为:

【例3-11】多分支结构应用案例5。

题目:

应用枚举类型值进行输入值的判断,通过输入0显示“male”,输入1显示

“female”。

#include

voidmain()

{

enumsex{male,female}s;

intn;

cout<<”请输入一个整数(0—male,1—female):

”;

cin>>n;

switch(n)

{

case0:

s=male;break;//0对应的male,1对应的female

case1:

s=female;break;

default:

cout<<”您的输入错误!

\n”;

}

switch(s)

{

casemale:

cout<<”male\n”;break;//注意break语句的使用

casefemale:

cout<<”female\n”;

}

}

其运行结果为:

例3-12】循环结构应用案例1。

题目:

用for循环实现就1~100之间所有偶数的和。

#include

voidmain()

{

inti=0,sum=0;

for(;i<=100;)//表达式1和表达式3省略

{

sum+=i;

i=i+2;

}

cout<<”sum=”<

}

其运行结果为:

【例3-13】循环结构应用案例2。

题目:

输出所有的“水仙花数”。

所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

(例如,13+53+33=153,153是水仙花数)

#include

voidmain()

{

inti,j,k,n;

cout<<”水仙花数有:

”;

for(n=100;n<1000;n++)

{

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

cout<

}

cout<

}

其运行结果为:

【例3-14】循环结构应用案例3。

题目:

用while循环实现就1~100之间所有偶数的和。

#include

voidmain()

{

inti=0,sum=0;

while(i<=100)

{

sum+=i;

i=i+2;

}

cout<<”sum=”<

}

其运行结果为:

【例3-15】循环结构应用案例4。

题目:

编写程序,实现求任意两个正整数的最大公约数和最小公倍数。

#include

voidmain()

{

intm,n,r,temp,p;

cout<<”请输入两个数值:

”;

cin>>m>>n;

if(m

{

temp=m;

m=n;

n=temp;

}

p=m*n;

while(n!

=0)

{

r=m%n;

m=n;

n=r;

}

cout<<”最大公约数是:

”<

cout<<”最小公倍数是:

”<

}

其运行结果为:

【例3-16】循环结构应用案例5。

题目:

用do……while循环结构实现1~100之间所有偶数的和。

#include

voidmain()

{

inti=0,sum=0;

do

{

sum+=i;

i=i+2;

}while(i<=100);

cout<<”sum=”<

}

其运行结果为:

【例3-17】循环结构应用案例6。

题目:

制作一个小游戏,要求:

系统自动生成0~50之间的随机数x,用户去猜其具体的数值。

要求:

(1)若用户猜的数值大于该数,则提示大于该数。

(2)若用户猜的数值小于该数,则提示小于该数。

#include

#include

voidmain()

{

intmin=0,max=50;

intx,y;

x=rand()%50;

cout<<"系统已经生成随机数(0~50),请您输入您猜测的数据:

";

do

{

cin>>y;

if(y>x)

{

max=y;

cout<<"当前数值范围为:

"<

}

elseif(y

{

min=y;

cout<<"当前数值范围为:

"<

}

else

cout<<"您猜对了,您非常棒!

"<

}while(true);

}

其运行结果为:

【例3-18】break语句的应用案例。

题目:

编程实现模拟ATM机的执行流程。

#include

#include

voidmain()

{

intpassword,Id;

cout<<"****************进入自动提款系统****************"<

cout<<"\n请输入密码:

";

cin>>password;

if(password==142536)

cout<<"\n欢迎您使用ATM系统,请按键选择您所需要的服务"<

else

{

cout<<"\n您的密码错误,请重新输入"<

exit

(1);

}

cout<<"\n1:

查询"<

cout<<"\n2:

取款"<

cout<<"\n3:

存款"<

cout<<"\n4:

退出"<

cout<<"\n请输入您的选择:

";

cin>>Id;

switch(Id)

{

case1:

cout<<"进行查询操作中......"<

case2:

cout<<"进行取款操作中......"<

case3:

cout<<"进行存款操作中......"<

case4:

exit

(1);

default:

cout<<"您的输入有误!

"<

}

}

其运行结果为:

【例3-19】continue语句的应用案例。

题目:

continue语句应用在循环语句中,验证continue语句的功能。

#include

voidmain()

{

intx=1,n=10;

while(n-->=0)

{

if(x>4)

continue;//若x>4成立则结束本次循环做一下循环

cout<

}

cout<

cout<<"x="<

}

其运行结果为:

【例3-20】goto语句的应用案例。

题目:

利用goto语句实现求1~100之内偶数的和。

#include

voidmain()

{

inti,sum=0;

i=0;

a:

i=i+2;

sum+=i;

if(i<100)

gotoa;

cout<<"sum="<

}

其运行结果为:

【例3-21】结构嵌套的应用案例1。

题目:

若一个数恰好等于它的因子之和,则这个数称为完数。

编写程序输出100以内的所有完数。

(如,1+2+3=6,而1、2、3是6的因子,所以说6是完数)。

#include

voidmain()

{

inti,j,s;

for(i=2;i<=100;i++)

{

s=0;

for(j=1;j

if(i%j==0)

s+=j;

if(s==i)

cout<

”<

}

}

其运行结果为:

【例3-22】结构嵌套的应用案例2。

题目:

求15个学生英语课程的平均分。

#include

voidmain()

{

inti;

floatsum=0,ave,score[15];

cout<<”请输入15个学生的高数成绩:

”;

for(i=0;i<15;i++)

cin>>score[i];

for(i=0;i<15;i++)

sum+=score[i];

ave=sum/15;

cout<<”这15个学生高数课程的平均分为:

”<

}

其运行结果为:

【例3-23】结构嵌套的应用案例3。

题目:

结构嵌套中break和continue语句的应用。

#include

voidmain()

{

inti,x=1,y=0;

for(i=0;i<10;i++)

{

x+=3;

if(x>5)

{

cout<<"**x="<

continue;

}

y=x+5;

cout<<"x="<

}

}

其运行结果为:

若将上例中的continue语句改成break语句,则运行结果为:

【例3-24】结构嵌套的应用案例4。

题目:

有n个数,已按由小到大顺序排列好,要求输入一个数,把它插入到原有数列中,而且仍然保持有序,同时输出新的数列。

分析:

通常插入算法应包含四个主要步骤:

(1)确定插入位置。

(2)把从最后一个元素到插入位置的每一个元素中的值,依次向后移动一个位置,即把a[n]中的值放入a[n+1]中,把a[n-1]中的值放入a[n]中,依此类推,直到把a[i]中的值放入a[i+1]中。

(3)在确定的插入位置上放入x的值。

(4)元素的个数增1。

#include

voidmain()

{

inti,n,j;

inta[11]={12,27,35,41,53,67,74,80,96,100};

cout<<"原数列为:

"<

for(i=0;i<10;i++)

cout<

cout<

cout<<"输入插入数:

"<

cin>>n;

j=9;

while(j>=0&&n

{

a[j+1]=a[j];

j--;

}

a[j+1]=n;

cout<<"插入后的数组:

"<

for(i=0;i<11;i++)

cout<

cout<

}

其运行结果为:

 

第4章函数

【例4-1】函数调用应用案例1。

题目:

已知一数组(含有10个元素)中前两个元素的值,后面元素的值分别是前两个元素之和,利用函数求出该数组所有元素的值。

#include

#include

voidfun(intarray[],intn);

voidmain()

{

inta[10]={5,8},i;

fun(a,10);

for(i=0;i<10;i++)

cout<

cout<

}

voidfun(intarray[],intn)

{

intj;

for(j=2;j

array[j]=array[j-1]+array[j-2];

}

其运行结果为:

【例4-2】函数调用应用案例2。

题目:

编写函数将化氏温度转换为摄氏温度,公式为C=(F-32)*5/9;并在主函数中调用。

#include

floatfun(floatf)

{floatc;

c=5.0/9*(f-32);//注意这里是5.0/9,不能写成5/9

returnc;

}

voidmain()

{floatx;

cout<<"请输入一个温度值:

";

cin>>x;

cout<<"输入的温度值为:

"<

cout<<"转换后,值为:

"<

}

其运行结果为:

【例4-3】函数调用应用案例3。

题目:

编写函数利用数组名作参数计算二维数组arr[3][4]中所有元素的和。

#include

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

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1