好文档 - 专业文书写作范文服务资料分享网站

学生成绩信息管理系统(C语言)

天下 分享 时间: 加入收藏 我要投稿 点赞

return(head); }

p1=head;

while(number!=p1->number&&p1->next!=NULL)

/*p1指向的不是所要找的首结点,并且后面还有结点*/ {

p2=p1;p1=p1->next; } /*p1后移一个结点*/

if(number==p1->number) /*找到了*/ {

if(p1==head) head=p1->next;

/*若p1指向的是首结点,把地二个结点地址赋予head*/ else

p2->next=p1->next;

/*否则将下一个结点地址 赋给前一结点地址*/ printf(\删除:%d\\n\ } else

printf(\不存在此学生!\\n\ /*找不到该结点*/

printf(\输入要删除的学生的学号:\ scanf(\ getchar(); }

#ifdef DEBUG

printf(\已经退出了!\\n\#endif

printf(\现在的学生数为:%d个!\\n\ return(head); }

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

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

==========================*/ void print2311(score *head)

/*函数print2311,功能:显示学生成绩*/ {

score *p;

if(head==NULL)

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

{printf(\

printf(\ printf(\学号\\t|姓名\\t|语文\\t|英语\\t|数学\\t|\\n\

printf(\打印表格域*/ p=head; do

{printf(\ printf(\打印表格域*/ p=p->next;}while (p!=NULL);/*打印完成了*/ } }

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

/*==============================================================================================*/ score *statistics2311(score *head)

/*函数statistics2311,功能:统计学生成绩*/ {

float sum1=0,sum2=0,sum3=0,ave1=0,ave2=0,ave3=0,max=0,min; score *p; int x,y=0,i=0;

p=head;

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

switch(x)

/*用switch语句实现功能选择*/ {

case 1: if(head==NULL)

{printf(\没有任何学生资料!\\n\链表为空*/ else {

printf(\

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

printf(\打印表格域*/ while(p!=NULL) {

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

printf(\p->shuxue,sum1,ave1); /*打印结果*/

printf(\打印表格域*/ p=p->next;} }

return(head); break; case 2: if(head==NULL)

{printf(\没有任何学生资料!\\n\链表为空*/ while(p!=NULL) {

sum1=sum1+p->yuwen; sum2=sum2+p->yingyu;

sum3=sum3+p->shuxue;/*计算总分*/ y=y+1;

ave1=sum1/y; ave2=sum2/y;

ave3=sum3/y;/*计算平均分*/ p=p->next;/*使p指向下一个结点*/ }

printf(\语文平均分是%.1f\\n\ printf(\英语平均分是%.1f\\n\

printf(\数学平均分是%.1f\\n\打印结果*/ return(head); break; case 3:

if(head==NULL)

{printf(\没有任何学生资料!\\n\链表为空*/ max=p->yuwen+p->yingyu+p->shuxue; while(i

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

}

printf(\总分最高分:%.1f\ printf(\

return(head); break;

case 4: if(head==NULL)

{printf(\没有任何学生资料!\\n\链表为空*/ while(p!=NULL) {

min=p->yuwen+p->yingyu+p->shuxue; while(p!=NULL)

{sum2=p->yuwen+p->yingyu+p->shuxue;

if(min>sum2) min=sum2; p=p->next; } }

printf(\总分最低分:%.1f\ printf(\

return(head); break;

default :printf(\输入错误,请重试!\\n\ }

return(head); }

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

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

save2311(score *p1)

/*函数save2311,功能:保存学生的资料*/ {

FILE *fp;

char filepn[20];/*用来存放文件保存路径以及文件名*/

printf(\请输入文件路径及文件名:\ scanf(\

if((fp=fopen(filepn,\ {

printf(\不能打开文件!\\n\ return 0; }

while(p1!=NULL) {

fprintf(fp,\xue);

p1=p1->next;/*下移一个结点*/ }

fclose(fp);

printf(\文件已经保存!\\n\ return 0; }

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

/*==============================================================================================*/ score *taxis2311(score *head)

/*定义排序函数。此函数带回一个指向链表头的指针*/ { score *p,*max; int i,j,x; float fen; char t[10];

if(head==NULL)

{printf(\没有任何学生资料,请先建立链表!\\n\链表为空*/ max=p=head;

for(i=0;i<80;i++) printf(\

printf(\按学生学号排序\\t2按学生姓名排序\\t3按语文成绩排序\\n\ printf(\按英语成绩排序\\t5按数学成绩排序\\t\\n\ for(i=0;i<80;i++) printf(\

printf(\请选择操作:\

scanf(\选择操作*/

48us46ucgk8n6j4879hw6x2111f20r00b9z
领取福利

微信扫码领取福利

微信扫码分享