提示:以下是本篇文章正文内容,下面案例可供参考
一、摘要
在高校自动化办公系统逐步普及的今天,课堂点名系统已遍地而飞。这种方式不仅省钱、省事、便捷、好用,而且使得老师不在需要花大工夫,每天都带点名册,节约了时间,提高了效率。并且点名系统可以全方位的覆盖所有学生,避免了逃课或者迟到现象,提高了学习质量。学生或者老师也可通过该系统去查询这个学期的到课情况,方便管理以及自查。
二、页面截图
三、源代码
/**
* 点名函数
*/
void callRoll(char *classNo){
//从文件中读取数据
syncRecord("attendance.txt", "read");
char select=0;
int flag = 0;
char clazz[10];
int i=0;//定义变量
printf("%s班开始点到,请按P键进行点名", classNo);
while (i<STUDENTNUM) {
printf("\n");
strncpy(clazz, attend[i].studentNo, 2);
while(strcmp(clazz, classNo) && i < STUDENTNUM){
strncpy(clazz, attend[++ i].studentNo, 2);
}
if(i >= STUDENTNUM){
break;
}
scanf(" %c",&select);
if (select=='p') {
printf("请输入%s同学出勤情况:\n-1:已请假;0:缺席; 1:正常;\n", attend[i].studentName);
int status = 0;
scanf("%d", &status);
while(status != 0 && status != 1 && status != -1){
printf("输入有误,请重新输入!\n");
printf("请输入%s同学出勤情况:\n-1:已请假;0:缺席; 1:正常;\n", attend[i].studentName);
scanf("%d", &status);
}
printf((status == 0 ? "%s同学为缺席状态!\n" : (status == 1 ? "%s同学为正常状态!\n" : "%s同学为请假状态!\n")), attend[i].studentName);
if(status == 0){
attend[i].attends ++;
}else if(status == -1){
attend[i].leave ++;
}else if(status == 1){
attend[i].normal ++;
}
if(i < STUDENTNUM - 1)
printf("请按p键进行点名");
i ++;
flag = 1;
}
else{
printf("错误的输入!!");
}
}
if(!flag){
printf("该班级没有学生!\n");
}
syncRecord("attendance.txt", "write");
}
/**
* 打印界面函数
*/
//根据学号查询学生
void searchStudentById(char *studentNo){
FILE *fp = fopen("student.txt", "r");
if(! fp){
printf("学生信息查询失败!\n");
return ;
}else {
fread(information, sizeof(student), studentList.studentNum, fp);
fclose(fp);
}
int i = 0;
for(i = 0;i < STUDENTNUM;i ++){
if(strcmp(studentNo, information[i].studentNo) == 0){ //查询成功
printf("\n查询到的学生姓名为:%s\n\n", information[i].studentName);
return ;
}
}
if(i == STUDENTNUM){
printf("未查询到学生信息!\n");
return ;
}
}
void ui(){
//打印界面
printf("**************************************\n");
printf("**请根据提示选择你需要的功能进行操作**\n");
printf("【1】->手动录入学生信息\n");
printf("【2】->进行上课点名\n");
printf("【3】->查询学生\n");
printf("【4】->查看学生缺勤情况\n");
printf("【5】->按班级查看学生\n");
printf("【6】->退出系统\n");
printf("**************************************\n");
}