我需要包含哪个头文件才能使用gotoxy()函数?

时间:2011-10-31 14:33:18

标签: c++

这是学生报告卡项目, 当我将此代码从borland C转移到开发C ++时,我遇到了一些问题。 现在,当我尝试在开发C ++中编译程序时,它会给出错误消息,即未定义gotoxy()。 那么我需要包含哪个头文件才能使用gotoxy()函数?

 //***************************************************************
    //                   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
    //***************************************************************

7 个答案:

答案 0 :(得分:11)

您需要自己创建它。包括<windows.h>,然后:

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

我不应该这么说,但显然即使到目前为止,这在Windows之外也不可移植。

答案 1 :(得分:6)

conio.h但它不是标准的。您需要检查您的操作系统(控制台)是否可以处理它。

#include <conio.h>

答案 2 :(得分:5)

在您的代码中添加此标头和函数:

#include "windows.h"

void gotoxy(int x, int y) 
{ 
    COORD coord;
    coord.X = x; 
    coord.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

答案 3 :(得分:2)

<conio.h>是DOS Based Turbo C ++编译器的一部分。记住蓝屏编译器。

答案 4 :(得分:2)

您可以自己编写:

void gotoxy(int x, int y)
{
    COORD c = { x, y };  
    SetConsoleCursorPosition(  GetStdHandle(STD_OUTPUT_HANDLE) , c);
}

答案 5 :(得分:0)

如果你是初学者......你可以做一个。我有我的...... 有了这个,您还可以使用用户定义的值 ....

#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<<" ";
      }

  }

现在将此代码保存为“* / 您想要的任何文件名/ .h”在DevC ++父目录的include文件夹中。

现在你可以将它用作普通头文件

#include<gotoxy.h>

(这里我使用gotoxy作为我的头文件名......)

希望这可以帮助你......

快乐编码:)

答案 6 :(得分:0)

有一小段代码对我来说大部分时间都适用......

#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);
}