学生成绩查询c语言程序.docx
《学生成绩查询c语言程序.docx》由会员分享,可在线阅读,更多相关《学生成绩查询c语言程序.docx(11页珍藏版)》请在冰豆网上搜索。
学生成绩查询c语言程序
填写说明:
1、同一名教师在不同教学班教授的同一门课程只须填写一份教学日历;由不同教师教授的同一门课程每人填写一份教学日历。
2、“作业、实验”栏中的作业,是指教师计划布置的,应该批改的作业。
3、法定假日不安排教学内容,其课次顺延安排。
系统开发语言作业
现有一个班级,共10人,本学期共学习三门课程,设计一个学生成绩管理系统,要求如下:
1、完成三门课程成绩输入;或单门课程录入、或同时录入三门课。
2、完成成绩排序:
按单科成绩排序、按平均分排序;
3、完成成绩统计:
按单科分段统计人数、按平均分分段统计(60分以下,60-79分,80以上);
4、用结构体完成学生姓名和成绩的输入:
5、完成成绩查询:
单科查询、平均分查询、按姓名查询、分段查询等;
6、完成奖学金统计:
三门课均高于90分,一等奖学金;三门课均高于80分,二等奖学金,统计获奖学金人数
7、完成成绩输出:
按单科输出、输出所有成绩、按平均分由高到低输出,输出奖学金名单等;.
作业要求
第1、2、3周、完成成绩录入、排序和统计
第4、5、6周、完成菜单和函数编制
第2、8、9周、完成成绩查询和统计
第10、11周、完成查询输出
第12、13周、讲程序进行函数化、模块化
第14、15周、应用指针、指针函数以及函数指针等
第16周,完善程序、验收。
最后打印出完整代码清单
代码如下:
#include
structstudent
{
floatmath;
floatChinese;
floatEnglish;
floataverage;
charname[5];
};
voidinputgread(structstudentstu)//输入成绩
{
inta=0;
scanf("%s",stu.name);
printf("按顺序输入数学成绩,语文成绩,英语成绩");
scanf("%f%f%f",&stu.math,&stu.Chinese,&stu.English);
}
voidChinesecompositor(structstudentstu[])//按语文排序
{
intnum=0,num2=0;
structstudentp;
for(num2;num2<9;num2++)
{
for(num;num<9;num++)
{
if(stu[num].Chinese{
p=stu[num];
stu[num]=stu[num+1];
stu[num+1]=p;
}
}
}
for(num=0;num<10;num++)
{
printf("%c:
%f",stu[num].name,stu[num].Chinese);
}
}
voidmathcompositor(structstudentstu[])//按数学排序
{
intnum=0,num2=0;
structstudentp;
for(num2;num2<9;num2++)
{
for(num;num<9;num++)
{
if(stu[num].math{
p=stu[num];
stu[num]=stu[num+1];
stu[num+1]=p;
}
}
}
for(num=0;num<10;num++)
{
printf("%c:
%f",stu[num].name,stu[num].math);
}
}
voidEnglishcompositor(structstudentstu[])//按英语排序
{
intnum=0,num2=0;
structstudentp;
for(num2;num2<9;num2++)
{
for(num;num<9;num++)
{
if(stu[num].English{
p=stu[num];
stu[num]=stu[num+1];
stu[num+1]=p;
}
}
}
for(num=0;num<10;num++)
{
printf("%c:
%f",stu[num].name,stu[num].English);
}
}
voidAverage(structstudentstu)//平均分
{
intnum=0;
stu.average=(stu.Chinese+stu.English+stu.math)/3;
}
voidAveragecompositor(structstudentstu[])//按平均分排序
{
intnum=0,num2=0;
structstudentp;
for(num2;num2<9;num2++)
{
for(num;num<9;num++)
{
if(stu[num].average{
p=stu[num];
stu[num]=stu[num+1];
stu[num+1]=p;
}
}
}
for(num=0;num<10;num++)
{
printf("%c:
%f",stu[num].name,stu[num].average);
}
}
voidnamecheck(structstudentstu[],char*na)//按姓名查询
{
intnum=0;
for(num;num<10;num++)
{
if(na==stu[num].name)
{
printf("姓名:
%s数学:
%f语文:
%f英语:
%f",stu[num].name,stu[num].math,stu[num].English);
}
}
}
voidscholarship(structstudentstu[])//奖学金
{
intnum=0,count=0;
printf("一等奖学金名单:
\n");
for(num;num<10;num++)
{
if(stu[num].Chinese>=90&&stu[num].English>=90&&stu[num].math>=90)
{
printf("%s",stu[num].name);
count++;
}
}
printf("\n二等奖学金名单:
\n");
for(num;num<10;num++)
{
if(stu[num].Chinese>=80&&stu[num].English>=80&&stu[num].math>=80)
{
printf("%s",stu[num].name);
count++;
}
}
printf("奖学金人数:
%d",count);
}
voidscorecut(structstudentstu[],intn)//分数段
{
intnum=0,count=0;
switch(n)
{
case1:
{
printf("语文成绩分数段:
\n");
printf("90分以上:
\n");
for(num;num<10;num++)
{
if(stu[num].Chinese>=90){printf("%s\n",stu[num].name);}
}
printf("80---90:
\n");
for(num=0;num<10;num++)
{
if(stu[num].Chinese>=80&&stu[num].Chinese<90){printf("%s\n",stu[num].name);}
}
printf("70--80:
\n");
for(num=0;num<10;num++)
{
if(stu[num].Chinese>=70&&stu[num].Chinese<80){printf("%s\n",stu[num].name);}
}
printf("60--70:
\n");
for(num=0;num<10;num++)
{
if(stu[num].Chinese>=60&&stu[num].Chinese<70){printf("%s\n",stu[num].name);}
}
printf("不及格:
\n");
for(num=0;num<10;num++)
{
if(stu[num].Chinese<60){printf("%s\n",stu[num].name);}
}
}
case2:
{
printf("平均分成绩分段:
\n");
printf("90分以上:
\n");
for(num;num<10;num++)
{
if(stu[num].average>=90){printf("%s\n",stu[num].name);}
}
printf("80---90:
\n");
for(num=0;num<10;num++)
{
if(stu[num].average>=80&&stu[num].average<90){printf("%s\n",stu[num].name);}
}
printf("70--80:
\n");
for(num=0;num<10;num++)
{
if(stu[num].average>=70&&stu[num].average<80){printf("%s\n",stu[num].name);}
}
printf("60--70:
\n");
for(num=0;num<10;num++)
{
if(stu[num].average>=60&&stu[num].average<70){printf("%s\n",stu[num].name);}
}
printf("不及格:
\n");
for(num=0;num<10;num++)
{
if(stu[num].average<60){printf("%s\n",stu[num].name);}
}
}
}
}
voidmenu()
{
printf("1.成绩录入\n");
printf("2.成绩查询\n");
printf("3.分数段查询\n");
printf("4.奖学金查询\n");
printf("5.成绩排序\n");
}
main()
{
structstudentstu[10];
intnum=0,n;
char*na;
while
(1)
{
menu();
scanf("%d",&n);
switch(n)
{
case1:
for(num;num<10;num++)
{
printf("输入第%d个学生姓名",num+1);
inputgread(stu[num]);
Average(stu[num]);
}break;
case2:
{
printf("1.按姓名查询\n");
printf("2.查询平均分\n");
printf("3.退出查询\n");
scanf("%d",&n);
switch(n)
{
case1:
{printf("输入学生姓名:
");
scanf("%s",&na);
namecheck(stu,na);
}
case2:
{
for(num=0;num<10;num++)
{
printf("3科平均分:
\n");
printf("%c:
%f\n",stu[num].name,stu[num].average);
}
}
case3:
break;
}
}
case3:
{
}
case4:
{printf("1.语文单科成绩分段\n");
printf("2.平均分分段\n");
scanf("%d",&n);
switch(n)
{
case1:
scorecut(stu,n);
case2:
scorecut(stu,n);
case3:
break;
}
}
case5:
{
printf("按数学成绩排序:
\n");
mathcompositor(stu);
printf("按语文成绩排序:
\n");
Chinesecompositor(stu);
printf("按英语成绩排序:
\n");
Englishcompositor(stu);
printf("按平均分排序:
\n");
Averagecompositor(stu);
}
}
}
}