C ++家庭作业给我带来了麻烦

时间:2013-10-10 04:09:36

标签: c++

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

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

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

帮助最小的最大退出

H或h(用于帮助)选项将调用名为help()的函数,该函数将显示帮助屏幕。帮助屏幕应指导用户如何与程序交互,要输入的数据类型以及程序产生的结果。每个帮助屏幕应保留在监视器上,直到用户敲击任何键。处理完用户输入后,将清除屏幕并再次显示菜单。 S或s(for Smallest)选项将调用名为smallest()的函数,该函数将提示用户输入两个浮点数并调用函数findSmallest(),该函数将计算并返回集合中的最小数字。找到最小的数字后,将调用函数display()(来自最小()函数)并使用下面显示的格式显示输入的数字和最小数字。 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表示第二个数字。 结果应保留在屏幕上,并出现以下提示,该提示将显示在屏幕的右下角: 敲击任何关键继续...... 用户输入密钥后,屏幕将被清除,菜单将再次显示。 L或l(for 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表示第二个数字。 结果应保留在屏幕上,并出现以下提示,该提示将显示在屏幕的右下角: 敲击任何关键继续...... 用户输入密钥后,屏幕将被清除,菜单将再次显示。 注意: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;
    }

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

  • 链接器错误也可能是由菜单功能声明引起的。

    extern char menu(void);

  • 修复extern菜单功能试试;

    extern“c”char menu(void);