欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言大作业成绩管理dox.pdf

    • 资源ID:75983514       资源大小:789.04KB        全文页数:33页
    • 资源格式: PDF        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言大作业成绩管理dox.pdf

    目录目录学生成绩管理程序.2题目要求.2设计目的.3总体设计.3详细设计.41、宏定义,进行预处理。.42、主菜单函数.53、输入函数.64、查询函数.95、修改函数.106、插入函数.127、显示函数.148、统计函数.159、删除函数.1710、菜单选择函数.1911、退出系统.21心得体验.21程序清单:.21学生成绩管理程序学生成绩管理程序题目要求题目要求1.1.问题描述问题描述:对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,性别,数学,英语,程序,语文成绩,默认以学号为序存放.2.2.要求要求:(1)一个文件按以班为单位存储学生记录.(2)将允许的操作分为四种,以 A,B,C,D,E,F 为标志:A:插入一个学生记录;B:修改学生记录;C:删除一个学生记录;D:查找一个学生记录;E:浏览学生成绩:F:退出3.计算学生的总成绩.4.按学号排序输出全班学生成绩表.设计目的设计目的根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.总体设计总体设计根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块.排序模块。其中嵌入相关函数以下为大概模块框架:详细设计详细设计1 1、宏定义,进行预处理。、宏定义,进行预处理。#include#include#include#include#define N 100struct student char name10;int num;char sex10;float math;float yingyu;float proj;float ywen;float aver;float sum;stu;2 2、主菜单函数、主菜单函数/菜单void menu()system(cls);/*清屏*/printf(=n);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(*7.删除操作 *n);printf(*0.退出系统 *n);printf(*=*n);printf(=n);printf(nnnnnnn *电子14-1,潘才身(14034520123)制作 *n);3 3、输入函数、输入函数/成绩录入函数void input()system(cls);FILE*fp;student xs;/*定义一个结构体变量来装从文件中读出来的数据*/int c=1;if(fp=fopen(student.dat,ab)=NULL)printf(cant open file!n);exit(0);printf(n成绩录入);printf(n*);while(c+)printf(n请输入您的姓名(结束请输入姓名为 ok):);scanf(%s,xs.name);if(strcmp(xs.name,ok)=0)break;/*判断姓名是否为 ok,用字符串判断*/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.proj);printf(n请输入语文的成绩:);scanf(%f,&xs.ywen);xs.aver=0;/*给平均分变量赋初值*/xs.aver=(xs.math+xs.yingyu+xs.proj+xs.ywen)/4;xs.sum=0;xs.sum=xs.math+xs.yingyu+xs.proj+xs.ywen;fwrite(&xs,sizeof(stu),1,fp);/将成绩信息写入文件 system(cls);fclose(fp);/姓名查找函数void xingming()FILE*fp;student xs;char name10;printf(n输入要查学生的姓名:);scanf(%s,name);if(fp=fopen(student.dat,rb)=NULL)/读取存放好的数据 printf(cant open file!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%6sn,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.proj,xs.ywen,xs.aver,xs.sum);break;if(feof(fp)printf(n查找失败);/*学生不存在*/fclose(fp);/学号查询函数void xuehao()FILE*fp;student xs;int num;printf(n输入要查学生的学号:);scanf(%d,&num);if(fp=fopen(student.dat,rb)=NULL)/读取数据 printf(cant open file!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%6sn,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.proj,xs.ywen,xs.aver,xs.sum);break;if(feof(fp)printf(n查找失败);fclose(fp);4 4、查询函数、查询函数/查询函数void search()char ch1;system(cls);printf(请输入按何种方式查询:n);printf(n 1-姓名,2-学号:);ch1=getchar();/*用字符接收*/switch(ch1)/*判断*/case 1:xingming();break;/姓名查询 case 2:xuehao();break;/学号查询 printf(n按任意键返回主菜单 );getch();/*让屏幕停留同时按任意键返回*/5 5、修改函数、修改函数/修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;void modi()student xs;FILE*fp;char name10;system(cls);printf(n输入要修改的学生的姓名:);scanf(%s,name);if(fp=fopen(student.dat,rb+)=NULL)printf(cant open file!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%6sn,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.proj,xs.ywen,xs.aver,xs.sum);printf(n请输入该生的高数成绩:);scanf(%f,&xs.math);printf(n英语成绩:);scanf(%f,&xs.yingyu);printf(n程序成绩:);scanf(%f,&xs.proj);printf(n语文成绩:);scanf(%f,&xs.ywen);xs.aver=(xs.math+xs.yingyu+xs.proj+xs.ywen)/4;xs.sum=xs.math+xs.yingyu+xs.proj+xs.ywen;break;if(!feof(fp)printf(n修改后的学生的信息如下:n);printf(n%10s%6s%6s%6s%6s%6s%6s%6s%6sn,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.proj,xs.ywen,xs.aver,xs.sum);fseek(fp,sizeof(stu),1);/*负号表示后退,1 表示文件当前位置*/fwrite(&xs,sizeof(stu),1,fp);/*再写入,同时把要修改的那个覆盖掉*/else printf(n学生不存在,修改失败!);fclose(fp);printf(n按任意键返回主菜单 );getch();6 6、插入函数、插入函数/插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。void insert()int i=0,j,k,lenth;FILE*fp;student s,xsN;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.proj);printf(n语文成绩:);scanf(%f,&s.ywen);s.aver=(s.math+s.yingyu+s.proj+s.ywen)/4;s.sum=s.math+s.yingyu+s.proj+s.ywen;printf(n插入位置:);scanf(%d,&k);if(fp=fopen(student.dat,rb)=NULL)printf(cant open file!n);exit(0);while(!feof(fp)fread(&xsi,sizeof(stu),1,fp);/*把数据读入到结构体数组中*/if(feof(fp)break;i+;fclose(fp);lenth=i;if(k=0)/*k 的位置要位于数组范围之内*/插入 for(j=lenth-1;j=k;j-)xsj+1=xsj;/*一开始 j 是最大的,往后移一个这样移动避免数据被覆盖*/*循环是只循环这一句的*/xsk=s;/*将输入的学生信息加入这个 k 位置*/lenth+;/*长度+1*/写回 if(fp=fopen(student.dat,wb)=NULL)printf(不能建立文件!n);exit(0);for(i=0;ilenth;i+)fwrite(&xsi,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);7 7、显示函数、显示函数/显示函数void print()FILE*fp;student s;system(cls);if(fp=fopen(student.dat,rb)=NULL)printf(cant open file!n);exit(0);printf(学生成绩表 );printf(n*);printf(n%10s%10s%6s%6s%6s%6s%6s%6s%6s n,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);while(!feof(fp)fread(&s,sizeof(stu),1,fp);/从文件中读取成绩信息 if(feof(fp)break;/判断是否文件尾printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2fn,s.name,s.num,s.sex,s.math,s.yingyu,s.proj,s.ywen,s.aver,s.sum);fclose(fp);printf(n按任意键返回主菜单 );getch();8 8、统计函数、统计函数/统计函数void tongji()int i=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u;FILE*fp;student sN,*p1N,*p2N,*p3N,*p4N;/*用指针数组*/system(cls);if(fp=fopen(student.dat,rb)=NULL)printf(cantt open file!n);exit(0);while(!feof(fp)fread(&si+,sizeof(stu),1,fp);/*读入数据*/if(feof(fp)break;t=i;i=0;for(u=0;ut;u+)/*以下每个指针数组用于指向各分数段的学生信息*/if(si.aver=60&si.aver=80&si.aver=90)p4m+=&si+;continue;printf(学生成绩单 );printf(n 90 以上的人有:姓名学号平均分n);for(r=0;rname,p4r-num,p4r-aver);printf(n 80-89 分的人有:姓名学号平均分n);for(q=0;qname,p3q-num,p3q-aver);printf(n 60-79 分的人有:姓名学号平均分n);for(p=0;pname,p2p-num,p2p-aver);printf(n 不及格的人有:姓名学号平均分n);for(n=0;nname,p1n-num,p1n-aver);fclose(fp);printf(n按任意键返回主菜单 );getch();9 9、删除函数、删除函数/删除:输入学生姓名,若该学生存在,则删除,并显示删除后余下的学生成绩信息void dele()student xsN;FILE*fp;char name10;int i=0,len,k=-1/*k=0)/*k0 说明找到删除学生位置*/if(fp=fopen(student.dat,wb+)=NULL)printf(cant open file!n);exit(0);for(i=0;ilen;i+)if(i=k)continue;/*从这个位置开始写入*/fwrite(&xsi,sizeof(stu),1,fp);fclose(fp);else printf(n删除失败n);getch();/*失败后重新返回菜单*/printf(n按任意键返回主菜单 );print();1010、菜单选择函数、菜单选择函数/菜单选择void main()char ch;system(color 3f);while(1)menu();/显示菜单 ch=getch();/选择菜单 if(ch=0)break;switch(ch)/判断功能项 case1:input();break;case 2:search();break;case 3:modi();break;case 4:insert();break;case 5:print();break;case 6:tongji();break;case 7:dele();break;1111、退出系统、退出系统在主函数中,加一个在主函数中,加一个 if if 函数,判断功能选择项是否为“函数,判断功能选择项是否为“0 0”,如果为“,如果为“0 0”,则中断整个主,则中断整个主函数,否则继续主函数:函数,否则继续主函数:if(ch=0)break;if(ch=0)break;心得体验心得体验C 语言,个人认为是一门很有趣的科目,就像人和机器对话,这次做作业也得心应手,除了文件处理这个模块没有细学,感到吃紧之外,其余的都还可以。这次的课程设计总体来说,比前段时期的 C 语言综合实验难度大了,而且综合性更强,少了综合实验是老师给我们提供的那些函数,所有的函数都要自己去想,自己去找,翻阅好多的书,上机自己动手体验,极大的促进了自己的动手能力及独立思考能力,总体上完成了老师要求的基本功能,没有完成其他的扩展功能,有待改进的地方就是未能设置很好的界面,以及没有细学的文件处理模块的知识。不管怎样,这次作业让我对 c 语言的操作更加深刻了解,更加熟悉如何运用函数的调用和嵌套,还有对指针,for 语句,switch 语句的理解和使用。同时自己对程序的条理整洁,注释清楚,可读性等的要求更加高了。程序清单:程序清单:#include#include#include#include#define N 100struct studentchar name10;int num;charsex10;float math;float yingyu;float proj;float ywen;float aver;float sum;stu;/菜单void menu()system(cls);/*清屏*/printf(=n);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(*7.删除操作*n);printf(*0.退出系统*n);printf(*=*n);printf(=n);printf(nnnnnnn*电子 14-1,潘才身(14034520123)制作*n);/成绩录入函数void input()system(cls);FILE*fp;student xs;/*定义一个结构体变量来装从文件中读出来的数据*/int c=1;if(fp=fopen(student.dat,ab)=NULL)printf(cantopenfile!n);exit(0);printf(n成绩录入);printf(n*);while(c+)printf(n请输入您的姓名(结束请输入姓名为 ok):);scanf(%s,xs.name);if(strcmp(xs.name,ok)=0)break;/*判断姓名是否为 ok,用字符串判断*/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.proj);printf(n请输入语文的成绩:);scanf(%f,&xs.ywen);xs.aver=0;/*给平均分变量赋初值*/xs.aver=(xs.math+xs.yingyu+xs.proj+xs.ywen)/4;xs.sum=0;xs.sum=xs.math+xs.yingyu+xs.proj+xs.ywen;fwrite(&xs,sizeof(stu),1,fp);/将成绩信息写入文件system(cls);fclose(fp);/姓名查找函数void xingming()FILE*fp;student xs;char name10;printf(n输入要查学生的姓名:);scanf(%s,name);if(fp=fopen(student.dat,rb)=NULL)/读取存放好的数据printf(cant open file!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%6sn,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.proj,xs.ywen,xs.aver,xs.sum);break;if(feof(fp)printf(n查找失败);/*学生不存在*/fclose(fp);/学号查询函数void xuehao()FILE*fp;student xs;int num;printf(n输入要查学生的学号:);scanf(%d,&num);if(fp=fopen(student.dat,rb)=NULL)/读取数据printf(cant open file!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%6sn,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.proj,xs.ywen,xs.aver,xs.sum);break;if(feof(fp)printf(n查找失败);fclose(fp);/查询函数void search()char ch1;system(cls);printf(请输入按何种方式查询:n);printf(n1-姓名,2-学号:);ch1=getchar();/*用字符接收*/switch(ch1)/*判断*/case 1:xingming();break;/姓名查询case 2:xuehao();break;/学号查询printf(n按任意键返回主菜单);getch();/*让屏幕停留同时按任意键返回*/修改:输入学生的姓名,查找该学生,若找到则修改该生的成绩信息,并显示修改前后的结果;void modi()student xs;FILE*fp;char name10;system(cls);printf(n输入要修改的学生的姓名:);scanf(%s,name);if(fp=fopen(student.dat,rb+)=NULL)printf(cant open file!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%6sn,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.proj,xs.ywen,xs.aver,xs.sum);printf(n请输入该生的高数成绩:);scanf(%f,&xs.math);printf(n英语成绩:);scanf(%f,&xs.yingyu);printf(n程序成绩:);scanf(%f,&xs.proj);printf(n语文成绩:);scanf(%f,&xs.ywen);xs.aver=(xs.math+xs.yingyu+xs.proj+xs.ywen)/4;xs.sum=xs.math+xs.yingyu+xs.proj+xs.ywen;break;if(!feof(fp)printf(n修改后的学生的信息如下:n);printf(n%10s%6s%6s%6s%6s%6s%6s%6s%6sn,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2fn,xs.name,xs.num,xs.sex,xs.math,xs.yingyu,xs.proj,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();/插入:输入学生的平时的各项成绩,插入到指定位置;当指定的位置超出范围时,将其插入到全班的最后,并显示插入成功后的结果。void insert()int i=0,j,k,lenth;FILE*fp;student s,xsN;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.proj);printf(n语文成绩:);scanf(%f,&s.ywen);s.aver=(s.math+s.yingyu+s.proj+s.ywen)/4;s.sum=s.math+s.yingyu+s.proj+s.ywen;printf(n插入位置:);scanf(%d,&k);if(fp=fopen(student.dat,rb)=NULL)printf(cant open file!n);exit(0);while(!feof(fp)fread(&xsi,sizeof(stu),1,fp);/*把数据读入到结构体数组中*/if(feof(fp)break;i+;fclose(fp);lenth=i;if(k=0)/*k 的位置要位于数组范围之内*/插入for(j=lenth-1;j=k;j-)xsj+1=xsj;/*一开始 j 是最大的,往后移一个这样移动避免数据被覆盖*/*循环是只循环这一句的*/xsk=s;/*将输入的学生信息加入这个 k 位置*/lenth+;/*长度+1*/写回if(fp=fopen(student.dat,wb)=NULL)printf(不能建立文件!n);exit(0);for(i=0;ilenth;i+)fwrite(&xsi,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);/显示函数void print()FILE*fp;student s;system(cls);if(fp=fopen(student.dat,rb)=NULL)printf(cant open file!n);exit(0);printf(学生成绩表);printf(n*);printf(n%10s%10s%6s%6s%6s%6s%6s%6s%6s n,姓名,学号,性别,高数,英语,程序,语文,平均成绩,总成绩);while(!feof(fp)fread(&s,sizeof(stu),1,fp);/从文件中读取成绩信息if(feof(fp)break;/判断是否文件尾printf(n%10s%6d%6s%6.2f%6.2f%6.2f%6.2f%6.2f%6.2fn,s.name,s.num,s.sex,s.math,s.yingyu,s.proj,s.ywen,s.aver,s.sum);fclose(fp);printf(n按任意键返回主菜单);getch();/统计函数void tongji()int i=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u;FILE*fp;student sN,*p1N,*p2N,*p3N,*p4N;/*用指针数组*/system(cls);if(fp=fopen(student.dat,rb)=NULL)printf(cantt open file!n);exit(0);while(!feof(fp)fread(&si+,sizeof(stu),1,fp);/*读入数据*/if(feof(fp)break;t=i;i=0;for(u=0;ut;u+)/*以下每个指针数组用于指向各分数段的学生信息*/if(si.aver=60&si.aver=80&si.aver=90)p4m+=&si+;continue;printf(学生成绩单);printf(n 90 以上的人有:姓名学号平均分n);for(r=0;rname,p4r-num,p4r-aver);printf(n 80-89 分的人有:姓名学号平均分n);for(q=0;qname,p3q-num,p3q-aver);printf(n 60-79 分的人有:姓名学号平均分n);for(p=0;pname,p2p-num,p2p-aver);printf(n 不及格的人有:姓名学号平均分n);for(n=0;nname,p1n-num,p1n-aver);fclose(fp);printf(n按任意键返回主菜单);getch();/删除:输入学生姓名,若该学生存在,则删除,并显示删除后余下的学生成绩信息void dele()student xsN;FILE*fp;char name10;int i=0,len,k=-1/*k=0)/*k0 说明找到删除学生位置*/if(fp=fopen(student.dat,wb+)=NULL)printf(cant open file!n);exit(0);for(i=0;ilen;i+)if(i=k)continue;/*从这个位置开始写入*/fwrite(&xsi,sizeof(stu),1,fp);fclose(fp);elseprintf(n删除失败n);getch();/*失败后重新返回菜单*/printf(n按任意键返回主菜单print();/菜单选择void main()char ch;system(color 3f);while(1)menu();/显示菜单ch=getch();/选择菜单if(ch=0)break;switch(ch)/判断功能项case1:input();break;case 2:search();break;case 3:modi();break;case 4:insert();break;case 5:print();break;case 6:tongji();break;case 7:dele();break;);

    注意事项

    本文(c语言大作业成绩管理dox.pdf)为本站会员(修****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开