📄 bad.cpp
字号:
#include "cpp9.h"
/***********************************
* 生成均不及格的学生文件的处理函数
**********************************/
Student *Student::bad_record(Student *top)
{
int cb=0;
Student *old,*star;
old = star = top;
if(top->count==0)
{
cout<<"\t内存中没有可用记录"<<endl;
return top;
}
for ( int i=0; star!=NULL; i++)
{
//取出均不及格学生的信息
int fla=0;
int j=0;
while(1)
{
if(star->co[j].Getname()[0]=='0')break;
if(star->co[j].Getscore()>60)fla=1;
j++;
}
if(fla==0)
{
strcpy(bad[cb].no, star->no);
strcpy(bad[cb].name, star->name);
int j=0;
while(1)
{
if(star->co[j].Getname()[0]=='0')break;
strcpy(bad[cb].co[j].name,star->co[j].name);
bad[cb].co[j].score=star->co[j].score;
j++;
}
bad[cb].ave=star->ave;
if(top==star) top = star->next;
else old->next = star->next;
star = star->next;
++cb;
--count;
}
else
{
old = star;
star = star->next;
}
}
cout << "\n\t每科均不及格的学生信息如下:" << endl;
// cout << "\t学号\t名字\t数学\t语文\t平均\n";
for( i=0;i<cb;i++)
{
// if(bad[i].ave==0) break;
cout<<'\t'<<"学号:"<<bad[i].no<<'\t'<<"姓名:"<<bad[i].name<<'\t';
int j=0;
while(1)
{
if(bad[i].co[j].Getname()[0]=='0')break;
cout<<bad[i].co[j].Getname()<<":"<<bad[i].co[j].Getscore();
bad[i].co[j].Getnext();
j++;
}
cout<<"平均分:"<<bad[i].ave<<endl;
}
//存入文件
ofstream out;
out.open("bad.dat",ios::out);
if (!out)
{
cout << "\t不能打开文件!" << endl;
return top;
}
out.write((char *)bad,sizeof bad);
out.close();
cout << "\n\t文件存储成功" << endl;
if(count==0) //说明链表已空,需要重新初始化
{
ASK(top); //重新初始化
cout << "\t原文件在内存中的记录已经删空" << endl;
}
return top;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -