⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xuecheen.c

📁 学生成绩管理系统
💻 C
字号:
#define N 3
#include<stdio.h>
#include <conio.h> 
struct student
{
int sno;
char name[8];
int score[3];
float avr;
}stu[N],t,x;



main()
{
int c;
do
{
clrscr();
   printf("==The Student's Score Manage==\n");
   printf("      1:New\n");   
   printf("      2:Append\n");   
   printf("      3:Modify\n");
   printf("      4:Delete\n");
   printf("      5:Search\n");
   printf("      6:Save\n");
   printf("      7:View\n");
   printf("      0:Exit\n");
   printf("What do you want to do?\nPlease input the numer.\n");
scanf("%d",&c);
if(c==1)
new();
else if(c==2)
append();
else if(c==3)
modify();
else if(c==4)
delete();
else if(c==5)
search();
else if(c==6)
{
save();
}
else if(c==7)
view();
else if(c==0)
break;
}while(1);
}


new()                    /*建立学生成绩数据*/
{
int i,j,sum;
clrscr();
for(i=0;i<N;i++)
{
printf("Sno:\n");
scanf("%d",&stu[i].sno);
printf("Name:\n");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{
printf("Score%d:\n",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].avr=sum/3.0;
}
printf("Remeber to save it.\n");
printf("press any key to continue.\n");
getch();
}



append()                      /*添加学生成绩数据*/
{
int i,j,n,sum;
FILE *fp;
clrscr();
printf("Sno:\n");
scanf("%d",&x.sno);
printf("Name:\n");
scanf("%s",x.name);
sum=0;
for(j=0;j<3;j++)
{
printf("Score%d:\n",j+1);
scanf("%d",&x.score[j]);
sum+=x.score[j];
}
x.avr=sum/3.0;
fp=fopen("stu.txt","rb");
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++);
fclose(fp);
n=i;
fp=fopen("stu.txt","wb");
for(i=0;i<n;i++)
fwrite(&stu[i],sizeof(struct student),1,fp);
fwrite(&x,sizeof(struct student),1,fp);
fclose(fp);
printf("The data had save!\npress any key to continue.\n");
getch();
}



modify()                         /*修改学生成绩数据*/
{
int i,j;
clrscr();
view();
printf("Which NO. you want to modify\n");
scanf("%d",&i);
do
{
printf("Which data you want to modify\n");
printf("        1:name\n");
printf("        2:score1\n");
printf("        3:score2\n");
printf("        4:score3\n");
printf("        0:exit\n");
scanf("%d",&j);
if(j==1)
{
printf("Input a new name.\n");
scanf("%s",stu[i-1].name);
}
else if(j==2)
{
printf("Input a new score1.\n");
scanf("%d",stu[i-1].score[0]);
}
else if(j==3)
{
printf("Input a new score2.\n");
scanf("%d",stu[i-1].score[1]);
}
else if(j==4)
{
printf("Input a new score3.\n");
scanf("%d",stu[i-1].score[2]);
}
}while(j!=0);
save();
printf("press any key to continue.\n");
getch();
}


delete()                         /*删除学生成绩数据*/
{
FILE *fp;
int i,j,n,flag;
char name1[8];
clrscr();
fp=fopen("stu.txt","rb+");
printf("Sno       Name        C       English     Math          avr\n");
for(i=0;i<=N;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("%d          %s          %d        %d           %d         %f\n",stu[i].sno,
stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avr);
}
n=i;
printf("Which student would you want to delete?\nPlease input he name.\n");
scanf("%s",name1);
for(flag=1,i=0;flag&&i<n;i++)
{
if(strcmp(name1,stu[i].name)==0)
{for(j=i;j<n-1;j++)
stu[i]=stu[j+1];
flag=0;}
}
if(!flag)
n-=1;
else
printf("\nNot found the student!\n");
rewind(fp);
for(i=0;i<n;i++)
fwrite(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
printf("press any key to continue.\n");
getch();
}


search()                       /*查找学生成绩数据*/
{
FILE *fp;
int i,j,k;
clrscr();
fp=fopen("stu.txt","rb");
for(i=0;i<N;i++)
fread(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
for(i=0;i<N;i++)
for(j=i+1;j<N;j++)
if(stu[i].avr<stu[j].avr)
{t=stu[i];stu[i]=stu[j];stu[j]=t;}
do
{
printf("Top No. student(0 will exit,NO.<=%d)\n",N);        /*前几名学生成绩数据*/
scanf("%d",&k);
printf("Sno       Name        C       English     Math           avr\n");
for(i=0;i<k;i++)
{fread(&stu[i],sizeof(struct student),1,fp);
printf("%d          %s          %d        %d           %d          %f\n",stu[i].sno,
stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avr);
}
}while(k!=0);
printf("press any key to continue.\n");
getch();
}



save()                  /*保存学生成绩数据*/
{
FILE *fp;
int i;
fp=fopen("stu.txt","wb");
for(i=0;i<N;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
printf("save ok!");
printf("press any key to continue.\n");
getch();
}


view()                 /*查看学生成绩数据*/
{
int i;
FILE *fp;
clrscr();
fp=fopen("stu.txt","rb");
printf("Sno       Name        C       English     Math     avr\n");
for(i=0;i<=N;i++)
{
fread(&stu[i],sizeof(struct student),1,fp);
printf("%d          %s          %d        %d         %d       %f\n",stu[i].sno,
stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avr);
}
fclose(fp);
printf("press any key to continue.\n");
getch();
}
               

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -