C++第8周项目2-5参考解答

【项目2:计算定期还款额度】

编程序用来计算贷款的定期还款额度,比如买车的贷款。输入本金、贷款的时间长度、每年偿还的次数、贷款利率,程序就会计算出每次应该偿还的额度。

计算定期还款金额的公式如下

这里rate代表利率,principal代表本金,payPerYear代表每年偿还贷款的次数,numYears代表贷款的年限。

参考解答:

#include<iostream>
#include<cmath>
using namespace std;
int main( )
{
	double principal; //原始的本金
	double rate; //利率,例如,0.075
	double payPerYear; //每年偿还的次数
	double numYears; //偿还的年限
	double payment; //每次偿还的数额
	double number, denom; // 临时的变量
	double b,e; //底数,指数
	cout << "输入本金:";
	cin >> principal;
	cout << "输入利率(如0.075): ";
	cin >> rate;
	cout << "输入每年还款次数 ";
	cin >> payPerYear;
	cout << "输入还款年数: ";
	cin >> numYears;
	number = rate * principal / payPerYear;
	e = -(payPerYear * numYears );
	b = (rate / payPerYear )+1;
	denom = 1 - pow(b,e);   //调用pow()计算幂
	payment = number / denom;
	cout << "Payment is " << payment<<endl;
	return 0;
}

【项目3:求两点间距离】

输入两个点的坐标,求两点之间的距离并输出。提示:(1)两点的坐标用4个变量x1,y1,x2,y2表示,输入坐标值后,按求两点间距离的公式计算出距离输出即可;(2)求距离要开平方,开平方需要调用函数sqrt()实现。例如,用sqrt(x)可以求出x的平方根。要调用sqrt()函数,必须在程序开始处写:#include<Cmath>

#include <iostream>
#include <Cmath>   //为调用pow必须包含cmath
using namespace std;
int main()
{
    double x1,x2,y1,y2,d;
    cout<<"请输入第一点的坐标x y:";
    cin>>x1>>y1;
    cout<<"请输入第二点的坐标x y:";
    cin>>x2>>y2;
    d=sqrt((y2-y1)*(y2-y1)+(x2-x1)*(x2-x1));
    cout<<"两点间的距离为:"<<d<<endl;
    return 0;
}

【项目4:关于圆的计算】

输入半径r和高h,计算并输出半径为r的圆的面积、周长,半径为r的球的体积、表面积,半径为r,高为h的圆柱、圆锥的体积、表面积等。要求π值用符号常量表示。

#include <iostream>
#include <Cmath>  //为调用sqrt必须包含cmath
#define PI 3.1415926 //将PI定义为符号常量
using namespace std;
int main()
{
    double r,h,s1,s2,s3,s4,l,v1,v2,v3;
    cout<<"请输入半径r:";
    cin>>r;
    cout<<"请输入高h:";
    cin>>h;
    s1=PI*r*r;
    s2=4*PI*r*r;
    s3=2*PI*r*r+2*PI*r*h;
    s4=PI*r*r+PI*r*sqrt(h*h+r*r);
    l=2*PI*r;
    v1=4*PI*r*r*r/3;
    v2=PI*r*r*h;
    v3=PI*r*r*h/3;
    cout<<"以 "<<r<<" 为半径,"<<endl;
    cout<<"圆的面积="<<s1<<endl;
    cout<<"圆的周长="<<l<<endl;
    cout<<"球的体积="<<v1<<endl;
    cout<<"球的表面积="<<s2<<endl<<endl;
    cout<<"以 "<<r<<" 为半径,"<<h<<" 为高,"<<endl;
    cout<<"圆柱的体积="<<v2<<endl;
    cout<<"圆柱的表面积="<<s3<<endl;
    cout<<"圆锥的体积="<<v3<<endl;
    cout<<"圆锥的表面积="<<s4<<endl;
    return 0;
}

【项目5:字符加密】

加密规则为用原来字母后面的第4个字母代替原来的字母。具体见P42第8题。

#include <iostream>
using namespace std;
int main()
{
	char c1,c2,c3,c4,c5;
	c1='C';
	c2='h';
	c3='i';
	c4='n';
	c5='a';
	c1=c1+4;
	c2=c2+4;
	c3=c3+4;
	c4=c4+4;
	c5=c5+4;
	cout<<"加密后为:";
	cout<<c1<<c2<<c3<<c4<<c5<<endl;
	return 0;
}
时间: 2024-11-08 17:30:23

C++第8周项目2-5参考解答的相关文章

C++第10周项目5扩展参考——在北京买房

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目5扩展:在北京买房]现在北京有一套房子,价格200万,假设房价每年上涨10%,一个软件工程师每年固定能赚40万.如果他想买这套房子,不贷款,不涨工资,没有其他收入,每年不吃不喝不消费,那么他需要几年才能攒够钱买这套房子?  参考解答: #include <iostream> using namespace std; int main( ) { double hou

法133计算机科学课第9、10周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 2398:分段函数求值[双分支] Description 编程序,计算下面函数的值并输出: y = x - 1 (当x>=1), y = -x + 1 (当x<1) Input 一个整型数x Output 按公式计算出的y Sample Input 2 Sample Output 1 参考解答: #include <stdio.h> int main() {

法133计算机科学课第15周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 编程练习1:输出1000以内的所有素数. 参考解答: #include<stdio.h> #include<math.h> int main() { int m,i,k,prime; for(m=2;m<=200;m++) { prime=1; k=sqrt(m); for(i=2; i<=k; i++) //最多循环至-- if(m%i==0)

计算机科学-第15周 递归函数 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 1.阅读下面关于递归函数的程序,在草稿纸上画出函数调用"递推-回归"的过程,得出运行结果,并和实际运行结果进行对照(1) #include <stdio.h> int fact(int n); int main(){ long x=0,y=0; x=5; y=fact(x); printf("%ld\n"

计算机科学-第6周 文件 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 题目:文件salary1.txt是某单位100名员工的工号.基本工资和绩效工资.编程序(1)从文件中读取数据,求出总工资,并在屏幕上显示信息:(2)将完整的工资单保存到文件salary2.txt中.(3)将总工资超过5000元的员工的工号保存到文件rich.txt中.(4)在屏幕上显示工资最高的员工的工资信息提示:(1)定义一个结构体数组保存从文件中读入的

法133计算机科学课第12周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 Problem A:2447: 求N组数的最大公约数Description计算一组数的最大公约数Input第一行是数据的组数N,从第二行是N组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行Output每组的两个整数(a和b)的最大 公约数,每个结果独占一行Sample Input398 7280 3612 144Sample Output2412

法133计算机科学课第13周实践题目及参考解答

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 [课后练习1] 完成下面"歌手大奖赛计分程序"的设计(至少一项要求): 1.在歌手大奖赛中,有10位评委为参赛的选手打分,分数为0~10分(运行时由人控制).选手最后得分为去掉一个最高分和一个最低分后的平均值.请编写一个程序实现计分. 2.做一个更通用的计分程序,评委人数n可以在输入成绩之前输入,从而评委人数可以灵活调整. 3.进一步完善程序.一次运行程序只计算

计算机科学-第4周 结构 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 例1: 用一个结构表示点,输入点的横纵坐标,输出该点到原点的距离 #include <stdio.h> #include <math.h> struct Point { float x; float y; }; int main() { struct Point p; float d; printf("请输入点的坐标: &

计算机科学-第13周 函数 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 1.阅读程序:阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解函数的用法(1) #include <stdio.h> void fun(int x, int y) { x=x*10; y=y+x; printf("%d\t%d\n",x,y); } int main() { int a=2, b=3; f

计算机科学-第2周 数组初练-参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 练习一:下面的程序,输出了52张扑克牌(如图),请补充完整程序. #include <stdio.h> int main( ) { char c[4]= {'H','S','D','C'}; int v[13]= {1,2,3,4,5,6,7,8,9,10,11,12,13}; int i,j; for(i=0; i<4; i++) {