怎么删除对象的内容重新给个值
先给大家举例说明一下先#include<iostream>
using namespace std;
#include<cstdlib>
#include<fstream>
#include<cstring>
#include<conio.h>
//函数声明
void InputData();
void OutputData();
void locate();
void modify();
void del();
int i;//循环变量
char n[6];//学号
class student
{
private:
char num[6],name[16];
double chi,math,eng,sum,avg;
public:
student(double c=0,double m=0,double e=0)
{
chi=c;
math=m;
eng=e;
}
void input()
{
cout<<"请输入学号,姓名和语文,数学,英语成绩(请按所提示的顺序输入):"<<endl;
cin>>num>>name;
cin>>chi;
while(cin.fail())
{
cout<<"你输入的不是数字!"<<endl;
cin.clear();
cin.sync();
cin>>chi;
}
cin>>math;
while(cin.fail())
{
cout<<"你输入的不是数字!"<<endl;
cin.clear();
cin.sync();
cin>>math;
}
cin>>eng;
while(cin.fail())
{
cout<<"你输入的不是数字!"<<endl;
cin.clear();
cin.sync();
cin>>eng;
}
sum=chi+math+eng;
avg=sum/3;
}
void ouput()
{
cout<<"--------------------------------------------------------------------------------"<<endl;
cout<<"学号:"<<num<<" 姓名:"<<name<<" 成绩: ";
cout<<"语文:"<<chi<<" 数学:"<<math<<" 英语:"<<eng;
cout<<" 总分:"<<sum<<" 平均分:"<<avg<<endl;
cout<<"--------------------------------------------------------------------------------"<<endl;
}
char *GetNum()
{
return num;
}
};
student s1;//对象
int main()
{
char x;
while(true)
{
system("cls");
cout<<" ***********************************************"<<endl;
cout<<" 学生成绩管理系统"<<endl;
cout<<" ***********************************************"<<endl;
cout<<endl;
cout<<" 1--数据输入"<<endl;
cout<<" 2--数据输出"<<endl;
cout<<" 3--数据查询"<<endl;
cout<<" 4--数据修改"<<endl;
cout<<" 5--删除学生"<<endl;
cout<<" 0--退出"<<endl;
cout<<"请从(0--5)选择:"<<endl;
cin>>x;
if(x=='0'||x=='1'||x=='2'||x=='3'||x=='4'||x=='5')
{
if(x=='1')
InputData();
if(x=='2')
OutputData();
if(x=='3')
locate();
if(x=='4')
modify();
if(x=='5')
del();
if(x=='0')
{
cout<<"退出!"<<endl;
exit(1);
}
}
else
cout<<"你输入有误请重新选择!"<<endl;
getch();
}
return 0;
}
void InputData()//输入数据函数
{
char x;
ofstream outf;//输出流对象
outf.open("D:\\grade.dat",ios::out|ios::binary|ios::app);
if(!outf)
{
cout<<"打开文件失败!"<<endl;
}
for(i=0;true;i++){
s1.input();
outf.write((char *)&s1,sizeof s1);
cout<<"是否(Y|N)还有其他学生信息的输入?"<<endl;
cin>>x;
if(x=='N'||x=='n')
break;
}
cout<<endl;
outf.close();
}
void OutputData()//输出数据函数
{
ifstream inf;//输入流对象
inf.open("D:\\grade.dat",ios::in|ios::binary);
if(!inf)
{
cout<<"打开文件失败!"<<endl;
}
else{
for(i=0;inf.read((char *)&s1,sizeof s1);i++){
s1.ouput();
}
}
inf.close();
}
void locate()//查询函数
{
ifstream inf;//输入流对象
inf.open("D:\\grade.dat",ios::in|ios::binary);
if(!inf)
cout<<"打开文件失败!"<<endl;
else{
cout<<"请输入学号查询:";
cin>>n;
for(i=0;inf.read((char *)&s1,sizeof s1);i++){
if(strcmp(s1.GetNum(),n)==0)
{
s1.ouput();
}
}
}
if(strcmp(s1.GetNum(),n)!=0)
cout<<"不存在!"<<endl;
inf.close();
}
void modify()//修改数据函数
{
fstream file_io;//输入输出流对象
file_io.open("D:\\grade.dat",ios::in|ios::out|ios::binary|ios::app);
if(!file_io)
cout<<"打开文件失败!"<<endl;
else
{
cout<<"请输入要修改学生的学号:"<<endl;
cin>>n;
for(i=0;file_io.read((char *)&s1,sizeof s1);i++){
if(strcmp(s1.GetNum(),n)==0)
{
s1.input();
}
}
}
if(strcmp(n,s1.GetNum())!=0)
cout<<"你查找的学生学号不存在!"<<endl;
file_io.close();
}
void del()//删除数据函数
{
fstream dell;
dell.open("D:grade.dat",ios::in|ios::out|ios::binary|ios::app);
dell.close();
}
修改和删除函数我都还没有做,请各位指导指导!