當前位置:編程學習大全網 - 編程語言 - 學生成績管理系統的代碼是什麽?

學生成績管理系統的代碼是什麽?

代碼如下:

for(i=0;i<66;i++)

printf("*");

printf("\n");

printf("1.Input record\n");

printf("2.Caculate totel and average score of every course\n");

printf("3.Caculate totel and average score of every student\n");

printf("4.Sort in descending order by total score of every student\n");

printf("5.Sort in ascending order by total score of every student\n");

printf("6.Sort in ascending order by number\n");

printf("7.Sort in ascending order by name\n");

printf("8.Search by number\n");

printf("9.Search by name\n");

printf("10.Statistic analysis for every course\n");

printf("11.List record\n");

printf("12.Write to a file\n");

printf("13.Read from a file\n");

printf("0.Exit\n");

for(i=0;i<66;i++)

printf("*");

printf("\n");

printf("Please enter your choice:");

printf("\n");

輸入函數:

void Readscore (STU stu[],int n,int m) //1.輸入數據

{

int i,j;

for(i=0;i<n;i++)

{

printf("Input student's ID ,name and score");

scanf("%ld",&stu[i].studentID);

scanf("%s",stu[i].studentName);

for(j=0;j<m;j++)

scanf("%d",&stu[i].score[j]);

}

}

數據處理函數:

void Tota (STU stu[],int n,int m) //2.計算每門課程的總分和平均分

{

int i,j,sum[M];

double ave[M];

for(j=0;j<m;j++)

{

sum[j]=0;

for(i=0;i<n;i++)

{

sum[j]=sum[j]+stu[i].score[j];

}

ave[j]=(double)sum[j]/n;

}

for(i=0;i<m;i++)

printf("Project %d 總分=%d,課程的平均分=%f\n",i+1,sum[i],ave[i]);

}

void Datasort_1 (STU stu[],int n,int m) //3.計算每個學生的總分和平均分

{

int i,j,sum[N];

double ave[N];

for(i=0;i<n;i++)

{

sum[i]=0;

for(j=0;j<m;j++)

{

sum[i]=sum[i]+stu[i].score[j];

}

ave[i]=(double)sum[i]/m;

}

for(i=0;i<n;i++)

printf("ID:%10ld,Name: %s Allscore=%d,The ave=%f\n",stu[i].studentID,stu[i].studentName,sum[i],ave[i]);

}

排序函數:

void Datasort_2 (STU stu[],int n,int m) ?//4.按每個學生的總分由高到低排出名次表

{

int i,j,k,h,sum[N];

STU t;

for(i=0;i<n;i++)

{

sum[i]=0;

for(j=0;j<m;j++)

{

sum[i]=sum[i]+stu[i].score[j];

}

}

for(i=0;i<n;i++)

{

k=i;

for(j=i+1;j<n;j++)

{

if (sum[j]>sum[k])

k=j;

}

if(i!=k)

{

t=stu[i],h=sum[i];

stu[i]=stu[k],sum[i]=sum[k];

stu[k]=t,sum[k]=h;

}

}

for(i=0;i<n;i++)

printf("ID:%10ld,Name:%s,Score:%d\n",stu[i].studentID,stu[i].studentName,sum[i]);

}

void Datasort_3 (STU stu[],int n,int m) ?//5.按每個學生的總分由低到高排出名次表

{

int i,j,k,h,sum[N];

STU t;

for(i=0;i<n;i++)

{

sum[i]=0;

for(j=0;j<m;j++)

{

sum[i]=sum[i]+stu[i].score[j];

}

}

for(i=0;i<n;i++)

{

k=i;

for(j=i+1;j<n;j++)

{

if (sum[j]<sum[k])

k=j;

}

if(i!=k)

{

t=stu[i],h=sum[i];

stu[i]=stu[k],sum[i]=sum[k];

stu[k]=t,sum[k]=h;

}

}

for(i=0;i<n;i++)

printf("ID:%10ld,Name:%s,score:%d\n",stu[i].studentID,stu[i].studentName,sum[i]);

}

void Datasort_4 (STU stu[],int n,int m) //6.按學號由小到大排出名次表

{

int i,j,k;

STU t;

for(i=0;i<n;i++)

{

k=i;

for(j=i+1;j<n;j++)

{

if (stu[j].studentID<stu[k].studentID)

k=j;

}

if(i!=k)

t=stu[k],stu[k]=stu[i],stu[i]=t;

}

for(i=0;i<n;i++)

{

printf("ID:%10ld,Name:%s\n",stu[i].studentID,stu[i].studentName);

for(j=0;j<m;j++)

printf("Project %d Score:%d\n",j+1,stu[i].score[j]);

}

}

數據分析函數:

void Statistis (STU stu[],int n,int m) ? //10.

{

int i,j,count_1,count_2,count_3,count_4,count_5;

for(j=0;j<m;j++)

{

count_1=0,count_2=0,count_3=0,count_4=0,count_5=0;

for(i=0;i<n;i++)

{

if(stu[i].score[j]>=90)

count_1++;

else if(stu[i].score[j]>=80)

count_2++;

else if(stu[i].score[j]>=70)

count_3++;

else if(stu[i].score[j]>=60)

count_4++;

else

count_5++;

}

printf("project %d\n",j+1);

printf("優秀:%d\t優秀率:%f%\n",count_1,(float)count_1/n);

printf("良好:%d\t良好率:%f%\n",count_2,(float)count_2/n);

printf("中等:%d\t中等率:%f\n",count_3,(float)count_3/n);

printf("及格:%d\t及格率:%f\n",count_4,(float)count_4/n);

printf("不及格:%d\t不及格率:%f\n",count_5,(float)count_5/n);

}

}

數據界面打印函數:

void List (STU stu[],int n,int m) //11.

{

int i,j,sum[N];

double ave[N];

for(i=0;i<n;i++)

{

sum[i]=0;

for(j=0;j<m;j++)

{

sum[i]=sum[i]+stu[i].score[j];

}

ave[i]=(double)sum[i]/m;

}

for(i=0;i<n;i++)

{

printf("ID:%10ld,Name:%s\n",stu[i].studentID,stu[i].studentName);

for(j=0;j<m;j++)

{

printf("Score %d :%d\n",j+1,stu[i].score[j]);

}

printf("Allscore=%d\n平均分%f\n",sum[i],ave[i]);

}

}

文件處理函數:

void WritetoFile(STU stu[],int n,int m) //將每個學生的記錄信息寫入文件

{

Tota(stu,n,m);

Datasort_2 (stu,n,m);

FILE *fp;

if((fp=fopen("student.txt","w"))==NULL)

{

printf("Failure to open student.txt!\n");

exit(0);

}

fwrite(stu,sizeof(STU),n,fp);

fclose(fp);

}

int ReadfromFile(STU stu[],int n,int m)//從文件中讀出每個學生的記錄信息並顯示

{

FILE *fp;

int i;

if((fp=fopen("student.txt","r"))==NULL)

{

printf("Failure to open student.txt!\n");

exit(0);

}

for(i=0;!feof(fp);i++)

{

fread(&stu[i],sizeof(STU),1,fp);

}

fclose(fp);

printf("Total student is %d.\n",i-1);

n=i-1;

List(stu,n,m);? //輸出從文件中讀出的信息到屏幕上

return i-1;

}

  • 上一篇:軟件項目的成本如何估算?
  • 下一篇:四川遂寧職高學校排名
  • copyright 2024編程學習大全網