3

This is the student-report-card-project, I got some problems when I shifted this code to the dev C++ from borland C. Now when I try to complile the program in dev C++, it gives the error message that the gotoxy() is not defined. So which header file I need to include to use gotoxy() function?

 //***************************************************************
    //                   HEADER FILE USED IN PROJECT
    //****************************************************************

    #include<iostream>
    #include<graphics>
    #include<fstream>
    #include<iomanip>
    using namespace std;

    //***************************************************************
    //                   CLASS USED IN PROJECT
    //****************************************************************

    class student
    {
     int rollno;
     char name[50];
     int p_marks,c_marks,m_marks,e_marks,cs_marks;
     float per;
     char grade;
     int std;
     void calculate()
    {
      per=(p_marks+c_marks+m_marks+e_marks+cs_marks)/5.0;
     if(per>=60)
       grade='A';
     else if(per>=50 && per<60)
      grade='B';
     else if(per>=33 && per<50)
     grade='C';
    else
     grade='F';
    }
     public:
        void getdata()
        {
         cout<<"\nEnter The roll number of student ";
         cin>>rollno;
         cout<<"\n\nEnter The Name of student ";
         gets(name);
         cout<<"\nEnter The marks in physics out of 100 : ";
         cin>>p_marks;
         cout<<"\nEnter The marks in chemistry out of 100 : ";
         cin>>c_marks;
         cout<<"\nEnter The marks in maths out of 100 : ";
         cin>>m_marks;
         cout<<"\nEnter The marks in english out of 100 : ";
         cin>>e_marks;
         cout<<"\nEnter The marks in computer science out of 100 : ";
         cin>>cs_marks;
        calculate();
         }

        void showdata()
        {
         cout<<"\nRoll number of student : "<<rollno;
         cout<<"\nName of student : "<<name;
         cout<<"\nMarks in Physics : "<<p_marks;
         cout<<"\nMarks in Chemistry : "<<c_marks;
         cout<<"\nMarks in Maths : "<<m_marks;
         cout<<"\nMarks in English : "<<e_marks;
         cout<<"\nMarks in Computer Science :"<<cs_marks;
         cout<<"\nPercentage of student is  :"<<setprecision(2)<<per;
         cout<<"\nGrade of student is :"<<grade;
         }

         void show_tabular()
         {
         cout<<rollno<<setw(12)<<name<<setw(10)<<p_marks<<setw(3)<<c_marks<<setw(3)<<m_marks<<setw(3)<<e_marks<<setw(3)<<cs_marks<<setw(6)<<setprecision(3)<<per<<"   "<<grade<<endl;
         }

      int  retrollno()
      {return rollno;}

    };         //class ends here



    //***************************************************************
    //      global declaration for stream object, object
    //****************************************************************

     fstream fp;
     student st;

    //***************************************************************
    //      function to write in file
    //****************************************************************

    void write_student()
       {
        fp.open("student.dat",ios::out|ios::app);
        st.getdata();
        fp.write((char*)&st,sizeof(student));
        fp.close();
        cout<<"\n\nstudent record Has Been Created ";
        system("pause");
       }


    //***************************************************************
    //      function to read all records from file
    //****************************************************************


    void display_all()
    {
        cout<<"\n\n\n\t\tDISPLAY ALL RECORD !!!\n\n";
        fp.open("student.dat",ios::in);
        while(fp.read((char*)&st,sizeof(student)))
        {
         st.showdata();
         cout<<"\n\n====================================\n";
         system("pause");
         }
        fp.close();
        system("pause");
    }


    //***************************************************************
    //      function to read specific record from file
    //****************************************************************


    void display_sp(int n)
    {
        int flag=0;
        fp.open("student.dat",ios::in);
        while(fp.read((char*)&st,sizeof(student)))
        {
         if(st.retrollno()==n)
            {
             st.showdata();
             flag=1;
            }
        }
        fp.close();
    if(flag==0)
     cout<<"\n\nrecord not exist";
    system("pause");
    }


    //***************************************************************
    //      function to modify record of file
    //****************************************************************


    void modify_student()
    {
        int no,found=0;
        cout<<"\n\n\tTo Modify ";
        cout<<"\n\n\tPlease Enter The roll number of student";
        cin>>no;
        fp.open("student.dat",ios::in|ios::out);
        while(fp.read((char*)&st,sizeof(student)) && found==0)
           {
            if(st.retrollno()==no)
               {
                st.showdata();
                cout<<"\nPlease Enter The New Details of student"<<endl;
                st.getdata();
                int pos=-1*sizeof(st);
                fp.seekp(pos,ios::cur);
                fp.write((char*)&st,sizeof(student));
                cout<<"\n\n\t Record Updated";
                found=1;
               }
             }
        fp.close();
        if(found==0)
        cout<<"\n\n Record Not Found ";
        system("pause");
    }


    //***************************************************************
    //      function to delete record of file
    //****************************************************************


    void delete_student()
       {
        int no;
        cout<<"\n\n\n\tDelete Record";
        cout<<"\n\nPlease Enter The roll number of student You Want To Delete";
        cin>>no;
        fp.open("student.dat",ios::in|ios::out);
        fstream fp2;
        fp2.open("Temp.dat",ios::out);
        fp.seekg(0,ios::beg);
        while(fp.read((char*)&st,sizeof(student)))
        {
         if(st.retrollno()!=no)
            {
             fp2.write((char*)&st,sizeof(student));
             }
         }
        fp2.close();
        fp.close();
        remove("student.dat");
        rename("Temp.dat","student.dat");
        cout<<"\n\n\tRecord Deleted ..";
        system("pause");
        }


    //***************************************************************
    //      function to display all students grade report
    //****************************************************************

        void class_result()
        {
         fp.open("student.dat",ios::in);
         if(!fp)
         {
           cout<<"ERROR!!! FILE COULD NOT BE OPEN\n\n\n Go To Entry Menu to create File";
           cout<<"\n\n\n Program is closing ....";
           exit(0);
         }

         cout<<"\n\n\t\tALL STUDENTS RESULT \n\n";
          cout<<"====================================================\n";
          cout<<"Roll No. Name          P  C  M  E  CS  %age Grade\n";
          cout<<"====================================================\n";

          while(fp.read((char*)&st,sizeof(student)))
         {
           st.show_tabular();
        }
         fp.close();
         system("pause");
    }




    //***************************************************************
    //      function to display result menu
    //****************************************************************

       void result()
       {
        int ans,rno;
        char ch;
        cout<<"\n\n\nRESULT MENU";
        cout<<"\n\n\n1. Class Result\n\n2. Student Report Card\n\n3.Back to Main Menu";
        cout<<"\n\n\nEnter Choice (1/2)? ";
        cin>>ans;
        switch(ans)
        {
         case 1 : class_result();break;
         case 2 : {
            do{
            char ans;
            cout<<"\n\nEnter Roll Number Of Student : ";
            cin>>rno;
            display_sp(rno);
            cout<<"\n\nDo you want to See More Result (y/n)?";
            cin>>ans;
            }while(ans=='y'||ans=='Y');

            break;
               }
         case 3: break;
         default:  cout<<"\a";
        }
     }

    //***************************************************************
    //      INTRODUCTION FUNCTION
    //****************************************************************

    void intro()
    {
     gotoxy(35,11);
     cout<<"STUDENT";
     gotoxy(33,14);
     cout<<"REPORT CARD";
     gotoxy(35,17);
     cout<<"PROJECT";
     cout<<"\n\nMADE BY : SULABH AGRAWAL";
     cout<<"\n\nSCHOOL : CAMBRIDGE SCHOOL";
     system("pause");

    }




    //***************************************************************
    //      ENTRY / EDIT MENU FUNCTION
    //****************************************************************
    void entry_menu()
    {
      char ch2;
      cout<<"\n\n\n\tENTRY MENU";
      cout<<"\n\n\t1.CREATE STUDENT RECORD";
      cout<<"\n\n\t2.DISPLAY ALL STUDENTS RECORDS";
      cout<<"\n\n\t3.SEARCH STUDENT RECORD ";
      cout<<"\n\n\t4.MODIFY STUDENT RECORD";
      cout<<"\n\n\t5.DELETE STUDENT RECORD";
      cout<<"\n\n\t6.BACK TO MAIN MENU";
      cout<<"\n\n\tPlease Enter Your Choice (1-6) ";
      ch2=getche();
      switch(ch2)
      {
        case '1': clrscr();
              write_student();
              break;
        case '2': display_all();break;
        case '3':
               int num;
               clrscr();
               cout<<"\n\n\tPlease Enter The roll number ";
               cin>>num;
               display_sp(num);
               break;
          case '4': modify_student();break;
          case '5': delete_student();break;
          case '6': break;
          default:cout<<"\a";entry_menu();
       }
    }


    //***************************************************************
    //      THE MAIN FUNCTION OF PROGRAM
    //****************************************************************


    int main()
    {
      char ch;
      intro();
      do
        {
          clrscr();
          cout<<"\n\n\n\tMAIN MENU";
          cout<<"\n\n\t01. RESULT MENU";
          cout<<"\n\n\t02. ENTRY/EDIT MENU";
          cout<<"\n\n\t03. EXIT";
          cout<<"\n\n\tPlease Select Your Option (1-3) ";
          ch=getche();
          switch(ch)
          {
             case '1': clrscr();
                   result();
                   break;
              case '2': entry_menu();
                    break;
              case '3':exit(0);
              default :cout<<"\a";
        }
        }while(ch!='3');
        return 0;
    }

    //***************************************************************
    //              END OF PROJECT
    //***************************************************************
Box Box Box Box
  • 5,094
  • 10
  • 49
  • 67
baljeet Singh
  • 317
  • 3
  • 7
  • 11
  • 1
    There is no `gotoxy` in the standard library shipped with C++. If you want to use it you not only need to include something, but also link something. – Helmut Grohne Oct 31 '11 at 14:36
  • 1
    `gotoxy()` is not standard C++. You might want to find an additional tag to help people find this question. – Mark B Oct 31 '11 at 14:38
  • 1
    Note: `getche`, `clrscr`, and all the other friends from `conio.h` aren't standard either. These functions are specific to Borland's C++ compilers. – Billy ONeal Oct 31 '11 at 14:48

7 Answers7

14

You'll need to create it yourself. Include <windows.h>, then:

void gotoxy(int x, int y)
{
  static HANDLE h = NULL;  
  if(!h)
    h = GetStdHandle(STD_OUTPUT_HANDLE);
  COORD c = { x, y };  
  SetConsoleCursorPosition(h,c);
}

I shouldn't have to say it, but obviously this is not portable outside Windows, if even that far.

Benjamin Lindley
  • 101,917
  • 9
  • 204
  • 274
  • 8
    Lol -- I first read that as "got oxy" rather than "goto xy". Was wondering what the hell the function did. +1/ – Billy ONeal Oct 31 '11 at 14:49
6

add this header and function in your code:

#include "windows.h"

void gotoxy(int x, int y) 
{ 
    COORD coord;
    coord.X = x; 
    coord.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
Mohsen
  • 138
  • 2
  • 9
6

conio.h but it isn't standard. You need to check if your OS (console) can handle it.

#include <conio.h>
dacwe
  • 43,066
  • 12
  • 116
  • 140
  • 5
    @baljeet Singh: Dev C++ is an IDE, not a compiler. And don't use it. See http://stackoverflow.com/tags/dev-c%2b%2b/info – Fred Larson Oct 31 '11 at 14:47
2

You could write it on your own:

void gotoxy(int x, int y)
{
    COORD c = { x, y };  
    SetConsoleCursorPosition(  GetStdHandle(STD_OUTPUT_HANDLE) , c);
}
Alexandru Barbarosie
  • 2,952
  • 3
  • 24
  • 46
Ajay Yadav
  • 1,625
  • 4
  • 19
  • 29
  • Thanks @Ajay Yadav I programmed this Quoridor board with your suggested code! https://www.dropbox.com/s/0wumlgoikwlt98m/Quoridor%20-%20Tablero.png?dl=0 – InfZero Mar 11 '19 at 19:53
2

<conio.h> is part of DOS Based Turbo C++ Compiler. Remember the Blue Screen Compiler.

NekDil
  • 85
  • 5
  • Not everyone has had the misfortune of using Turbo C++ before. – Billy ONeal Oct 31 '11 at 15:57
  • I did! But I just never encountered conio.h back then (or I suppressed the memories). I even used Borland C++ 5 (?) professionally. Once. Upon. A. Time. – sehe Oct 31 '11 at 16:00
0

If you are a beginner......You can to make one. I have my one ...... With this you can also use the user defined values....

#include<iostream.h>
#include<conio.h>
void gotoxy(int i,int j)
 { int o=0,p=0;
    for(;p<=j;p++)
      { cout<<"\n";
      } 
    for(;o<=i;o++)
      {cout<<" ";
      }

  }

Now save this code as "*/any filename you want/.h" in the include folder of DevC++ parent dir..

Now u can use this as a normal header file

#include<gotoxy.h>

(Here I used gotoxy as my header file name......)

Hope this helps you....

HAPPY CODING :)

Love_for_CODE
  • 197
  • 1
  • 10
0

there is a small piece of code which works for me most of the time.....

#include<iostream>
#include<iomanip>  //for setw(); 

using namespace std;

gotoxy(int x, int y)
{
  cout<<setw(x);  //horizontal

  for(;y>0;y--)   //vertical
    cout<<endl;
 }

int main()
{
  gotoxy(10,20);
  cout<<"ANYTHING";
  return(0);
}
  • you cannot go back and if you run the code in main twice `ANYTHING` wont appear twice at the same position. Not sure if this is the `gotoxy` OP was looking for – 463035818_is_not_an_ai Nov 16 '18 at 21:52