c语言学生成绩管理系统(c语言学生成绩管理系统实训报告)
本文目录一览:
怎样用C语言写学生成绩管理系统?
程序如下c语言学生成绩管理系统: #includestdio.h
void main()
{
float student[100][7];
//student[][0]存放学号,student[][1]到student[][4]存放四门成绩,
//student[][5]存放总分,student[][6]存放平均分,student[][7]存放排名
int n,i,j,k,p,t,count,flag;
int a[100],b[100],c[100];
//a[]存放排序后c语言学生成绩管理系统的下标,b[]存放总分(备份),c[]存放排名c语言学生成绩管理系统的数据
printf("输入学生的个数:\n");
scanf("%d",n);
for(i=0;i=n-1;i++)
{
printf("输入第%d个学生的学号:",i+1);
scanf("%f",student[i][0]);
for(j=0,student[i][5]=0;j=3;j++)
{
printf("输入第%d个学生的第%d门成绩:",i+1,j+1);
scanf("%f",student[i][j+1]);
student[i][5]+=student[i][j+1]; //计算总分
}
b[i]=student[i][5]; //把总分再赋给b[]数组,以后排序用
student[i][6]=student[i][5]/4; //计算平均分
}
for(i=0;i=n-2;i++) //对数组b[](即总分)进行排序
for(j=0;j=n-2-i;j++)
{
if(b[j]b[j+1])
{
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
}
}
for(i=0,k=0;i=n-1;i++)//用数组a[]取得排序后总分的下标
{
for(j=0,flag=0;j=n-1;j++)
{
if(b[i]==student[j][5])
{
if(0==k) //如果数组a[]中有零个元素,就把j直接赋给a[]
{
a[k]=j;
k++;
flag=1;
}
else //如果数组a[]中有元素c语言学生成绩管理系统了,则判断
{
for(p=0;p=k-1;p++)
if(a[p]!=j)
{
a[k]=j;
k++;
flag=1;
break;
}
}
}
if(1==flag)
break;
}
}
for(count=1,i=0;i=n-1;i++) //对c[](排名)进行处理
{
if(b[i]==b[i+1])
{
c[i]=count;
}
else
if(b[i]b[i+1])
{
c[i]=count;
count++;
}
}
printf("\n以下是统计结果:\n");
printf("学号 s[1] s[2] s[3] s[4] 总分 平均分 排名\n");
for(i=0;i=n-1;i++)
{
printf("%.0f\t%.0f\t%.0f\t%.0f\t%.0f\t%.0f\t%f\t%d\n",student[a[i]][0],student[a[i]][1],student[a[i]][2],student[a[i]][3],student[a[i]][4],student[a[i]][5],student[a[i]][6],c[i]);
}
} 有疑问提出
用c语言做一个学生成绩管理系统。。。。。
自己制作成绩查询系统成本高昂,建议使用易查分系统,三分钟即可搭建完成。
如何用C语言编写"学生成绩管理系统"
#includestdio.h
#includestdlib.h
#includeconio.h
#includestring.h
struct student{
int id;
char name[10];
int age;
char sex[10];
char birthady[20];
int tel;
char nativeplace[50];
}st[50];
int i=0;
void shuru() {
char a;
do{
printf("\n请输入学号:");
scanf("%d",st[i].id);
fflush(stdin);
printf("\n请输入姓名:");
gets(st[i].name);
printf("\n") ;
printf("请输入年龄:");
scanf("%d",st[i].age);
fflush(stdin);
printf("\n请输入姓别:");
gets(st[i].sex);
fflush(stdin);
printf("\n请输入生日:");
gets(st[i].birthady);
printf("\n请输入电话:");
scanf("%d",st[i].tel);
fflush(stdin);
printf("\n请输入籍贯:");
gets(st[i].nativeplace);
printf("\n是否继续输入另外一个学生信息?(y/n)");
fflush(stdin);
a=getchar();
i++;
}while(a=='y' i=50);
}
void xianshi()
{
int j;
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");
for(j=0;ji;j++)
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace);
}
void paixu() //按年龄从大到小排序函数
{
int j,k;
int temp;
for(j=0;ji;j++)
{
for(k=0;ki-1-j;k++)
{
if(st[k].agest[k+1].age)
{
temp=st[k].age;
st[k].age=st[k+1].age;
st[k+1].age=temp;
}
}
}
xianshi(); //排序后输出
}
void chazhao()
{
int m;
char name[20],b;
do
{
printf("\n请输入想查找的学生姓名:");
fflush(stdin);
gets(name);
for(m=0;mi;m++)
{
if(strcmp(name,st[m].name)==0)
{
printf("\n\t您查找的学生在第%d个位置找到了!!!\n",m+1);
break;
}
}
if(m=20)
printf("\n\t没有找到这个学生!!!\n");
else
{
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace);
}
printf("\n是否查找另一个学生的信息?(y/n)");
fflush(stdin);
b=getchar();
}while(b=='y');
}
void shanchu()
{
char name[20],c;
int a,b;
do
{
printf("\n请输入要删除的学生姓名:\n");
fflush(stdin);
gets(name);
for(a=0;ai;a++)
{
if(strcmp(name,st[a].name)==0)
break;
}
for(b=a;bi;b++)
st[b]=st[b+1];
if(ai)
printf("\t没有找到这个学生!!!\n");
else
{
i--;
xianshi();
}
printf("\n是否继续删除另一个学生信息?(y/n) ");
fflush(stdin);
c=getchar();
}while(c=='y');
}
void charu()
{
shuru();
paixu();
}
void main() //主函数
{
int change;
do{
system("cls");
printf("============================学生信息管理系统===================================\n");
printf("\t\t一: 输入学生信息\n");
printf("\t\t二: 显示学生信息\n");
printf("\t\t三: 查找学生信息\n");
printf("\t\t四: 删除学生信息\n");
printf("\t\t五: 插入学生信息\n");
printf("\t\t六: 退出程序\n");
fflush(stdin);
printf("\t\t请输入功能选项:");
scanf("%d",change);
switch(change)
{
case 1:
shuru(); break;
case 2:
xianshi(); break;
case 3:
chazhao(); break;
case 4:
shanchu(); break;
case 5:
charu(); break;
case 6:
break;
}
getch();
}while(change!=6);
}
C语言:学生成绩管理系统
/*首次使用c语言学生成绩管理系统,新建score.in文件,在里面打入0
可用程序
#includestdio.h
FILE *fin
main()
{
fin=fopen("score.in","r");
fprintf(fin,"0");
return 0;
}
完成
*/
#includestdio.h
#includestdlib.h
#includeconio.h
#includewindows.h
#includetime.h
#define n 999
FILE *fin;
main()
{
int a[n]={0},ori=0,i=0,b=0,add[n]={0},con=0,orix[n]={0},t=0,te[n]={0},TRUEt,ixi,fx,abc=0,sum,TURE,xx;
long long f[n]={0},tex[n]={0};
printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t学生成绩管理系统\n\t\t\t\t\t\t Please wait...");
Sleep(2000);system("cls");
int xp,xi;
fin=fopen("score.in","r+");
fscanf(fin,"%d",xp);
i=xp;
for(xi=1;xi=xp;xi++)
{fscanf(fin,"%d%d%d",f[xi],a[xi],te[xi]);te[xi]--;
printf("Id:%lld score:%d ranking:%d\n",f[xi],a[xi],te[xi]+1);
add[xi]=xi;orix[xi]=a[xi];
}
fclose(fin);
int TRUE1;
pe:
while(1)
{ TRUE1=1;i++;
printf("Id(输入-1:删除,输入-2:修改成绩,输入-3:删除所有内容,输入-4:保存到score.in并退出):");
scanf("%lld",f[i]);
for(sum=1;sumi;sum++)
if(f[sum]==f[i])
{system("cls");for(con=1;con=i;con++) {if(a[con]==0)continue;printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}TRUE1=0;i--;printf("Error with two same id.\n");continue;}
if(TRUE1==0)
continue;
if(f[i]==-3)
{int r;
for(r=0;rn;r++)
{
a[r]=0;ori=0;i=0;b=0;add[r]=0;con=0;orix[r]=0;t=0;te[r]=0;abc=0;
f[r]=0;tex[r]=0;
}
system("cls");
goto pe;
}
if(f[i]==-2)
{TURE=0;i--;
system("cls");
for(con=1;con=i;con++)
{if(a[con]==0)continue; printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
printf("修改学号_____________号c语言学生成绩管理系统的分数.\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b",f[con],a[con],te[con]+1);
scanf("%d",xx);
for(sum=1;sum=i;sum++)
if(f[sum]==xx)
{
TURE=1;
printf("\n修改为___________.\b\b\b\b\b\b\b\b\b\b\b\b");
scanf("%d",a[sum]);
printf("\n修改成功c语言学生成绩管理系统!将在下一次输入后更新名次。\n\n");
continue;
}
if(TURE==0)
printf("No id is %d\n",xx);
continue;
}
if(f[i]==-4)
{
i--;
fin=fopen("score.in","r+");
fprintf(fin,"%d\n",i);
for(xi=1;xi=i;xi++)fprintf(fin,"%d %d %d\n",f[xi],a[xi],te[xi]+1);
for(xi=i+1;xi=xp;xi++)fprintf(fin," \n");
fclose(fin);
return 0;
}
if(f[i]==-1)
{TRUEt=0;
system("cls");
i--;
for(con=1;con=i;con++){if(a[con]==0)continue;printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
printf("删除学号_____________号.\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
scanf("%lld",fx);
for(con=1;con=i;con++)
if(f[con]==fx)
{TRUEt=1;abc++;
f[con]=0;
a[con]=0;
tex[abc]=te[con];
for(ixi=1;ixi=i;ixi++)
if(te[ixi]te[con])
te[ixi]--;
te[con]=0;
break;}
system("cls");
for(con=1;con=i;con++){
if(a[con]==0)continue;
printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
if(TRUE==0)
printf("No Id is %lld\n",fx);
continue;
}
system("cls");
for(con=1;coni;con++)
{if(a[con]==0)continue; printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
printf("Id:%lld score:",f[i]);
scanf("%d",ori);system("cls");
a[i]=ori;add[i]=i;orix[i]=a[i];
system("cls");
for(b=1;b=i;b++)
for(con=i;con=b;con--)
if(orix[con]orix[con-1])
{t=orix[con];orix[con]=orix[con-1];orix[con-1]=t;
t=add[con];add[con]=add[con-1];add[con-1]=t;}
for(con=1;con=i;con++) te[add[con]]=con;
for(con=1;con=abc;con++)
for(ixi=1;ixi=i;ixi++)
if(te[ixi]tex[con])
te[ixi]--;
if(te[i]==te[i-1])te[i]=0;
for(con=1;con=i;con++)
{if(a[con]==0)continue;printf("Id:%lld score:%d ranking:%d\n",f[con],a[con],te[con]+1);}
}
return 0;
}