📄 8.c
字号:
b+=a;c=b+c;
cout<<" ┃ ┃"<<endl
<<" ┠┄┄┄┄┄┄┄ 及格率统计 ┄┄┄┄┄┄┄┄┨"<<endl
<<" ┃ ┃"<<endl;
cout<<" ┃ ★ 优秀(90~100) : "<<setw(2)<<a<<"人"
<<" 优秀率:"<<setprecision(2)<<(float)100*a/n<<"% ┃"<<endl
<<" ┃ ☆ 良好(80~100) : "<<setw(2)<<b<<"人"
<<" 良好率:"<<setprecision(2)<<(float)100*b/n<<"% ┃"<<endl
<<" ┃ ● 及格(60~100) : "<<setw(2)<<c<<"人"
<<" 及格率:"<<setprecision(2)<<(float)100*c/n<<"% ┃"<<endl
<<" ┃ ◎ 重修( 0~59 ) : "<<setw(2)<<d<<"人"
<<" 重修率:"<<setprecision(2)<<(float)100*d/n<<"% ┃"<<endl
<<" ┃ ¤ 档 案 数 : "<<setw(2)<<n<<"条
┃"<<endl;
cout<<" ┃ ┃"<<endl
<<" █▇▆▅▄▃▂▁▁▁▁▁▁▁▁▁▂▃▄▅▆▇█"<<endl
<<endl<<" ▼▽按任意键返回主菜单▽▼"<<endl;
}
}
void prndata(FROMTO *p,float *p1,int n) //打印学生成绩子程序
{
int i;
char temp[2]={0};
if(!n)
cout<<"▲△ >非法操作< 没有任何数据,按任意键返回△▲"<<endl;
else
{
cout<<endl;
cout<<"╔═══════════════════════════════════
══╗"<<endl
<<"║
║"<<endl
<<"║ 学生成绩统计列表
║"<<endl
<<"║
║"<<endl
<<"╟────────────────────────────────────
─╢"<<endl;
cout<<"║"<<setfill(' ')
<<" 姓名"
<<setw(8)<<"学号"
<<setw(8)<<"单片机"
<<setw(10)<<"通信原理"
<<setw(10)<<"锁相技术"
<<setw(10)<<"光纤通信"
<<setw(10)<<"C++程序设计"
<<setw(10)<<"平均成绩"<<"║"<<endl
<<"╟┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
┄╢"<<endl;
for(i=0;i<n;i++)
cout<<"║"<<setw(2)<<setiosflags(ios::left)<<i+1<<"."<<setw(6)<<p[i].name<<"
"<<setw(8)<<p[i].number
<<setprecision(4)<<" "<<p[i].score[0]<<" "<<p[i].score[1]<<"
"<<p[i].score[2]
<<" "<<p[i].score[3]<<" "<<p[i].score[4]<<" "<<setw(5)<
<setprecision(4)
<<setiosflags(ios::left)<<p[i].aves<<" ║"<<endl;
cout<<"╟┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
┄┄┄┄╢"<<endl;
cout<<"║"<<"平均分 ☆★☆★ "<<setw(9)<<setprecision(4)<<setiosflags
(ios::left)<<p1[0]
<<setw(9)<<setprecision(4)<<setiosflags(ios::left)<<p1[1]<<setw(11)<<
setprecision(4)
<<setiosflags(ios::left)<<p1[2]<<setw(11)<<setprecision(4)<<setiosflags(ios:
:left)<<p1[3]
<<setprecision(4)<<setiosflags(ios::left)<<p1[4]<<setw(5)<<setiosflags
(ios::right)<<" ║"<<endl
<<"╚═════════════════════════════════
════╝"
<<endl<<setiosflags(ios::right)<<endl;
}
}
void savedata(FROMTO *p,int n) //存档程序
{
int i;
FILE *fp;
if (!n)
cout<<"▲△ >非法操作< 没有任何数据,按任意键返回△▲"<<endl;
else
{
if((fp=fopen("DATA.txt","w"))==NULL)
{
printf("▲△ 错误!不能打开文件! 按任意键返回 ▲△\n");
exit(0);}
for(i=0;i<n;i++)
fprintf(fp,"%-7s %-10s %5.1f %5.1f %5.1f %5.1f %5.1f %5.1f\n",p[i].name,p[i]
.number,
p[i].score[0],p[i].score[1],p[i].score[2],p[i].score[3],p[i].score[4],p[i]
.aves);
fclose(fp);
printf("▼▽ 存盘完毕!按任意键返回主菜单 ▼▽\n\n");
}
}
void loaddata(FROMTO *p,int *n) //导入学生档案
{
int i=0;
FILE *fp;
if((fp=fopen("DATA.txt","r"))==NULL)
{ cout<<"▲△ >非法操作< 没有任何数据,按任意键返回△▲"<<endl;
exit(0);
}
while(!feof(fp))
{
fscanf(fp,"%s %s %f %f %f %f %f %f",p[i].name,p[i].number,&p[i].score[0],&p[i]
.score[1],
&p[i].score[2],&p[i].score[3],&p[i].score[4],&p[i].aves);
i++;
}
fclose(fp);
*n=i-1;
cout<<"▼▽ 己经成功读入数据!按任意键返回! ▼▽"<<endl;
}
void deldata(FROMTO *p,int n) //删除档案记录子程序
{
int i,m;
FILE *fp;
if (!n)
cout<<"▲△ >非法操作< 没有任何数据,按任意键返回△▲"<<endl;
else
{
if((fp=fopen("DATA.txt","w"))==NULL)
{
printf("▲△ 错误!不能打开文件! 按任意键返回 ▲△\n");
exit(0);
}
else
{
cout<<endl<<endl<<endl;
cout<<"☆!☆ 一旦删除将无法挽回,请输入档案序号(键入'0'返回) : ";
cin>>m;
m-=1;
for(i=0;i<m;i++)
fprintf(fp,"%-7s %-10s %5.1f %5.1f %5.1f %5.1f %5.1f %5.1f\n",
p[i].name,p[i].number,p[i].score[0],p[i].score[1],p[i].score[2],
p[i].score[3],p[i].score[4],p[i].aves);
for(i=m+1;i<n;i++)
fprintf(fp,"%-7s %-10s %5.1f %5.1f %5.1f %5.1f %5.1f %5.1f\n",
p[i].name,p[i].number,p[i].score[0],p[i].score[1],p[i].score[2],
p[i].score[3],p[i].score[4],p[i].aves);
fclose(fp);
}
printf("▼▽ 该条档案已经删除,按任意键返回主菜单 ▼▽\n\n");
}
}
void gotomenu() //返回菜单显示子程序
{
cout<<endl<<" ▼▽按任意键返回主菜单▽▼"<<endl<<endl;
}
void someendl() //换行子程序
{
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
}
void about()
{
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl
<<" ▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽ "<<
endl
<<" ◇ ◇ "<<
endl
<<" ◇ SoQool 学生成绩管理系统 Ver1.03 ◇ "<<
endl
<<" ◇ ┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ ◇ "<<
endl
<<" ◇ 作者:罗宁 (学号01072054) ◇ "<<
endl
<<" ◇ 联系地址:中南民大通信工程01级02班 ◇ "<<
endl
<<" ◇ 电话 / QQ:87535595 / 38423952 ◇ "<<
endl
<<" ◇ ◇
"<<endl
<<" ◇ √ copyright (c) 2004.05.22 ◇ "<<
endl
<<" ◇ 尊重知识产权 购买正版 ◇ "<<
endl
<<" ◇ ◇
"<<endl
<<" △△△△△△△△△△△△△△△△△△△△△△△△△△△△ "<<
endl
<<" "<<endl
<<" "<<endl
<<endl<<endl
<<endl<<" ▼▽按任意键返回主菜单▽▼"<<endl;
}
main()
{
FROMTO s_user[M]={0};
float s_aves[N]={0};
int ch,num=0;
do
{
menu();
do
{
ch=getch()-48;}
while(!(ch>=0&&ch<=9));
switch(ch)
{
case 1:input(s_user,&num);break;
case 2:averdata(s_user,s_aves,num);potiscore(s_user,num);statdata(s_user,num)
;break;
case 3:averdata(s_user,s_aves,num);prndata(s_user,s_aves,num);gotomenu()
;break;
case 4:loaddata(s_user,&num);break;
case 5:savedata(s_user,num);break;
case 6:about();break;
case 7:prndata(s_user,s_aves,num);deldata(s_user,num);loaddata(s
_user,&num);someendl();prndata(s_user,s_aves,num);gotomenu();break;
case 0:exit(0);break;
}
}
while(getch()!=EOF);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -