Solved

C++ program

Posted on 2000-03-21
5
220 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 125 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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

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…
C++ Properties One feature missing from standard C++ that you will find in many other Object Oriented Programming languages is something called a Property (http://www.experts-exchange.com/Programming/Languages/CPP/A_3912-Object-Properties-in-C.ht…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

708 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now