学生成绩管理系统C语言课程设计源代码Word格式.docx
《学生成绩管理系统C语言课程设计源代码Word格式.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言课程设计源代码Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
voidpjun();
/*按平均分排序*/
voidpfen();
/*按总分排序*/
voidaddnew();
/*录入学生成绩*/
voidpall();
/*显示所有成绩*/
voidcheck();
/*查询菜单*/
voidpnum();
/*按学号排序*/
voidpjing();
/*精确查找*/
/*******************************************************************************************************/
/*主菜单*/
main()
charchoose;
while
(1)
{
printf(\
\t\t**************************************);
\t\t*欢迎使用成绩管理系统*);
*);
\t\t*
\t\t*请选择*);
\t\t*1.录入学生成绩*);
\t\t*2.查询学生成绩*);
\t\t*3.清屏*);
\t\t*0.退出程序*);
\t\t**);
\n);
牰湩晴尨请选择:
);
scanf(%c,&
choose);
getchar();
switch(choose)
{case'
1'
:
addnew();
break;
case'
2'
check();
3'
system(cls);
case'
0'
exit(0);
default:
牰湩晴尨输入错误,请从新输入!
\n\n);
}
}
/****************************************************************************************************/
voidaddnew()
intn,m,i,p;
FILE*file;
sum=0.00000;
average=0.00000;
if((file=fopen(c:
\\student.dat,
b))==NULL)
file=fopen(c:
\\student.dat,wb+);
/*创建一个文件*/
牰湩晴尨请输入需要录入的学生人数:
);
scanf(%d,&
n);
for(i=0;
i<
n;
i++)
牰湩晴尨输入第%d个同学信息:
\n,i+1);
牰湩晴尨姓名:
scanf(%s,&
stu[i].name);
牰湩晴尨学号:
stu[i].number);
牰湩晴尨输入科目个数:
m);
stu[i].w=m;
牰湩晴尨按科目(回车)成绩(回车)……的顺序输入:
\n);
/*录入成绩*/
for(p=0;
p<
m;
p++)
stu[i].cheng[p].subject);
stu[i].cheng[p].point);
stu[i].sum=stu[i].sum+stu[i].cheng[p].point;
stu[i].average=stu[i].sum/m;
?
?
牰湩晴尨总分%f,平均分%f\n,stu[i].sum,stu[i].average);
*/
fwrite(&
stu[i],sizeof(stu),1,file);
/*把stu写入文件*/
fclose(file);
/*关闭文件*/
fflush(stdin);
voidcheck()
{charchoose;
\t\t*查询菜单*);
\t\t*1.按学号排列*);
\t\t*2.按总分排列*);
\t\t*3.按平均分排列*);
\t\t*4.精确查询*);
\t\t*5.显示所有学生成绩*);
\t\t*6.清屏*);
\t\t*0.返回*);
pnum();
pfen();
pjun();
4'
pjing();
5'
pall();
6'
main();
voidpall()
inti=0,m;
printf(Openerror!
!
getch();
fread(&
while(feof(file)==0)
/*循环整个文件*/
牰湩晴尨姓名----学号----总分----平均分\n);
printf(%s]_x0010_.1f%8.1f\n,stu[i].name,stu[i].number,stu[i].sum,stu[i].average);
printf(科目------成绩\n);
for(m=0;
m<
stu[i].w;
m++)
/*显示各科成绩*/
printf(@s%d\n,stu[i].cheng[m].subject,stu[i].cheng[m].point);
i++;
/*按学号排序*/
voidpnum()
{FILE*file;
intj;
inti=0;
intn=0;
intm=0;
structstudentbm;
/*创建一个‘中间'
结构体,用于交换*/
b))==NULL)/*打开文件*/
{printf(Openerror);
while(feof(file)==0)
n=i;
for(j=n-1;
j>
0;
j--)
{for(i=0;
j;
{if(stu[i].number>
stu[i+1].number)/*对比学号,对换stu*/
{bm=stu[i];
/*交换位置*/
stu[i]=stu[i+1];
stu[i+1]=bm;
i++)
/*交换后从新排序*/
printf(@s%d\n,stu[i].cheng[m].subject,stu[i].cheng[m].point);
voidpfen()
intm;
structstudentbm;
{if(stu[i].sum<
stu[i+1].sum)
{牰湩晴尨姓名----学号----总分----平均分\n);
/*显示到屏幕*/
printf(%s]_x0010_.1f%8.1f\n,stu[i].name,stu[i].number,stu[i].sum,stu[i].average);
/******************************************************************************
*************************/
voidpjun()
{if(stu[i].average<
stu[i+1].average)
voidpjing()
intn;
牰湩晴尨请输入要查询的学生的学号:
{if(n==stu[i].number)
/*输出对应的学号的学生成绩*/
灻楲瑮?
姓名----学号----总分----平均分\n);
printf(科目------成绩\n);
/******************************************束结*******************************************************/