📄 赵彦斌.cpp
字号:
cout<<"输入选项:";cin>>a;
if(a==1)
{
k=findnum(remember);
if (k==0) cout<<"无此人"<<endl; else print1(k,remember);
}
else if(a==2)
{
k=findname(remember);
if (k==0) cout<<"无此人"<<endl; else print1(k,remember);
}
else if(a==3) menu();
else {cout<<"错误选项!";goto loop;}
cout<<"学生资料修改输入:===>>"<<endl;
for(int i=0;i<k;i++)
{
cout<<"学号:"; cin>>people[remember[i]].number; cout<<endl;
cout<<"姓名:"; cin>>people[remember[i]].name; cout<<endl;
cout<<"数学:"; cin>>people[remember[i]].math;cout<<endl;
cout<<"英语:"; cin>>people[remember[i]].e; cout<<endl;
cout<<"C++:"; cin>>people[remember[i]].c; cout<<endl;
}
fstream outf;
outf.open(file,ios::out|ios::binary);
if(!outf)
{
cout<<"File NO save;"<<endl;
abort();
}
for(i=0;i<n;i++)
{
if(i==k) continue;
else outf.write((char *)&people[i],sizeof(people[i]));
}
outf.close();
cout<<"学生信息修改完成。"<<endl;
}
cin.get();
menu();
}
void score() //成绩统计
{
double savg[3];
int pnum[3][5],good,lgood,so,ok,notok; //3 科 1~5 优秀,良好,中,及格,不及格 的人数
double sum[3]={0,0,0};
for(int j=0;j<n;j++) {sum[0]+=people[j].math;sum[1]+=people[j].e;sum[2]+=people[j].c;} //单科总成绩
for(int i=0;i<3;i++) savg[i]=sum[i]/n; //科目平均
for(i=0;i<5;i++)
{
good=0;lgood=0;so=0;ok=0;notok=0;
for(int j=0;j<n;j++)
{
if (people[j].math>=90) good++;else if(people[j].math>=80) lgood++;else if(people[j].math>=70) so++;else
if (people[j].math>=60) ok++;else notok++;
}
pnum[0][0]=good;pnum[0][1]=lgood;pnum[0][2]=so;pnum[0][3]=ok;pnum[0][4]=notok;
good=0;lgood=0;so=0;ok=0;notok=0;
for(j=0;j<n;j++)
{
if (people[j].e>=90) good++;else if(people[j].e>=80) lgood++;else if(people[j].e>=70) so++;else
if (people[j].e>=60) ok++;else notok++;
}
pnum[1][0]=good;pnum[1][1]=lgood;pnum[1][2]=so;pnum[1][3]=ok;pnum[1][4]=notok;
good=0;lgood=0;so=0;ok=0;notok=0;
for(j=0;j<n;j++)
{
if (people[j].c>=90) good++;else if(people[j].c>=80) lgood++;else if(people[j].c>=70) so++;else
if (people[j].c>=60) ok++;else notok++;
}
pnum[2][0]=good;pnum[2][1]=lgood;pnum[2][2]=so;pnum[2][3]=ok;pnum[2][4]=notok;
}
cout<<"┌────┬─────┬────┬────┬────┬────┬────┐"<<endl;
cout<<"│ 科目 │ 平均成绩 │ 优秀 │ 良好 │ 中等 │ 及格 │ 不及格 │"<<endl;
cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
cout<<"│ 数学 │"<<setw(5)<<savg[0]<<" │"<<setw(5)<<pnum[0][0]<<" │"<<setw(5)<<pnum[0][1]<< " │"
<<setw(5)<<pnum[0][2]<<" │"<<setw(5)<<pnum[0][3]<<" │"<<setw(5)<<pnum[0][4]<<" │"<<endl;
cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
cout<<"│ 英语 │"<<setw(5)<<savg[1]<<" │"<<setw(5)<<pnum[1][0]<<" │"<<setw(5)<<pnum[1][1]<< " │"
<<setw(5)<<pnum[1][2]<<" │"<<setw(5)<<pnum[1][3]<<" │"<<setw(5)<<pnum[1][4]<<" │"<<endl;
cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
cout<<"│ C++ │"<<setw(5)<<savg[2]<<" │"<<setw(5)<<pnum[2][0]<<" │"<<setw(5)<<pnum[2][1]<< " │"
<<setw(5)<<pnum[2][2]<<" │"<<setw(5)<<pnum[2][3]<<" │"<<setw(5)<<pnum[2][4]<<" │"<<endl;
cout<<"└────┴─────┴────┴────┴────┴────┴────┘"<<endl;
cout<<"比例(%)"<<endl;
cout<<"┌────┬─────┬────┬────┬────┬────┬────┐"<<endl;
cout<<"│ 科目 │ 平均成绩 │ 优秀 │ 良好 │ 中等 │ 及格 │ 不及格 │"<<endl;
cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
cout<<"│ 数学 │"<<setw(5)<<savg[0]<<" │"<<setw(5)<<pnum[0][0]/n*100<<" │"<<setw(5)<<pnum[0][1]/n*100<< " │"
<<setw(5)<<pnum[0][2]/n*100<<" │"<<setw(5)<<pnum[0][3]/n*100<<" │"<<setw(5)<<pnum[0][4]/n*100<<" │"<<endl;
cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
cout<<"│ 英语 │"<<setw(5)<<savg[1]<<" │"<<setw(5)<<pnum[1][0]/n*100<<" │"<<setw(5)<<pnum[1][1]/n*100<< " │"
<<setw(5)<<pnum[1][2]/n*100<<" │"<<setw(5)<<pnum[1][3]/n*100<<" │"<<setw(5)<<pnum[1][4]/n*100<<" │"<<endl;
cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
cout<<"│ C++ │"<<setw(5)<<savg[2]<<" │"<<setw(5)<<pnum[2][0]/n*100<<" │"<<setw(5)<<pnum[2][1]/n*100<< " │"
<<setw(5)<<pnum[2][2]/n*100<<" │"<<setw(5)<<pnum[2][3]/n*100<<" │"<<setw(5)<<pnum[2][4]/n*100<<" │"<<endl;
cout<<"└────┴─────┴────┴────┴────┴────┴────┘"<<endl;
menu();
}
void all() //总成绩统计
{
int a[100],flag;
if (n>=1)
{
for(int j=0;j<n;j++) //单人成绩相加
{
people[j].all=people[j].math+people[j].e+people[j].c;
people[j].avg=people[j].all/3;
}
for(j=0;j<n;j++)
{
flag=0;
for(int s=0;s<n;s++)
{
if (people[j].all<people[s].all) flag++;
}
a[j]=flag;
}
cout<<"┌─────┬─────┬──────┬──────┬─────┐"<<endl;
cout<<"│ 排名 │ 学号 │ 姓名 │ 平均分 │ 总成绩 │"<<endl;
cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
for(int i=0;i<n;i++)
{
cout<<"│ "<<setw(3)<<i+1
<<" │ "<<setw(5)<<people[*(a+i)].number
<<" │"<<setw(5)<<people[*(a+i)].name
<<" │"<<setw(5)<<people[*(a+i)].avg
<<" │"<<setw(5)<<people[*(a+i)].all
<<" │"<<endl;
if(i==n-1) break;
cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
}
cout<<"└─────┴─────┴──────┴──────┴─────┘"<<endl;
}
else cout<<"ERROR OR no student file."<<endl;
menu();
}
int findnum(int *r)
{
int number,k(0);
cout<<"输入学号:";cin>>number;
for(int i=0;i<n;i++)
if(number==people[i].number) {*(r+k)=i;k++;}
return k;
}
int findname(int *r)
{
int k(0);char name[20];
cout<<"输入学生名字:";cin>>name;
for(int i=0;i<n;i++)
if (strcmp(name,people[i].name)==0) {*(r+k)=i;k++;}
return k;
}
void countout()//个数记录
{
fstream out;
out.open("F:\\count.dat",ios::out);
if(!out){cout<<"count error"<<endl;abort();}
else out<<n<<endl;
out.close();
}
void countin()//个数读取
{
fstream in;
in.open("F:\\count.dat",ios::in);
if(!in){cout<<"in error"<<endl;abort();}
in>>n;
in.close();
}
void print(int l,int *p) //输出删除后所剩学生的信息
{
if(l==0) cout<<"NO student file."<<endl;
int m(0);
cout<<"┌─────┬─────┬──────┬──────┬─────┐"<<endl;
cout<<"│ 学号 │ 姓名 │ 数学 │ 英语 │ C++ │"<<endl;
cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
for(int i=0;i<l;i++)
{
if(i==*(p+m)) {m++;continue;}
cout<<"│ "<<setw(5)<<people[i].number
<<" │ "<<setw(5)<<people[i].name
<<" │"<<setw(5)<<people[i].math
<<" │"<<setw(5)<<people[i].e
<<" │"<<setw(5)<<people[i].c
<<" │"<<endl;
if(i==l-2) break;
cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
}
cout<<"└─────┴─────┴──────┴──────┴─────┘"<<endl;
}
void print() //通用查看学生信息
{
if (n==0) cout<<"NO student file."<<endl;
cout<<"┌─────┬─────┬──────┬──────┬─────┐"<<endl;
cout<<"│ 学号 │ 姓名 │ 数学 │ 英语 │ C++ │"<<endl;
cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
for(int i=1;i<n+1;i++)
{
cout<<"│"<<setw(5)<<people[i-1].number
<<" │"<<setw(5)<<people[i-1].name
<<" │ "<<setw(5)<<people[i-1].math
<<" │"<<setw(5)<<people[i-1].e
<<" │"<<setw(5)<<people[i-1].c
<<" │"<<endl;
if(i==n) break;
cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
}
cout<<"└─────┴─────┴──────┴──────┴─────┘"<<endl;
cin.get();cin.get();
}
void print1(int l,int *p) // 输出要删除的学生的信息
{
if (l==0) cout<<"NO student file."<<endl;
int m(0);
cout<<"┌─────┬─────┬──────┬──────┬─────┐"<<endl;
cout<<"│ 学号 │ 姓名 │ 数学 │ 英语 │ C++ │"<<endl;
cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
for(int i=1;i<l+1;i++)
{
cout<<"│ "<<setw(5)<<people[*(p+m)].number
<<" │ "<<setw(5)<<people[*(p+m)].name
<<" │"<<setw(5)<<people[*(p+m)].math
<<" │"<<setw(5)<<people[*(p+m)].e
<<" │"<<setw(5)<<people[*(p+m)].c
<<" │"<<endl;
if(i==l) break;
cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
}
cout<<"└─────┴─────┴──────┴──────┴─────┘"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -