《2022年C语言学生成绩信息管理系统C语言 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言学生成绩信息管理系统C语言 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、/last #include #include #include #include #define HEADER1 -STUDENT-n #define HEADER2 | number | name | sex |n #define HEADER3 |-|-|-|n #define FORMAT 姓名 :%-6sn 性别 :%-6sn 学号 :%-6snn #define END -n #define DATA temp.Name,temp.Num,temp.Sex typedef struct _Student char Name12; char Sex4; char Num20; Stu
2、dent; void Menu(FILE *); void LuRu(FILE *); void SeekStudent(FILE *); void QingKong(FILE *); void JiaMi(char *, int); void JieMi(char *, int); void Delete(FILE *); void UpDate(FILE *); void JudgeFP(FILE *); int FileSize(FILE *); void DisPlay(FILE *fp); int main( ) FILE *fp; int choice; fp = fopen(st
3、udent.txt,ab+);JudgeFP(fp); fp = fopen(student.txt,rb+);JudgeFP(fp); if(fp = NULL) printf(ERROR!n); exit(0); while(1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - system(cls); Menu(fp); scanf(%d,&choice); switch(choice) case 0:break; cas
4、e 1:LuRu(fp);break; case 2:SeekStudent(fp);break; case 3:QingKong(fp);break; case 4:Delete(fp);break; case 5:UpDate(fp);break; case 6:DisPlay(fp);break; default :printf( 输入错误 n); if(choice = 0)break; printf( 任意键返回主菜单);getch(); fflush(stdin); fclose(fp); return 0; void LuRu(FILE *fp)/ 录入 Student temp
5、; char ch; do printf( 姓名 :); scanf(%s,temp.Name); printf( 性别 :); scanf(%s,temp.Sex); printf( 编号 :); scanf(%s,temp.Num); fseek(fp, 0L, SEEK_END); /JiaMi(char *)&temp, sizeof(Student); fwrite(&temp, sizeof(Student), 1, fp); printf( 任意键继续录入0 跳出 n); fflush(stdin); while(ch = getch() != 0); 名师资料总结 - - -精
6、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - void QingKong(FILE *fp)/ 清空数据 if(fp = fopen(student.txt,wb) = NULL) printf(ERROR!n); return ; printf( 数据已清空 n); void SeekStudent(FILE *fp)/ 查询 Student temp; char in20; int i = 0, j; printf( 输入姓名或者学号查询:n);
7、scanf(%s,in); rewind(fp); for(j=0;jFileSize(fp);j+) while(!feof(fp) fseek(fp, j*sizeof(Student), SEEK_SET); fread(&temp, sizeof(Student), 1, fp);break; /JieMi(char *)&temp, sizeof(Student); if(strcmp(in,temp.Name) = 0 | strcmp(in,temp.Num) = 0) printf(FORMAT,DATA); i = 1; if(i = 0) printf( 没找到 n); v
8、oid Delete(FILE *fp)/ 删除 Student temp, del; Student blank = 0,0,0; char in20; int mycount = 0, i = 0, j; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - if(FileSize(fp) = 0) printf( 无记录可删 n); return; if(FileSize(fp) = 1) QingKong(fp); print
9、f( 删除成功 n); return; printf( 输入要删除的学号或者姓名:); scanf(%s, in); fseek(fp, (FileSize(fp)-1) * sizeof(Student), SEEK_SET); fread(&temp, sizeof(Student), 1, fp); rewind(fp); for(j=0;jFileSize(fp);j+) while(!feof(fp) fseek(fp, j*sizeof(Student), SEEK_SET); fread(&del, sizeof(Student), 1, fp); mycount+;break;
10、 if(strcmp(in,del.Num) = 0 | strcmp(in,del.Name) = 0) printf(FORMAT,del.Name,del.Num,del.Sex); fseek(fp, (mycount-1) * sizeof(Student), SEEK_SET); fwrite(&temp, sizeof(Student), 1, fp); fseek(fp, (FileSize(fp)-1) * sizeof(Student), SEEK_SET); fwrite(&blank, sizeof(Student), 1, fp); printf( 删除成功 n);
11、i = 1;break; if(i = 0) printf( 删除失败 n); void UpDate(FILE *fp)/ 修改记录 Student temp; char in20; int mycount = 0, i = 0, j,k; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - if(FileSize(fp) = 0) printf( 无记录可修改n); return; if(FileSize(fp) = 1) Qi
12、ngKong(fp); printf( 删除成功 n); return; printf( 输入要修改的学号或者姓名:); scanf(%s, in); rewind(fp); for(j=0;j 0 & k 5) break; printf( 输入错误 ,请重新输入 :n); scanf(%d,&k); fflush(stdin); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - if(k = 1) printf( 姓名 :);
13、 scanf(%s, temp.Name); if(k = 2) printf( 学号 :); scanf(%s, temp.Num); if(k = 3) printf( 性别 :); scanf(%s, temp.Sex); if(k = 4) printf( 姓名 :); scanf(%s, temp.Name); printf( 学号 :); scanf(%s, temp.Num); printf( 性别 :); scanf(%s, temp.Sex); fseek(fp, (mycount-1) * sizeof(Student), SEEK_SET); fwrite(&temp,
14、sizeof(Student), 1, fp); printf( 修改成功 n); i = 1;/break; if(i = 0) printf( 修改失败 n); int FileSize(FILE *fp)/ 人数统计 int begin, end, filesize; fseek(fp, 0, SEEK_SET); begin = ftell(fp); fseek(fp, 0, SEEK_END); end = ftell(fp); filesize = (end - begin) / sizeof(Student); 名师资料总结 - - -精品资料欢迎下载 - - - - - - -
15、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - return filesize; void JiaMi(char *p, int size) int i; for( i = 0; i = size; i+) *p = (*p); p+; void JieMi(char *p, int size) int i; for( i = 0; i = size; i+) *p = (*p); p+; void JudgeFP(FILE *fp) if(fp = NULL) printf(ERROR!n);
16、 exit(0); void Menu(FILE *fp)/ 菜单 printf(ttt 学生信息管理系统欢迎您n); printf(tttt1.录入数据 n); printf(tttt2.查询信息 n); printf(tttt3.清空数据 n); printf(tttt4.删除个人 n); printf(tttt5.修改个人 n); printf(tttt6.全部打印 n); printf(tttt0.退出系统 n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共
17、8 页 - - - - - - - - - printf(count: %dn, FileSize(fp); printf( 请选择操作 :n); void DisPlay(FILE *fp) Student temp; int j; rewind(fp); for(j=0;jFileSize(fp);j+) while(!feof(fp) fseek(fp, j*sizeof(Student), SEEK_SET); fread(&temp, sizeof(Student), 1, fp); printf(FORMAT,DATA);break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -