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

标签 c++

这是学生成绩单项目, 当我将此代码从 borland C 转移到 dev C++ 时,我遇到了一些问题。 现在,当我尝试在 dev 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
    //***************************************************************

最佳答案

您需要自己创建它。包括 ,然后:

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 之外是不可移植的,即使那么远。

关于c++ - 我需要包含哪个头文件才能使用 gotoxy() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7955145/

相关文章:

c++ - 读取文件时0x0D之后为0x0A

c++ - 指向 boost::thread 的指针

c++ - 使用函数输出字符串或字符。菜鸟

c++ - 智能指针的排序 vector : mysterious crash

c++ - 在新的 Visual Studio 项目中包含任何 Eigen 3.3.1 文件将无法编译

c++ - 从 float 数组到 mat ,连接图像 block

c++ - 类,数字/数组或对象中的对象

C++/C 检测文件夹内容何时更改并通过 HTTP 发送文件的最佳方法

c++ - 在函数中创建值,然后将指针保存在全局指针数组中的值上

c++ - 如何在VS调试器中的C++中查看动态字符串数组的内容