- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是学生成绩单项目,当我将这段代码从 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/
这个问题是我之前题为 How to fix this procedure writing a string to the console screen buffer 的帖子的后续问题. 我想在写入任意
函数 gotoxy 当包含在低级文件复制程序中时会生成错误。 这是代码 #include #include"d:\types.h" #include"d:\stat.h" #include"d:\fc
我知道我的问题很愚蠢,但我仍然需要你的帮助。为什么 gotoxy 的功能不能正常工作? void gotoxy(int x,int y) { COORD coord={x,y}; Se
GotoXY 无法工作,如果我将它可以工作的功能分开,但我需要将它们全部放在同一个文件中。 #include "colors.h" #include #include #include #def
#include #include #include int intSlot1, intSlot2, intSlot3; void fnGotoXY(short x, short y); voi
我的教授使用 gotoxy 换行。例如: #include #include main() { gotoxy(0, 1); printf("Hello World"); goto
这是学生成绩单项目,当我将这段代码从 borland C 转移到 dev C++ 时,我遇到了一些问题。现在,当我尝试在 dev C++ 中编译程序时,它给出了未定义 gotoxy() 的错误消息。那
Turbo C 在 conio.h 中提供了 gotoxy() 函数,但它不是标准。 我使用 gcc 编译器,需要 gotoxy() 函数。 我在网上搜索,但发现只具有特定于操作系统的功能或具有某种依
我在我的类(class)中读到 gotxy() 是一个预定义函数,但它不适用于 Microsoft visual 2013。所以我做了一些搜索,我得到了那段代码,它可以工作,但我必须理解它。所以谁能详
我的身材呈“Σ”形。问题是我必须从左上角而不是中间缩放它,这个符号的对角线连接的地方。 如果有人愿意分享任何关于如何改变它的 anchor 以扩大或缩小它的边的技巧,我将不胜感激。我考虑了将近一周,但
我想为初级数据库管理制作一个菜单驱动的程序。 所以,请提供一些关于如何借助以下示例在 python 中使用 gotoxy 替代方案的想法。 我有 C 代码在屏幕中央绘制一条垂直线和一条水平线,如下所示
谁能告诉我 gotoxy() 是如何使用 printf() 实现的 void gotoxy(int x,int y) { printf("%c[%d;%df",0x1B,y,x); } printf(
我有这样的东西: ______________________ /\ \ \_| 1. Menu entry one | | 2. Menu entry
做第一个项目是俄罗斯方 block ;现在我正在做动画部分,但我在清除屏幕时遇到问题,我试过了: void clrscr() { system("cls"); } 它有效,但它一直在闪烁屏幕,有没
我在ubuntu中使用gcc。所以,我在终端中编译和执行。但是在在线编程竞赛中,他们需要如图所示的输出。 为此,如果我使用 TURBOC 我可以使用 conio.h 使用 gotoxy() 来获得 螺
你好 我正在做一个需要 gotoxy() 函数的项目 我读过gotoxy() implementation for Linux using printf 我想知道为什么 void gotoxy(int
所以我正在建立一个带边界的 map 并用'*'填充 现在我想要做的是清空所有的 ' * ' 并用空格填充它们。 我没有得到预期的输出,也无法弄清楚我做错了什么,如果有人能帮助我,我将不胜感激。 #in
我想使用 printf 写一些东西,同时将 x 坐标和 y=0 居中。 如何使 x 坐标居中?例如,有人可能会全屏打开编译器窗口,而其他人可能不会?我想要中间的文字。现在 x 被分配了一个随机值 (5
我编写了一个由多个函数组成的程序,当控制权传递给它们时,每个函数都会在控制台上打印几件事。现在我试图在屏幕中央而不是在屏幕的左上角打印所有内容。为此,我唯一知道的是 Windows.h 的 gotox
如何在 Based on pixel in gotoxy(x,y) 函数中设置 x 和 y? 最佳答案 gotoxy 不是 Pascal 的一部分 - 它是在 Pascal 的某些实现中发现的扩展,并
我是一名优秀的程序员,十分优秀!