Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

C++ program

Posted on 2000-03-21
5
Medium Priority
?
242 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

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

Question has a verified solution.

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

Templates For Beginners Or How To Encourage The Compiler To Work For You Introduction This tutorial is targeted at the reader who is, perhaps, familiar with the basics of C++ but would prefer a little slower introduction to the more ad…
  Included as part of the C++ Standard Template Library (STL) is a collection of generic containers. Each of these containers serves a different purpose and has different pros and cons. It is often difficult to decide which container to use and …
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 pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.

577 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