学生成绩管理系统C语言课程设计源代码.docx
- 文档编号:10031450
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:15
- 大小:16.29KB
学生成绩管理系统C语言课程设计源代码.docx
《学生成绩管理系统C语言课程设计源代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言课程设计源代码.docx(15页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统C语言课程设计源代码
#include
#include
#include
#include
#include
structchengji/*成绩结构体*/
{
intpoint;
charsubject[20];
};
structstudent/*学生结构体*/
{intw;
charname[20];
intnumber;
structchengjicheng[30];
floatsum;
floataverage;
}stu[40];
voidpjun();/*按平均分排序*/
voidpfen();/*按总分排序*/
voidaddnew();/*录入学生成绩*/
voidpall();/*显示所有成绩*/
voidcheck();/*查询菜单*/
voidpnum();/*按学号排序*/
voidpjing();/*精确查找*/
/*******************************************************************************************************/
/*主菜单*/
main()
{
charchoose;
while
(1)
{
printf("\n\t\t**************************************");
printf("\n\t\t*欢迎使用成绩管理系统*");
printf("\n\t\t**");
printf("\n\t\t*请选择*");
printf("\n\t\t*1.录入学生成绩*");
printf("\n\t\t*2.查询学生成绩*");
printf("\n\t\t*3.清屏*");
printf("\n\t\t*0.退出程序*");
printf("\n\t\t**");
printf("\n\t\t**************************************");
printf("\n\n");
printf("请选择:
");
scanf("%c",&choose);getchar();
switch(choose)
{case'1':
addnew();break;
case'2':
check();break;
case'3':
system("cls");break;
case'0':
exit(0);break;
default:
printf("输入错误,请从新输入!
\n\n");
}
}
}
/****************************************************************************************************/
/*录入学生成绩*/
voidaddnew()
{
intn,m,i,p;
floatsum;
floataverage;
FILE*file;
sum=0.00000;
average=0.00000;
if((("c:
\\student.dat","rb"))==NULL)
{
file=fopen("c:
\\student.dat","wb+");/*创建一个文件*/
}
printf("请输入需要录入的学生人数:
");
scanf("%d",&n);
for(i=0;i { printf("输入第%d个同学信息: \n",i+1); printf("姓名: "); scanf("%s",&stu[i].name); printf("学号: "); scanf("%d",&stu[i].number); printf("输入科目个数: "); scanf("%d",&m); stu[i].w=m; printf("按科目(回车)成绩(回车)……的顺序输入: \n");/*录入成绩*/ for(p=0;p { scanf("%s",&stu[i].cheng[p].subject); scanf("%d",&stu[i].cheng[p].point); stu[i].sum=stu[i].sum+stu[i].cheng[p].point; stu[i].average=stu[i].sum/m; } /*printf("总分%f,平均分%f\n",stu[i].sum,stu[i].average);*/ fwrite(&stu[i],sizeof(stu),1,file);/*把stu写入文件*/ } fclose(file);/*关闭文件*/ fflush(stdin); system("cls"); } /****************************************************************************************************/ /*查询菜单*/ voidcheck() { while (1) {charchoose; printf("\n\t\t**************************************"); printf("\n\t\t*查询菜单*"); printf("\n\t\t**"); printf("\n\t\t*请选择*"); printf("\n\t\t*1.按学号排列*"); printf("\n\t\t*2.按总分排列*"); printf("\n\t\t*3.按平均分排列*"); printf("\n\t\t*4.精确查询*"); printf("\n\t\t*5.显示所有学生成绩*"); printf("\n\t\t*6.清屏*"); printf("\n\t\t*0.返回*"); printf("\n\t\t**************************************"); printf("\n\n"); printf("请选择: "); scanf("%c",&choose);getchar(); switch(choose) {case'1': pnum();break; case'2': pfen();break; case'3': pjun();break; case'4': pjing();break; case'5': pall();break; case'6': system("cls");break; case'0': main();break; } } } /****************************************************************************************************/ /*显示所有成绩*/ voidpall() { inti=0,m; FILE*file; if((("c: \\student.dat","rb"))==NULL) {printf("Openerror! ! \n"); getch(); exit(0); } fread(&stu[i],sizeof(stu),1,file); while(feof()/*循环整个文件*/ {printf("姓名----学号----总分----平均分\n"); printf("%s%5d%10.1f%8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average); printf("科目------成绩\n"); for(m=0;m { printf("%40s%d\n",stu[i].cheng[m].subject,stu[i].cheng[m].point); } i++; fread(&stu[i],sizeof(stu),1,file); } fclose(file); } /*******************************************************************************************************/ /*按学号排序*/ voidpnum() {FILE*file; intj; inti=0; intn=0; intm=0; structstudentbm;/*创建一个‘中间’结构体,用于交换*/ if((("c: \\student.dat","rb"))==NULL)/*打开文件*/ {printf("Openerror"); getch(); exit(0); } fread(&stu[i],sizeof(stu),1,file); while(feof() { i++; fread(&stu[i],sizeof(stu),1,file); } n=i; for(j=n-1;j>0;j--) {for(i=0;i {if(stu[i].number>stu[i+1].number)/*对比学号,对换stu*/ {bm=stu[i];/*交换位置*/ stu[i]=stu[i+1]; stu[i+1]=bm; } } } for(i=0;i {printf("姓名----学号----总分----平均分\n"); printf("%s%5d%10.1f%8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average); printf("科目------成绩\n"); for(m=0;m { printf("%40s%d\n",stu[i].cheng[m].subject,stu[i].cheng[m].point); } } fclose(file); fflush(stdin); } /*******************************************************************************************************/ /*按总分排序*/ voidpfen() {FILE*file; intj; inti=0; intn=0; intm; structstudentbm; if((("c: \\student.dat","rb"))==NULL) {printf("Openerror"); getch(); exit(0); } fread(&stu[i],sizeof(stu),1,file); while(feof() { i++; fread(&stu[i],sizeof(stu),1,file); } n=i; for(j=n-1;j>0;j--) {for(i=0;i {if(stu[i].sum {bm=stu[i]; stu[i]=stu[i+1]; stu[i+1]=bm; } } } for(i=0;i {printf("姓名----学号----总分----平均分\n");/*显示到屏幕*/ printf("%s%5d%10.1f%8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average); printf("科目------成绩\n"); for(m=0;m { printf("%40s%d\n",stu[i].cheng[m].subject,stu[i].cheng[m].point); } } fclose(file); fflush(stdin); } /*******************************************************************************************************/ /*按平均分排序*/ voidpjun() {FILE*file; intj; structstudentbm; inti=0; intn=0; intm; if((("c: \\student.dat","rb"))==NULL) {printf("Openerror"); getch(); exit(0); } fread(&stu[i],sizeof(stu),1,file); while(feof() { i++; fread(&stu[i],sizeof(stu),1,file); } n=i; for(j=n-1;j>0;j--) {for(i=0;i {if(stu[i].average {bm=stu[i]; stu[i]=stu[i+1]; stu[i+1]=bm; } } } for(i=0;i {printf("姓名----学号----总分----平均分\n"); printf("%s%5d%10.1f%8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average); printf("科目------成绩\n"); for(m=0;m { printf("%40s%d\n",stu[i].cheng[m].subject,stu[i].cheng[m].point); } } fclose(file); fflush(stdin); } /*******************************************************************************************************/ /*精确查找*/ voidpjing() { intn; inti=0; intm; FILE*file; if((("c: \\student.dat","rb"))==NULL) {printf("Openerror"); getch(); exit(0); } printf("请输入要查询的学生的学号: "); scanf("%d",&n);getchar(); fread(&stu[i],sizeof(stu),1,file); while(feof() {if(n==stu[i].number)/*输出对应的学号的学生成绩*/ {printf("姓名----学号----总分----平均分\n"); printf("%s%5d%10.1f%8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average); printf("科目------成绩\n"); for(m=0;m { printf("%40s%d\n",stu[i].cheng[m].subject,stu[i].cheng[m].point); } break; } i++; fread(&stu[i],sizeof(stu),1,file); } fclose(file); fflush(stdin); } /******************************************结束*******************************************************/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 语言 课程设计 源代码
![提示](https://static.bdocx.com/images/bang_tan.gif)