gpt4 book ai didi

c++ - 如何从单独的 .cpp 文件调用函数?

转载 作者:行者123 更新时间:2023-11-30 21:20:20 24 4
gpt4 key购买 nike

这就是我试图解决的原始问题;

*创建一个名为 Lab5_Figures 的项目。该项目应包含多个文件。编写一个程序,反复要求用户选择正方形、左三角形或直角三角形,然后输入图形大小,然后以星形打印适当的形状。对于正方形,程序应询问用户是否想要实心正方形或空心正方形。如果用户输入无效选项,程序应该退出。请参阅下面的示例对话框:

  1. 正方形
  2. 左下三角形
  3. 右上角三角形

选择数字:1

选择尺寸:4

填充或空心[f/h]:h

//打印出适当的数字然后重复

  1. 正方形
  2. 左下三角形
  3. 右上角三角形...

您可以重复使用循环实验室中的代码(我已经这样做了)。将星形打印代码放置在四个单独的函数中:filledSquare、hollowSquare、leftTriangle 和rightTriangle。每个函数应该接受一个整数参数 - 图形的大小并且不返回任何值(是一个 void 函数)。创建三个单独的文件figures.cpp、figures.h 和figuresInput.cpp。将三角形和正方形函数定义放在figures.cpp中,并将它们的原型(prototype)放在figures.h中。确保头文件受到保护,不会被多重包含。将主函数放置在figuresInput.cpp*中。

好的,很酷。现在这是我的文件; (如果我的格式不对,我深表歉意:()

figuresInput.cpp

// This program creates shapes based on user input


#include <iostream>
#include <string>
#include "figures.h"

using std::cin; using std::cout; using std::string; using std::endl;

int main()
{
int option = 1;

while (option == 1 || option == 2 || option == 3)
{
//determine choice
cout << "1. Square" << endl << "2. Left Triangle" << endl << "3. Right Triangle" << endl;
cout << "Select an option: ";

cin >> option;

if (option == 1)
{
char fillHollow;

cout << "Filled or hollow? [f/h]";
cin >> fillHollow;

if (fillHollow == 'f')
{
int size;

cout << "Input Size: ";
cin >> size;

void filledSquare(int size);
}

else if (fillHollow = 'h')
{
int size;

cout << "Input Size: ";
cin >> size;

void hollowSquare(int size);
}
}

else if (option == 2)
{
int size;

cout << "Input Size: ";
cin >> size;

void leftTriangle(int size);
}

else if (option == 3)
{
int size;

cout << "Input Size: ";
cin >> size;

void rightTriangle(int size);
}

else
exit(EXIT_FAILURE);
}
} //end main

figures.cpp

//function defintions

#include "figures.h"
#include <iostream>

using std::cin; using std::cout; using std::string; using std::endl;

void filledSquare(int a)
{
//print stars for first square
for (int b = 0; b < a; b++)
{
for (int c = 0; c < a; c++)
cout << "*";
cout << endl; //new line
}
cout << endl; //new line

} //end

void hollowSquare(int a)
{
for (int b = 0; b < a; b++)
{
int spaces = a - 2;
if (b == 0 || b == (a - 1))
{
for (int i = 0; i < a; i++)
cout << "*";
cout << endl; //new line
}
else
{
cout << "*";
for (int i = 0; i < spaces; i++)
cout << " ";
cout << "*";
cout << endl; //new line
}
}
} //end

void leftTriangle(int a)
{
//get user input and print stars for first triangle
for (int b = a; b < a; b--)
{
for (int c = 0; c < b; c++)
cout << "*";
cout << endl; //new line
}
cout << endl; //new line
} //end

void rightTriangle(int a)
{
//get user input and print stars for second triangle
for (int b = 0; b < a; b++)
{
int stars = a - b;
for (int i = 0; i < b; i++)
cout << " ";
for (int i = 0; i < stars; i++)
cout << "*";
cout << endl; //new line
}
cout << endl; //new line
} //end

最后是数字.h

//funtion prototypes

#ifndef FIGURES_H
#define FIGURES_H

void filledSquare(int);

void hollowSquare(int);

void leftTriangle(int);

void rightTriangle(int);

#endif;

好吧,所以我认为我的问题是我没有正确从 main 调用函数定义。我不确定我是否只是没有包含正确的内容或什么;我真的很感激我能得到的任何帮助。

这是我的输出;

1. Square
2. Left Triangle
3. Right Triangle
Select an option: 1
Filled or hollow? [f/h]f
Input Size: 4
1. Square
2. Left Triangle
3. Right Triangle
Select an option:

最佳答案

您实际上并不是在调用函数,而是在声明它们。

你这样称呼他们:

hollowSquare(size);

关于c++ - 如何从单独的 .cpp 文件调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39938407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com