求补充c++学生成绩管理系统的文件操作

我文件操作部分学得很差,请哪位大神帮忙补充文件操作的子函数,实现学生数据的读取与存储,来完善这个学生成绩管理系统。谢了。
附部分(因为字数有限制)源代码如下(vc6.0可运行):

#include<iostream.h>
#include<string.h>
#include<iomanip.h>
#include<conio.h>
#include<iostream>
struct student //定义一个学生结构体
{
char name[8];
int num;
char add[20];
int GS,YY,JSJ,SUM;
};
int s=0;
class student1 //定义一个学生类
{
private:
student stu[40];
char name,add;
int num;
int GS,YY,JSJ,SUM;
public:
void sr(char *,int,char *,int,int,int);
void print(int);
int jc(int xxh) //JC模块判断学号是否重复
{
int m=0;
while(m<=s+1)
if(xxh==stu[m++].num)
break;
if(m>s+1)
return 0;
else
return 1;
}

};
void student1::sr(char *xm,int xh,char *dz,int gs,int yy,int jsj) //输入模块
{
strcpy(stu[s].name,xm);
stu[s].num=xh;
strcpy(stu[s].add,dz);
stu[s].GS=gs;
stu[s].YY=yy;
stu[s].JSJ=jsj;
}
void student1::print(int s) //输出模块
{
cout<<s<<"\t";
cout<<stu[s].name<<"\t";
cout<<stu[s].num<<"\t";
cout<<stu[s].add<<"\t";
cout<<stu[s].GS<<"\t";
cout<<stu[s].YY<<"\t";
cout<<stu[s].JSJ<<"\t";
cout<<endl;
}
int main(void)
{
student1 st;
char da,a;
char *xm,*dz;
int gs,yy,jsj,xh;
while(1)
{
system("cls");
cout<<endl;
cout<<" 学生成绩管理系统"<<endl;
cout<<"1.输入/添加学生资料"<<endl;
cout<<"2.显示学生资料"<<endl;
cout<<"3.退出"<<endl;
cout<<"请选择操作(1-3)"<<endl;
cin>>a;
t: if(a=='3') break;
switch (a)
{
case '1':
{
cout<<"请依次输入学生的姓名,学号,地址,高数,英语,计算机:"<<endl;
xm=new char[];
dz=new char[];
cin>>xm>>xh>>dz>>gs>>yy>>jsj;
while(st.jc(xh)) //调用JC模块判断学号是否重复
{
cout<<"学号重复,请重新输入!"<<endl;
cin>>xh;
}
s=s+1;
st.sr(xm,xh,dz,gs,yy,jsj);
cout<<"是否继续输入?(y/n)";
cin>>da;
while (da=='y'||da=='Y') //判断是否要继续输入
{
cout<<"请依次输入学生的姓名,学号,地址,高数,英语,计算机:"<<endl;
xm=new char[];dz=new char[];
cin>>xm>>xh>>dz>>gs>>yy>>jsj;
while(st.jc(xh))
{
cout<<"学号重复,请重新输入!"<<endl;
cin>>xh;
}
s=s+1;
st.sr(xm,xh,dz,gs,yy,jsj);
cout<<"是否继续输入?(y/n)";
cin>>da;
}
getch(); //在你需要暂停的位置暂停一下,当你按一下任意键它又会继续往下执行!
};break;
case '2':
{
if(s==0) //判断是否有记录输入
{
cout<<"没有记录,请先输入记录!"<<endl;
getch();
break;
}
if(s!=0)
{
cout<<"序号"<<"\t";
cout<<"姓名"<<"\t";
cout<<"学号"<<"\t";
cout<<"地址"<<"\t";
cout<<"高数"<<"\t";
cout<<"英语"<<"\t";
cout<<"计算机"<<endl;
for(int i=1;i<=s;i++)
st.print(i);
getch();
}
};break;

default:
{
while(a=='0'||a>'3') //判断选项是否正确
{
cout<<"错误选项,请重新选择!"<<endl;
cin>>a;
}
goto t;
};break;
}
}
cout<<"谢谢您的使用!"<<endl;
return 0;
}

既然你是使用iostream
你可以使用fstream来进行文件操作
fstream
void open ( const char * filename,
ios_base::openmode mode = ios_base::in | ios_base::out );
// fstream::open#include <fstream>using namespace std;

int main () {

fstream filestr;

filestr.open ("test.txt", fstream::in | fstream::out | fstream::app);

// >> i/o operations here <<

filestr.close();

return 0;
}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网