}
//按学号及学期查找
void searchnum(Student *r) { 结构\
< \平均分\ int n,k; system(\清屏 if(num>0) { cout<<\请输入要查找学生的学号:\cin>>n; cout<<\请输入学期号:\cin>>k; for(int m=0;m if(r[m].num==n&&r[m].term==k) { cout< cout<<\ 要 查 找 的 信 息 如 下 //如果找到了输出并跳出循环 } else cout<<\未输入任何信息!!\cout<<\文件已经读入\ cout<<\ 学 生 信 息 如 下 fclose(fp); //关闭文件 <------------------------------\ cout<<\学号\姓名\高等数学\数据结构 <<\大学英语\学期\总分\平均分\ \设置输出宽度 cout<<\for(m=0;m cout<<\ < cout< <-----------------------------\ cout<<\学号\姓名\高等数学\数据 21 } //按姓名及学期查找 void searchname(Student *r) { 结构\ < < char n[12]; int k; system(\清屏 if(num>0) //如果没输入就查找提示 { cout<<\请输入要查找学生的姓名:\cin>>n; cout<<\请输入学期号:\cin>>k; for(int m=0;m if((r[m].name[0] == n[0]) && (r[m].term == k)) //如果找到了输出并跳出循环 { cout< cout<<\ 要 查 找 的 信 息 如 下 } else cout<<\未输入任何信息!!\if(r[m].num!=n&&r[m].term!=k) //若没找到提示不存在 cout<<\该学号不存在,或没有这个学期的成绩!\ } } < cout< break; <---------------------------\ cout<<\学号\姓名\高等数学\数据 cout< 22 } //按学号及学期修改信息 void change(Student *r) { 结构\ cout< < < \平均分\ for(int m=0;m if(r[m].num==n && r[m].term==k) { int j; cout< cout<<\ 修 改 前 的 信 息 如 下 FILE *fp; int n=0; char chiose ='Y'; if(num>0) { int n,k; int t=0; system(\清屏 cout<<\输入要修改成绩的学生学号:\cin>>n; cout<<\所需修改的学期:\cin>>k; } else cout<<\未输入任何信息!!\ } if(r[m].name[0]!=n[0]&&r[m].term!=k) //若没找到提示不存在 cout<<\该姓名不存在,或没有这个学期的成绩!\ } break; <--------------------------\ cout<<\学号\姓名\高等数学\数据 cout< 23 } else if((fp=fopen(\{ } for(n=0;n cout<<\文件不能打开\exit(0); cout<<\未输入任何信息!!\ } } while (chiose=='Y'||chiose=='y') { } cout<<\可以修改的项目如下 <-------\\n\cout<<\修改学生的 高等数学 成绩记录\\n\cout<<\修改学生的 数据结构 成绩记录\\n\cout<<\修改学生的 大学英语 成绩记录\\n\cin>>j; switch(j) { case 1: } t=1; cout<<\是否要继续修改此学生的其他成绩记录?(Y/N)\fflush(stdin); cin>>chiose; //清空输入缓冲区,通常 cout<<\输入新的 高等数学 成绩:\cin>>r[m].mark1; break; cout<<\输入新的 数据结构 成绩:\cin>>r[m].mark2; break; cout<<\输入新的 大学英语 成绩:\cin>>r[m].mark3; break; cout<<\请选择:\ case 2: case 3: 是为了确保不影响后面的数据读取 24 fprintf(fp,\ } //插入 Student *insert(Student *r) { FILE *fp; int m; char n; do{ if((fp=fopen(\{ } for(int o=0;o cout<<\文件不能打开\exit(0); } fclose(fp); cout<<\文件已修改并写入\ fprintf(fp,\ rk1,r[n].mark2,r[n].mark3,r[n].term,r[n].sum,r[n].average); fscanf(fp,\ } Student *y = (Student *)new Student[num+1]; for(m=0;m cout<<\请输入学期:\cin>>r[num].term; cout<<\请输入学号:\cin>>r[num].num; cout<<\请输入姓名:\cin>>r[num].name; cout<<\请输入 高等数学 成绩:\cin>>r[num].mark1; cout<<\请输入 数据结构 成绩:\cin>>r[num].mark2; y[m]=r[m]; //定义另一个数组,用于存放新添加 [o].term,&r[o].sum,&r[o].average); 的记录 25