使用提示用户输入笛卡尔平面中某些点的x-y坐标(浮点类型)的函数

时间:2017-10-23 16:56:14

标签: c++ coordinates

我真的很喜欢编程。因为英语是我的第二语言,我正在家里学习这个编程!我只想完成这个代码,我需要帮助!!

  1. 列出项目

  2. 然后程序应输出一条消息,指示是否有该点 输入是原点,位于x-(或y-)轴上,或出现在特定象限中。以下显示了x-y的平面 坐标和四个象限。

  3. 程序应继续提示x-y坐标值,直到用户同时输入x和y等于零

  4. 我想用“char getPostion(float,float)”函数来探索使用 if-else语句,用于标识点所在的象限。您可以使用'1','2','3','4','x','y','o'来定义一些喜欢在实验3中所做的字符常量,以表示第一象限,第二象限,第3象限象限,第四象限,x轴,y轴和原点

  5. 我想再使用一个函数“void printposition(float,float,char)”一个函数,用于在知道点在平面中的位置时打印出相关信息。您可以探索使用switch-case语句打印相关消息(使用上面的字符值作为“case”值)

  6. 首先,当我编译代码时,我希望显示如下。

    • 列表项

    输入x和y:7.3,8.23 => (7.30,8.23)在X轴上方 ==>它位于第一象限

    输入x和y:-9,2.3 => (-9,2.3)在X轴上方 ==>它位于第二象限

    输入x和y:-7,0 => (-7.00,0)在x轴

    输入x和y:0,5 => (0,5.00)位于Y轴

    输入x和y:0,0 => (0,0)在原点

    这是我解决此问题的代码。我真的想解决这个问题。我还在努力做到这一点!这不对!我真的需要帮助

    <div></div>
    

2 个答案:

答案 0 :(得分:0)

我强烈建议您使用structclass对坐标进行分组。通常,这称为Point类:

struct Point
{
  double x;
  double y;
};

注意:除非您要求使用较短的double类型,否则请始终选择floatfloat

然后,您可以添加一些I / O功能:

struct Point
{
    double x;
    double y;
    Point() : x(0.0), y(0.0) { }
    input_from_console();
    friend std::ostream& operator<<(std::ostream& output, const Point& p);
};

void Point::input_from_console()
{
    std::cout << "Enter X ordinate: ";
    std::cin >> x;
    std::cout << "Enter Y ordinate: ";
    std::cin >> y;
}

std::ostream& operator<<(std::ostream& output, const Point& p)
{
    output << "<" << p.x << ", " << p.y << ">";
    return output;
}

这允许您在main()中执行以下操作:

int main()
{
  Point p; // Constructor initializes to <0.0, 0.0>
  p.input_from_console();
  std::cout << "Your coordinates are: " << p << "\n";
  return 0;
}

答案 1 :(得分:0)

我强烈怀疑这是一个家庭作业问题而不是“自学”问题,但这是答案的一部分

您的输入应放在主fn中的while循环中。

此外,第一个函数应该返回常量字符,而不是常量字符“varname”。

对于第二个功能,您还需要为参数指定一个名称,以便在开关案例中使用。

我不确定第一个确定四重放置位置的函数的逻辑,但我要做的是使用嵌套的if-elses来轻松覆盖所有可能的场景。

例如,如果x> 0,否则如果x == 0,否则。

在每个if中,我会比较y值。

以下是基于您的代码的示例,以帮助您入门。

#include <iostream>
#include <iomanip>

using namespace std;
int char getPosition(float, float);
void printPositoin (float, float, char);
const char Fstquadrant = ‘1’;
const char Sstquadrant = ‘2’;
const char Tstquadrant = ‘3’;
const char fstquadrant = ‘4’;
const char xaxis = ‘x’;
const char yaxis = ‘y’;
const char origin = ‘o’;

int main()
{
    float x, y;
    //declare a trigger here of your preference
    while(//trigger condition is met)
    {
        //place your cin and cout here
        //If your cin both equate to zero,
        //run the functions and break the trigger condition
        // else, run the function.
    }

}

int char getPostion(float x, float y)
{


   if(x ==0 && y ==0)
        return Fstquadrant;

   else if(x==0)
        return yaxis;

   else if(y ==0)
        return xaxis;

   else if(x>0 && y<0)
        return fstquadrant;


   else if(x<0 && y <0)
        return Tstquadrant;

   else if(x<0 && y>0)
        return Sstquadrant;

   else
        return Fstquadrant;




}

void printPosition (float x, float y, char category)
{

   switch(category)
    {
        case Fstquadrant: //cout your result for each case and do a break
        case Sstquadrant:
        case Tstquadrant:
        case fstquadrant:
        case xaxis:
        case yaxis:
        case origin:
    }

}