1、学生管理系统#include#include#include#includestruct student_info char number15; /*学号*/ char name20; /*姓名*/ char gender8; /*性别*/ char sushe_no10; /*宿舍号*/ char tel20;struct student_grade char number15; char courseno10; /*课程号*/ char coursename20; /*课程名称*/ int xuefen; int pingshicj; int shiyancj; int juanmianc
2、j; float zonghecj; float shidecj;typedef struct student_info stu_info;/*用typedef来定义新类型stu_info代替已有的结构体struct student_info*/typedef struct student_grade stu_grade;/*用typedef来定义新类型stu_grade代替已有的结构体struct student_grade*/int CourseInfoIndex=0;int StudentInfoIndex=0;stu_info *StuInfo=NULL; /*定义指向结构体的指针,并
3、初始化为0*/stu_grade *StuCour=NULL; /*定义指向结构体的指针,并初始化为0*/int ReadStuInfo(void) /从原有的学生信息文件中读取信息 FILE *fp; StudentInfoIndex=0; if(fp=fopen(d:A.txt,rb)=NULL) return -1; else while(!feof(fp) if(fread(&StuInfoStudentInfoIndex,sizeof(stu_info),1,fp)=1) StudentInfoIndex+; fclose(fp); return 0; int WriteStuInf
4、o(void) /将学生信息写入到文件中 FILE *fp; if(StudentInfoIndex=0) if(fp=fopen(d:A.txt,wb)=NULL) return -1; else fwrite(StuInfo,sizeof(stu_info)*StudentInfoIndex,1,fp); fclose(fp); return 0; return 0;void PrintStuInfo(int index) /显示学生信息 int i=0; ReadStuInfo(); /调用ReadStoInf函数,自文件A中读取数据 printf(n输出学生个人信息数据:n); pri
5、ntf(学号 姓名 性别 宿舍号码 电话号码n); if (index=-1) for(i=0;i=0) if(fp=fopen(d:B.txt,wb)=NULL) return -1; else fwrite(StuCour,sizeof(stu_grade)*CourseInfoIndex,1,fp); fclose(fp); return 0; return 0;void PrintCourseInfo(int index) int i=0; ReadCourseInfo(); printf(n输 出 课 程 信 息:n); printf(学号 课程号 课程名 学分 平时成绩 实验成绩
6、卷面成绩 综合成绩 实得学分n); if (index=-1) for(i=0;i=90) StuCourCourseInfoIndex.shidecj=StuCourCourseInfoIndex.xuefen*1.0; else if(StuCourCourseInfoIndex.zonghecj=70) StuCourCourseInfoIndex.shidecj=StuCourCourseInfoIndex.xuefen*0.8; else if(StuCourCourseInfoIndex.zonghecj=60) StuCourCourseInfoIndex.shidecj=Stu
7、CourCourseInfoIndex.xuefen*0.6; else StuCourCourseInfoIndex.shidecj=0.0; CourseInfoIndex+; WriteCourseInfo(); / 保存到文件中void SeekInfo() /*按照学号查询*/char xh20; printf(请输入要查找的学号:n); gets(xh); ReadStuInfo(); printf(学号 姓名 性别 宿舍号码 电话号码n); for(int m=0;mStudentInfoIndex;m+) if(strcmp(xh,StuInfom.number)=0) /Re
8、adStuInfo(); printf(%s ,StuInfom.number); printf(%s ,StuInfom.name); printf(%s ,StuInfom.gender); printf(%s ,StuInfom.sushe_no); printf(%sn,StuInfom.tel); void SeekInfox() /*按照姓名查询*/char xm20; printf(请输入要查找的姓名:n); gets(xm); ReadStuInfo(); printf(学号 姓名 性别 宿舍号码 电话号码n); for(int x=0;xStudentInfoIndex;x+
9、) if(strcmp(xm,StuInfox.name)=0) /ReadStuInfo(); printf(%s ,StuInfox.number); printf(%s ,StuInfox.name); printf(%s ,StuInfox.gender); printf(%s ,StuInfox.sushe_no); printf(%sn,StuInfox.tel); void SeekInfocj() /*按照学号查询成绩信息*/char xn20; printf(查找成绩,请输入要查找的学号:n); gets(xn); ReadStuInfo();for(int y=0;yStu
10、dentInfoIndex;y+) if(strcmp(xn,StuInfoy.number)=0) /ReadStuInfo(); printf(学号:%s ,StuInfoy.number); printf(姓名:%s n,StuInfoy.name); ReadCourseInfo();for(int z=0;zCourseInfoIndex;z+) if(strcmp(xn,StuCourz.number)=0) /ReadCoursefo(); printf(课程编号:%s ,StuCourz.courseno); printf(课程名称:%s ,StuCourz.coursenam
11、e); printf(综合成绩:%f ,StuCourz.zonghecj); printf(实得学分:%fn,StuCourz.shidecj); void SeekInfoss() /*按照宿舍号查询*/char xs20; printf(请输入要查找的宿舍号:n); gets(xs); ReadStuInfo(); printf(学号 姓名 性别 宿舍号码 电话号码n); for(int s=0;snumber,src-number); strcpy(dest-name,src-name); strcpy(dest-gender,src-gender); strcpy(dest-sush
12、e_no,src-sushe_no); strcpy(dest-tel,src-tel);void Del(void) char strdel15; int p=0; int flag=0; int t=StudentInfoIndex; printf(删除一个学生的相关信息记录:n); ReadCourseInfo(); ReadStuInfo(); PrintStuInfo(-1); /打印学生信息 printf(请输入要删除学生的学号:); gets(strdel); while(pnumber,src-number); strcpy(dest-courseno,src-courseno
13、); strcpy(dest-coursename,src-coursename); dest-xuefen=src-xuefen; dest-pingshicj=src-pingshicj; dest-juanmiancj=src-juanmiancj; dest-zonghecj=src-zonghecj; dest-shidecj=src-shidecj;void SortInfo(void) /*实现按综合成绩或实得学分正逆排序*/ char str5; int i,j; stu_grade tmps; printf(选择方式对综合成绩和实得成绩排序:n); printf(1.按综合成
14、绩正向排序n); printf(2.按综合成绩逆向排序n); printf(3.按实得学分正向排序n); printf(4.按实得学分逆向排序n); gets(str); ReadCourseInfo();/读取文件的信息 if(str04) return; /*起泡法进行排序*/ for(i=0;i=CourseInfoIndex-2;i+) for(j=i+1;jStuCourj.zonghecj)| (str0=2 & StuCouri.zonghecjStuCourj.shidecj)| (str0=4 & StuCouri.shidecjStuCourj.shidecj) CopyCourseInfo(&StuCouri,&tmps); CopyCourseInfo(&StuCourj,&StuCouri); CopyCourseInfo(&tmps,&StuCourj); WriteCourseInfo(); /将排序好的写入到文件中
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1