资源描述:
《比较靠谱(原本).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*HELLO.C--Hello,world*/#include"stdio.h"#include"conio.h"typedefstructstudent{charnum[11];/*学号*/charname[10];/*姓名*/intcgrade;/*c语言成绩*/integrade;/*英语成绩*/intmgrade;/*高数成绩*/inttotal;/*总分*/floatave;/*平均分*/intrank;/*名次*/};//菜单voidmenu()/*便于操作员使用*/{/*清屏*/system("cls");p
2、rintf("学生平时成绩管理");printf("=======================");printf("1.成绩录入");printf("2.计算");printf("3.查询");printf("4.修改");printf("5.插入");printf("6.显示");printf("7.统计");printf("8.删除");printf("0.退出");printf("=======================");printf("请选择相应的功能:"
3、);}//成绩录入voidinput(){FILE*fp;stuxs;/*定义一个结构体变量来装从文件中读出来的数据*/if((fp=fopen("student.dat","ab"))==NULL){printf("can'topenfile!");exit(0);}printf("录入格式:姓名学号C语言高数英语当输入姓名为ps结束录入");while(1)/*中间加油break,可使循环中断*/{scanf("%s",xs.name);if(strcmp(xs.name,"ps")==0)break;/*判
4、断姓名是否为ps,用字符串判断*/scanf("%d%f%f%f",&xs.num,&xs.c,&xs.math,&xs.english);xs.aver=0;/*给平均分变量赋初值*/fwrite(&xs,sizeof(stu),1,fp);//将成绩信息写入文件}fclose(fp);}//计算平均分voidsum(){inti=0,n;stuxs[N];FILE*fp;if((fp=fopen("student.dat","rb+"))==NULL){printf("can'topenfile!");exit(0)
5、;}while(!feof(fp))/*文件读入内存,读取指针未到文件尾时返回值为0,读到尾时返回值为1,加!取反后,结束即为0*/{fread(&xs[i],sizeof(stu),1,fp);/*读入结构体变量*/if(feof(fp))break;/*上面while循环那个会多读一次因为读到尾时那个0还没返回,这里判断如果以读到文件尾,则直接停止,避免重复输入*/xs[i].aver=(xs[i].c+xs[i].math+xs[i].english)/3;i++;}n=i;/*把i的末尾值给n,用于下面循环写入*/i
6、=0;fclose(fp);if((fp=fopen("student.dat","wb"))==NULL){printf("can'topenfile!");exit(0);}while(i7、)==NULL){printf("can'topenfile!");exit(0);}while(!feof(fp)){fread(&xs,sizeof(stu),1,fp);if(strcmp(xs.name,name)==0)/*按姓名查询时判断输入的姓名是否存在,会循环从数据中找取*/{printf("学生的信息如下:");printf("%10s%6s%6s%6s%6s%6s","姓名","学号","C语言","高数","英语","平均成绩");printf("%10s%6d%6.2f%6.2f%6.
8、2f%6.2f",xs.name,xs.num,xs.c,xs.math,xs.english,xs.aver);break;}}if(feof(fp))printf("查找失败!!!");/*学生不存在*/fclose(fp);}voidxuehao(){FILE*fp;stuxs;