C语言课程设计 C语言课程设计学生管理系统.docx

上传人:b****6 文档编号:13011805 上传时间:2023-06-10 格式:DOCX 页数:29 大小:18.46KB
下载 相关 举报
C语言课程设计 C语言课程设计学生管理系统.docx_第1页
第1页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第2页
第2页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第3页
第3页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第4页
第4页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第5页
第5页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第6页
第6页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第7页
第7页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第8页
第8页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第9页
第9页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第10页
第10页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第11页
第11页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第12页
第12页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第13页
第13页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第14页
第14页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第15页
第15页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第16页
第16页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第17页
第17页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第18页
第18页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第19页
第19页 / 共29页
C语言课程设计 C语言课程设计学生管理系统.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计 C语言课程设计学生管理系统.docx

《C语言课程设计 C语言课程设计学生管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计 C语言课程设计学生管理系统.docx(29页珍藏版)》请在冰点文库上搜索。

C语言课程设计 C语言课程设计学生管理系统.docx

C语言课程设计C语言课程设计学生管理系统

#include

#include

#include

#defineLENsizeof(structscorenode)

#defineDEBUG

#include

structscorenode

{intnumber;/*学号*/

charname[10];/*姓名*/

floatyuwen;/*语文成绩*/

floatyingyu;/*英语成绩*/

floatshuxue;/*数学成绩*/

structscorenode*next;

};

typedefstructscorenodescore;

intn,k;/*n,k为全局变量,本程序中的函数均可以使用它*/

/*==============================================================================================*/

score*creat2311(void)

/*功能:

创建链表,此函数带回一个指向链表头的指针*/

{

score*head;

score*p1,*p2,*p3,*max;

inti,j;

floatfen;

chart[10];

n=0;

p1=p2=p3=(score*)malloc(LEN);head=p3;

printf("Pleaseinputresaurceprint0exit!

n");

repeat1:

printf("PleaseinputNO:

(>0)");

scanf("%d",&p1->number);

while(p1->number<0)

{getchar();

printf("error,Pleaseinputagain!

");

scanf("%d",&p1->number);}

if(p1->number==0)

gotoend;

else

{

p3=head;

if(n>0)

{for(i=0;i

{if(p1->number!

=p3->number)

p3=p3->next;

else

{printf("学号重复,请重输!

n");

gotorepeat1;

}

}

}

}

printf("Pleaseinputname:

");

scanf("%s",&p1->name);

printf("Pleaseinputchinesescore(0~100):

");

scanf("%f",&p1->yuwen);

while(p1->yuwen<0||p1->yuwen>100)

{getchar();

printf("error,Pleaseinputagain!

");

scanf("%f",&p1->yuwen);}

printf("Pleaseinput英语成绩(0~100):

");

scanf("%f",&p1->yingyu);

while(p1->yingyu<0||p1->yingyu>100)

{getchar();

printf("输入错误,请重新输入英语成绩");

scanf("%f",&p1->yingyu);}

printf("Pleaseinput数学成绩(0~100):

");

scanf("%f",&p1->shuxue);

while(p1->shuxue<0||p1->shuxue>100)

{getchar();

printf("输入错误,请重新输入数学成绩");

scanf("%f",&p1->shuxue);}

head=NULL;

while(p1->number!

=0)

{

n=n+1;

if(n==1)

head=p1;

else

p2->next=p1;

p2=p1;

p1=(score*)malloc(LEN);

printf("Pleaseinput学生资料,输0退出!

n");

repeat2:

printf("Pleaseinput学生学号(学号应大于0):

");

scanf("%d",&p1->number);

while(p1->number<0)

{getchar();

printf("输入错误,请重新输入学生学号:

");

scanf("%d",&p1->number);}

if(p1->number==0)

gotoend;

else

{

p3=head;

if(n>0)

{for(i=0;i

{if(p1->number!

=p3->number)

p3=p3->next;

else

{printf("学号重复,请重输!

n");

gotorepeat2;

}

}

}

}

printf("Pleaseinput学生姓名:

");

scanf("%s",&p1->name);

printf("Pleaseinput语文成绩(0~100):

");

scanf("%f",&p1->yuwen);

while(p1->yuwen<0||p1->yuwen>100)

{getchar();

printf("输入错误,请重新输入语文成绩");

scanf("%f",&p1->yuwen);}

p

;printf("Pleaseinput英语成绩(0~100):

");

scanf("%f",&p1->yingyu);

while(p1->yingyu<0||p1->yingyu>100)

{getchar();

printf("输入错误,请重新输入英语成绩");

scanf("%f",&p1->yingyu);}

printf("Pleaseinput数学成绩(0~100):

");

scanf("%f",&p1->shuxue);

while(p1->shuxue<0||p1->shuxue>100)

{getchar();

printf("输入错误,请重新输入数学成绩");

scanf("%f",&p1->shuxue);}

}

end:

p1=head;

p3=p1;

for(i=1;i

{

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

{

max=p1;

p1=p1->next;

if(max->number>p1->number)

{

k=max->number;

max->number=p1->number;

p1->number=k;

strcpy(t,max->name);

strcpy(max->name,p1->name);

strcpy(p1->name,t);

fen=max->yuwen;

max->yuwen=p1->yuwen;

p1->yuwen=fen;

fen=max->yingyu;

max->yingyu=p1->yingyu;

p1->yingyu=fen;

fen=max->shuxue;

max->shuxue=p1->shuxue;

p1->shuxue=fen;

}

}

max=head;p1=head;

}

p2->next=NULL;

printf("输入的学生数为:

%d个!

n",n);

return(head);

}

/*==============================================================================================*/

/*==============================================================================================*/

score*load2311(score*head)

/*功能:

从文件读入学生记录*/

{score*p1,*p2;

intm=0;

charfilepn[10];

FILE*fp;

printf("Pleaseinput文件路径及文件名:

");

scanf("%s",filepn);

if((fp=fopen(filepn,"r+"))==NULL)

{

printf("不能打开文件!

n");

return0;

}

fscanf(fp,"考试成绩管理系统n");

fscanf(fp,"作者:

happyyangxu班级:

010911学号:

28n");

fscanf(fp,"-----------------------------------------n");

fscanf(fp,"|学号t|姓名t|语文t|英语t|数学t|n");

fscanf(fp,"-----------------------------------------n");

printf("考试成绩管理系统n");

printf("作者:

happyyangxu班级:

010911学号:

28n");

printf("-----------------------------------------n");

printf("|学号t|姓名t|语文t|英语t|数学t|n");

printf("-----------------------------------------n");

m=m+1;

if(m==1)

{

p1=(score*)malloc(LEN);

fscanf(fp,"%d%s%f%f%f",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue);

printf("|%dt|%st|%.1ft|%.1ft|%.1ft|n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);

head=NULL;

do

{

n=n+1;

if(n==1)head=p1;

elsep2->next=p1;

p2=p1;

p1=(score*)malloc(LEN);

fscanf(fp,"%d%s%f%f%fn",&p1->number,p1->name,&p1->yuwen,&p1->yingyu,&p1->shuxue);

printf("|%dt|%st|%.1ft|%.1ft|%.1ft|n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);

}while(!

feof(fp));

p2->next=p1;

p1->next=NULL;

n=n+1;

}printf("-----------------------------------------n");

fclose(fp);

return(head);

}

/*==============================================================================================*/

/*==============================================================================================*/

score*add2311(score*head,score*stu)

/*功能:

追加学生资料,并且将所有学生资料按学号排序*/

{

score*p0,*p1,*p2,*p3,*max;

inti,j;

floatfen;

chart[10];

p3=stu=(score*)malloc(LEN);

printf("n输入要增加的学生的资料!

");

repeat4:

printf("Pleaseinput学生学号(学号应大于0):

");

scanf("%d",&stu->number);

while(stu->number<0)

{getchar();

printf("输入错误,请重新输入学生学号:

");

scanf("%d",&stu->number);}

/******************************************************/

if(stu->number==0)

gotoend2;

else

{

p3=head;

if(n>0)

{for(i=0;i

{if(stu->number!

=p3->number)

p3=p3->next;

else

{printf("学号重复,请重输!

n");

gotorepeat4;

}

}

}

}

/******************************************************/

printf("输入学生姓名:

");

scanf("%s",stu->name);

printf("Pleaseinput语文成绩(0~100):

");

scanf("%f",&stu->yuwen);

while(stu->yuwen<0||stu->yuwen>100)

{getchar();

printf("输入错误,请重新输入语文成绩");

scanf("%f",&stu->yuwen);}

printf("Pleaseinput英语成绩(0~100):

");

scanf("%f",&stu->yingyu);

while(stu->yingyu<0||stu->yingyu>100)

{getchar();

printf("输入错误,请重新输入英语成绩");

scanf("%f",&stu->yingyu);}

printf("Pleaseinput数学成绩(0~100):

");

scanf("%f",&stu->shuxue);

while(stu->shuxue<0||stu->shuxue>100)

{getchar();

printf("输入错误,请重新输入数学成绩");

scanf("%f",&stu->shuxue);}

p1=head;

p0=stu;

if(head==NULL)

{head=p0;p0->next=NULL;}

else

{

if(p1->next==NULL)

{

p1->next=p0;

p0->next=NULL;

}

else

{

while(p1->next!

=NULL)

{

p2=p1;p1=p1->next;

}

p1->next=p0;

p0->next=NULL;

}

}

n=n+1;

p1=head;

p0=stu;

for(i=1;i

{

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

{

max=p1;

p1=p1->next;

if(max->number>p1->number)

{

k=max->number;

max->number=p1->number;

p1->number=k;

strcpy(t,max->name);

strcpy(max->name,p1->name);

strcpy(p1->name,t);

fen=max->yuwen;

max->yuwen=p1->yuwen;

p1->yuwen=fen;

fen=max->yingyu;

max->yingyu=p1->yingyu;

p1->yingyu=fen;

fen=max->shuxue;

max->shuxue=p1->shuxue;

p1->shuxue=fen;

}

}

max=head;p1=head;

}end2:

printf("现在的学生数为:

%d个!

n",n);

return(head);

}

/*==============================================================================================*/

/*==============================================================================================*/

score*search2311(score*head)

/*功能:

查询学生成绩*/

{intnumber;

score*p1,*p2;

printf("输入要查询的学生的学号,");

scanf("%d",&number);

while(number!

=0)

{

if(head==NULL)

{printf("n没有任何学生资料!

n");return(head);}

printf("-----------------------------------------n");

printf("|学号t|姓名t|语文t|英语t|数学t|n");

printf("-----------------------------------------n");

p1=head;

while(number!

=p1->number&&p1->next!

=NULL)

{p2=p1;p1=p1->next;}

if(number==p1->number)

{printf("|%dt|%st|%.1ft|%.1ft|%.1ft|n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);

printf("-----------------------------------------n");}

else

printf("%d不存在此学生!

n",number);

printf("输入要查询的学生的学号,");

scanf("%d",&number);

}

printf("已经退出了!

n");

return(head);}

/*==============================================================================================*/

/*==============================================================================================*/

score*del2311(score*head)

{

score*p1,*p2;

intnumber;

printf("输入要删除的学生的学号(输入0时退出):

");

scanf("%d",&number);

getchar();

while(number!

=0)/*输入学号为0时退出*/

{

if(head==NULL)

{

printf("n没有任何学生资料!

n");

return(head);

}

p1=head;

while(number!

=p1->number&&p1->next!

=NULL)

{

p2=p1;p1=p1->next;

}

if(number==p1->number)

{

if(p1==head)

head=p1->next;

else

p2->next=p1->next;

printf("删除:

%dn",number);n=n-1;

}

else

printf("%d不存在此学生!

n",number);

printf("输入要删除的学生的学号:

");

scanf("%d",&number);

getchar();

}

#ifdefDEBUG

printf("已经退出了!

n");

#endif

printf("现在的学生数为:

%d个!

n",n);

return(head);

}

/*==============================================================================================*/

/*==============================================================================================*/

voidprint2311(score*head)

/*功能:

显示学生成绩*/

{

score*p;

if(head==NULL)

{printf("n没有任何学生资料!

n");}

else

{printf("%dn",n);

printf("-----------------------------------------n");

printf("|学号t|姓名t|语文t|英语t|数学t|n");

printf("-----------------------------------------n");

p=head;

do

{printf("|%dt|%st|%.1ft|%.1ft|%.1ft|n",p->number,p->name,p->yuwen,p->yingyu,p->shuxue);

printf("-----------------------------------------n");

p=p->next;}while(p!

=NULL);

}

}

/*==============================================================================================*/

/*==============================================================================================*/

score*statistics2311(score*head)

/*功能:

统计学生成绩*/

{

floatsum1=0,sum2=0,sum3=0,ave1=0,ave2=0,ave3=0,max=0,min;

score*p;

intx,y=0,i=0;

p=head;

printf("1个人总分和平均分t2单科平均分t3总分最高分t4总分最低分n");

scanf("%d",&x);

getchar();

switch(x)

{

case1:

if(head==NULL)

{printf("n没有任何学生资料!

n");return(head);}

else

{

printf("---------------------------------------------------------n");

printf("|学号t|姓名t|语文t|英语t|数学t|总分t|平均分t|n");

printf("---------------------------------------------------------n");

while(p!

=NULL)

{

sum1=p->yuwen+p->yingyu+p->shuxue;/*计算个人总分*/

ave1=s

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2