#includestdio.h
#includestring.h
#includestdlib.h
#includemath.h
#defineSIZE
#defineSIZE27
#definePI3.
structstudent_grade//学生成绩
{
intnum;//学号
charname[10];//姓名
floatgrd[7];//成绩
floatave;//加权平均分
intmc;//名次
}gd[SIZE1],k;//结构体数组长度为全班人数
structstudent_info//学生信息
{
intnum;//学号
charname[10];//姓名
charsex[4];//性别
intage;//年龄
charduty[10];//职务
}info[SIZE1],l;
structcredits//课程学分
{
intnum;//编号
charsbj[10];//课程名称
floatpnt;//学分
}pts[SIZE2];
intmain()
{
intsection1();
intsection3();
charch1;
do{
printf(\n\n\n\n\n\n\n\n\n);
printf(**************C语言程序设计上机实习****************\n);
printf(---------------------------------------------------------------------------\n\n);
printf(1学生成绩管理\n\n);
printf(2破译密码\n\n);
printf(3显示心形\n\n);
printf(4退出\n\n);
printf(输入选择序号\n);
while((ch1=getchar(),ch1!=1ch1!=2ch1!=3ch1!=4));
switch(ch1)
{
case1:section1();break;
case3:section3();break;
case4:return(0);
}
}while(1);
}
intsection1()
{
voidfunction1_1();
voidfunction1_2();
voidfunction1_3();
voidfunction1_4();
voidfunction1_5();
voidfunction1_6();
voidfunction1_7();/*第1个2级菜单*/
charch21;
do{
system(cls);/*清屏*/
printf(\n\n\n\n\n\n\n\n\n\n);
printf(*********************学生成绩管理系统**********************\n);
printf(------------------------------------------------------------------------\n\n);
printf(1.读入原始数据并显示2.计算平均分及名次\n\n);
printf(3.输出课程平均分和各分数段人数4输出男生和女生课程平均成绩\n\n);
printf(5.统计不及格情况6.输出优秀学生\n\n);
printf(7.输出优秀学生干部8.返回上级菜单\n\n);
FILE*fp1,*fp2,*fp3;
inti,j;charstr[];
if((fp1=fopen(E:\\grade.txt,r))==NULL)
{printf(cannotopenfile\n);
exit(0);}
fgets(str,,fp1);
for(i=0;iSIZE1;i++)
{
fscanf(fp1,%d%s,gd[i].num,gd[i].name);
for(j=0;jSIZE2;j++)
fscanf(fp1,%f,gd[i].grd[j]);
}
fclose(fp1);
if((fp2=fopen(E:\\info.txt,r))==NULL)
{printf(cannotopenfile\n);
exit(0);}
fgets(str,,fp2);
for(i=0;iSIZE1;i++)
fscanf(fp2,%d%s%s%d%s,info[i].num,info[i].name,info[i].sex,info[i].age,info[i].duty);
fclose(fp2);
if((fp3=fopen(E:\\credits.txt,r))==NULL)
{printf(cannotopenfile\n);
exit(0);}
fgets(str,,fp3);
for(i=0;iSIZE2;i++)
fscanf(fp3,%d%s%f,pts[i].num,pts[i].sbj,pts[i].pnt);
fclose(fp3);
printf(输入选择序号\n);
while((ch21=getchar(),ch21!=1ch21!=2ch21!=3ch21!=4ch21!=5ch21!=6ch21!=7ch21!=8));
switch(ch21)
{
case1:function1_1();break;
case2:function1_2();break;
case3:function1_3();break;
case4:function1_4();break;
case5:function1_5();break;
case6:function1_6();break;
case7:function1_7();break;
case8:return(0);
}
}while(1);
}
intsection3()/*第3个2级菜单*/
{
voidfunction3_1();
charch23;
do{
system(cls);
printf(\n\n\n\n\n\n\n\n\n\n);
printf(*****************显示心形****************\n);
printf(---------------------------------------------------------\n);
printf(1.运行\n\n);
printf(2.返回上级菜单\n\n);
printf(输入选择序号\n);
while((ch23=getchar(),ch23!=1ch23!=2));
switch(ch23)
{
case1:function3_1();break;
case2:return(0);
}
}while(1);
}
voidfunction1_1()//读入原始数据并显示
{
printf(加入读入原始数据并显示的程序内容\n);
inti,j;
printf(学号姓名高数听力英语毛概近代体育形式\n);
for(i=0;iSIZE1;i++)
{
printf(%10d%12s,gd[i].num,gd[i].name);
for(j=0;jSIZE2;j++)
printf(%6.2f,gd[i].grd[j]);
printf(\n);
}
printf(\n\n);
printf(学号姓名性别年龄职务\n);
for(i=0;iSIZE1;i++)
printf(%10d%12s%s%4d%12s\n,info[i].num,info[i].name,info[i].sex,info[i].age,info[i].duty);
printf(\n\n);
printf(编号课程学分\n);
for(i=0;iSIZE2;i++)
printf(%d%s%f\n,pts[i].num,pts[i].sbj,pts[i].pnt);
printf(*********按Enter键继续**********\n);
getchar();getchar();
}
voidfunction1_2()//计算平均分及名次
{
printf(加入计算平均分及名次的程序内容\n);
inti,j;FILE*fp;
for(i=0;iSIZE1;i++)
{
floatsum=0,n=0;
for(j=0;jSIZE2;j++)
{
sum=sum+gd[i].grd[j]*pts[j].pnt;
n=n+pts[j].pnt;
}
gd[i].ave=sum/n;
}
for(j=0;jSIZE1;j++)
for(i=0;iSIZE1-j;i++)
if(gd[i].avegd[i+1].ave)
{
k=gd[i];
gd[i]=gd[i+1];
gd[i+1]=k;}
for(i=0;iSIZE1;i++)
gd[i].mc=i+1;
if((fp=fopen(E:\\mc.txt,w))==NULL)
{
printf(cannotopenfile\n);
exit(0);
}
fprintf(fp,学号姓名高数听力英语毛概近代体育形式平均分名次\n);
for(i=0;iSIZE1;i++)
{
fprintf(fp,%10d%6s,gd[i].num,gd[i].name);
for(j=0;jSIZE2;j++)
fprintf(fp,%6.2f,gd[i].grd[j]);
fprintf(fp,%6.2f%d\n,gd[i].ave,gd[i].mc);
}
fclose(fp);
printf(学号姓名高数听力英语毛概近代体育形式平均分名次\n);
for(i=0;iSIZE1;i++)
{
printf(%10d%6s,gd[i].num,gd[i].name);
for(j=0;jSIZE2;j++)
printf(%6.2f,gd[i].grd[j]);
printf(%6.2f%d\n,gd[i].ave,gd[i].mc);
}
printf(*********按Enter键继续**********\n);
getchar();getchar();
}
voidfunction1_3()
{
printf(加入计算课程平均分和分数段人数程序内容\n);
inti,j,k=0,rs[SIZE2][5]={0};
floatve[SIZE2]={0};
FILE*fp;
for(i=0;iSIZE2;i++)
for(j=0;jSIZE1;j++)
if(gd[j].grd[i]=90)
rs[i][0]++;
elseif(gd[j].grd[i]=80)
rs[i][1]++;
elseif(gd[j].grd[i]=70)
rs[i][2]++;
elseif(gd[j].grd[i]=60)
rs[i][3]++;
else
rs[i][4]++;
for(i=0;iSIZE2;i++)
{
{
for(j=0;jSIZE1;j++)
ve[k]+=gd[j].grd[i];
}
ve[k]/=SIZE1;k++;
}
if((fp=fopen(E:\\chengji.txt,w))==NULL)
{
printf(cannotopenfile\n);
exit(0);
}
fprintf(fp,分数段高数听力英语毛概近代体育形式\n);
fprintf(fp,=90);
for(i=0;iSIZE2;i++)
fprintf(fp,%8d,rs[i][0]);
fprintf(fp,\n);
fprintf(fp,80~90);
for(i=0;iSIZE2;i++)
fprintf(fp,%8d,rs[i][1]);
fprintf(fp,\n);
fprintf(fp,70~80);
for(i=0;iSIZE2;i++)
fprintf(fp,%8d,rs[i][2]);
fprintf(fp,\n);
fprintf(fp,60~70);
for(i=0;iSIZE2;i++)
fprintf(fp,%8d,rs[i][3]);
fprintf(fp,\n);
fprintf(fp,60);
for(i=0;iSIZE2;i++)
fprintf(fp,%8d,rs[i][4]);
fprintf(fp,\n);
fprintf(fp,课程平均分);
for(i=0;iSIZE2;i++)
fprintf(fp,%.2f,ve[i]);
fclose(fp);
printf(分数段高数听力英语毛概近代体育形式\n);
printf(=90);
for(i=0;iSIZE2;i++)
printf(%8d,rs[i][0]);
printf(\n);
printf(80~90);
for(i=0;iSIZE2;i++)
printf(%8d,rs[i][1]);
printf(\n);
printf(70~80);
for(i=0;iSIZE2;i++)
printf(%8d,rs[i][2]);
printf(\n);
printf(60~70);
for(i=0;iSIZE2;i++)
printf(%8d,rs[i][3]);
printf(\n);
printf(60);
for(i=0;iSIZE2;i++)
printf(%8d,rs[i][4]);
printf(\n);
printf(课程平均分);
for(i=0;iSIZE2;i++)
printf(%.1f,ve[i]);
printf(\n*********按Enter键继续**********\n);
getchar();getchar();
}
voidfunction1_4()
{
printf(加入计算男生和女生课程平均成绩程序内容\n);
inti,j,k=0,l=0;
doublem,sum;
doublev1[7]={0},v2[7]={0};
FILE*fp3;
for(i=0;iSIZE2;i++)
{
m=0;sum=0;
for(j=0;jSIZE1;j++)
if(strcmp(info[j].sex,男)==0)
{
sum+=gd[j].grd[i];
m++;
}
sum/=m;
v1[k]=sum;
k++;
}
for(i=0;iSIZE2;i++)
{
m=0,sum=0;
for(j=0;jSIZE1;j++)
if(strcmp(info[j].sex,男)!=0)
{
sum+=gd[j].grd[i];
m++;
}
sum/=m;
v2[l]=sum;
l++;
}
if((fp3=fopen(E:\\nannv.txt,w))==NULL)
{
printf(cannotopenfile\n);
exit(0);
}
fprintf(fp3,性别高数听力英语毛概近代体育形式\n);
fprintf(fp3,男);
for(i=0;iSIZE2;i++)
fprintf(fp3,%.2f,v1[i]);
fprintf(fp3,\n);
fprintf(fp3,女);
for(i=0;iSIZE2;i++)
fprintf(fp3,%.2f,v2[i]);
fprintf(fp3,\n);
fclose(fp3);
printf(性别高数听力英语毛概近代体育形式\n);
printf(男);
for(i=0;iSIZE2;i++)
printf(%.2f,v1[i]);
printf(\n);
printf(女);
for(i=0;iSIZE2;i++)
printf(%.2f,v2[i]);
printf(\n);
printf(*********按Enter键继续**********\n);
getchar();getchar();
}
voidfunction1_5()
{
printf(加入统计不及格情况程序内容\n);
inti,j;
FILE*lp;
for(i=0;iSIZE1;i++)
if((lp=fopen(E:\\bujige.txt,w))==NULL)
{
printf(cannotopenfile\n);
exit(0);
}
fprintf(lp,不及格科目学号姓名分数\n);
for(j=0;jSIZE2;j++)
for(i=0;iSIZE1;i++)
if(gd[i].grd[j]60)
fprintf(lp,%4s%8d%10s%6.2f\n,pts[j].sbj,gd[i].num,gd[i].name,gd[i].grd[j]);
fclose(lp);
printf(不及格科目学号姓名分数\n);
for(j=0;jSIZE2;j++)
for(i=0;iSIZE1;i++)
if(gd[i].grd[j]60)
printf(%4s%8d%10s%6.2f\n,pts[j].sbj,gd[i].num,gd[i].name,gd[i].grd[j]);
printf(*********按Enter键继续**********\n);
getchar();getchar();
}
voidfunction1_6()
{
printf(加入输出优秀学生程序内容\n);
inti,j,m=0;
inta[]={0},b[]={0};
floatnum;
FILE*fp4;
if((fp4=fopen(E:\\yxxs.txt,w))==NULL)
{
printf(cannotopenfile\n);
exit(0);
}
for(i=0;iSIZE1;i++)
{
num=0;
for(j=0;jSIZE2;j++)
num+=gd[i].grd[j];
gd[i].ave=num/SIZE2;
}
for(j=0;jSIZE1;j++)
for(i=0;iSIZE1-j;i++)
if(gd[i].avegd[i+1].ave)
{
k=gd[i];
gd[i]=gd[i+1];
gd[i+1]=k;
l=info[i];
info[i]=info[i+1];
info[i+1]=l;
}
for(i=0;iSIZE1;i++)
gd[i].mc=i+1;
fprintf(fp4,学号姓名性别职务高数听力英语毛概近代体育形式平均名次\n);
for(i=0;iSIZE1;i++)
{
inta=0,b=0;
for(j=0;jSIZE2;j++)
{
if(gd[i].grd[j]=95)a++;
if(gd[i].grd[j]=90)b++;
}
if(gd[i].ave=90
gd[i].mc=3
(gd[i].ave=85(a=0
b=0)))
{
fprintf(fp4,%10d%6s%4s%6s,gd[i].num,gd[i].name,info[i].sex,info[i].duty);
for(j=0;jSIZE2;j++)
fprintf(fp4,%6.2f,gd[i].grd[j]);
fprintf(fp4,%6.2f%4d\n,gd[i].ave,gd[i].mc);
}
}
fclose(fp4);
printf(学号姓名性别职务高数听力英语毛概近代体育形式平均名次\n);
for(i=0;iSIZE1;i++)
{
inta=0,b=0;
for(j=0;jSIZE2;j++)
{
if(gd[i].grd[j]=95)a++;
if(gd[i].grd[j]=90)b++;
}
if(gd[i].ave=90
gd[i].mc=3
(gd[i].ave=85(a=1
b=2)))
{
printf(%10d%6s%4s%6s,gd[i].num,gd[i].name,info[i].sex,info[i].duty);
for(j=0;jSIZE2;j++)
printf(%6.2f,gd[i].grd[j]);
printf(%6.2f%4d\n,gd[i].ave,gd[i].mc);
}
}
printf(*********按Enter键继续**********\n);
getchar();getchar();
}
voidfunction1_7()
{
printf(加入输出优秀学生干部程序内容\n);
inti,j,m=0;
floatnum;
charstr[];
FILE*fp4;
if((fp4=fopen(E:\\yxgb.txt,w))==NULL)
{printf(cannotopenfile\n);
exit(0);}
for(i=0;iSIZE1;i++)
{num=0;
for(j=0;jSIZE2;j++)
num+=gd[i].grd[j];
gd[i].ave=num/7.0;
}
for(j=0;jSIZE1;j++)
for(i=0;iSIZE1-j;i++)
if(gd[i].avegd[i+1].ave)
{
k=gd[i];
gd[i]=gd[i+1];
gd[i+1]=k;
l=info[i];
info[i]=info[i+1];
info[i+1]=l;
}
for(i=0;iSIZE1;i++)
gd[i].mc=i+1;
fprintf(fp4,优秀学生干部名单\n);
fprintf(fp4,学号姓名性别职务高数听力英语毛概近代体育形式平均名次\n);
for(i=0;iSIZE1;i++)
{
inta=0,b=0;
for(j=0;jSIZE2;j++)
{
if(gd[i].grd[j]=95)a++;
if(gd[i].grd[j]=90)b++;
}
if(((strcmp(info[i].duty,无)!=0)(gd[i].ave=85
gd[i].mc=SIZE1*0.2
(gd[i].ave=80(a=1
b=2)))))
{
fprintf(fp4,%9d%7s%3s%9s,gd[i].num,gd[i].name,info[i].sex,info[i].duty);
for(j=0;jSIZE2;j++)
fprintf(fp4,%6.2f,gd[i].grd[j]);
fprintf(fp4,%6.2f%3d\n,gd[i].ave,gd[i].mc);
}
}
fclose(fp4);
printf(优秀学生干部名单\n);
printf(学号姓名性别职务高数听力英语毛概近代体育形式平均名次\n);
for(i=0;iSIZE1;i++)
{
inta=0,b=0;
for(j=0;jSIZE2;j++)
{
if(gd[i].grd[j]=95)a++;
if(gd[i].grd[j]=90)b++;
}
if(((strcmp(info[i].duty,无)!=0)(gd[i].ave=85
gd[i].mc=SIZE1*0.2
(gd[i].ave=80(a=1
b=2)))))
{
printf(%9d%7s%3s%9s,gd[i].num,gd[i].name,info[i].sex,info[i].duty);
for(j=0;jSIZE2;j++)
printf(%6.2f,gd[i].grd[j]);
printf(%6.2f%3d\n,gd[i].ave,gd[i].mc);
}
}
printf(*********按Enter键继续**********\n);
getchar();getchar();
}
voidfunction3_1()
{
printf(加入显示心形的程序内容\n);
inti,j,q,x,y;
doubles,r;
charcs[52][50];
for(i=0;i50;i++)
for(j=0;j50;j++)
cs[i][j]=;
for(q=0;q=;q++)
{
s=q*PI/;
r=20*(1-sin(s));
y=r*cos(s)+26;
x=5-r*sin(s);
cs[x][y]=\H;
}
for(i=0;i50;i++)
{
for(j=0;j52;j++)
printf(%c,cs[i][j]);
printf(\n);
}
printf(*********按Enter键继续**********\n);
getchar();getchar();
}
榛勬檽鏄庝翰鍚诲皬鐙愮嫺鏋楀皧鑰杩樿瀵逛簬閯傚皵澶氭柉鐨勬埧鍦颁骇绌哄煄