源代码部分

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LEN sizeof(Student1)
typedef struct Student
{ long long xuehao;char xingming[20]; char xingbie[2]; int nianji;int banji;int yuwen;int shuxue;int yingyu;int lizong;int zongfen;struct Student *next;
}Student1;
void chazhao()
{//查找。先将文件中的数据加入链表中,然后在链表中进行查找FILE *fp;int i=0,n=0,k;if((fp=fopen("grade.txt","r"))==NULL){printf("%s\n","打开错误");}Student1 *p1,*p2,*p3,*head;p2=head=(Student1 *)malloc(LEN);//head中不存数据head->next=NULL;while(!feof(fp)){p1=(Student1 *)malloc(LEN);fscanf(fp,"%lld %s %s %d%d%d%d%d%d%d",&p1->xuehao,p1->xingming,p1->xingbie,&p1->nianji,&p1->banji,&p1->yuwen,&p1->shuxue,&p1->yingyu,&p1->lizong,&p1->zongfen);printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p2->next=p1;p2=p1;}fclose(fp);p1->next=NULL;void xuehaochazhao(Student1 *p);void xingmingchazhao(Student1 *p);
//####################################################################################################################while(1){system("clear");printf("%s\n","1.按学号查找输入1");printf("%s\n","2.按姓名查找输入2");scanf("%d",&i);system("clear");switch(i){case 1:xuehaochazhao(head);break;case 2:xingmingchazhao(head);break;default:printf("%s\n","输入错误");}printf("%s\n","输入0结束查找,输入其他数继续查找");scanf("%d",&k);system("clear");if(k==0){//结束整个查找过程时,将链表内存释放p1=head;while(p1!=NULL){p3=p1->next;free(p1);p1=p3;  }   break;}}
}
void xuehaochazhao(Student1 *p)
{int i,k;Student1 *p1,*p2,*p3,*head;while(1){p1=p->next;long long m;printf("%s\n","请输入要查找的学生的学号");scanf("%lld",&m); while(p1->next!=NULL && p1->xuehao!=m){p1=p1->next;}if(p1->xuehao==m){printf("学号为%lld的学生姓名为%s,性别%s,年级为%d,班级为%d,成绩 语文:%d 数学:%d 英语:%d 理综:%d 总分:%d\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}else{printf("%s\n","暂未录入此学生信息");}printf("%s\n","输入0返回查找界面,输入其他数继续按学号查找");scanf("%d",&k);system("clear");if(k==0){//不能在这里将链表内存释放break;}}
}
void xingmingchazhao(Student1 *p)
{char a[20];int k;Student1 *p1,*p2,*p3,*head;while(1){p1=p->next;printf("%s\n","请输入要查找的学生的姓名");scanf("%s",a); while(p1->next!=NULL && strcmp(p1->xingming,a)!=0){p1=p1->next;}if(strcmp(p1->xingming,a)==0){printf("%s同学的学号为%lld,性别%s,年级为%d,班级为%d,成绩 语文:%d 数学:%d 英语:%d 理综:%d 总分:%d\n",p1->xingming,p1->xuehao,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}else{printf("%s\n","暂未录入此学生信息");}printf("%s\n","输入0返回查找界面,输入其他数继续按姓名查找");scanf("%d",&k);system("clear");if(k==0){break;}}
}
//###############################################################################################
void xiugai()
{//修改int i=0,n=0,g,k;long long m;FILE *fp;system("clear");if((fp=fopen("grade.txt","r"))==NULL){printf("%s\n","打开错误");}printf("%s\t","学号");printf("%s\t\t","姓名");printf("%s\t\t","性别");printf("%s\t","年级");printf("%s\t","班级");printf("%s\t","语文");printf("%s\t","数学");printf("%s\t","英语");printf("%s\t","理综");printf("%s\t\n","总分");Student1 *p1,*p2,*p3,*head;p2=head=(Student1 *)malloc(LEN);//head中不存数据head->next=NULL;while(!feof(fp)){p1=(Student1 *)malloc(LEN);fscanf(fp,"%lld %s %s %d%d%d%d%d%d%d",&p1->xuehao,p1->xingming,p1->xingbie,&p1->nianji,&p1->banji,&p1->yuwen,&p1->shuxue,&p1->yingyu,&p1->lizong,&p1->zongfen);printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p2->next=p1;p2=p1;}fclose(fp);p1->next=NULL;while(1){p1=head->next;char a[5];printf("%s\n","请输入要修改的学生的学号,要修改的学科和该学科的正确成绩,中间用空格隔开");scanf("%lld%s %d",&m,a,&g);while(p1->xuehao!=m){p1=p1->next;}if(p1->xuehao==m){p3=p1;if(strcmp(a,"语文")==0){p1->yuwen=g;}else if(strcmp(a,"数学")==0){p1->shuxue=g;}else if(strcmp(a,"英语")==0){p1->yingyu=g;}else if(strcmp(a,"理综")==0){p1->lizong=g;}else{printf("%s\n","输入错误");}}else{printf("%s\n","未录入此学生成绩");}p1->zongfen=p1->yuwen+p1->shuxue+p1->yingyu+p1->lizong;p1=head->next;if((fp=fopen("grade.txt","r+"))==NULL){printf("%s\n","打开错误");}while(p1!=NULL){if(p1->next==NULL)fprintf(fp,"%lld %s %s %d %d %d %d %d %d %d",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);elsefprintf(fp,"%lld %s %s %d %d %d %d %d %d %d\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p1=p1->next;}fclose(fp);printf("%s\n","修改成功");printf("%s\n","输入0结束修改,输入其他数继续修改");scanf("%d",&k);if(k==0){p1=head;while(p1!=NULL){p3=p1->next;free(p1);p1=p3;  }   break;}}
}
//###############################################################################################
void tianjia()
{//添加。先将文件中存在的数据加入链表,再输入新添加的数据加入链表,最后将链表中的数据以只写方式写入文件system("clear");int i=1,k;long long m;FILE *fp;if((fp=fopen("grade.txt","r"))==NULL){fp=fopen("grade.txt","w");}Student1 *p1,*p2,*p3,*head;p2=head=(Student1 *)malloc(LEN);//head中不存数据head->next=NULL;while(!feof(fp)){p1=(Student1 *)malloc(LEN);fscanf(fp,"%lld %s %s %d%d%d%d%d%d%d",&p1->xuehao,p1->xingming,p1->xingbie,&p1->nianji,&p1->banji,&p1->yuwen,&p1->shuxue,&p1->yingyu,&p1->lizong,&p1->zongfen);printf("%lld %s %s %d %d %d %d %d %d %d\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p2->next=p1;p2=p1;}fclose(fp);while(1){system("clear");p1=(Student1 *)malloc(LEN);printf("请输入要添加的第%d个学生的学号,姓名,性别,年级,班级,语文,数学,英语,理综成绩,中间用空格隔开\n",i);scanf("%lld %s %s %d%d%d%d%d%d",&p1->xuehao,p1->xingming,p1->xingbie,&p1->nianji,&p1->banji,&p1->yuwen,&p1->shuxue,&p1->yingyu,&p1->lizong);p1->zongfen=p1->yuwen+p1->shuxue+p1->yingyu+p1->lizong;p2->next=p1;p2=p1;i++;printf("%s\n","输入0结束添加,输入其他数继续添加");scanf("%d",&k);if(k==0){p1->next=NULL;break;}}//printf("***********************************************\n");if((fp=fopen("grade.txt","w"))==NULL){printf("%s\n","打开错误");}p1=head->next;while(p1!=NULL){if(p1->next==NULL){fprintf(fp,"%lld %s %s %d %d %d %d %d %d %d",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p3=p1->next;free(p1);p1=p3;}else{fprintf(fp,"%lld %s %s %d %d %d %d %d %d %d\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p3=p1->next;free(p1);p1=p3;}}fclose(fp);printf("%s\n","添加成功");
}
//###############################################################################################
void shanchu()
{//删除FILE *fp;if((fp=fopen("grade.txt","r"))==NULL){printf("%s\n","打开错误");}printf("%s\t","学号");printf("%s\t\t","姓名");printf("%s\t\t","性别");printf("%s\t","年级");printf("%s\t","班级");printf("%s\t","语文");printf("%s\t","数学");printf("%s\t","英语");printf("%s\t","理综");printf("%s\t\n","总分");Student1 *p1,*p2,*p3,*head;int i=0,k;p2=head=(Student1 *)malloc(LEN);//head中不存数据head->next=NULL;while(!feof(fp)){p1=(Student1 *)malloc(LEN);fscanf(fp,"%lld %s %s %d%d%d%d%d%d%d",&p1->xuehao,p1->xingming,p1->xingbie,&p1->nianji,&p1->banji,&p1->yuwen,&p1->shuxue,&p1->yingyu,&p1->lizong,&p1->zongfen);printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p2->next=p1;p2=p1;}fclose(fp);p1->next=NULL;while(1){system("clear");
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++long long m;printf("%s\n","请输入要删除的学生的学号");scanf("%lld",&m);p2=head;p1=head->next;while(p1->xuehao!=m && p1->next!=NULL){p2=p1;p1=p1->next;}if(p1->xuehao==m){p2->next=p1->next;free(p1);}else{printf("%s\n","未收录此学生成绩");}if((fp=fopen("grade.txt","w"))==NULL){printf("%s\n","打开错误");}printf("%s\t","学号");printf("%s\t\t","姓名");printf("%s\t\t","性别");printf("%s\t","年级");printf("%s\t","班级");printf("%s\t","语文");printf("%s\t","数学");printf("%s\t","英语");printf("%s\t","理综");printf("%s\t\n","总分");p1=head->next;while(p1){if(p1->next){fprintf(fp,"%lld %s %s %d %d %d %d %d %d %d\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p1=p1->next;}else{fprintf(fp,"%lld %s %s %d %d %d %d %d %d %d",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p1=p1->next;}}fclose(fp);printf("%s\n","删除成功");printf("%s\n","输入0结束删除,输入其他数继续删除");scanf("%d",&k);system("clear");if(k==0){p1=head;while(p1!=NULL){p3=p1->next;free(p1);p1=p3;   }   break;}}
}
//###############################################################################################
void xuehaopaixu(Student1 *p,int m);
void xingmingpaixu(Student1 *p,int m);
void yuwenpaixu(Student1 *p,int m);
void shuxuepaixu(Student1 *p,int m);
void yingyupaixu(Student1 *p,int m);
void lizongpaixu(Student1 *p,int m);
void zongfenpaixu(Student1 *p,int m);
Student1 temp;
void paixu()
{//排序FILE *fp;int i,k=0;Student1 a[100];if((fp=fopen("grade.txt","r"))==NULL){printf("%s\n","输入错误");}//printf("###################################################\n");while(!feof(fp)){fscanf(fp,"%lld %s %s %d%d%d%d%d%d%d",&a[k].xuehao,a[k].xingming,a[k].xingbie,&a[k].nianji,&a[k].banji,&a[k].yuwen,&a[k].shuxue,&a[k].yingyu,&a[k].lizong,&a[k].zongfen);printf("%lld %s %s %d %d %d %d %d %d %d\n",a[k].xuehao,a[k].xingming,a[k].xingbie,a[k].nianji,a[k].banji,a[k].yuwen,a[k].shuxue,a[k].yingyu,a[k].lizong,a[k].zongfen);k++;}fclose(fp);//printf("#################################################%d\n",k);while(1){//system("clear");i=0;printf("%s\n","排序");printf("%s\n","1.按学号排序输入1");printf("%s\n","2.按姓名排序(ASCII大小)输入2");printf("%s\n","3.按语文成绩排序输入3");printf("%s\n","4.按数学成绩排序输入4");printf("%s\n","5.按英语成绩排序输入5");printf("%s\n","6.按理综成绩排序输入6");printf("%s\n","7.按总分排序输入7");scanf("%d",&i);system("clear");switch(i){case 1:xuehaopaixu(a,k);break;case 2:xingmingpaixu(a,k);break;case 3:yuwenpaixu(a,k);break;case 4:shuxuepaixu(a,k);break;case 5:yingyupaixu(a,k);break;case 6:lizongpaixu(a,k);break;case 7:zongfenpaixu(a,k);break;default:printf("%s\n","输入错误");}printf("%s\t","学号");printf("%s\t\t","姓名");printf("%s\t\t","性别");printf("%s\t","年级");printf("%s\t","班级");printf("%s\t","语文");printf("%s\t","数学");printf("%s\t","英语");printf("%s\t","理综");printf("%s\t\n","总分");for(i=0;i<k;i++){printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",a[i].xuehao,a[i].xingming,a[i].xingbie,a[i].nianji,a[i].banji,a[i].yuwen,a[i].shuxue,a[i].yingyu,a[i].lizong,a[i].zongfen);}printf("%s\n","输入0结束排序,输入其他数继续排序");scanf("%d",&i);if(i==0){break;}}
}
void xuehaopaixu(Student1 *p,int m)
{//选择排序int i,j;for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)if(p[i].xuehao>p[j].xuehao){temp=p[i];p[i]=p[j];p[j]=temp;}
}
void xingmingpaixu(Student1 *p,int m)
{int i,j;for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)if(strcmp(p[i].xingming,p[j].xingming)){temp=p[i];p[i]=p[j];p[j]=temp;}
}
void yuwenpaixu(Student1 *p,int m)
{int i,j;for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)if(p[i].yuwen>p[j].yuwen){temp=p[i];p[i]=p[j];p[j]=temp;}
}
void shuxuepaixu(Student1 *p,int m)
{int i,j;for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)if(p[i].shuxue>p[j].shuxue){temp=p[i];p[i]=p[j];p[j]=temp;}
}
void yingyupaixu(Student1 *p,int m)
{int i,j;for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)if(p[i].yingyu>p[j].yingyu){temp=p[i];p[i]=p[j];p[j]=temp;}
}
void lizongpaixu(Student1 *p,int m)
{int i,j;for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)if(p[i].lizong>p[j].lizong){temp=p[i];p[i]=p[j];p[j]=temp;}
}
void zongfenpaixu(Student1 *p,int m)
{int i,j;for(i=0;i<m-1;i++)for(j=i+1;j<m;j++)if(p[i].zongfen>p[j].zongfen){temp=p[i];p[i]=p[j];p[j]=temp;}
}
//###############################################################################################
void xingbieshaixuan(Student1 *p);
void banjishaixuan(Student1 *p);
void chengjishaixuan(Student1 *p);
void shaixuan()
{int i;FILE *fp;if((fp=fopen("grade.txt","r"))==NULL){printf("%s\n","输入错误");}Student1 *p1,*p2,*p3,*head;p2=head=(Student1 *)malloc(LEN);//head中不存数据head->next=NULL;while(!feof(fp)){p1=(Student1 *)malloc(LEN);fscanf(fp,"%lld %s %s %d%d%d%d%d%d%d",&p1->xuehao,p1->xingming,p1->xingbie,&p1->nianji,&p1->banji,&p1->yuwen,&p1->shuxue,&p1->yingyu,&p1->lizong,&p1->zongfen);//printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p2->next=p1;p2=p1;}fclose(fp);p1->next=NULL;while(1){system("clear");printf("%s\n","筛选");printf("%s\n","1.按性别筛选输入1");printf("%s\n","2.按所在班级筛选输入2");printf("%s\n","3.按成绩筛选输入3");scanf("%d",&i);system("clear");switch(i){case 1:xingbieshaixuan(head);break;case 2:banjishaixuan(head);break;case 3:chengjishaixuan(head);break;default:printf("%s\n","输入错误");}printf("%s\n","输入0结束筛选,输入其他数继续筛选");scanf("%d",&i);system("clear");if(i==0){p1=head;while(p1!=NULL){p3=p1->next;free(p1);p1=p3;   }   break;}}
}
void xingbieshaixuan(Student1 *p)
{//筛选int i=2,n=0;long long m;Student1 *p1,*p2,*p3,*head;while(i!=0){p1=p->next;printf("%s\n","筛选所有男生信息请输入0,筛选所有女生信息请输入1");scanf("%d",&i);printf("%s\t","学号");printf("%s\t\t","姓名");printf("%s\t\t","性别");printf("%s\t","年级");printf("%s\t","班级");printf("%s\t","语文");printf("%s\t","数学");printf("%s\t","英语");printf("%s\t","理综");printf("%s\t\n","总分");if(i==0){while(p1){if(strcmp(p1->xingbie,"男")==0 || strcmp(p1->xingbie,"m")==0){printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}   }else if(i==1){while(p1){if(strcmp(p1->xingbie,"女")==0 || strcmp(p1->xingbie,"f")==0){printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}}else{printf("%s\n","输入错误");}printf("%s\n","输入0结束按性别筛选,输入其他数继续按性别筛选");scanf("%d",&i);}
}
void banjishaixuan(Student1 *p)
{int i=2,n=0,s,t;long long m;Student1 *p1,*p2,*p3,*head;while(i!=0){p1=p->next;printf("%s\n","请输入要筛选的班所在的年级号和班号");scanf("%d%d",&s,&t);printf("%s\t","学号");printf("%s\t\t","姓名");printf("%s\t\t","性别");printf("%s\t","年级");printf("%s\t","班级");printf("%s\t","语文");printf("%s\t","数学");printf("%s\t","英语");printf("%s\t","理综");printf("%s\t\n","总分");while(p1!=NULL){if(p1->nianji==s && p1->banji==t){printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}printf("%s\n","输入0结束按所在班级筛选,输入其他数继续按所在班级筛选");scanf("%d",&i);}
}
void chengjishaixuan(Student1 *p)
{int i=2,n=0,g;long long m;Student1 *p1,*p2,*p3,*head;while(i!=0){p1=p->next;printf("%s\n","1.筛选语文成绩在90分以下的学生输入1");printf("%s\n","2.筛选数学成绩在90分以下的学生输入2");printf("%s\n","3.筛选英语成绩在90分以下的学生输入3");printf("%s\n","4.筛选理综成绩在180分以下的学生输入4");printf("%s\n","5.筛选总分在450分以下的学生输入5");printf("%s\n","6.筛选语文成绩在135分以上(包括135分)的学生输入6");printf("%s\n","7.筛选数学成绩在135分以上(包括135分)的学生输入7");printf("%s\n","8.筛选英语成绩在135分以上(包括135分)的学生输入8");printf("%s\n","9.筛选理综在270分以上(包括270分)的学生输入9");printf("%s\n","10.筛选总分在675分以上(包括675分)的学生输入10");scanf("%d",&i);system("clear");printf("%s\t","学号");printf("%s\t\t","姓名");printf("%s\t\t","性别");printf("%s\t","年级");printf("%s\t","班级");printf("%s\t","语文");printf("%s\t","数学");printf("%s\t","英语");printf("%s\t","理综");printf("%s\t\n","总分");if(i==1){n=0;while(p1){if(p1->yuwen<90){n++;printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录语文成绩在90分下的学生");}}else if(i==2){n=0;while(p1!=NULL){if(p1->shuxue<90){i++;printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录数学成绩在90分以下的学生");}}else if(i==3){n=0;while(p1!=NULL){if(p1->yingyu<90){n++;printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录英语成绩在90分以下的学生");}}else if(i==4){n=0;while(p1!=NULL){if(p1->lizong<180){printf("%-15lld%-12s%-5s%-5d%-5d%-7d%-7d%-7d%-7d%-7d\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录理综成绩在180分以下的学生");}}else if(i==5){n=0;while(p1!=NULL){if(p1->zongfen<450){n++;printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录总分在450分以下的学生");}}else if(i==6){n=0;while(p1!=NULL){if(p1->yuwen>=135){n++;printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录语文成绩在135分以上(包括135分)的学生");}}else if(i==7){n=0;while(p1!=NULL){if(p1->shuxue>=135){   n++;printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录数学成绩在135分以上(包括135分)的学生");}}else if(i==8){n=0;while(p1!=NULL){if(p1->yingyu>=135){n++;printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录英语成绩在135分以上(包括135分)的学生");}      }else if(i==9){n=0;while(p1!=NULL){if(p1->lizong>=270){n++;printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录理综成绩在270分以上(包括270分)的学生");}}else if(i==10){n=0;while(p1!=NULL){if(p1->zongfen>=675){n++;printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);}p1=p1->next;}if(n==0){printf("%s\n","未收录总分在675分以上(包括675分)的学生");}}else{printf("%s\n","输入错误");}printf("%s\n","输入0结束按成绩筛选,输入其他数继续按成绩筛选");scanf("%d",&i);}
}
//###############################################################################################
void dayin()
{//打印system("clear");printf("%s\t","学号");printf("%s\t\t","姓名");printf("%s\t\t","性别");printf("%s\t","年级");printf("%s\t","班级");printf("%s\t","语文");printf("%s\t","数学");printf("%s\t","英语");printf("%s\t","理综");printf("%s\t\n","总分");FILE *fp;if((fp=fopen("grade.txt","r+"))==NULL){fp=fopen("grade.txt","w+");}
Student1 *p1,*p2,*p3,*head;int i=0,n=0,k;p2=head=(Student1 *)malloc(LEN);//head中不存数据head->next=NULL;while(!feof(fp)){p1=(Student1 *)malloc(LEN);fscanf(fp,"%lld %s %s %d%d%d%d%d%d%d",&p1->xuehao,p1->xingming,p1->xingbie,&p1->nianji,&p1->banji,&p1->yuwen,&p1->shuxue,&p1->yingyu,&p1->lizong,&p1->zongfen);printf("%lld\t%s\t\t%s\t\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t\n",p1->xuehao,p1->xingming,p1->xingbie,p1->nianji,p1->banji,p1->yuwen,p1->shuxue,p1->yingyu,p1->lizong,p1->zongfen);p2->next=p1;p2=p1;}fclose(fp);p1->next=NULL;
}
//###############################################################################################
void qingkong()
{//清空FILE *fp;if((fp=fopen("grade.txt","w"))==NULL){printf("%s\n","打开错误");}fclose(fp);
}
//###############################################################################################
int main()
{int i=0;while(i!=-1){system("clear");printf("%s\n","高中理科学生成绩管理系统");printf("%s\n","1.查找成绩输入1");printf("%s\n","2.修改成绩输入2");printf("%s\n","3.添加成绩输入3");printf("%s\n","4.删除成绩输入4");printf("%s\n","5.排序输入5");printf("%s\n","6.筛选输入6");printf("%s\n","7.打印所有已录入的学生成绩输入7");printf("%s\n","8.清空原文件输入8");printf("%s\n","9.输入-1退出程序");printf("%s\n","注1:本程序中的<输入>均表示输入后按Enter键结束");printf("%s\n","注2:本程序中信息添加成功后均会保存到文件中,下次执行程序时可以用到已保存的信息");printf("%s\n","注3:排序功能中的<按姓名排序>暂未实现,待以后完善");void chazhao();void xiugai();void tianjia();void shanchu();void paixu();void shaixuan();void dayin();void qingkong();scanf("%d",&i);if(i==-1){break;} switch(i){case 1:chazhao();break;case 2:xiugai();break;case 3:tianjia();break;case 4:shanchu();break;case 5:paixu();break;case 6:shaixuan();break;case 7:dayin();break;case 8:qingkong();break;default:printf("%s\n","输入错误,请重新输入");}printf("%s\n","输入-1退出程序,输入其他数返回主界面");scanf("%d",&i);}return 0;
}

所用文件内容

12 李四 女 1 1 123 117 138 256 634
13 王五 男 1 2 107 127 126 254 614
14 赵六 女 3 1 115 130 131 226 602
15 马七 男 3 2 135 85 124 202 546
16 张 男 2 2 94 123 119 287 623
17 李四四 男 2 2 116 107 96 241 560
18 王五五 女 3 3 103 90 141 233 567
19 赵六六 男 1 2 99 131 126 253 609
20 马七七 男 1 4 107 135 116 298 656

本程序除排序功能外,其他功能均用简单链表操作实现,排序功能用的是对数组的操作

高中理科学生成绩管理系统(C语言课程设计)相关推荐

  1. 学生成绩统计c语言课程设计,学生成绩管理系统-C语言课程设计

    记一次课程设计作业 学生成绩管理系统#include #include #include #include /* 学生成绩管理系统介绍 2017C语言课程设计  202160936 1.支持将数据保存 ...

  2. 学生成绩管理系统C语言课程设计

    学生成绩管理系统 系统功能模块如下: 1.学生信息管理:实现对学生信息(包括学号.姓名.性别.班级)数据的增删改查操作. 2.班级信息管理:实现对班级信息(包括班级编号.班级名称)数据的增删改查操作. ...

  3. 干货干货~C语言版学生成绩管理系统【数据结构课程设计,百行代码实现功能强化版(内附源码)】

    前言 关于这个系统是我们专业要求做的一个课程设计,本来是上个学期交的,我也是上个学期弄好的,打算发出来,但是一直没交上去(怕交上去之前发出来老师说我作弊...),今天就把我做的这个系统分享给大家,不足 ...

  4. c语言课程设计学生成绩簿,c语言课程设计—学生成绩管理系统

    0; } else printf("没有该条件的选项!\n"); return 0; } void incharge(int a,int b) //交换函数. { struct s ...

  5. 学生信息管理系统c语言讲解,学生信息管理系统C语言课程设计讲解.doc

    课 程 设 计 报 告 课程名称 C语言程序设计 课题名称 学生信息管理系统 专 业 机械 班 级 02 学 号 20 姓 名 刘某某 指导教师 肖伟平 何宏 郭芳 2012年 12 月 19 日 湖 ...

  6. 学生卡管理系统 学生信息管理系统 C语言课程设计

    一.设计目的 通过课程设计的实践环节的教学,可以加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力:同时也可以通过查询相关资料,培养学生自学能力.接受新知识的能力,提高学习兴趣: ...

  7. 用C语言学生成绩数据库排序功能设计,[c语言学生成绩管理系统]C语言学生成绩管理系统实验报告...

    篇一 : C语言学生成绩管理系统实验报告 实 验 四:结构体(6学时) 实验目的: 1.更加灵活的使用数组作为函数参数: 2.初步掌握开发一个小型实用系统的基本方法: 3.初步掌握书写程序设计开发文档 ...

  8. 生成绩管理系统c语言,学生成绩管理系统——C语言版

    <学生成绩管理系统--C语言版>由会员分享,可在线阅读,更多相关<学生成绩管理系统--C语言版(12页珍藏版)>请在人人文库网上搜索. 1.*常用的标准输入输出函数*/*acc ...

  9. 学生成绩表c语言,学生成绩管理系统C语言(附完整源代码) .doc

    学生成绩管理系统C语言(附完整源代码) 课程设计报告 学生成绩管理系统 院系: 专业: 班级: 完成日期: 2009年1月03日 设计题目:学生成绩管理系统 目录 1.题目描述2.算法设计/设计思想3 ...

最新文章

  1. LZMA demo挑选使用备忘
  2. 和jwt_秒懂 JWT
  3. java集合的批量新建_java使用Arrays.asList快速创建List集合
  4. 12_VersionedCollapsingMergeTree,Log Engine Family(Log引擎,StripeLog引擎,TinyLog引擎)
  5. 厦门大学计算机科学与技术学院考研分数线,2020年厦门大学计算机科学与技术考研经验分享...
  6. [CTSC2017]吉夫特(Lucas定理,DP)
  7. 【主机】计算机缓存机制
  8. 《Managed DirectX +C# 开发(入门篇)》系列文章
  9. 贺利坚老师汇编课程51笔记:MUL乘法指令
  10. 【数据融合】基于matlab拓展卡尔曼滤波IMU和GPS数据融合【含Matlab源码 1600期】
  11. 打印机可以打印不能扫描怎么弄_惠普打印机可以打印但无法扫描的解决办法
  12. 前端添加登录验证码 vue
  13. 移动Web开发字体格式选择(附.woff\.woff2 兼容性)
  14. android animator
  15. idea 全局搜索不到,原来是你的原因
  16. 机器学习基础算法四:逻辑回归算法实验
  17. php+mysql在线考试系统源码_phpmysql在线考试系统-PHP源码
  18. Android 实现环形进度按钮circular-progress-button
  19. 在Mac上忘记了Apple ID安全提示问题答案的解决方法
  20. OR-Tools|带你了解谷歌开源优化工具(Google Optimization Tools)

热门文章

  1. ARM_UART 串行通讯基础知识及编程
  2. AttributeError: module ‘*****‘ has no attribute ‘###‘解决办法看过来~
  3. 经纬度计算他们距离的算法(!!!!!!!!!求助啊)
  4. FastReport 4 横向分栏 纵向分栏
  5. 宽带突然断网了,需要做如下应急措施
  6. 如何成为资深软件工程师(JAVA方向)
  7. 利用Linux宝塔界面搭建个不限速的网盘
  8. 利用java解一元二次方程
  9. 华硕FX53VD6700笔记本如何u盘装系统win7教程
  10. linetv_line tv 苹果版-line tv ios版 v2.0.2 iPhone版-IT猫扑网