Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

C++ program

Posted on 2000-03-21
5
Medium Priority
?
241 Views
Last Modified: 2010-04-02
I have some code that is meant to prompt the user to enter 10 scores and choose one of three structures(if, while, or do-while) to then evaluate and display the name, score(%), and letter grade.  This is to be done using call by value.  I have spent hours on this and keep getting an external linker error.  What am I doing wrong?  Do I need all of these libraries?

#include <iostream.h>
#include <conio.h>
#include<ctype.h>
#include<iomanip.h>
#include<stdlib.h>
#include<math.h>

int Prompt_User_For_Selection(char);
int Service_Selection_Using_IfElse(char);
int Determine_LtrGrd_Using_Switch(float);


int main()
{
 char x;
 clrscr();                 //clear screen
 Prompt_User_For_Selection(x);
}
int Prompt_User_For_Selection(char start)
{
  char ans,y;
  do{
  clrscr();
  cout<<"STRUCTURE               SELECTION\n";
  cout<<"\n";
  cout<<"While                       W\n";
  cout<<"DO While                    D\n";
  cout<<"For                         F\n";
  cout<<"\n";
  cout<<"Enter Selection <Q to Quit>:\n";
  cout<<"\n\n\t";
  getch();
  cin>>ans;
  ans=toupper(ans);
  }while(ans!='W'&& ans!='D'&& ans!='F'&& ans!='Q');
   if (ans!='Q')
     return 0;
   else
    clrscr();
    cout<<"\n\n\tYou Selected to Quit BYE";
    cout<<"\n\n\tHit any key to exit:";
  getch();
  ans=start;
  y=Service_Selection_Using_IfElse(ans);
  return(y);
}
int Service_Selection_Using_IfElse(char ans2)
{
     char choice;
     int  final;
     int Execute_While_Loop();
     int Execute_Do_While_Loop();
     int Execute_For_Loop();


     char firstname[20];
     cout<<"Enter Your First Name:\n";
     cin>>firstname;
     char lastname[20];
     cout<<"Enter Your Last Name:\n";
     cin>>lastname;

     clrscr();

     if(choice=='W'){
      cout<<"\n\n\tYou Selected the While Structure\n";
      choice=ans2;
      Execute_While_Loop();

     }
     else
       if(choice=='D'){
        cout<<"\n\n\tYou Selected the Do While Structure\n";
        choice=ans2;
        Execute_Do_While_Loop();
       }
       else
        if(choice=='F'){
         cout<<"\n\n\tYou Selected the For Structure\n";
         choice=ans2;
         Execute_For_Loop();
        }

     cout<<"\n\n\n\n\tStudent Name:\t"<<firstname<<' '<<lastname<<endl<<endl;
     cout<<"\tGrade Average:\t"<<final<<"%"<<endl;
     final=Determine_LtrGrd_Using_Switch(choice);
     return(final);
     cout<<"\n\n\tHit any key to continue:";
     getch();
}
int Execute_While_Loop(float avg)
{
       int zz,result;
       int total,
           scoreCounter,
           score;
       total=0;
       scoreCounter=1;

       cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
       cin>>score;
       total=total+score;

       while(scoreCounter<10){
        while(score>100||score<0){
         cout <<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
         cin>>score;
         }
        total=total+score;
        ++scoreCounter;
        cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
        cin>>score;
       }

       clrscr();
       zz=static_cast<float>(total)/scoreCounter;
       zz=avg;
       result=Determine_LtrGrd_Using_Switch(zz);
       return (result);
}
int Execute_Do_While_Loop(float avg2)
{
   int qq,result2;
   int total,
       scoreCounter,
       score;
   total=0;
   scoreCounter=1;

   cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
   cin>>score;
   total=total+score;
   do{
   cout <<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
   cin>>score;
    do{
    total=total+score;
    ++scoreCounter;
    cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
    cin>>score;
    }while(scoreCounter<10&&score>=0&&score<=100);
   }while(score>100||score<0);
   clrscr();

   qq=static_cast<float>(total)/scoreCounter;
   qq=avg2;
   result2=Determine_LtrGrd_Using_Switch(qq);
   return result2;
}
int Execute_For_Loop(float avg3)
{
   int vv,result3;
   int total,
      score,
      scoreCounter;
   for(int total=0,scoreCounter=1;scoreCounter<=10;++scoreCounter,
        total=total+score){
      for(int scoreCounter;0>score||score>100;scoreCounter){
        cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
        cin>>score;
     }
      cout<<"\n\n\tEnter Score number"<<' '<<scoreCounter<<":\t";
      cin>>score;
   }

    clrscr();
    vv=static_cast<float>(total)/scoreCounter;
    vv=avg3;
    result3=Determine_LtrGrd_Using_Switch(vv);
    return(vv);
}
int Determine_LtrGrd_Using_Switch(float results)
{   int last;
    char LtrGrd;

    LtrGrd=floor(last*10+.5)/100;

    switch(LtrGrd){
      case 10:
      case 9:
       cout<<"\n\tLetter Grade:\t"<<"A";
       break;
      case 8:
       cout<<"\n\tLetter Grade:\t"<<"B";
       break;
      case 7:
       cout<<"\n\tLetter Grade:\t"<<"C";
       break;
      case 6:
       cout<<"\n\tLetter Grade:\t"<<"D";
       break;
      case 5:
       cout<<"\n\tLetter Grade:\t"<<"F";
       break;
    }
      last=results;
      return 0;
}
0
Comment
Question by:licker
  • 2
  • 2
5 Comments
 
LVL 10

Expert Comment

by:RONSLOW
ID: 2642620
if it is a linker error then there is (probably) nothing wrong with the program (otherwise it wouldn't compile), but with how you are linking it (eg what libraries you are using).

Perhaps if you give us some details on the linker error we could help?
0
 

Author Comment

by:licker
ID: 2642677
It says:
[Linker Error] Unresolved external 'Execute_While_Loop()' referenced from C:\WINDOWS...
[Linker Error] Unresolved external 'Execute_Do_While_Loop()' referenced from C:\WINDOWS...
[Linker Error] Unresolved external 'Execute_For_Loop()' referenced from C:\WINDOWS...
0
 
LVL 1

Expert Comment

by:computerpunk
ID: 2642688
Have you tried putting the function prototypes for the 3 functions at the top of the program ??
0
 
LVL 10

Accepted Solution

by:
RONSLOW earned 375 total points
ID: 2642709
Your prototype doesn't match the function.

eg.

you declare it as:
int Execute_Do_While_Loop();
     
but it is really:
int Execute_Do_While_Loop(float avg2)

Make them consistent.

And (as a metter of style), but you function declarations at the file-scope level (like you did with Prompt_User_for_Selection etc).

0
 

Author Comment

by:licker
ID: 2647097
Thanx, I played with it and got it to work, though a little differently.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show you some of the more useful Standard Template Library (STL) algorithms through the use of working examples.  You will learn about how these algorithms fit into the STL architecture, how they work with STL containers, and why t…
Introduction This article is a continuation of the C/C++ Visual Studio Express debugger series. Part 1 provided a quick start guide in using the debugger. Part 2 focused on additional topics in breakpoints. As your assignments become a little more …
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

926 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question