#include
#include
#include
#defineN100
intiNumOfStu=0;
structscore
{
floatmath;
floatenglish;
floatcomputer;
};
structstudent
{
intnumber;
charname[20];
structscoresco;
floataverage;
};
structstudentstu[N];
voidprint_menu(void);//输出菜单
voidchoomenu(void);//菜单选择
voidinput_student1(int);//输入学生信息
voidinput_student2(void);//输入总函数
voidinput_student3(int&,int);//判断学号是否重复
voidinput_student4(int,int);//覆盖原信息
voidsort_student3(students[],int);//按照英语成绩排序
voidsort_student4(students[],int);//按照计算机成绩排序
voidsort_student2(students[],int);//按照数学成绩排序
voidsort_student5(students[],int);//按照平均成绩排序
floatinput_score2(int);//计算学生平均成绩
voidprint_student2(void);//显示表头
voidprint_student3(int);//显示学生信息
voidprint_student1(int);//显示全部学生资料
voidsort_student1(void);//排序总函数
voidmenu(void);//菜单调度总函数
intarch_student2(int);//按学号查询学生信息并输出
voidarch_student3(int);//按平均分最高查询并输出
voidarch_student1(void);//查询总函数
voiddelete_student2(int,int);//删除学生信息
voiddelete_student1(void);//删除总函数
voidchange_student2(int);//修改学生资料
voidchange_student1(void);//修改总函数
voidinput_score3(int);//统计成绩
voidinput_score1(void);//统计成绩总函数
voidprint_help(void);//输出帮助信息
voidexit_student(void);//退出系统
voidsave_student(student*,int);//保存学生信息
voidmain()
{
menu();
}
voidsave_student(student*s,inta)//保存学生信息
{
FILE*fp;
if((fp=fopen(”d:学生信息。txt",”wb”))==NULL)
{
printf(”不能打开文件!n”);
}
el
{
printf("保存信息到D盘n");
fprintf(fp,"本班所有学生具体信息如下:rn");
fprintf(fp,"学号姓名数学成绩英语成绩计算机成
绩平均成绩rn”);
{
fprintf(fp,”%8d%12s%14。2f%14。2f%14.2f%14。2fn”,stu[i]。number,stu[i].name,
stu[i].sco。math,stu[i].sco。english,stu[i]。er,stu[i]。average);
fprintf(fp,"rn");
}
fclo(fp);
printf(”信息保存成功!n”);
}
}
voidexit_student(void)//退出系统
{
exit(1);
}
voidprint_help(void)//输出帮助信息
{
printf(”本系统所能容纳的最大学生数为%d人n学生信息保存在D盘根目录下,保存
文件为“学生信息。txt”.n感谢使用!n”,N);
}
voidinput_score1(void)//统计成绩总函数
{
intc;
c=arch_student2(iNumOfStu);
printf(”学号:%dn",stu[c].number);
printf("姓名:%sn”,stu[c]。name);
input_score3(c);
printf(”新成绩录入成功!n");
stu[c]。average=input_score2(c);
}
voidinput_score3(inta)//统计成绩
{
printf(”数学新成绩:");
scanf(”%f",&stu[a].);
printf(”英语新成绩:");
scanf(”%f”,&stu[a].h);
printf("计算机新成绩:”);
scanf("%f”,&stu[a]。er);
}
voidchange_student2(inta)//修改学生资料
{
printf("学号:%d--—-修改为:”,stu[a].number);
scanf("%d",&stu[a]。number);
getchar();
printf(”姓名:%s—---修改为:”,stu[a]。name);
gets(stu[a]。name);
printf("数学成绩:%.2f——-—修改为:",stu[a]。sco。math);
scanf(”%f”,&stu[a]。);
printf(”英语成绩:%。2f---—修改为:”,stu[a].h);
scanf(”%f",&stu[a]。sco。english);
printf(”计算机成绩:%。2f-—--修改为:”,stu[a].er);
scanf(”%f”,&stu[a].sco。computer);
}
voidchange_student1(void)//修改总函数
{
intc;
c=arch_student2(iNumOfStu);
getchar();
printf(”是否要修改此学生信息?(“y”代表是)");
chard;
scanf("%c",&d);
if(d==’y'||d=='Y')
{
change_student2(c);
stu[c]。average=input_score2(c);
printf(”信息修改成功!n”);
}
}
voiddelete_student1(void)//删除总函数
{
intc;
c=arch_student2(iNumOfStu);
getchar();
printf("是否删除此条记录?(“y”代表是)");
chard;
scanf("%c",&d);
if(d=='y'||d=='Y')
{
delete_student2(c,iNumOfStu);
printf("记录已删除!n”);
}
}
voiddelete_student2(inta,intb)//删除学生信息
{
for(inti=a;i〈b-1;i++)
{
stu[i]=stu[i+1];
}
-—iNumOfStu;
}
voidarch_student1(void)//查询总函数
{
printf(”1、按学号查询n2、按平均分最高查询n请选择:”);
intc;
scanf(”%d",&c);
switch(c)
{
ca1:
{
arch_student2(iNumOfStu);
break;
}
ca2:
{
arch_student3(iNumOfStu);
break;
}
default:break;
}
}
voidmenu(void)//菜单调度总函数
{
print_menu();
choomenu();
}
voidsort_student1(void)//排序总函数
{
printf(”1、按数学成绩排序n2、按英语成绩排序n3、按计算机成绩排序n4、按平均成
绩排序n请选择:");
intc;
scanf(”%d”,&c);
switch(c)
{
ca1:
{
sort_student2(stu,iNumOfStu);
break;
}
ca2:
{
sort_student3(stu,iNumOfStu);
break;
}
ca3:
{
sort_student4(stu,iNumOfStu);
break;
}
ca4:
{
sort_student5(stu,iNumOfStu);
break;
}
default:break;
}
}
voidprint_student1(inta)//显示全部学生资料
{
printf("本班所有学生具体信息如下n");
print_student2();
for(inti=0;i〈a;i++)
{
print_student3(i);
}
}
voidprint_student3(inta)//显示学生信息
{
printf(”%8d%12s%14.2f%14.2f%14。2f%14.2fn",stu[a]。number,stu[a].name,stu[a]。
,stu[a]。h,stu[a].er,stu[a].average);
}
voidprint_student2(void)//显示表头
{
printf(”学号姓名数学成绩英语成绩计算机成绩
平均成绩n”);
}
voidinput_student4(inta,intb)//覆盖原信息
{
stu[a]=stu[b-1];
--iNumOfStu;
}
voidinput_student3(int&a,intb)//判断学号是否重复
{
if(a!=0)
{
inti=0;
do
{
if(stu[a].number==stu[i].number)
{
printf(”此学号代表的学生已录入n1、覆盖原信息n2、重新输入n请选择:”);
intc;
scanf(”%d",&c);
switch(c)
{
ca1:
{
input_student4(i,iNumOfStu);
a=iNumOfStu—1;
printf("信息已替换!n");
break;
}
ca2:
{
printf("请重新输入学生信息:n”);
input_student1(iNumOfStu—1);
break;
}
default:break;
}
break;
}
++i;
}
while(i〈b—1);
}
}
voidprint_menu(void)//输出菜单
{
printf("======欢迎来到学生信息管理系统======n");
printf(”1、输入学生资料n”);
printf("2、删除学生资料n");
printf(”3、查询学生资料n");
printf("4、修改学生资料n”);
printf("5、显示学生资料n”);
printf(”6、统计学生成绩n");
printf(”7、排序学生成绩n”);
printf("8、保存学生资料n”);
printf("9、获取帮助信息n");
printf(”10、退出系统n");
printf(”====================================n”);
printf(”请选择:”);
}
voidinput_student2(void)//输入总函数
{
charend;
printf("请输入学生信息(在最后一个学生信息录入完成后以“/”结束录入):n");
for(inti=0;(end=getchar())!=’/';i++)
{
input_student1(i);
++iNumOfStu;
input_student3(i,iNumOfStu);
}
for(intj=0;j
{
stu[j]。average=input_score2(j);
}
}
voidinput_student1(inta)//输入学生信息
{
printf(”学号:”);
scanf("%d",&stu[a]。number);
getchar();
printf(”姓名:”);
gets(stu[a]。name);
printf(”数学成绩:”);
scanf(”%f",&stu[a].);
printf(”英语成绩:”);
scanf(”%f",&stu[a].sco。english);
printf("计算机成绩:");
scanf(”%f”,&stu[a]。sco。computer);
}
floatinput_score2(inta)//计算学生平均成绩
{
return(stu[a].sco。math+stu[a]。sco。english+stu[a].sco。computer)/3;
}
voidarch_student3(inta)//按平均分最高查询并输出
{
intmax=0;
for(inti=0;i〈a;i++)
{
if(stu[max]。average〈stu[i].average)
{
max=i;
}
}
print_student2();
print_student3(max);
}
voidsort_student2(students[],inta)//按照数学成绩排序
{
structstudenttemp;
for(inti=0;i〈a-1;i++)
{
intmax=i;
for(intj=i+1;j〈a;j++)
if(stu[j].>stu[max].)
{
max=j;
}
if(max!=i)
{
temp=stu[max];
stu[max]=stu[i];
stu[i]=temp;
}
}
print_student2();
for(intk=0;k〈a;k++)
{
print_student3(k);
}
}
voidsort_student3(students[],inta)//按照英语成绩排序
{
structstudenttemp;
for(inti=0;i〈a—1;i++)
{
intmax=i;
for(intj=i+1;j〈a;j++)
if(stu[j].sco。english〉stu[max]。h)
{
max=j;
}
if(max!=i)
{
temp=stu[max];
stu[max]=stu[i];
stu[i]=temp;
}
}
print_student2();
for(intk=0;k〈a;k++)
{
print_student3(k);
}
}
voidsort_student4(students[],inta)//按照计算机成绩排序
{
structstudenttemp;
for(inti=0;i
{
intmax=i;
if(stu[j].sco。computer>stu[max].er)
{
max=j;
}
if(max!=i)
{
temp=stu[max];
stu[max]=stu[i];
stu[i]=temp;
}
}
print_student2();
for(intk=0;k〈a;k++)
{
print_student3(k);
}
}
voidsort_student5(students[],inta)//按照平均成绩排序
{
structstudenttemp;
{
intmax=i;
for(intj=i+1;j〈a;j++)
if(stu[j].average>stu[max]。average)
{
max=j;
}
if(max!=i)
{
temp=stu[max];
stu[max]=stu[i];
stu[i]=temp;
}
}
print_student2();
for(intk=0;k〈a;k++)
{
print_student3(k);
}
}
intarch_student2(inta)//按照学号查找学生并输出
{
intnum;
intc;
printf(”请输入要查询的学号:”);
scanf(”%d",&num);
for(inti=0;i〈a;i++)
{
if(num==stu[i]。number)
{
c=i;
}
}
printf(”此学生的信息是:n");
print_student2();
print_student3(c);
returnc;
}
voidchoomenu(void)//菜单选择
{
inti;
scanf(”%d",&i);
switch(i)
{
ca1:
{
input_student2();
printf(”按回车键返回主菜单");
getchar();
getchar();
menu();
break;
}
ca2:
{
delete_student1();
printf("按回车键返回主菜单");
getchar();
getchar();
menu();
break;
}
ca3:
{
arch_student1();
printf(”按回车键返回主菜单");
getchar();
getchar();
menu();
break;
}
ca4:
{
change_student1();
printf(”按回车键返回主菜单”);
getchar();
getchar();
menu();
break;
}
ca5:
{
print_student1(iNumOfStu);
printf("按回车键返回主菜单”);
getchar();
getchar();
menu();
break;
}
ca6:
{
input_score1();
printf("按回车键返回主菜单”);
getchar();
getchar();
menu();
break;
}
ca7:
{
sort_student1();
printf("按回车键返回主菜单”);
getchar();
getchar();
menu();
break;
}
ca8:
{
save_student(stu,iNumOfStu);
printf("按回车键返回主菜单”);
getchar();
getchar();
menu();
break;
}
ca9:
{
print_help();
printf(”按回车键返回主菜单”);
getchar();
getchar();
menu();
break;
}
ca10:
{
exit_student();
}
default:break;
}
}
运行结果:
源文件下载地址:
http://115。com/file/clnq138g#一个简单的学生成绩管理系统。
rar
(请将此地址复制到浏览器地址栏中访问下载页面)
本文发布于:2022-11-24 23:23:13,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/14890.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |