C++作业
2015-04-22 17:40
141 查看
设计一个用来表示直角坐标系的Location类,在主程序中创建类Location的两个对象A和B,要求A的坐标点在第3象限,B的坐标点在第2象限,分别采用成员函数和友元函数计算给定两个坐标之间的距离,要求按如下格式输出结果:
A(x1,y1),B(x2,y2)
Distance1=d1
Distance2=d2
其中,x1、y1、x2、y2为指定的坐标值,d1和d2为两个坐标点之间的距离。#include <iostream>
#include <cmath>
using namespace std
class Location {
private:
int x,y;
public:
Location(int i, int j):x(i),y(j) {}
int Getx( ) {return x;}
int Gety( ) {return y;}
double distance(Location b);
friend double distance(Location &a, Location &b);
};
double distance(Location &a, Location &b)
{ int dx=a.x-b.x;
int dy=a.y-b.y;
return sqrt(dx*dx+dy*dy); }
double Location::distance(Location b)
{ int dx=x-b.x;
int dy=y-b.y;
return sqrt(dx*dx+dy*dy); }
void main( )
{
Location A(-10,-20),B(-40,60);
cout<<"A("<<A.Getx( )<<","<<A.Gety( )<<"),B("<<B.Getx( )<<","<<B.Gety( )<<")"<<endl;
double d=A.distance(B);
cout<<"Distance1= "<<d<<endl;
cout<<"Distance2= "<<distance(A,B)<<endl<span style="font-family: 宋体;">} </span>
2、声明一个Student类,在该类中包括一个数据成员socre(分数)、两个静态数据成员total-score(总分)和count(学生人数);还包括一个成员函数account用于设置分数、累计学生的成绩之和累计学生人数,一个静态成员函数sum用于返回学生的成绩之和,另一个静态成员函数average用于求全班成绩的平均值。在main函数中,输入某班同学的成绩,并调用上述函数求全班同学的成绩之和与平均分。
A(x1,y1),B(x2,y2)
Distance1=d1
Distance2=d2
其中,x1、y1、x2、y2为指定的坐标值,d1和d2为两个坐标点之间的距离。#include <iostream>
#include <cmath>
using namespace std
class Location {
private:
int x,y;
public:
Location(int i, int j):x(i),y(j) {}
int Getx( ) {return x;}
int Gety( ) {return y;}
double distance(Location b);
friend double distance(Location &a, Location &b);
};
double distance(Location &a, Location &b)
{ int dx=a.x-b.x;
int dy=a.y-b.y;
return sqrt(dx*dx+dy*dy); }
double Location::distance(Location b)
{ int dx=x-b.x;
int dy=y-b.y;
return sqrt(dx*dx+dy*dy); }
void main( )
{
Location A(-10,-20),B(-40,60);
cout<<"A("<<A.Getx( )<<","<<A.Gety( )<<"),B("<<B.Getx( )<<","<<B.Gety( )<<")"<<endl;
double d=A.distance(B);
cout<<"Distance1= "<<d<<endl;
cout<<"Distance2= "<<distance(A,B)<<endl<span style="font-family: 宋体;">} </span>
2、声明一个Student类,在该类中包括一个数据成员socre(分数)、两个静态数据成员total-score(总分)和count(学生人数);还包括一个成员函数account用于设置分数、累计学生的成绩之和累计学生人数,一个静态成员函数sum用于返回学生的成绩之和,另一个静态成员函数average用于求全班成绩的平均值。在main函数中,输入某班同学的成绩,并调用上述函数求全班同学的成绩之和与平均分。
#include <iostream> using namespace std; class Student { private: double score; static double total; static int count; public: Student(double s) { score=s; total+=s; count++; } static double sum() { return total; } static double average() { return total/count; } }; double Student::total=0.0; int Student::count=0; void main() { int i,n; double sco; cout<<"Input the number of student"; cin>>n; for(i=0;i<n;i++) { cout<<"Input the score:"; cin>>sco; Student obj(sco); } cout<<"The total score is:"<<Student::sum()<<endl; cout<<"The average score is:"<<Student::average()<<endl; }