粗糙的成绩管理系统!
学C都有一段时间了!
所以想测试下自己的能力(经测试,能力不咋地
!)就做了个小小的成绩管理系统
了!(问:为什么这么多人都做这个呢?答:感觉能力就到这了!
)虽然功能不怎么样,但也花了心思下去!欢迎糟蹋糟蹋
。








[ 本帖最后由 liangjinchao 于 2011-5-4 13:28 编辑 ]

!)
了!(问:为什么这么多人都做这个呢?答:感觉能力就到这了!
)
。








)
程序代码:void sort(ST *trans_head6)//函数功能:排序; (trans_head6是链表的头指针)
{
if(trans_head6==NULL)
{
printf("请先录入成绩!");
}
else
{
ST *p=trans_head6->next;
PT *ptr=(PT*)malloc(sizeof(PT)*count_stu),*ptr2,temp;//分配count_stu个PT单位; 注:count_stu是定义了的全局变量,用来记录链表中的人数!
int i,j,k;
ptr2=ptr;
if(ptr==NULL)
{
printf("内存分配失败!程序将退出!\n");
exit(0);
}
else
{
while(p)//将链表结构中的数据导入到数组中
{
ptr2->math=p->grade_math;
ptr2->english=p->grade_english;
ptr2->physics=p->grade_physics;
ptr2->student_num=p->stu_num;
ptr2->total_grade=p->total;
p=p->next;
ptr2++;
}
}
for(i=0;i<count_stu;i++)//排序
{
for(j=i+1;j<=count_stu;j++)
{
if((ptr+i)->total_grade<(ptr+j)->total_grade)
{
temp=*(ptr+i);
*(ptr+i)=*(ptr+j);
*(ptr+j)=temp;
}
}
}
printf("以下是排序后的成绩表:\n");
for(k=0;k<count_stu;k++)
{
printf("学号,数学成绩,英语成绩,物理成绩,总分\n");
printf("%d %f %f %f %f\n",(ptr+k)->student_num,(ptr+k)->math,(ptr+k)->english,(ptr+k)->physics,(ptr+k)->total_grade);
}
printf("最高分为:\n");
printf("学号:%d 总分:%f\n",ptr->student_num,ptr->total_grade);
printf("最低分为:\n");
printf("学号:%d 总分:%f\n",(ptr+k-1)->student_num,(ptr+k-1)->total_grade);
}
}