用c++制作一个成绩记录簿的课程设计,但是许多功能实现不了,磁盘文件不会调用,求大神帮忙
#include
#include
#include
#include
#define N 1000
using namespace std;
class Student//定义一个学生类
{
public:
Student(long n=100000,string na="无",string se="男",float c=0):num(n),name(na),sex(se),cpp(c){};
long num;
string name;
string sex;
float cpp;
};
void display()
{
int i;
Student stud[N];
system("color 4C");
fstream iofile("学生信息.dat",ios::in|ios::out|ios::binary);
if(!iofile)
{cerr<<"open error!"<<endl;
abort();
}
for(i=0;i<5;i++)
iofile.write((char *)&stud[i],sizeof(stud[i]));
for(i=0;i<5;i++)
{
iofile.read((char *)&stud[i],sizeof(stud[i]));
cout<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].sex<<" "<<stud[i].cpp<<" "<<endl;
}
iofile.close();
}
void search_by_num()
{system("color 3D");
Student stud[5];
int i;
long n;
ifstream infile("学生信息.dat",ios::in);
if(!infile)
{cerr<<"open error!"<
exit(1);
}
cout
cin>>n;
cout<<"该学生信息如下:"<
for(i=0;i
{infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].cpp;
}
for(i=0;i
{
if(stud[i].num==n)
{cout
cout
cout
cout
cout
cout
}
}
infile.close();
}
void search_by_name()
{ system("color 3E");
Student stud[5];
int i;
string namel;
ifstream infile("学生信息.dat",ios::in);
if(!infile)
{cerr
exit(1);
}
cout
cin>>namel;
cout<<"该学生信息如下:"<
for(i=0;i
{infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].cpp;
}
for(i=0;i
{if(stud[i].name==namel)
{cout
cout
cout
cout
cout
cout
}
}
infile.close();
}
void add()
{ system("color 3B");
Student studx;
ofstream outfilel("增加信息.dat");
if(!outfilel)
{cerr
exit(1);
}
cout
cout
cin>>studx.num;
cout<<"姓名:";
cin>>studx.name;
cout<<"性别:";
cin>>studx.sex;
cout<<"c++:";
cin>>studx.cpp;
outfilel<<" "<
outfilel.close();
}
void save_to_information()
{system("color 3A");
Student studx;
ifstream infile("增加信息.dat");
if(!infile)
{cerr
exit(1);
}
ofstream outfile("学生信息.dat",ios::app);
if(!outfile)
{cerr
exit(1);
}
infile>>studx.num>>studx.name>>studx.sex>>studx.cpp;
outfile<<" "<
infile.close();
outfile.close();
cout
void change_by_num()
{system("color 3D");
Student stud[5];
int i;
long numl;
long nu;
string se;
float cp;
ifstream infile("学生信息.dat",ios::in);
if(!infile)
{cerr
exit(1);
}
cout
cin>>numl;
for(i=0;i
{infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].cpp;
}
infile.close();
ofstream outfile("学生信息 .dat",ios::out);
if(!outfile){cerr<<"open file error!";exit(1);
}
cout<<"请输入修改数据:"<
cout
cin>>nu;
cout<<"性别:";
cin>>se;
cout<<"C++:";
cin>>cp;
for(i=0;i
{if(stud[i].num=numl&&stud[i].num!=100000)
{stud[i].num=nu;stud[i].sex=se;stud[i].cpp=cp;}
if(stud[i].num!=10000)outfile
}
cout
outfile.close();//如果学号不等于100000,才保存文件;
}
void change_by_name()
{Student stud[5];
int i;
string namel;
long nu;
string na;
string se;
float cp;
ifstream infile("学生信息.dat",ios::in);
if(!infile)
{cerr
exit(1);
}
cout
cin>>namel;
for(i=0;i
{infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].cpp ;}
infile.close();
ofstream outfile("学生信息dat",ios::out);
if(!outfile){cerr<<"open file error!";exit(1);}
cout<<"请输入修改数据:"<
cout
cin>>nu;
cout<<"性别:";
cin>>se;
cout<<"C++:";
cin>>cp;
for(i=0;i
{if(stud[i].name==namel&&stud[i].num!=100000){stud[i].num=nu;stud[i].sex=se;stud[i].cpp=cp;}
if(stud[i].num!=100000)outfile
}
cout
outfile.close();
}
void display_by_select_cpp()
{Student stud[5];
float average=0;
float total=0;
int i;
int j=0;
int k=0;
int m=0;
int n=0;
int p=0;
fstream infile("学生信息.dat",ios::in);
if(!infile)
{
cerr
exit(1);
}
for(i=0;i
{
infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].cpp ;
total=total+stud[i].cpp;}
infile.close();
cout<<"-------90分以上的学生--------"<
{cout
for(i=0;i
{if(stud[i].cpp=90)
{if(stud[i].num==100000)break;
cout<
cout
j++;
}
}
cout
cout
cout
cout
for(i=0;i
{
if(stud[i].cpp=80)
{if(stud[i].num==100000)break;
cout<
cout
j++;k++;}}
cout
cout
cout
cout
for(i=0;i
{
if(stud[i].cpp=70)
{if(stud[i].num==100000)break;
cout<
cout
j++;m++;
}
}
cout
cout
cout
cout
for(i=0;i
{
if(stud[i].cpp=60)
if(stud[i].num==100000)break;
cout<
cout
j++;n++;}}
cout
cout
cout
cout
for(i=0;i
{if(stud[i].cpp=0)
{if(stud[i].num==100000)break;
cout<<setiosflags(ios::left);
cout<<setw(10)<<stud[i].name<<setw(8)<<stud[i].num<<setw(8)<<stud[i].sex<<setw(8)<<stud[i].cpp<<endl;
j++;p++;}}
average=total/j;
cout<<endl<<endl<<endl;
cout<<"总计:"<<p<<"人,学生总人数"<<j<<"人,班级C++平均分"<<average<<endl<<endl;
cout<<"-------------------"<<endl;
}
void Main_desk()
{cout<<endl<<endl<<endl;
cout<<"***********************************"<<endl;
cout<<" * 欢迎使用学生成绩记录簿*"<<endl;
cout<<"* "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" 1.显示所有 "<<endl;
cout<<" 2.查询信息 "<<endl;
cout<<" 3.增加记录 "<<endl;
cout<<" 4.修改数据 "<<endl;
cout<<" 5.成绩分段 "<<endl;
cout<<" 6.退出 "<<endl;
cout<<" ********************************"<<endl;
cout<<"* 请输入功能导向码 *"<<endl;
}
void Search_desk()
{cout<<"*************************"<
cout
cout
cout
cout
}
void Change_desk()
{cout
cout
cout
cout
cout
}
void Add_desk()
{cout
cout
cout
cout
}
void Del_desk()
{
}
void del_by_num()
{
}
void del_by_name()
{
}
int key()
{int n;
cin>>n;
return n;
}
int main()
{system("color 3B");
while(1)
{Main_desk();
switch(key())
{
case 1:system("cls");display();break;
case 2:system("cls");while(1)
{Search_desk();
switch(key())
{case 1:search_by_num();break;
case 2:search_by_name();break;
case 3:system("cls");main();break;
}
}
break;
case 3:system("cls");while(1)
{Add_desk();
switch(key())
{case 1:add();save_to_information();break;
case 2:system("cls");main();break;
}
}
break;
case 4:system("cls");while(1)
{Change_desk();
switch(key())
{case 1:change_by_num();break;
case 2:change_by_name();break;
case 3:system("cls");main();break;
}
}
break;
case 5:system("cls");
while(1)
{Del_desk();
switch(key())
{case 1:del_by_num();break;
case 2:del_by_name();break;
case 3:system("cls");main();break;
}
}break;
case 6:exit(1);break;
}
}
return 0;}