超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx

上传人:b****6 文档编号:18235839 上传时间:2022-12-14 格式:DOCX 页数:18 大小:17.69KB
下载 相关 举报
超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx_第1页
第1页 / 共18页
超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx_第2页
第2页 / 共18页
超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx_第3页
第3页 / 共18页
超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx_第4页
第4页 / 共18页
超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx

《超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx》由会员分享,可在线阅读,更多相关《超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

超好的学生成绩管理系统顺序表实现的代码含详细注释哦文档格式.docx

i<

L->

litize;

++i)

printf("

请输入第%d个同学的信息:

\n"

L->

length);

学号:

"

);

ffluh(tdin);

canf("

%d"

&

tu[L->

length].num);

姓名:

%"

length].name);

英语成绩:

%f"

length].englih);

高数成绩:

length].math);

数据结构成绩:

length].databae);

length].um=L->

length].englih+L->

length].math+L->

length].databae;

length].average=L->

length].um/3;

length++;

是否继续[Y/N]..."

flag=getchar();

if(flag=='

N'

n'

break;

}

return0;

//函数2显示所有学生信息

intDiplay(qlit某L)

inti;

if(L->

length<

=1)

请先输入数据!

所有同学信息如下:

学号\t姓名\t总分\t平均分\t英语成绩\t高数成绩\t数据结构成绩\n"

length;

i++)

%d\t%\t%.2f\t%.2f\t%.2f\t\t%.2f\t\t%.2f\n"

tu[i].num,L->

tu[i].name,L->

tu[i].um,L->

tu[i].average,L->

tu[i].englih,L->

tu[i].math,L->

tu[i].

databae);

//函数3插入一条记录到表尾

voidInert(qlit某L)

学号:

姓名:

//函数4删除一条记录

intDelete(qlit某L)

char[20];

inti=1,j,ch,n;

//第一个是哨兵

1.按姓名删除\n2.按学号删除\n请选择:

ch);

if(ch==1)

请输入姓名:

);

while(trcmp(L->

tu[i].name,)!

=0&

&

length)

i++;

ele

请输入学号:

n);

while(L->

tu[i].num!

=n&

if(i>

=L->

要删除记录不存在!

for(j=i;

j<

j++)

tu[j]=L->

tu[j+1];

删除成功!

length--;

//函数5统计成绩

intStatitic(qlit某L)

inti,j=1,j1=1,j2=1,j3=1,k=1,k1=1,k2=1,k3=1;

//要算及格率两个整数相除可能会是0所以float型

float

aver,tuum=0,tuum1=0,tuum2=0,tuum3=0,count1=0,count2=0,count3=0;

//用于计算全班平均成绩

tuum+=L->

tu[i].um;

//用于计算各科平均成绩

tuum1+=L->

tu[i].englih;

tuum2+=L->

tu[i].math;

tuum3+=L->

tu[i].databae;

//查找总分最高分if(L->

tu[j].um<

tu[i].um)j=i;

//查找总分最低分if(L->

tu[k].um>

tu[i].um)k=i;

//查找英语最高分if(L->

tu[j1].englih<

tu[i].englih)j1=i;

//查找高数最高分if(L->

tu[j2].math<

tu[i].math)j2=i;

//查找数据结构最高分if(L->

tu[j3].databae<

tu[i].databae)j3=i;

//查找英语最低分if(L->

tu[k1].englih>

tu[i].englih)k1=i;

//查找高数最低分if(L->

tu[k2].math>

tu[i].math)k2=i;

//查找数据结构最低分if(L->

tu[k3].databae>

tu[i].databae)k3=i;

//用于计算及格率if(L->

tu[i].englih>

=60)count1++;

tu[i].math>

=60)count2++;

tu[i].databae>

=60)count3++;

}aver=tuum/L->

共有%d条记录.\n"

总分最高的记录:

tu[j].num,L->

tu[j].name,L->

tu[j].um,L->

tu[j].average,L->

tu[j].englih,L->

tu[j].math,L->

tu[j].databae);

总分最低的记录:

tu[k].num,L->

tu[k].name,L->

tu[k].um,L->

tu[k].average,L->

tu[k].englih,L->

tu[k].math,L->

tu[k].databae);

全体同学平均成绩:

%.2f\n"

aver);

英语及格率:

count1/(L->

length-1));

高数及格率:

count2/(L->

数据结构及格率:

count3/(L->

英语最高分:

tu[j1].englih);

高数最高分:

tu[j2].math);

数据结构最高分:

tu[j3].databae);

英语最低分:

tu[k1].englih);

高数最低分:

tu[k2].math);

数据结构最低分:

tu[k3].databae);

//函数6查找

intSearch(qlit某L)

charn[20];

inti=1,ch1,ch2,j,num,low,high,mid;

1.顺序查找\n2.二分查找\n请选择:

ch1);

if(ch1==1){

1.按学号查找\n2.按姓名查找\n请选择:

ch2);

if(ch2==1)

请输入学号:

num);

=num&

ele{

n);

tu[i].name,n)!

查找失败!

查找成功!

tu[i].databae);

if(ch1==2){

{//二分查找,先按学号排序

for(i=2;

tu[i].num<

tu[i-1].num)

tu[0]=L->

tu[i];

tu[i]=L->

tu[i-1];

for(j=i-2;

tu[0].num<

tu[j].num;

j--)

tu[j+1]=L->

tu[j];

tu[0];

low=1;

high=L->

length-1;

//置区间初值

while(low<

=high)

{mid=(low+high)/2;

tu[mid].num==num){

tu[mid].num,L->

tu[mid].name,L->

tu[mid].um,L->

tu[mid].average,L->

tu[mid].englih,L->

tu[mid].math,L->

tu[mid].databae);

if(num<

tu[mid].num)high=mid-1;

//继续在前半区间进行查找ele

low=mid+1;

//继续在后半区间进行查找

{//二分查找,先按姓名排序

if(trcmp(L->

tu[i-1].name)<

0)

trcmp(L->

tu[0].name,L->

tu[j].name)<

0;

j--)L->

请输入姓名:

mid=(low+high)/2;

tu[mid].name,n)==0){

if(trcmp(n,L->

tu[mid].name)<

0)high=mid-1;

//继续在前半区间进行查找

}//ele

}//if(ch1==2)

//函数7排序

intSort(qlit某L)

inti,ch1,ch2,j,k;

intlow,high,mid;

1.直接插入排序\t2.折半插入排序\n3.冒泡排序\t4.直接选择排序\n请选择:

witch(ch1){

cae1:

1.按学号排序\n2.按英语成绩排序\t3.按高数成绩排序\n4.按数据结构成绩排序\t5.按总分排序\n请选择:

witch(ch2){

cae2:

tu[i].englih<

tu[i-1].englih)

tu[0].englih<

tu[j].englih;

}break;

cae3:

i++)if(L->

tu[i].math<

tu[i-1].math){L->

tu[0].math<

tu[j].math;

cae4:

tu[i].databae<

tu[i-1].databae){L->

tu[0].databae<

tu[j].databae;

cae5:

tu[i].um<

tu[i-1].um){L->

tu[0].um<

tu[j].um;

}//wich(ch2)break;

1.按学号排序\n2.按英语成绩排序\t3.按高数成绩排序\n4.按数据结

构成绩排序\t5.按总分排序\n请选择:

/某设置监测哨某/

high=i-1;

{/某在r[low..high]中折半查找有序插入的位置某/

tu[mid].num)

high=mid-1;

/某插入点在低半区某/

/某插入点在高半区某/

}/某while某/

for(j=i-1;

j>

=low;

--j)

/某记录后移某/

tu[high+1]=L->

/某插入到正确位置某/}/某if某/

}/某for某/

tu[mid].englih)high=mid-1;

/某插入到正确位置某/

}/某if某/}/某for某/break;

i++){if(L->

/某设置监测哨某/low=1;

=high){/某在r[low..high]中折半查找有序插入的位置某/mid=(low+high)/2;

tu[mid].math)high=mid-1;

/某插入点在低半区某/elelow=mid+1;

/某插入点在高半区某/}/某while某/for(j=i-1;

--j)L->

/某记录后移某/L->

/某插入到正确位置某/}/某if某/}/某for某/break;

tu[mid].databae)high=mid-1;

}/某if某/

tu[i-1].um)

tu[mid].um)

break

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1