您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言课程设计-学生成绩管理系统-完整版
#includestdio.h#includestdlib.h#includeio.h#includestring.h/*strcmp函数原型包含*/#defineN100/*定义最大学生人数为100*/structstudent/*学生结构体定义*/{charno[11];/*学号,10位*/charname[10];/*姓名,3个汉字*/chargrade[10];/*班级*/charpro[20];/*专业*/floatscore[5];/*储存5门功课的成绩*/floatave;/*储存平均分*/intyear;/*入学年*/}stu[N];intnum;voidpanduani(int);/*通过i的值,判断信息要查找的信息是否存在*/voidoutput();/*输出学生成绩函数(公共函数)*/voidinit();/*系统初始化函数*/voidnewfile();/*建立新的数据文件*/voidread1();/*从数据文件中读取数据*/voidweihu();/*维护界面函数*/voidnew1();/*新增一个学生成绩函数*/voidxiugai();/*修改学生成绩*/voidxgcj(int);/*修改成绩*/voiddelete1();/*删除学生信息函数*/voidtongji();/*统计界面函数*/voidtongji1();/*计算每个学生平均分*/voidtongji2();/*计算每门课程的平均分*/voidpaixu1();/*排序函数*/voidpaino();/*按学号排序*/voidpaiave();/*按平均分排序*/voidpaidkcj();/*按单科成绩排序*/voidchange(int,int);/*交换结构体数组中的两个记录*/voidoutputx(int);/*选择输出单科成绩*/voidfind1();/*查找界面函数*/intfind(charsno[]);/*按学号查找*/intfindname(charcname[]);/*按姓名查找*/voidfindyear(intcyear);/*按入学年查找*/voidsave();/*保存文件*/voidstop();/*停顿函数*/voidstop()/*停顿函数(公共函数)*/{printf(PressAnyKeyToContinue...\n);getchar();}voidoutput()/*输出学生成绩函数(公共函数)*/{inti,j;printf(===================================================================\n);printf(学号姓名班级专业入学年C语言高数大物电路模电\n);printf(===================================================================\n);for(i=0;inum;i++){printf(%s%s%s%s%d,stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year);for(j=0;j5;j++)printf(%.1f,stu[i].score[j]);printf(\n);}stop();}voidinit()/*系统初始化函数*/{if(access(stu.dat,0))/*判断文件是否存在*/newfile();/*若不存在,新建数据文件*/elseread1();/*若存在,读取数据*/}voidnewfile()/*建立新的数据文件*/{inti;FILE*fp;if((fp=fopen(stu.dat,wb))==NULL)/*创建二进制文件*/{printf(创建文件失败,请重新运行程序.\n);/*显示创建文件失败,请重新运行程序*/exit(0);/*终止程序*/}printf(初次运行,进行数据初始化...\n);/*显示初次运行,进行数据初始化...*/stop();printf(请输入学生人数:);/*显示请输入学生人数:*/scanf(%d,&num);for(i=0;inum;i++){printf(请输入第%d个学生的学号:,i+1);/*显示请输入第i+1个学生的学号:*/getchar();/*吃回车*/gets(stu[i].no);printf(姓名:);/*显示姓名:*/gets(stu[i].name);printf(班级:);/*显示班级:*/gets(stu[i].grade);printf(专业:);/*显示专业:*/gets(stu[i].pro);printf(入学年n:);/*显示入学年*/scanf(%d,&stu[i].year);printf(C语言成绩:);/*显示C语言成绩*/scanf(%f,&stu[i].score[0]);printf(高数成绩:);/*显示高数成绩*/scanf(%f,&stu[i].score[1]);printf(大物成绩:);/*显示大物成绩*/scanf(%f,&stu[i].score[2]);printf(电路成绩:);/*显示电路成绩*/scanf(%f,&stu[i].score[3]);printf(模电成绩:);/*显示模电成绩*/scanf(%f,&stu[i].score[4]);fwrite(&stu[i],1,sizeof(structstudent),fp);/*把第i+1名学生成绩写入文件*/}fclose(fp);printf(========================\n);printf(刚才输入的%d个数据为:\n,num);/*显示刚才输入的num个数据为:*/printf(========================\n\n);output();}voidread1()/*从数据文件中读取数据*/{FILE*fp;num=0;/*num为数据文件中实际存储的学生人数*/fp=fopen(stu.dat,r);if(fp==NULL)/*数据文件不存在*/{printf(文件打开失败!重新运行程序\n);/*显示文件打开失败!重新运行程序*/exit(0);}while(!feof(fp))/*文件结束检测*/{fread(&stu[num],1,sizeof(structstudent),fp);num++;}num--;fclose(fp);printf(\t\t\t=======================================\n);printf(\t\t\t现有%d个学生的成绩:\n,num);/*显示现有NUM个学生的成绩:*/printf(\t\t\t=======================================\n\n);output();}voidweihu()/*维护界面函数*/{charc1;while(1){printf(\n\n\n\t\t\t************************\n);printf(\t\t\t*维护*\n);printf(\t\t\t*1.新增*\n);/*新增*/printf(\t\t\t*2.删除*\n);/*删除(按学号)*/printf(\t\t\t*3.修改*\n);/*修改*/printf(\t\t\t*9.返回*\n);/*返回*/printf(\t\t\t************************\n);printf(\t\t\t请选择:\n);/*请选择:*/c1=getchar();getchar();if(c1=='9')break;switch(c1){case'1':new1();break;case'2':delete1();case'3':xiugai();break;default:printf(选择有误,请重选!\n);/*选择有误,请重选!*/}}}voidnew1()/*新增一个学生成绩函数*/{printf(请输入学号:);/*显示请输入学号:*/gets(stu[num].no);printf(姓名:);/*显示姓名:*/gets(stu[num].name);printf(班级:);/*显示班级:*/gets(stu[num].grade);printf(专业:);/*显示专业:*/gets(stu[num].pro);printf(入学年:);/*显示入学年*/scanf(%d,&stu[num].year);printf(C语言成绩:);/*显示C语言成绩*/scanf(%f,&stu[num].score[0]);printf(高数成绩:);/*显示高数成绩*/scanf(%f,&stu[num].score[1]);printf(大物成绩:);/*显示大物成绩*/scanf(%f,&stu[num].score[2]);printf(电路成绩:);/*显示电路成绩*/scanf(%f,&stu[num].score[3]);printf(模电成绩:);/*显示模电成绩*/scanf(%f,&stu[num].score[4]);num++;printf(\n======================================\n);printf(现有%d个学生的成绩:\n,num);/*显示现有NUM个学生的成绩:*/printf(======================================\n\n);output();}voidxiugai()/*修改学生成绩*/{charxg[11];inti;printf(\n请输入要修改学生的学号:\n\n);gets(xg);for(i=0;inum;i++)if(strcmp(stu[i].no,xg)==0)break;if(i==num){printf(\n数据文件无该生信息!\n\n请重新输入学号.\n\n);stop();return;}xgcj(i);}voidxgcj(intx)/*修改成绩*/{charxueke[5][10]={C语言,高数,物理,电路,模电};char(*p)[10],c;intj,k;p=xueke;for(;;){printf(\n);printf(\t\t\t************************************\n\n);printf(\t\t\t成绩\n);printf(\t\t\t1.C语言\n);/*C语言*/printf(\t\t\t2.高数\n);/*高数*/printf(\t\t\t3.物理\n);/*大学物理*/printf(\t\t\t4.电路\n);/*电路*/printf(\t\t\t5.模电\n);/*模电*/printf(\t\t\t9.返回\n\n);/*返回上级*/printf(\t\t\t************************************\n\n);printf(\t请选择要修改的成绩(按1.2.3.4.5.9):\n);c=getchar();getchar();if(c=='9')break;elseif(c='1'&&c='5'){k=c-49;printf(\n请输入%s成绩:\n,p+k);scanf(%f,&stu[x].score[k]);printf(\n修息为:\n);printf(学号姓名班级专业入学年C语言高数大物电路模电\n);printf(===================================================================\n);printf(%s%s%s%s%d,stu[x].no,stu[x].name,stu[x].grade,stu[x].pro,stu[x].year);for(j=0;
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:C语言课程设计-学生成绩管理系统-完整版
链接地址:https://www.777doc.com/doc-6302564 .html