您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > c语言大作业学生管理系统
-1-/20#includestdafx.h#includestdio.h#includestdlib.h#includeconio.h#includestring.h#defineN100structstudent{charname[10];intnum;charsex[10];floatmath;floatyingyu;floatzhengzhi;floatywen;floataver;floatsum;}stu;voidmenu(){system(cls);printf(*欢迎使用学生成绩管理系统*\n);printf(*=======================*\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);printf(\n\n\n\n\n\n\n\n\n****\n);}//成绩录入voidinput(){system(cls);FILE*fp;studentxs;/*定义一个结构体变量来装从文件中读出来的数据*/intc=1;if((fp=fopen(student.dat,ab))==NULL){printf(can'topenfile!\n);exit(0);}-2-/20printf(\n成绩录入);printf(\n****************************************************);while(c++)/*中间加油break,可使循环中断*/{printf(\n请输入您的姓名(姓名为end结束):);scanf(%s,xs.name);if(strcmp(xs.name,end)==0)break;/*判断姓名是否为end,用字符串判断*/printf(\n请输入学号:);scanf(%d,&xs.num);printf(\n性别:);scanf(%s,&xs.sex);printf(\n请输入数学的成绩:);scanf(%f,&xs.math);printf(\n请输入英语的成绩:);scanf(%f,&xs.yingyu);printf(\n请输入政治的成绩:);scanf(%f,&xs.zhengzhi);printf(\n请输入语文的成绩:);scanf(%f,&xs.ywen);xs.aver=0;/*给平均分变量赋初值*/xs.aver=(xs.math+xs.yingyu+xs.zhengzhi+xs.ywen)/4;xs.sum=0;xs.sum=xs.math+xs.yingyu+xs.zhengzhi+xs.ywen;fwrite(&xs,sizeof(stu),1,fp);//将成绩信息写入文件system(cls);}fclose(fp);}voidxingming(){FILE*fp;studentxs;charname[10];printf(\n输入要查学生的姓名:);scanf(%s,name);if((fp=fopen(student.dat,rb))==NULL){printf(can'topenfile!\n);exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(strcmp(xs.name,name)==0)/*按姓名查询时判断输入的姓名是否存在,会循环从数据中找取*/{printf(\n学生的信息如下:\n);printf(\n%10s%6s%6s%6s%6s%6s%6s%6s%6s\n,姓名,学号,性别,数学,英语,政治,语文,平均成绩,总成绩);-3-/20printf(\n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2f\n,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);break;}}if(feof(fp))printf(\n查找失败!!!);/*学生不存在*/fclose(fp);}voidxuehao(){FILE*fp;studentxs;intnum;printf(\n输入要查学生的学号:);scanf(%d,&num);if((fp=fopen(student.dat,rb))==NULL){printf(can'topenfile!\n);exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(xs.num==num)/*按学号查询时判断输入的学号是否存在,会循环从数据中找取*/{printf(\n学生的信息如下:\n);printf(\n%10s%6s%6s%6s%6s%6s%6s%6s%6s\n,姓名,学号,性别,数学,英语,政治,语文,平均成绩,总成绩);printf(\n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2f\n,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);break;}}if(feof(fp))printf(\n查找失败!!!);fclose(fp);}//查询voidsearch(){charch1;system(cls);printf(请输入按何种方式查询:\n);printf(\n1-姓名,2-学号:);ch1=getchar();/*用字符接收*/switch(ch1)/*判断*/-4-/20{case'1':xingming();break;case'2':xuehao();break;}printf(\n按任意键返回主菜单);getch();/*让屏幕停留同时按任意键返回*/}//修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;voidmodi(){studentxs;FILE*fp;charname[10];system(cls);printf(\n输入要修改的学生的姓名:);scanf(%s,name);if((fp=fopen(student.dat,rb+))==NULL){printf(can'topenfile!\n);exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(strcmp(xs.name,name)==0)/*判断输入要修改的姓名是否存在*/{printf(修改前学生的信息如下:\n);printf(\n%10s%6s%6s%6s%6s%6s%6s%6s%6s\n,姓名,学号,性别,数学,英语,政治,语文,平均成绩,总成绩);printf(\n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f\n,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);printf(\n请输入该生的数学成绩:);scanf(%f,&xs.math);printf(\n英语成绩:);scanf(%f,&xs.yingyu);printf(\n政治成绩:);scanf(%f,&xs.zhengzhi);printf(\n语文成绩:);scanf(%f,&xs.ywen);xs.aver=(xs.math+xs.yingyu+xs.zhengzhi+xs.ywen)/4;xs.sum=xs.math+xs.yingyu+xs.zhengzhi+xs.ywen;break;}}if(!feof(fp)){printf(\n修改后的学生的信息如下:\n);printf(\n%10s%6s%6s%6s%6s%6s%6s%6s%6s\n,姓名,学号,性别,数学,英语,政治,语文,平均成绩,总成绩);-5-/20printf(\n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f\n,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.zhengzhi,xs.ywen,xs.aver,xs.sum);fseek(fp,sizeof(stu),1);/*负号表示后退,1表示文件当前位置*/fwrite(&xs,sizeof(stu),1,fp);/*再写入,同时把要修改的那个覆盖掉*/}elseprintf(\n学生不存在,修改失败!!);fclose(fp);printf(\n按任意键返回主菜单);getch();}//插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。voidinsert(){inti=0,j,k,lenth;FILE*fp;students,xs[N];system(cls);printf(\n请输入插入的学生的姓名:);scanf(%s,&s.name);printf(\n学生的学号:);scanf(%d,&s.num);printf(\n学生的性别:);scanf(%s,&s.sex);printf(\n数学成绩:);scanf(%f,&s.math);printf(\n英语成绩:);scanf(%f,&s.yingyu);printf(\n政治成绩:);scanf(%f,&s.zhengzhi);printf(\n语文成绩:);scanf(%f,&s.ywen);s.aver=(s.math+s.yingyu+s.zhengzhi+s.ywen)/4;s.sum=s.math+s.yingyu+s.zhengzhi+s.ywen;printf(\n插入位置:);scanf(%d,&k);//i=0;if((fp=fopen(student.dat,rb))==NULL){printf(can'topenfile!\n);exit(0);}while(!feof(fp)){fread(&xs[i],sizeof(stu),1,fp);/*把数据读入到结构体数组中*/if(feof(fp))break;i++;}fclose(fp);lenth=i;-6-/20if(klenth&&k=0)/*k的位置要位于数组范围之内*/{//插入for(j=lenth-1;j=k;j--)xs[j+1]=xs[j];/*一开始j是最大的,往后移一个这样移动避免数据被覆盖*//*循环是只循环这一句的*/xs[k]=s;/*将输入的学生信息加入这个k位置*/lenth++;/*长度+1*///写回if((fp=fopen(student.dat,wb))==NULL){printf(不能建立文件!!\n);exit(0);}for(i=0;ilenth;i++)fwrite(&xs[i],sizeof(stu),1,fp);}else/*不再数组范围之内*/{if((fp=fopen(student.dat,ab))==NULL){printf(不能建立文件!!\n);exit(0);}fwrite(&s,sizeof(stu),1,fp);}printf(\n按任意键返回主菜单);fclose(fp);}//显示voidprint(){FILE*fp;students;system(cls);if((fp=fopen(student.dat,rb))==NULL){printf(can'topenfile!\n);exit(0);}printf(学生成绩表);printf(
本文标题:c语言大作业学生管理系统
链接地址:https://www.777doc.com/doc-7359064 .html