-6

我是 C++ 新手,我的作业需要帮助。这是我必须做的

开发一个流程图,然后编写一个菜单驱动的 C++ 程序,该程序使用多个用户定义的函数、重载函数和引用。

程序执行后,屏幕将被清除,下面显示的菜单将出现在屏幕顶部并居中。菜单项说明如下。

帮助最小的最大的退出

H 或 h (用于 Help )选项将调用名为 help() 的函数,该函数将显示帮助屏幕。帮助屏幕应指导用户如何与程序交互、要输入的数据类型以及程序会产生什么结果。在用户敲击任何键之前,每个帮助屏幕都应保留在显示器上。一旦用户的输入被处理,屏幕将被清空并再次显示菜单。S 或 s(代表 Smallest )选项将调用名为 minimum( ) 的函数,该函数将提示用户输入两个浮点数并调用函数 findSmallest() ,该函数将计算并返回集合中的最小数。一旦找到最小的数字,函数 display() 将被调用(从 minimum() 函数)并使用如下所示的格式显示输入的数字和最小的数字。n1 = xxx.xx,n2 = yy。yy 和最小的是 zzz.zz,其中 n1 是第一个数字,n2 是第二个数字。x、y 和 z 是实际数字的占位符。请注意,小数点后需要两位有效数字。

要使用的函数原型是:

void smallest(void);
float findSmallest(float f, float s);
void display(float& f, float& s, float& small);

其中 f 指的是第一个数字,s 指的是第二个数字。结果应留在屏幕上,屏幕右下角会出现以下提示: Strike any key to continue... 一旦用户输入一个键,屏幕将被清除并再次显示菜单. L 或 l(代表 Largest )选项将调用名为 largst( ) 的函数,该函数将提示用户输入两个双精度数并调用函数 findLargestt() ,该函数将计算并返回集合中的最大数。一旦找到最大数字,函数 display() 将被调用(从最大()函数)并使用如下所示的格式显示输入的数字和最小的数字。n1 = xxx.xxxx,n2 = yy.yyyy,最大的是 zzz.zzzz,其中 n1 是第一个数字,n2 是第二个数字。x, y, 和 z 是实际数字的占位符。请注意,小数点后需要四位有效数字。

要使用的函数原型是:

void largest(void);
double findLargest(double f, double s);
void display(double& f, double& s, double& large);

其中 f 指的是第一个数字,s 指的是第二个数字。结果应留在屏幕上,屏幕右下角会出现以下提示: Strike any key to continue... 一旦用户输入一个键,屏幕将被清除并再次显示菜单. 注意: display() 是一个重载函数。Q 或 q(表示退出)选项将清除屏幕并将控件返回到 Visual Studio IDE。

这是我到目前为止所拥有的,我不断收到错误 LNK2019 和 LNK1120

#include    <iostream>
#include    <iomanip>
#include    <cstdlib>
using namespace std;



extern  char    menu(void);
    void    smallest(void);
    float   findsmallest(float f, float s);
    void    display (float f, float s, float& small);
    void    largest(void);
    double   findlargest(double f, double s);
    void    display (double f, double s, double& large);

int main(void)
{
     float n1, n2;
     char op;


     while(1)
     {
          op = menu();
          switch(op)
          {
            case 'h' :
            case 'H' :
                    cout << "\t How to Operate Program\n"
                         << "Select any of the menu items\n" 
                         << "h or H for Help\n"
                         << "s or S for Smallest\n"
                         << "Option will find the smallest number of two numbers\n"
                         << "l or L for Largest\n"
                         << "Option will find the largest number of two numbers\n"
                         << "q or Q will terminate program\n";
            case 's' :
            case 'S' :
                    cout << "\n\nPlease input values for n1 and n2,";

                    cin >> n1 >> n2;
                    findsmallest (n1, n2);
                    break;
            case 'l' :
            case 'L' :
                    cout << "\n\nPlease input values for n1 and n2,";

                    cin >> n1 >> n2;
                    findlargest (n1, n2);
                    break;
          }
     }
    return EXIT_SUCCESS;
 }

    extern char menu(void)
    {  
        char menuOption;                                 
        int flag = 1;
        while(flag == 1)
        {  
            cout << "\th. Help\t\ts. Smallest\t\tl. Largest\t\tq. Quit\n\n\t\t\tmake"
                 << " your selection ==> ";
            cin >> menuOption;
            switch(menuOption)
            {
                case 'h' :
                case 'H' :
                case 's' :
                case 'S' :
                case 'l' :
                case 'L' :
                         flag = 0;
                         break;           
                case 'q':
                case 'Q':
                         cout << "\nFinished..." << endl;
                         exit(0);        
                default  :
                         cout << "\n\twrong choice, try again\n\n";            
            }             
        }    

        return menuOption;
    }
4

2 回答 2

4

您声明了 的原型findLargestfindsmallest等等,但没有定义函数。你必须定义它们。

于 2013-10-10T04:14:36.083 回答
0
  • 链接器错误也可能是由菜单函数声明引起的。

    外部字符菜单(无效);

  • 修复外部菜单功能尝试;

    extern "c" 字符菜单(无效);

于 2013-10-10T05:50:23.313 回答