C++第2次作业.doc_第1页
C++第2次作业.doc_第2页
C++第2次作业.doc_第3页
C++第2次作业.doc_第4页
C++第2次作业.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基础题:1、 编写函数把华氏温度转换为摄氏温度,公式为:c=(f-32)*5/9;在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度。一 实验目的:调用函数,将用户输入的华氏温度转换为摄氏温度。二 实验分析:调用函数即可。三 程序语言:#includeusing namespace std;int change(double f);void main(void)double f;coutf;coutendl转换后的温度为:change(f)endl2;fib(1)=fib(2)=1;观察递归调用的过程。一 实验目的:利用递归求Fibonacci级数,并利用调试观察递归调用的过程。二 实验分析:利用fib(n)=fib(n-1)+fib(n-2)即可求出。三 程序语言:#include using namespace std;int fib(int n) return (n 2) ? fib(n - 1) + fib(n - 2) : 1; int main()int a;couta;coutendl结果为:fib(a)endlendl;四 实验结果:3、 编写重载函数分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。一 实验目的:学会使用重载函数。二 实验分析:判断两个数的大小,并返回数值大的那个数。三 程序代码:#include using namespace std;int max(int a,int b)return(ab?a:b);int max(int a,int b,int c)return max(a,max(b,c);double max(double a,double b)return(ab)?a:b;double max(double a,double b,double c)return max(a,max(b,c);int main()int a,b,c;float d,e,f;cout请输入两个整数:a;cinb; coutendl两个整数中最大的是:max(a,b)endlendl;cout请输入三个整数:a;cinb;cinc;cout三个整数中最大的是:max(a,b,c)endlendl;cout请输入两个双精度数d;cine;cout两个双精度数中最大的是max(d,e)endlendl;cout请输入三个双精度数d;cine;cinf;cout三个双精度数中最大的是:max(d,e,f)endlendl;return 0;四 实验结果:提高题:1、 设计一个函数,计算任一年份共有多少天。一 实验目的:判断用户输入的年份是否是闰年。二 实验分析:年份为4的整数倍但不能被100整除的为闰年,366天,是400的整数倍的也是闰年;否则为平年,365天。三 程序代码:#includeusing namespace std;int main()int a;couta;if(a%4=0)&(a%100!=0)|(a%400=0)coutendla年一共有366天endl;elsecoutendla年一共有365天endl;四 实验结果:2、函数重载和带缺省形参值函数练习:看如下程序,为它添加适当的函数声明和定义,使之能正确运行通过。要求用两种方法实现,并比较两种方法,说说函数重载和带缺省形参值函数各自的特点和使用范围。另外注意在功能实现的过程中,对形参数据合法性的判断及处理,以及各函数之间的关系(注意递归函数的作用)。/*程序文件:stime.cpp程序功能:关于时钟运行的描述程序说明:该程序通过对“时间”这种新的数据类型的说明和使用来展示C+对比C语言而言,在面向过程程序设计方面的些许改进。同时也接触面向对象技术的一些概念如重载和多态性(非全部)。*/输入输出流声明包含头文件#include/时间结构体stime的声明struct stimeint hour; /小时int min; /分钟int sec; /秒钟;/此处用户函数声明若干/.(略,请补充)./主函数void main()stime t1=12,0,0; /C+中定义结构体变量可省略关键词struct/定义一个时间变量t1,初始化为12点0分0秒coutt1:/显示t1当前表示的时间stime t2=add(t1,30); /变量的定义可以不出现在程序块开始的地方/定义一个时间变量t2,用函数add返回值初始化为t1过30秒后所代表的时间coutt2:t2=add(t2,15,10);/t2设为t2原来的时间过10分15秒后所表示的时间(注意参数先后顺序)t2=add(t2,10,15,2); /t2设为t2原来的时间过2小时15分10秒后所表示的时间coutt2:t1=sub(t1,30,20,1); /t1设为t1原来的时间之前1小时20分30秒coutt1:int n=sub(t2,t1); /求t1和t2之间相隔多少秒(t2-t1)coutNow, t2-t1=/此处用户函数定义若干/.(略,请补充).一实验目的:练习函数重载和带缺省形参值函数的使用,加强我们对函数的理解。二实验分析:对于实现t1,t2的时间上的加法,可以使用缺省函数,因为题目中要用到的add函数最多的时候是显现时分秒同时改变,所以该add函数定义四个变量,分别是表示原时间的一个结构体量,以及三个能给时间做加法的整型变量。对于各时间做减法时,因为题目一个是结构体之间的减法,一个是结构体中自身的加法,且需求的变量个数也不同,就可以用一个重载函数sub来实现时间的加法。三程序代码:/输入输出流声明包含头文件#includeusing namespace std;/时间结构体stime的声明struct stimeint hour; /小时int min; /分钟int sec; /秒钟;/此处用户函数声明若干stime add(stime t,int b=0,int c=0,int d=0) stime t1;t1.sec=t.sec+b;if(t1.sec60)c=c+1;t1.sec=t1.sec-60;t1.min=t.min+c;if(t1.min60)d=d+1;t1.min=t1.min-60;t1.hour=t.hour+d;if(t1.hour24)t1.hour=t1.hour-24;return t1;stime sub(stime t,int a,int b,int c)stime t2;if(t.seca)t2.sec=t.sec+60-a;t.min=t.min-1;else t2.sec=t.sec-a;if(t.minb)t2.min=t.min+60-b;t.hour=t.hour-1;elset2.min=t.min-b;if(t.hourc)t2.hour=t.hour+24-c;elset2.hour=t.hour-c;return t2;int sub(stime t2,stime t1)int a,b,c;long int d; if(t2.sect1.sec)a=t2.sec+60-t1.sec;t2.min=t2.min-1;elsea=t2.sec-t1.sec;if(t2.mint1.min)b=t2.min+60-t1.min;t2.hour=t2.hour-1;elseb=t2.min-t1.min;if(t2.hourt1.hour) c=t2.hour+24-t1.hour;elsec=t2.hour-t1.hour;d=c*60*60+b*60+a;return d;/主函数void main()stime t1=12,0,0; /C+中定义结构体变量可省略关键词struct/定义一个时间变量t1,初始化为12点0分0秒coutt1:t1.hour:t1.min:t1.secendl;/显示t1当前表示的时间stime t2=add(t1,30); /变量的定义可以不出现在程序块开始的地方/定义一个时间变量t2,用函数add返回值初始化为t1过30秒后所代表的时间coutt2:t2.hour:t2.min:t2.secendl;/t2设为t2原来的时间过10分15秒后所表示的时间(注意参数先后顺序)t2=add(t2,10,15,2); /t2设为t2原来的时间过2小时15分10秒后所表示的时间coutt2:t2.hour:t2.min:t2.secendl;t1=sub(t1,30,20,1); /t1设为t1原来的时间之前1小时20分30秒coutt1:t1.hour:t1.min:t1.secendl;coutNow, t2-t1=sub(t2,t1)sendl;/求t1和t2之间相隔多少秒(t2-t1)四实验结果:选做题:1. 张三、李四、王五三个棋迷,定期去文化宫下棋。张三每五天来一次,李四每六天来一次,王五每九天来一次。问每过多少天他们才能一起在文化宫下棋?一 实验目的: 求5、6、9的最小公倍数.二 实验分析:利用循环求出5、6、9的最小公倍数,设置一个判定数,当同时满足是5和6和9的倍数时跳出while循环。三 程序代码:#include using namespace std; int main() int a,b,i; b=0; i=1; whi

温馨提示

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

最新文档

评论

0/150

提交评论