600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > C语言编写的学生考勤信息管理系统

C语言编写的学生考勤信息管理系统

时间:2021-12-16 22:42:56

相关推荐

C语言编写的学生考勤信息管理系统

录入信息需要先后顺序,不然可能有BUG

#include <stdlib.h>#include <stdio.h>#include <string.h>#include<conio.h>#include <windows.h>struct student{char name[16]; //姓名char ID[10]; //学号int classes; //班级 char speciality[16];//专业 char phone[16]; //电话int age; //年龄 int year; //出生日期--年int month;//出生日期--月int day; //出生日期--日char dormitory[10]; //宿舍int QQ; //QQ int math[10]; //下标决定第几次考勤,数组内容是考勤情况(1-正常 2-迟到 3-早退 4-旷课)int english[10];int c[10];}stu[100];struct subject{char course_number[10]; //课程编号 char course_name[10];//课程名称int course_score; //课程学分char teacher_name[10]; //任课教师 char time[16]; //上课时间 int class_times;//上课次数char class_place[10];//上课地点 struct student Student;}sub[100];int e=0; int main();void backup();void student();void student_information();void student_information_enter();void student_information_search();void student_information_delete();void student_information_enter_1();void student_information_enter_2();void student_information_search_all();void student_information_search_ID();void student_information_search_name();void student_information_delete_ID();void student_information_delete_name();void student_attendance();void student_attendance_enter();void student_attendance_search();void student_attendance_search_name();void student_attendance_search_ID();void course();void course_enter();void course_search();void course_search_all();void course_search_coursename();void course_search_teachername();void color(short x);void color(short x) //自定义函根据参数改变颜色 {if(x>=0 && x<=15)//参数在0-15的范围颜色 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); //只有一个参数,改变字体颜色 else//默认的颜色白色 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); } int main(){if(e==0){e++;printf("\n\n\n\n\n\t\t ※欢迎进入学生考勤系统 \n");color(10);printf("\n\n\n\t\t\t\t\t\t\t\tby xxxx大学xx级计科x班");color(16);Sleep(2000);}system("cls");char i;while(1){color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n");printf("\t\t丨 1.学生 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 2.课程 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 3.备份 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 4.退出 丨\n");printf("\t\t丨 丨\n");color(16);i=getch();switch (i){case '1': student();break;case '2': course(); break;case '3': backup();break;case '4': break;default: printf("\t\t你输入的数字错误,请重新输入!\n"); break;}if (i=='4'){system("cls");color(7);printf("\n\n\n\n\n\n\n\n\t\t\t即将退出退出系统,欢迎下次使用!\n");break;}}Sleep(1500);system("pause");exit(0);return 0;}void student(){system("cls");char i;while(1){color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n");printf("\t\t丨 1.学生信息 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 2.学生考勤 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 3.主菜单 丨\n");printf("\t\t丨 丨\n");color(16);i=getch();switch(i){case '1':student_information(); break;//学生信息操作 case '2':student_attendance(); break;//学生考勤操作case '3':break;//返回主菜单default:printf("\t\t您输入的数字错误,请重新输入!\n"); break; //出错提示}if(i=='3')break;}main();}void student_information(){system("cls");char i;while(1){color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n");printf("\t\t丨 1.学生信息录入丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 2.学生信息查询丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 3.学生信息删除丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 4.上一级菜单 丨\n");printf("\t\t丨 丨\n");color(16);i=getch();switch(i){case '1':student_information_enter(); break;//学生信息录入 case '2':student_information_search(); break;//学生信息查询 case '3':student_information_delete();break;//学生信息删除case '4': break;//返回上一级菜单 default:printf("\t\t您输入的数字错误,请重新输入!\n"); break;//出错提示 }if(i=='4')break;}student();}void student_information_enter(){char i;system("cls");while(1){color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n");printf("\t\t丨 1.学生信息全部清零再录入 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 2.学生信息追加录入 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 3.上一级菜单 丨\n");printf("\t\t丨 丨\n");color(16);i=getch();switch(i){case '1':student_information_enter_1(); break;//生信息全部清零再录入 case '2':student_information_enter_2(); break;//学生信息追加录入case '3':break;//回上一级菜单 default:printf("\t\t您输入的数字错误,请重新输入!\n"); break;//出错提示}if(i=='3')break;}student_information();}void student_information_enter_1(){int i;char k,j;FILE *fp;system("cls");printf("\n\n\n\n\n");if((fp=fopen("ARecord.txt","w"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_information_enter();}for(i=0,k='1';k=='1';i++)//k来判断是否继续录入学生信息 {color(11);for(j='0';j=='0';)//j来判断是否确定学生信息 {printf("\t\t请输入第%d个学生的姓名:",i+1);scanf("%s",&stu[i].name);printf("\t\t请输入第%d个学生的学号:",i+1);scanf("%s",&stu[i].ID);printf("\t\t请输入第%d个学生的班级:",i+1);scanf("%d",&stu[i].classes);printf("\t\t请输入第%d个学生的专业:",i+1);scanf("%s",&stu[i].speciality);printf("\t\t请输入第%d个学生的电话:",i+1);scanf("%s",&stu[i].phone);printf("\t\t请输入第%d个学生的年龄:",i+1);scanf("%d",&stu[i].age);printf("\t\t请输入第%d个学生的出生日期(格式:年-月-日例如: 2 2):", i + 1);scanf("%d%d%d", &stu[i].year, &stu[i].month, &stu[i].day);printf("\t\t请输入第%d个学生的宿舍:",i+1);scanf("%s",&stu[i].dormitory);printf("\t\t请输入第%d个学生的QQ:",i+1);scanf("%d",&stu[i].QQ);color(14);printf("\t\t请确定信息 (重输-0 确定-1):\n");color(16);j=getch();}if(fwrite(&stu[i], sizeof(struct student),1,fp)!=1){printf("文件写入错误\n");system("pause");student_information_enter();}color(14);printf("\t\t是否继续输入下一个学生的信息 终止-0 继续-1:\n\n");color(16);k=getch();}color(16);fclose(fp);color(4);printf("\n\t\t保存成功\n");color(16);Sleep(1000);student_information_enter();}void student_information_enter_2(){int i,t,x,m,f;char j,k;char student_name[16];FILE *fp;system("cls");printf("\n\n\n\n\n");if((fp=fopen("ARecord.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_information_enter();}for (m=0;feof(fp)==0;m++){fread(&stu[m], sizeof(struct student), 1, fp); //读取文件内容}color(11);for(i=m-1,k='1';k=='1';i++)//k来判断是否继续输入学生信息,i是读取数据之后数组的最后一个+1 {for(j='0',t=1;j=='0';)//j来判断是否确定学生信息 {printf("\t\t请输入第%d个学生的姓名:",i+1);scanf("%s",&student_name);for(x=0;x<m;x++){t=strcmp(stu[x].name,student_name);//对输入的学生姓名进行比较,得到下标 if(t==0){printf("该生已存在!\n");//该学生已存在,返回 break;}}strcpy(stu[i].name,student_name);printf("\t\t请输入第%d个学生的学号:",i+1);scanf("%s",&stu[i].ID);printf("\t\t请输入第%d个学生的班级:",i+1);scanf("%d",&stu[i].classes);printf("\t\t请输入第%d个学生的专业:",i+1);scanf("%s",&stu[i].speciality);printf("\t\t请输入第%d个学生的电话:",i+1);scanf("%s",&stu[i].phone);printf("\t\t请输入第%d个学生的年龄:",i+1);scanf("%d",&stu[i].age);printf("\t\t请输入第%d个学生的出生日期(格式:年-月-日例如: 2 2):", i + 1);scanf("%d%d%d", &stu[i].year, &stu[i].month, &stu[i].day);printf("\t\t请输入第%d个学生的宿舍:",i+1);scanf("%s",&stu[i].dormitory);printf("\t\t请输入第%d个学生的QQ:",i+1);scanf("%d",&stu[i].QQ);color(14);printf("\t\t请确定信息 (重输-0 确定-1):\n");color(16);j=getch();}if(t!=0){if((fp=fopen("ARecord.txt","w"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_information_enter();}for(f=0;f<i;f++){if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1){printf("\t\t文件写入错误\n");system("pause");student_information_enter();}}}color(14);printf("\t\t是否继续输入下一个学生的信息 终止-0 继续-1:\n\n");k=getch();color(16);}color(16);fclose(fp);color(4);printf("\n\t\t保存成功\n");color(16);Sleep(1000);student_information_enter();}void student_information_search(){char i;system("cls");while(1){color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n");printf("\t\t丨 1.按学号查询 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 2.按姓名查询 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 3.查询所有人 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 4.上一级菜单 丨\n");printf("\t\t丨 丨\n");color(16);i=getch();switch(i){case '1':student_information_search_ID();break;//按学号查询 case '2':student_information_search_name();break;//按姓名查询 case '3':student_information_search_all(); break;//查询所有人case '4': break;//返回上一级菜单 default:printf("\t\t您输入的数字错误,请重新输入!\n");break;//出错提示 }if(i=='4')break;}student_information();}void student_information_search_name(){system("cls");printf("\n\n\n\n\n");int i=0,j=0,t=1,k;char x='1';FILE *fp;char student_name[16] = {0 };if ((fp = fopen("ARecord.txt", "r")) == NULL) //将文件内容读入内存{printf("\t\t文件打开失败!\n");system("pause");student_information_search();}for (i=0;feof(fp)==0;i++){fread(&stu[i], sizeof(struct student), 1, fp); //读取文件内容}while(x!='0'){color(6);printf("\t\t请输入需要查询学生的姓名:");scanf("%s", &student_name);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].name,student_name);if(t==0){break;}}if (t==0) //查询成功{printf("姓名\t\t学号\t\t班级\t\t专业\t\t电话\t\t年龄\t\t生日\t\t宿舍\t\tQQ\n");printf("%s\t%s \t%d \t\t%s \t\t%s \t%d \t\t%d.%d.%d \t%s \t%d\n",stu[j].name,stu[j].ID,stu[j].classes,stu[j].speciality,stu[j].phone,stu[j].age,stu[j].year,stu[j].month,stu[j].day,stu[j].dormitory,stu[j].QQ);}else{color(12);printf("\t\t未找到该学生信息!\n");color(16);}color(14);printf("\t\t继续-1,退出-0\n");color(16);x=getch(); }color(16);fclose(fp);student_information_search();}void student_information_search_ID(){system("cls");printf("\n\n\n\n\n");int i=0,j=0,t=1;char x='1';FILE *fp;char student_ID[10] = {0 };if ((fp = fopen("ARecord.txt", "r")) == NULL) //将文件内容读入内存{printf("\t\t文件打开失败!\n");system("pause");student_information_search();}for (i=0;feof(fp)==0;i++){fread(&stu[i], sizeof(struct student), 1, fp); //读取文件内容}while(x!='0'){color(6);printf("\t\t请输入需要查询学生的学号:");scanf("%s", &student_ID);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].ID,student_ID); if(t==0){break;}}if (t==0) //查询成功{printf("姓名\t\t学号\t\t班级\t\t专业\t\t电话\t\t年龄\t\t生日\t\t宿舍\t\tQQ\n");printf("%s\t%s \t%d \t\t%s \t\t%s \t%d \t\t%d.%d.%d \t%s \t%d\n",stu[j].name,stu[j].ID,stu[j].classes,stu[j].speciality,stu[j].phone,stu[j].age,stu[j].year,stu[j].month,stu[j].day,stu[j].dormitory,stu[j].QQ);}else{color(12);printf("\t\t未找到该学生信息!\n");color(16);}color(14);printf("\t\t继续-1,退出-0\n");color(16);x=getch();}color(16);fclose(fp);student_information_search();}void student_information_search_all(){system("cls");printf("\n\n\n\n\n");int i,j;FILE *fp;if ((fp = fopen("ARecord.txt", "r")) == NULL) //将文件内容读入内存{printf("\t\t文件打开失败!\n");system("pause");student_information_search();}for (i=0;feof(fp)==0;i++){fread(&stu[i], sizeof(struct student), 1, fp); //读取文件内容}color(6);printf("姓名\t\t学号\t\t班级\t\t专业\t\t电话\t\t年龄\t\t生日\t\t宿舍\t\tQQ\n");for(j=0;j<i;j++)printf("%s\t%s \t%d \t\t%s \t\t%s \t%d \t\t%d.%d.%d \t%s \t%d\n",stu[j].name,stu[j].ID,stu[j].classes,stu[j].speciality,stu[j].phone,stu[j].age,stu[j].year,stu[j].month,stu[j].day,stu[j].dormitory,stu[j].QQ);color(16);system("pause");student_information_search();}void student_information_delete(){system("cls");char i;while(1){color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n");printf("\t\t丨 1.按姓名删除 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 2.按学号删除 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 3.上一级菜单 丨\n");printf("\t\t丨 丨\n");color(16);i=getch();switch(i){case '1':student_information_delete_name();break;//按姓名删除case '2':student_information_delete_ID(); break;//按学号删除 case '3': break;//返回上一级菜单 default:printf("\t\t您输入的数字错误,请重新输入!\n"); break; //出错提示}if(i=='3')break;}student_information();}void student_information_delete_name(){system("cls");printf("\n\n\n\n\n");FILE *fp;int i,j,t,f;char p,x;char student_name[16];while(1){if((fp=fopen("ARecord.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_information_delete();}for(i=0;feof(fp)==0;i++){fread(&stu[i],sizeof(struct student),1,fp);}color(11);printf("\t\t请输入要删除信息的学生姓名:");color(16);scanf("%s",&student_name);for(j=0,t=1;j<i;j++){t=strcmp(stu[j].name,student_name);if(t==0){break;}}if(t==0){color(12);printf("\t\t请确认你是否要删除信息 确定-1 取消-0\n");color(16);p=getch();if(p=='1'){for(;j<i-1;j++){stu[j]=stu[j+1]; }if((fp=fopen("ARecord.txt","w"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_information();}for(f=0;f<i-2;f++){if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1){printf("\t\t文件写入错误\n");system("pause");student_information_delete();}}color(12);printf("\t\t信息删除成功\n");}else{printf("\t\t你取消了删除操作\n");color(16);} }else{color(11);printf("\t\t该生不存在\n");color(16);}color(14);printf("\t\t是否继续删除信息 继续-1 退出-0\n");color(16);x=getch();if(x=='0')break;}fclose(fp);student_information_delete();}void student_information_delete_ID(){system("cls");printf("\n\n\n\n\n");FILE *fp;int i,j,t,f;char x,p;char student_ID[16];while(1){if((fp=fopen("ARecord.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_information_delete();}for(i=0;feof(fp)==0;i++){fread(&stu[i],sizeof(struct student),1,fp);}color(11);printf("\t\t请输入要删除信息的学生学号:");color(16);scanf("%s",&student_ID);for(j=0,t=1;j<i;j++){t=strcmp(stu[j].ID,student_ID);if(t==0){break;}}if(t==0){color(12);printf("\t\t请确认你是否要删除信息 确定-1 取消-0\n");color(26);p=getch();if(p=='1'){for(;j<i-1;j++)stu[j]=stu[j+1]; if((fp=fopen("ARecord.txt","w"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_information_delete();}for(f=0;f<i-2;f++){if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1){printf("\t\t文件写入错误\n");system("pause");student_information_delete();}}color(12);printf("\t\t信息删除成功\n");}else{printf("\t\t你取消了删除操作\n");color(16);} }else{color(11);printf("\t\t该生不存在\n");color(16);}color(14);printf("\t\t是否继续删除信息 继续-1 退出-0\n");color(16);x=getch();if(x=='0')break;}fclose(fp);student_information_delete();}void student_attendance(){system("cls");char i;while(1){color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n");printf("\t\t丨 1.考勤录入 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 2.考勤查询 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 3.上一级菜单 丨\n");printf("\t\t丨 丨\n");color(16);i=getch();switch(i){case '1':student_attendance_enter(); break;//考勤录入 case '2':student_attendance_search(); break;//考勤查询case '3': break;//上一级菜单default:printf("\t\t您输入的数字错误,请重新输入!\n"); break;//出错提示}if(i=='3')break;}student();}void student_attendance_enter(){int i,j,k,l,t,f,s;char h,g,n,x='1';FILE *fp;char student_name[16]; if((fp=fopen("ARecord.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_attendance();}for (i=0;feof(fp)==0;i++){fread(&stu[i], sizeof(struct student), 1, fp); //读取文件内容}while(1){system("cls");color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n");printf("\t\t丨1.高数 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨2.英语 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨3.c程序 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨4.上一级菜单丨\n");printf("\t\t丨 丨\n");color(16);n=getch();switch(n){case '1':color(11);printf("\t\t请输入学生姓名:");color(16);scanf("%s",&student_name);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].name,student_name);if(t==0){break;}}if (t==0) //查询成功{for(h='1';h=='1';){for(g='0';g=='0';){color(11);printf("\t\t请输入这是第几次考勤:");scanf("%d",&l);printf("\t\t请输入考勤情况(1-正常 2-迟到 3-早退 4-旷课):");color(16);scanf("%d",&stu[j].math[l-1]);color(14);printf("\t\t重输-0 确定-1\n");g=getch();}printf("\t\t是否继续该生的考勤记录(继续-1 退出-0)\n");color(16);h=getch();}}else{color(11);printf("\t\t未找到该学生信息!\n");color(16);}if(t==0){if((fp=fopen("ARecord.txt","w"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_attendance();}for(f=0;f<i;f++){if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1){printf("\t\t文件写入错误\n");system("pause");student_attendance();}}}break;case '2':color(11);printf("\t\t请输入学生姓名:");color(16);scanf("%s",&student_name);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].name,student_name);if(t==0){break;}}if (t==0) //查询成功{for(h='1';h=='1';){for(g='0';g=='0';){color(11);printf("\t\t请输入这是第几次考勤:");scanf("%d",&l);printf("\t\t请输入考勤情况(1-正常 2-迟到 3-早退 4-旷课):");color(16);scanf("%d",&stu[j].english[l-1]);color(14);printf("\t\t重输-0 确定-1\n");g=getch();}printf("\t\t是否继续该生的考勤记录(继续-1 退出-0)\n");color(16);h=getch();}}else{color(11);printf("\t\t未找到该学生信息!\n");color(16);}if(t==0){if((fp=fopen("ARecord.txt","w"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_attendance();}for(f=0;f<i;f++){if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1){printf("\t\t文件写入错误\n");system("pause");student_attendance();}}}break;case '3':color(11);printf("\t\t请输入学生姓名:");color(16);scanf("%s",&student_name);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].name,student_name);if(t==0){break;}}if (t==0) //查询成功{for(h='1';h=='1';){for(g='0';g=='0';){color(11);printf("\t\t请输入这是第几次考勤:");scanf("%d",&l);printf("\t\t请输入考勤情况(1-正常 2-迟到 3-早退 4-旷课):");color(16);scanf("%d",&stu[j].c[l-1]);color(14);printf("\t\t重输-0 确定-1\n");g=getch();}printf("\t\t是否继续该生的考勤记录(继续-1 退出-0)\n");color(16);h=getch();}}else{color(11);printf("\t\t未找到该学生信息!\n");color(16);}if(t==0){if((fp=fopen("ARecord.txt","w"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_attendance();}for(f=0;f<i;f++){if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1){printf("\t\t文件写入错误\n");system("pause");student_attendance();}}}break;case '4':break;default:printf("\t\t你输入的数字错误,请重新输入!\n");}if(n=='4')break;}fclose(fp);student_attendance();}void student_attendance_search(){char i;system("cls");while(1){color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n");printf("\t\t丨 1.按姓名查询 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 2.按学号查询 丨\n");printf("\t\t丨 丨\n");printf("\t\t丨 3.上一级菜单 丨\n");printf("\t\t丨 丨\n");color(16);i=getch();switch(i){case '1':student_attendance_search_name(); break;//学生信息操作 case '2':student_attendance_search_ID(); break;//学生考勤操作case '3': break;//返回上一级菜单default:printf("\t\t您输入的数字错误,请重新输入!\n"); break; //出错提示}if(i=='3')break;}student_attendance();}void student_attendance_search_name(){int i,j,m,t;char l,n,x='1';int a,b,c,d;FILE *fp;char student_name[16]; int classes;if((fp=fopen("course.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_attendance_search();}for (i=0;feof(fp)==0;i++){fread(&sub[i], sizeof(struct subject), 1, fp); //读取文件内容}if((fp=fopen("ARecord.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_attendance_search();;}for (i=0;feof(fp)==0;i++){fread(&stu[i], sizeof(struct student), 1, fp); //读取文件内容}while(x!=0){system("cls");color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n"); printf("\t\t丨 1.显示某人某门考勤信息丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 2.显示某人所有课程考勤信息 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 3.显示某班所有人考勤情况 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 0.返回上一级菜单 丨\n");printf("\t\t丨 丨\n"); color(16);n=getch();switch(n){case '1':color(15);system("cls");loop:printf("\n\n\n\n\n");printf("\t\t丨 丨\n"); printf("\t\t丨 1.高数 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 2.英语 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 3.c程序丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨0.返回上一级菜单丨\n");printf("\t\t丨 丨\n"); color(16);l=getch();switch(l){case '1':a=0;b=0;c=0;d=0;color(6);printf("\t\t请输入该生姓名:");scanf("%s",&student_name);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].name,student_name);if(t==0){break;}}if (t==0) //查询成功{getchar();if(stu[j].math[0]=='\0'){printf("\t\t该生暂无考勤记录\n");break;}printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].math[m]!='\0';m++){if(stu[j].math[m]==1)printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);if(stu[j].math[m]==2)printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);if(stu[j].math[m]==3)printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);if(stu[j].math[m]==4)printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}}else{printf("\t\t未找到该学生信息!\n");}break;case '2':a=0;b=0;c=0;d=0;printf("\t\t请输入该生姓名:");scanf("%s",&student_name);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].name,student_name);if(t==0){break;}}if (t==0) //查询成功{getchar();if(stu[j].math[0]=='\0'){printf("\t\t该生暂无考勤记录\n");break;}printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].english[m]!='\0';m++){if(stu[j].english[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);}else{printf("\t\t未找到该学生信息!\n");}break;case '3':a=0;b=0;c=0;d=0;printf("\t\t请输入该生姓名:");scanf("%s",&student_name);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].name,student_name);if(t==0){break;}}if (t==0) //查询成功{getchar();if(stu[j].math[0]=='\0'){printf("\t\t该生暂无考勤记录\n");break;}printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].c[m]!='\0';m++){if(stu[j].c[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);}else{printf("\t\t未找到该学生信息!\n");}break;case '0':goto loop;break;default:printf("\t\t你输入的课程名称错误!\n");break;}break;case '2':printf("\t\t请输入该生姓名:");scanf("%s",&student_name);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].name,student_name);if(t==0){break;}}if (t==0) //查询成功{getchar();if(stu[j].math[0]=='\0'){printf("\t\t该生暂无考勤记录\n");break;}a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].math[m]!='\0';m++){if(stu[j].math[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].english[m]!='\0';m++){if(stu[j].english[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].c[m]!='\0';m++){if(stu[j].c[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);}else{printf("\t\t未找到该学生信息!\n");}break;case '3':printf("\t\t请输入查询班级:");scanf("%d",&classes);for (j=0,t=0;j<i;j++){if(stu[j].classes==classes){t++;a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].math[m]!='\0';m++){if(stu[j].math[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].english[m]!='\0';m++){if(stu[j].english[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].c[m]!='\0';m++){if(stu[j].c[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);}}if(t==0)printf("\t\t暂无该班级\n");break;case '0':break;default:printf("\t\t你输入的数字错误!\n");break;color(16);}if(n=='0')break;color(14);printf("\t\t继续-1 退出-0");color(16);x=getch();}fclose(fp);student_attendance_search();}void student_attendance_search_ID(){int i,j,m,t;char l,n,x='1';int a,b,c,d;FILE *fp;char student_number[16];int classes; if((fp=fopen("course.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_attendance_search();}for (i=0;feof(fp)==0;i++){fread(&sub[i], sizeof(struct subject), 1, fp); //读取文件内容}if((fp=fopen("ARecord.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");student_attendance_search();}for (i=0;feof(fp)==0;i++){fread(&stu[i], sizeof(struct student), 1, fp); //读取文件内容}while(x!='0'){a=0;b=0;c=0;d=0;system("cls");color(15);printf("\n\n\n\n\n");printf("\t\t丨 丨\n"); printf("\t\t丨 1.显示某人某门考勤信息丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 2.显示某人所有课程考勤信息 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 3.显示某班所有人考勤情况 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 0.返回上一级菜单 丨\n");printf("\t\t丨 丨\n"); color(16);n=getch();switch(n){case '1':color(15);system("cls");loop:printf("\n\n\n\n\n");printf("\t\t丨 丨\n"); printf("\t\t丨 1.高数 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 2.英语 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨 3.c程序丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨0.返回上一级菜单丨\n");printf("\t\t丨 丨\n"); color(16);l=getch();switch(l){case '1':a=0;b=0;c=0;d=0;color(6);printf("\t\t请输入该生学号:");scanf("%s",&student_number);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].ID,student_number);if(t==0){break;}}if (t==0) //查询成功{getchar();if(stu[j].math[0]=='\0'){printf("\t\t该生暂无考勤记录\n");break;}printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].math[m]!='\0';m++){if(stu[j].math[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);}else{printf("\t\t未找到该学生信息!\n");}break;case '2':a=0;b=0;c=0;d=0;printf("\t\t请输入该生学号:");scanf("%s",&student_number);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].ID,student_number);if(t==0){break;}}if (t==0) //查询成功{getchar();if(stu[j].math[0]=='\0'){printf("\t\t该生暂无考勤记录\n");break;}printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].english[m]!='\0';m++){if(stu[j].english[m]==1){a++;printf("%s\t%\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);}else{printf("\t\t未找到该学生信息!\n");}break;case '3':a=0;b=0;c=0;d=0;printf("\t\t请输入该生学号:");scanf("%s",&student_number);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].ID,student_number);if(t==0){break;}}if (t==0) //查询成功{getchar();if(stu[j].math[0]=='\0'){printf("\t\t该生暂无考勤记录\n");break;}printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].c[m]!='\0';m++){if(stu[j].c[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);}else{printf("\t\t未找到该学生信息!\n");}break;case 0:goto loop;break;default:printf("\t\t你输入的课程名称错误!\n");break;}break;case '2':printf("\t\t请输入该生学号:");scanf("%s",&student_number);for (j=0,t=1;j<i;j++){t=strcmp(stu[j].ID,student_number);if(t==0){break;}}if (t==0) //查询成功{getchar();if(stu[j].math[0]=='\0'){printf("\t\t该生暂无考勤记录\n");break;}a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].math[m]!='\0';m++){if(stu[j].math[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].english[m]!='\0';m++){if(stu[j].english[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].c[m]!='\0';m++){if(stu[j].c[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);}else{printf("\t\t未找到该学生信息!\n");}break;case '3':printf("\t\t请输入查询班级:");scanf("%d",&classes);for (j=0,t=0;j<i;j++){if(stu[j].classes==classes){t++;a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].math[m]!='\0';m++){if(stu[j].math[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}if(stu[j].math[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].english[m]!='\0';m++){if(stu[j].english[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}if(stu[j].english[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);a=0;b=0;c=0;d=0;printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");for(m=0;stu[j].c[m]!='\0';m++){if(stu[j].c[m]==1){a++;printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==2){b++;printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==3){c++;printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}if(stu[j].c[m]==4){d++;printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);}}printf("各类违规记录:总考勤次数:%d 正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);}}if(t==0)printf("\t\t暂无该班级\n");break;case '4':break;default:printf("\t\t你输入的数字错误!\n");break;color(16);}if(n=='4')break;color(14);printf("\t\t继续-1 退出-0");color(16);x=getch();}fclose(fp);student_attendance_search();}void course(){char i;while(1){color(15);system("cls");printf("\n\n\n\n\n");printf("\t\t丨 丨\n"); printf("\t\t丨1.课程录入 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨2.课程查询 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨3.主菜单丨\n"); printf("\t\t丨 丨\n"); color(16);i=getch();switch(i){case '1':course_enter();break;//课程录入 case '2':course_search(); break;//课程查询case '3':break;//返回主菜单default:printf("\t\t您输入的数字错误,请重新输入!\n"); break;//出错提示}if(i=='3')break;}main();}void course_enter(){int i,f,x;char j,k;FILE *fp;system("cls");if((fp=fopen("course.txt","w"))==NULL){printf("\t\t文件打开失败!\n");system("pause");course();}printf("\n\n\n\n\n");for(j='1',x=0;j=='1';x++){color(11);for(k=0;k==0;){printf("\t\t请输入课程的编号:");scanf("%s",&sub[x].course_number);printf("\t\t请输入课程的名称:");scanf("%s",&sub[x].course_name);printf("\t\t请输入课程的学分:");scanf("%d",&sub[x].course_score);printf("\t\t请输入课程的任课教师:");scanf("%s",&sub[x].teacher_name);printf("\t\t请输入课程的上课时间(例如:周1上午10.00-12.00):");scanf("%s",&sub[x].time);printf("\t\t请输入课程的上课次数:");scanf("%d",&sub[x].class_times);printf("\t\t请输入课程的上课地点(例如:教1-101):");scanf("%s",&sub[x].class_place);printf("\t\t请确定信息(确定-1,重输-0):\n");k=getch();}if(fwrite(&sub[x], sizeof(struct subject),1,fp)!=1){printf("\t\t文件写入错误\n");system("pause");course();}color(16);color(14);printf("\t\t是否继续输入下一个课程 继续-1 终止-0:\n");color(16);j=getch();}fclose(fp);course();}void course_search(){char i;while(1){color(15);system("cls");printf("\n\n\n\n\n");printf("\t\t丨 丨\n"); printf("\t\t丨1.按课程名称查询丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨2.按任课教师查询丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨3.显示所有课程 丨\n"); printf("\t\t丨 丨\n"); printf("\t\t丨4.上一级菜单丨\n"); printf("\t\t丨 丨\n"); color(16);i=getch();switch(i){case '1':course_search_coursename(); break;//按课程名称查询 case '2':course_search_teachername();break;//按任课教师查询case '3':course_search_all(); break;//显示所有课程case '4':break;default:printf("\t\t您输入的数字错误,请重新输入!\n"); break; //出错提示}if(i=='4')break;}course();}void course_search_coursename(){system("cls");printf("\n\n\n\n\n");int i=0,j=0,t=1;char x='1';FILE *fp;char course_name[10]; if((fp=fopen("course.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");course_search();}for (i=0;feof(fp)==0;i++){fread(&sub[i], sizeof(struct subject), 1, fp); //读取文件内容}while(x!='0'){color(6);printf("\t\t请输入需要查询课程名称:");scanf("%s", &course_name);for (j=0,t=1;j<i;j++){t=strcmp(sub[j].course_name,course_name);if(t==0){break;}}if (t==0) //查询成功{printf("课程编号\t课程名称\t课程学分\t任课教师\t上课时间\t\t上课次数\t上课地点\n");printf("%s\t\t %s\t\t %d\t\t %s\t\t%s\t %d\t\t%s\n",sub[j].course_number,sub[j].course_name,sub[j].course_score,sub[j].teacher_name,sub[j].time,sub[j].class_times,sub[j].class_place);}else{printf("\t\t未找到该课程信息!\n");}color(16);color(14);printf("\t\t继续-1,退出-0\n");color(16);x=getch(); }fclose(fp);course_search();}void course_search_teachername(){system("cls");printf("\n\n\n\n\n");int i=0,j=0,t=1;char x='1';FILE *fp;char teacher_name[10]; if((fp=fopen("course.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");course_search();}for (i=0;feof(fp)==0;i++){fread(&sub[i], sizeof(struct subject), 1, fp); //读取文件内容}while(x!='0'){color(6);printf("\t\t请输入任课教师名称:");scanf("%s", &teacher_name);for (j=0,t=1;j<i;j++){t=strcmp(sub[j].teacher_name,teacher_name);if(t==0){break;}}if (t==0) //查询成功{printf("课程编号\t课程名称\t课程学分\t任课教师\t上课时间\t\t上课次数\t上课地点\n");printf("%s\t\t %s\t\t %d\t\t %s\t\t%s\t %d\t\t%s\n",sub[j].course_number,sub[j].course_name,sub[j].course_score,sub[j].teacher_name,sub[j].time,sub[j].class_times,sub[j].class_place);}else{printf("\t\t未找到该课程信息!\n");}color(16);color(14);printf("\t\t继续-1,退出-0\n");color(16);x=getch(); }fclose(fp);course_search();}void course_search_all(){system("cls");printf("\n\n\n\n\n");int j;FILE *fp;if((fp=fopen("course.txt","r"))==NULL){printf("文件打开失败!\n");system("pause");course_search();}color(6);printf("课程编号\t课程名称\t课程学分\t任课教师\t上课时间\t\t上课次数\t上课地点\n");for (j=0;feof(fp)==0;j++){fread(&sub[j], sizeof(struct subject), 1, fp); //读取文件内容printf("%s\t\t %s\t\t %d\t\t %s\t\t%s\t %d\t\t%s\n",sub[j].course_number,sub[j].course_name,sub[j].course_score,sub[j].teacher_name,sub[j].time,sub[j].class_times,sub[j].class_place);}fclose(fp);color(16);system("pause");course_search();}void backup(){system("cls");printf("\n\n\n\n\n");FILE *source,*end;char ch;if((source=fopen("ARecord.txt","r"))==NULL){printf("\t\t文件打开失败!\n");system("pause");main();}if((end=fopen("backup.txt","w"))==NULL){printf("\t\t文件打开失败!\n");system("pause");main();}color(4);printf("\t\t文件备份中....!\n\n\n");color(16);Sleep(1500);for ( ch=fgetc(source); ch != EOF; ch=fgetc(source) ){fputc(ch,end);}system("cls");color(3);printf("\n\n\n\n\n\n\n\n\t\t文件备份成功!");color(16);Sleep(1000);fclose(source);fclose(end);puts("ok");main();}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。