学生成绩管理系统C语言课程设计源代码.docx

上传人:b****2 文档编号:3395960 上传时间:2023-05-05 格式:DOCX 页数:15 大小:16.29KB
下载 相关 举报
学生成绩管理系统C语言课程设计源代码.docx_第1页
第1页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第2页
第2页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第3页
第3页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第4页
第4页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第5页
第5页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第6页
第6页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第7页
第7页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第8页
第8页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第9页
第9页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第10页
第10页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第11页
第11页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第12页
第12页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第13页
第13页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第14页
第14页 / 共15页
学生成绩管理系统C语言课程设计源代码.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统C语言课程设计源代码.docx

《学生成绩管理系统C语言课程设计源代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C语言课程设计源代码.docx(15页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统C语言课程设计源代码.docx

学生成绩管理系统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);

}

/******************************************结束*******************************************************/

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2