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

最佳答案

您需要自己创建它。包括<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 之外是不可移植的,即使那么远。

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

相关文章:

c++ - 将静态库链接到 Visual C++ 中的新项目

c++ - 为什么要在结构中保留内存?

c++ - Qt:某些插槽不会在 Release模式下执行

c++ - 如何使编译器仅搜索包含目录中的特定文件并排除该特定目录中的其余文件

c++ - 继承和CRTP

C++ 打印字符串的内容

c++ - C++ 中是否可以使用三元运算符在 if 语句中选择比较运算符?

c++ - 为什么这段代码没有显示我认为应该显示的内容?

C++ ROT-13 给出了我没想到的结果

c++ - 使用 C++ 中的示例服务器源替代 winsock2