您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言学生成绩管理系统源代码
#includestdio.h#includestdlib.h#includestring.htypedefstructstu{charsz_Name[20];charsz_ID[11];charsz_Class[10];floatr_Score[3];}student;#defineSTU_MAXSIZE60inti_stuSize;studentstu[STU_MAXSIZE];/*==========显示主菜单=============*/voidDis_Main_Menu(){printf(\n学生成绩管理系统\n);printf(-----------------------\n);printf(1:新录入书生成绩\n);printf(2:修改学生成绩\n);printf(3:学生成绩查寻\n);printf(4:平均成绩和排序\n);printf(5:显示班级成绩单\n);printf(6:追加学生成绩\n);printf(0:推出\n);printf(-----------------------\n);}/*=============录入学生成绩============*/voidInput_Stu_Information(studentstu[]){inti;printf(请依次输入学生成绩信息(姓名学号班级数学语文化学):\n);for(i=0;ii_stuSize;i++){printf(Student%d:,i+1);scanf(%s%s%s,stu[i].sz_Name,stu[i].sz_ID,stu[i].sz_Class);scanf(%f%f%f,&stu[i].r_Score[0],&stu[i].r_Score[1],&stu[i].r_Score[2]);}}/*==============将信息存入scorefile.dat文件===========*/voidSave_File(studentstu[]){FILE*fp;inti;if((fp=fopen(c:\\scorefile.dat,wb))==NULL){printf(Save_File函数打开文件c:\\scorefile.dat!失败,按任意键退出!\n);exit(1);}for(i=0;ii_stuSize;i++)if(fwrite(&stu[i],sizeof(student),1,fp)!=1){printf(Writerfileerror!\n);exit(1);}fclose(fp);}/*===============主菜单第一项:新录入成绩==========*/intInput_Data(){printf(\n请输入学生实际人数:);scanf(%d,&i_stuSize);Input_Stu_Information(stu);Save_File(stu);return(i_stuSize);}/*=================学生成绩查询菜单=============*/voidDis_Search_Menu(){printf(\n学生成绩查询\n);printf(\n-------------------\n);printf(\n1:按学号查询\n);printf(\n2:按科目查询\n);printf(\n0:退出\n);printf(\n-------------------\n);}/*===============按学号查询===========*/intSearch_ID(charsz_ID[11]){inti;for(i=0;ii_stuSize;i++){if(!strcmp(sz_ID,stu[i].sz_ID)){printf(姓名\t学号\t班级\t数学\t\t语文\t\t化学\n);printf(--------------------------------------\n);printf(%S\t%s\t%s,stu[i].sz_Name,stu[i].sz_ID,stu[i].sz_Class);printf(\t%-8.1f\t%-8.1f\t%-8.1f\n,stu[i].r_Score[0],stu[i].r_Score[1],stu[i].r_Score[2]);break;}}if(i==i_stuSize)printf(学号输入有误!没有该学生!\n);return(i);}/*=============按科目查询==========*/voidSearch_Course(intcourse){inti;switch(course){case1:printf(\n姓名\t学号\t班级\t数学\n);break;case2:printf(\n姓名\t学号\t班级\t语文\n);break;case3:printf(\n姓名\t学号\t班级\t化学\n);break;default:printf(\n课程号错误!\n);return;}printf(-------------------------------\n);for(i=0;ii_stuSize;i++){printf(%s\t%s\t%s,stu[i].sz_Name,stu[i].sz_ID,stu[i].sz_Class);printf(\t%-8.1f\n,stu[i].r_Score[course-1]);}printf(---------------------------------------\n);}/*=================主页第二项:修改学生成绩==============*/voidModify_Data(){inti=0;chars_ID[11];FILE*fp;if((fp=fopen(c:\\scorefile.dat,wb))==NULL){printf(Modify_Data函数打开文件c:\\scorefile.dat!失败,按任意键退出!);return;}printf(请输入要修改的学生学号:);scanf(%s,s_ID);i=Search_ID(s_ID);printf(请按【数学语文化学】顺序输入成绩:);scanf(%f%f%f,&stu[i].r_Score[0],&stu[i].r_Score[1],&stu[i].r_Score[2]);fwrite(&stu[i],sizeof(student),i_stuSize,fp);fclose(fp);}/*=============主菜单第三项:学生成绩查询============*/voidSearch_Data(){intSelect,flag=1;intcourse;chars_id[11];while(flag){Dis_Search_Menu();printf(请输入所选查询功能号:);scanf(%d,&Select);switch(Select){case1:printf(请输入查询学号:);scanf(%s,s_id);Search_ID(s_id);break;case2:printf(请输入查询科目号:1数学,2语文3化学\n);scanf(%d,&course);Search_Course(course);break;default:printf(输入有错误,重新选择!\n);break;}if(Select==0)flag=0;elseflag=1;}}/*===============成绩排序==============*/voidSort(floataverage[STU_MAXSIZE]){inti,j,k;studentstemp;floatave;for(i=0;ii_stuSize-1;i++){k=i;for(j=i;ji_stuSize;j++)if(average[j]average[k])k=j;if(k!=i){stemp=stu[i];stu[i]=stu[k];stu[k]=stemp;ave=average[i];average[i]=average[k];average[k]=ave;}}}/*===============主菜单第四项:计算平均成绩和排序=========*/voidAverage_Sort(){inti;floatsum,average[STU_MAXSIZE];for(i=0;ii_stuSize;i++){sum=stu[i].r_Score[0]+stu[i].r_Score[1]+stu[i].r_Score[2];average[i]=sum/3;}Sort(average);printf(\n\t\t\t按平均成绩升序先是成绩\n);printf(\t\t\t=========================\n);printf(姓名\t学号\t班级\t数学\t\t语文\t\t化学\t\t平均成绩\n);printf(--------------------------------\n);for(i=0;ii_stuSize;i++){printf(%s\t%s\t%s,stu[i].sz_Name,stu[i].sz_ID,stu[i].sz_Class);printf(\t%-8.1f\t%-8.1f\t%-8.1f,stu[i].r_Score[0],stu[i].r_Score[1],stu[i].r_Score[2]);printf(\t%-8.1f\n,average[i]);}printf(--------------------------------------------\n);}/*=================主菜单第五项:显示班级成绩单========*/voidDisplay_Data(){charsz_Class[10];inti=0;printf(情输入班级名称:);scanf(%s,sz_Class);printf(\n\t\t\t%s班成绩单\n,sz_Class);printf(\t\t\t===============\n);printf(姓名\t学号\t数学\t\t语文\t\t化学\n);printf(-----------------------------------------\n);for(;ii_stuSize;i++){if(!strcmp(sz_Class,stu[i].sz_Class)){printf(%s\t%s,stu[i].sz_Name,stu[i].sz_ID);printf(\t%-8.1f\t%-8.1f\t%-8.1f\n,stu[i].r_Score[0],stu[i].r_Score[1],stu[i].r_Score[2]);}}printf(---------------------------------------\n);}/*===================主菜单第六项:追加学生成绩====================*/voidInsert_Data(){studentst;FILE*fp;printf(轻按下列顺序输入要插入学生的成绩(姓名学号班级数学语文化学):\n);scanf(%s%s%s,st.sz_Name,st.sz_ID,st.sz_Class);scanf(%f%f%f,&st.r_Score[0],&st.r_Score[1],&st.r_Score[2]);if((fp=fopen(c:\\scorefile.dat,ab))==NULL){printf(Insert_stu函数打开文件scorefile.dat!失败,按任意键退出!);return;}fwrite(&st,sizeof(student),1,fp);fclose(fp);}/*==============初始化数组函数==========*/intInit_
本文标题:C语言学生成绩管理系统源代码
链接地址:https://www.777doc.com/doc-5400326 .html