📄 _1.cpp
字号:
#include<stdio.h>
struct stu
{
float jichu,zhuanye,xuanxiu,renwen,shiyan;
char name[10];
};
struct clas
{
struct stu st[60];
}cs[100];
void shell();
void del(struct clas cs[],int m,int n);
void paixu(struct clas cs[],char *p,int n);
void link(char x);
void stongji (struct clas cs[],int n,int m);
void input(struct clas ma[],int n,int m);
void ctongji(struct clas cs[],int k);
void main()
{
struct clas cs[100];
char a;
shell();
scanf("%c",&a);
link(a);
}
void link(char x)
{
char h;
int l,g;
if(x=='A')
{
printf("请输入学生班级号:");
scanf("%d",&l);
printf("请输入学声学号:");
scanf("%d",&g);
input(cs,l,g);
}
else if(x=='D')
{
printf("请输入班级号: ");
scanf("%d",&l);
ctongji(cs,l);
}
else if(x=='B')
{
printf("请输入学生班级号:");
scanf("%d",&l);
printf("请输入学生学号:");
scanf("%d",&g);
printf("\n");
stongji(cs,l,g);
}
else if(x=='E')
{
return;
}
else if(x=='F')
{
printf("请输入想看的班级号: \n");
scanf("%d",&l);
printf("请输入想查看的成绩名称: \n");
printf("A......基础课 ");
printf("B......专业课\n");
printf("C......选修课 ");
printf("D......实验课\n");
printf("E......人文课");
scanf("%c",&h);
paixu(cs,&h,l);
}
else if(x=='C')
{
printf("请输入学生所在班级号:");
scanf("%d",&l);
printf("请输入学生学号:");
scanf("%d",&g);
del(cs,l,g);
}
else
{
shell();
printf("请选择:");
scanf("%c",&h);
link(h);
}
return;
}
void shell()
{
printf("..........欢迎使用..........\n");
printf("A......输入学生信息 ");
printf("D......显示班级概况\n");
printf("B......显示学生信息 ");
printf("E......退出\n");
printf("C......删除学生信息 ");
printf("F......显示班级成绩排名\n");
return;
}
void paixu(struct clas cs[],char *p,int n)
{
char d;
int i,j,k=0;
float ji[50],shi[50],ren[50],xuan[50],zhuan[50],t[5];
for(i=0;i<=49;i++)
{
ji[i]=cs[n].st[i].jichu;
ren[i]=cs[n].st[i].renwen;
shi[i]=cs[n].st[i].shiyan;
xuan[i]=cs[n].st[i].xuanxiu;
zhuan[i]=cs[n].st[i].zhuanye;
}
for(i=49;i>=0;i--)
{
for(j=0;j<i;j++)
{
if(ji[j]>ji[j+1])
{
t[0]=ji[j+1];
ji[j+1]=ji[j];
ji[j]=t[0];
}
if(ren[j]>ren[j+1])
{
t[1]=ren[j+1];
ren[j+1]=ren[j];
ren[j]=t[1];
}
if(shi[j]>shi[j+1])
{
t[2]=shi[j+1];
shi[j+1]=shi[j];
shi[j]=t[2];
}
if(xuan[j]>xuan[j+1])
{
t[3]=xuan[j+1];
xuan[j+1]=xuan[j];
xuan[j]=t[3];
}
if(zhuan[j]>zhuan[j+1])
{
t[4]=zhuan[j+1];
zhuan[j+1]=zhuan[j];
zhuan[j]=t[4];
}
}
if(*p=='A')
{
printf("%f",ji[j]);
}
else if(*p=='B')
{
printf("%f",zhuan[j]);
}
else if(*p=='C')
{
printf("%f",xuan[j]);
}
else if(*p=='D')
{
printf("%f",shi[j]);
}
else if(*p=='E')
{
printf("%f",ren[j]);
}
else
{
printf("请重新输入");
}
k=k+1;
if(k%4==0)
{
printf("\n");
}
}
printf("\n");
scanf("%c",&d);
link(d);
return;
}
void input(struct clas ma[],int n,int m)
{
FILE *fp;
fp=fopen("D:\\fw\\student","wb");
float *a,*b,*c,*f,*e;
char d;
printf("请输入该生姓名:");
scanf("%s",ma[n].st[m].name);
do
{
printf("请输入人文课已修学分:");
scanf("%f",&ma[n].st[m].renwen);
a=&(ma[n].st[m].renwen);
}while(a==NULL);
do
{
printf("请输入基础课已修学分:");
scanf("%f",&ma[n].st[m].jichu);
b=&(ma[n].st[m].jichu);
}while(b==NULL);
do
{
printf("请输入选修课已修学分:");
scanf("%f",&ma[n].st[m].xuanxiu);
c=&(ma[n].st[m].xuanxiu);
}while(c==NULL);
do
{
printf("请输入专业课已修学分:");
scanf("%f",&ma[n].st[m].zhuanye);
e=&(ma[n].st[m].zhuanye);
}while(f==NULL);
do
{
printf("请输入实验课已修学分:");
scanf("%f",&ma[n].st[m].shiyan);
f=&(ma[n].st[m].shiyan);
}while(e==NULL);
if((fwrite(&ma[n],sizeof(struct clas),1,fp))==NULL)
{
printf("Error!");
}
printf("\n");
scanf("%c",&d);
link(d);
return;
}
void stongji(struct clas cs[],int n,int m)
{
/*FILE *fq;
fq=fopen("D:\\fw\\class",wb);*/
char d;
float sum,l;
sum=cs[n].st[m].jichu+cs[n].st[m].zhuanye+cs[n].st[m].xuanxiu+cs[n].st[m].renwen+cs[n].st[m].shiyan;
l=sum/152;
printf("该生姓名为:%s",cs[n].st[m].name);
printf("\n");
printf("该生专业课成绩为:%f ",cs[n].st[m].zhuanye);
printf("该生选修课成绩为:%f\n ",cs[n].st[m].xuanxiu);
printf("\n");
printf("该生人文课成绩为:%f ",cs[n].st[m].renwen);
printf("该生实验课成绩为:%f\n",cs[n].st[m].shiyan);
printf("\n");
printf("该生学分通过率为:%f",l);
printf("\n");
if(l<0.6)
{
printf("目前尚不能毕业!");
}
else
{
printf("可以毕业!");
}
printf("\n");
printf("\n");
scanf("%c",&d);
link(d);
return;
}
void ctongji(struct clas cs[],int k)
{
char d;
int i,j;
float sum[5],total,g[5];
for(j=0;j<=4;j++)
{
sum[j]=0;
g[j]=0;
}
for(i=0;i<=49;i++)
{
sum[0]=sum[0]+cs[k].st[i].jichu;
sum[1]=sum[1]+cs[k].st[i].zhuanye;
sum[2]=sum[2]+cs[k].st[i].renwen;
sum[3]=sum[3]+cs[k].st[i].shiyan;
sum[4]=sum[4]+cs[k].st[i].xuanxiu;
if((cs[k].st[i].jichu)>=85)
{
g[0]=g[0]+1;
}
if((cs[k].st[i].zhuanye)>=85)
{
g[1]=g[1]+1;
}
if((cs[k].st[i].shiyan)>=85)
{
g[2]=g[2]+1;
}
if((cs[k].st[i].xuanxiu)>=85)
{
g[3]=g[3]+1;
}
if((cs[k].st[i].renwen)>=85)
{
g[4]=g[4]+1;
}
}
sum[0]=sum[0]/50;
sum[1]=sum[1]/50;
sum[2]=sum[2]/50;
sum[3]=sum[3]/50;
sum[4]=sum[4]/50;
printf("班级学生专业课平均成绩为:%f",sum[1]);
printf("班级学生基础课平均成绩为:%f\n",sum[0]);
printf("班级学生人文课平均成绩为:%f",sum[2]);
printf("班级学生实验课平均成绩为:%f\n",sum[3]);
printf("班级学生选修课平均成绩为:%f",sum[4]);
printf("\n");
printf("\n");
printf("班级专业课优秀人数:%f",g[1]);
printf("班级基础课优秀人数:%f\n",g[0]);
printf("班级人文课优秀人数:%f",g[4]);
printf("班级实验课优秀人数:%f\n",g[2]);
printf("班级选修课优秀人数:%f",g[3]);
total=(g[1]+g[0]+g[2]+g[3]+g[4])/50;
printf("此班优秀率为:%f",total);
printf("\n");
scanf("%c",&d);
link(d);
return;
}
void del(struct clas cs[],int m,int n)
{
char l;
cs[m].st[n].jichu=0;
cs[m].st[n].zhuanye=0;
cs[m].st[n].xuanxiu=0;
cs[m].st[n].shiyan=0;
cs[m].st[n].renwen=0;
printf("\n");
scanf("%c",&l);
link(l);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -