C语言课程设计任务(学生考勤系统)
更新时间:2023-10-23 11:39:01 阅读量: 综合文库 文档下载
C语言程序设计课程设计报告
设计题目:学生考勤管理系统设计
院系:生命科技学院
班级:农学122
姓名:刘玉柱
学号:20120114203
河南科技学院
2013 年 冬季 学期
设计任务:C语言课程设计任务书10 题目:学生考勤系统设计 功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、日期、节次、出勤情况等信息。本系统可以模拟考勤过程、记录考勤结果,并能在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数。 要求:1、用C语言实现程序设计; 2、利用结构体进行相关信息处理; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。 平时成绩: 验收答辩成绩: 设计报告成绩: 总评成绩: 指导教师:
一、总体设计
1.程序的总体设计
◎确定界面,使用户可选择操作项目(录入,修改,查询,评分,
界面美化)。
◎录入功能:使用结构体,要求用户输入姓名、性别、学号、日期、节次、当前出勤情况等信息,并写入文件。
◎修改功能:使用户输入学号,姓名其中一项可以修改考勤其信息。对于修改功能的实现,是先将所有文件内容读入到内存中,然后修改考勤值,最后再重新覆盖写入文件。
◎查询模块:使用字符串比较函数,利用循环找到对应结构体数组元素,然后输出需要信息。对于查询功能的实现,同修改,是先将所有文件内容读入到内存中,然后查找到其中某项,最后输出到屏幕。 ◎评分模块:系统根据总的应道考勤数按照百分制,求出每个学生的分数,并输出到屏幕。
◎界面设置模块:系统提供背景及前景颜色选项,用户通过选择可以自由调节界面颜色。
2. 数据结构
学生信息用结构体记录,包括姓名(字符数组)、性别(字符
型)、日期(年月日三个字符数组)、节次(整型)、出情况(整型)。
3. 函数原型声明
void main() //主函数 void record(); //录入数据函数 void amend(); //修改数据函数 void search(); //查询数据函数 void goal(); //计算总评函数 void look(); //界面设置函数
二、详细设计
1.main( )函数
void main() { void record(); //录入数据函数 void amend(); //修改数据函数 void search(); //查询数据函数 void goal(); //计算总评函数 viod kook(); //界面设置函数 char item; printf(\※※※※※※※※※※※※※※※※※※※※※\\n\ printf(\ ※ ※\\n\ printf(\※ 学 生 考 勤 管 理 系 统 ※\\n\ printf(\ ※ ※\\n\ printf(\※ 刘玉柱 河南科技学院 农学122 ※\\n\ printf(\ ※ ※\\n\ printf(\※※※※※※※※※※※※※※※※※※※※\\n\ printf(\ ※ ※\\n\ printf(\※ 1.学生信息及考勤情况录入 ※\\n\ printf(\ ※
※\\n\ printf(\※ 2.学生信息及考勤情况修改 ※\\n\ printf(\ ※ ※\\n\ printf(\※ 3.学生信息及考勤情况查询 ※\\n\ printf(\ ※ ※\\n\ printf(\※ 4.学生考勤总评分数查询 ※\\n\ printf(\ ※ ※\\n\ printf(\※※※※※※※※※※※※※※※※※※※※※\\n\用户界面设置 printf(\ printf(\请选择您需要的操作\\n\ scanf(\ switch(item) { case '1': record();break; case '2': amend();break; case '3': search();break; case '4': goal();break; case ‘5’;look();break; } //实现功能选择 }
流程图:
开 始 输出界面 switch(item) 1 2 record() amend() search() goal() Look() 5 3 4
2. record() 函数
void record() { int i,j=0,jx=1; printf(\学 生 基 本 信 息 录 入*****************************\\n\ if((fp=fopen(\ { printf(\文件打开失败\\n\ exit(0); } for(i=0;jx==1;i++) //输入信息循环 { for(;j==0;) //输入确认循环 { getchar(); printf(\请输入第%d个学生的姓名 \ gets(stu[i].name); printf(\请输入第%d个学生的学号 \ gets(stu[i].number); printf(\请输入第%d个学生的性别(男:m 女:f) \
break 结束
stu[i].sex=getchar(); printf(\请输入第%d个学生的生日(格式:年 月 日) \ scanf(\ printf(\请输入第%d个学生的当前考勤次数 \ scanf(\ printf(\您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %d年%d月%d日\\n 0 重输 1 确认\,stu[i].day); scanf(\输入确认 } j=0; if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf(\文件写入错误\\n\写入文件 printf(\是否继续输入下一个学生信息 0 终止 1 继续\\n\ scanf(\继续输入选择 } fclose(fp); printf(\返回主菜单\\n\ getchar(); a=getchar(); getchar(); if(a=='0') main(); //返回主菜单 } 流程图:
开始 0=>j 打开文件
3. amend()函数
结束 N 1=>jx 0=>i jx=1? Y j=0? Y 输入i+1个学生信输入j值选择是否确认 写入文件 i+1=>i 输入jx值选择是否继续 void amend() { int i=0,j=0,sway,t,x; char name[10],number[10]; printf(\学 生 考 勤 修 改**************************\\n\ if((fp=fopen(\将文件内容读入内存 { printf(\文件打开失败\\n\ exit(0);
} for(i=0;feof(fp)==0;i++) fread(&stu[i],sizeof(struct student),1,fp); //读取文件内容 fclose(fp); //关闭文件 printf(\选择查找方式 1 按照姓名查找 2 按照学号查找\ scanf(\ /**********************按照姓名查找开始*************************/// if(sway==1) { printf(\请输入需要修改学生的姓名 \ // printf(\ scanf(\ for(j=0;t!=0;j++) { t=strcmp(stu[j].name,name); if(j==i) { t=0; printf(\未找到您所查询的数据,请重新输入\\n\ } } if(j
写入错误\\n\写入文件 fclose(fp); //关闭文件 } } printf(\是否继续修改其他学生考勤 0 否 1 是\ scanf(\ if(x==1) amend(); } /**********************按照姓名查找结束*************************/// /**********************按照学号查找开始*************************/// if(sway==2) { printf(\请输入需要修改学生的学号 \ // printf(\ scanf(\ for(j=0;t!=0;j++) { t=strcmp(stu[j].number,number); if(j==i) { t=0; printf(\未找到您所查询的数据,请重新输入\\n\ } } if(j
printf(\文件打开失败\\n\ exit(0); } for(j=0;j
开始 打开文件 将文件内容全部读入结构输入sway值选择查找方式 Sway=1? N Y Sway=2? 输入要查找的姓名 输入要查找的学号
4. search()函数
void search() { int i=0,j=0,sway,t,x; char name[10],number[10]; printf(\ ***********************学 生 信 息 查 询***************************\\n\ if((fp=fopen(\将文件内容读入内存 {
查找姓名 查找学号 N
输入X值选择是否修改考勤 X=1? Y 输入新的考勤值 写入文件 结束
printf(\文件打开失败\\n\ exit(0); } for(i=0;feof(fp)==0;i++) fread(&stu[i],sizeof(struct student),1,fp); //读取文件内容 fclose(fp); //关闭文件 printf(\选择查找方式 1 按照姓名查找 2 按照学号查找\ scanf(\ /**********************按照姓名查找开始*************************/// if(sway==1) { printf(\请输入需要修改学生的姓名 \ // printf(\ scanf(\ for(j=0;t!=0;j++) { t=strcmp(stu[j].name,name); if(j==i) { t=0; printf(\未找到您所查询的数据,请重新输入\\n\ } } if(j
scanf(\ for(j=0;t!=0;j++) { t=strcmp(stu[j].number,number); if(j==i) { t=0; printf(\未找到您所查询的数据,请重新输入\\n\ } } if(j
开始 打开文件 将文件内容全部读入结构输入sway值选择查找方式
5. goal()函数 void goal() { int i=0,j=0,sway,t,x; float score; char name[10],number[10]; printf(\学 生 考 勤 分 数 计 算**************************\\n\ if(kqcs==0) { printf(\请输入应到考勤总数 \请输入应到考勤总数 scanf(\ } if((fp=fopen(\将文件内容读入内存 { printf(\文件打开失败\\n\ exit(0); } for(i=0;feof(fp)==0;i++) fread(&stu[i],sizeof(struct student),1,fp); //读取文件内容 fclose(fp); //关闭文件
Sway=1? N Y Sway=2? 输入要查找的姓名 输入要查找的学号 查找姓名 查找学号 输出该生信息
printf(\选择查找方式 1 按照姓名查找 2 按照学号查找\ scanf(\ /**********************按照姓名查找开始*************************/// if(sway==1) { printf(\请输入需要修改学生的姓名 \ // printf(\ scanf(\ for(j=0;t!=0;j++) { t=strcmp(stu[j].name,name); if(j==i) { t=0; printf(\未找到您所查询的数据,请重新输入\\n\ } } if(j
if(j==i) { t=0; printf(\未找到您所查询的数据,请重新输入\\n\ } } if(j
开始 输入应到考勤次数kqcs值 打开文件 将文件内容全部读入结构
输入sway值选择查找方式 Sway=1? Y N Sway=2? 输入要查找的姓名 输入要查找的学号 查找姓名 查找学号 输出该生信息 计算考勤分数 输出考勤分数 结束 Look()函数:
void look() { int i,j;
printf(\背景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、7:白\
scanf(\ switch(i) { case 0:
{ }
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:scanf(\
switch(j) { case 0: } break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
黄、7:白\
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 1:
{ } {
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:scanf(\switch(j) { case 0:
system(\
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:scanf(\switch(j) { case 0: } break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
黄、7:白\
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 2:
黄、7:白\
} {
scanf(\switch(j) { case 0: } break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 7:
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、scanf(\switch(j) { case 0:
system(\break;
system(\
7:白\
case 1:
}
}
}
}
break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
break;
printf(\返回主菜单、1 重新设置界面颜色\\n\getchar(); a=getchar(); getchar(); if(a=='0') { }
printf(\输入错误!\\n\main(); look(); else if(a=='1') else
} {
}
break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
break;
case 3:
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:scanf(\switch(j) { case 0:
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\
黄、7:白\
case 1:
case 2:
case 3:
} {
}
break;
system(\break;
system(\break;
system(\break;
system(\break;
case 4:
case 5:
case 6:
case 7:
break;
case 4:
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:scanf(\switch(j) { case 0:
system(\break;
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\
黄、7:白\
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
} { } {
}
break;
system(\break;
case 7:
break;
case 5:
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:scanf(\switch(j) { case 0: } break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\break;
黄、7:白\
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 6:
} {
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:scanf(\switch(j) { case 0: } break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
黄、7:白\
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 7:
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:scanf(\switch(j) { case 0:
system(\break;
黄、7:白\
}
}
case 1: } break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
printf(\返回主菜单、1 重新设置界面颜色\\n\ getchar(); a=getchar(); getchar(); if(a=='0') { } }
printf(\输入错误!\\n\main(); look();
else if(a=='1') else
三、测试及调试(测试方案、存在的问题及解决方法)
测试方案:按照每个函数功能进行测试,在做完每个函数对其进行测试,主函数测试,先将所有需要的功能模块函数设置为空,每个函数用一个printf语句来测试主函数。
1. 存在问题:开始将生日定义为字符数组,当用scanf来输入年月日时,年月
日之间用空格分隔,但在输出时发现年月日出现错误。
分析原因:用scanf输入年月日时,系统会把用来分隔的空格当做字符读入。 解决方法:将年月日定义为整型,这样就可以用scanf输入,用空格隔开。
2. 存在问题2:在查找数据时,需要先将所有数据读入一个结构体数组,在读
取后未关闭文件,执行查找时查找不到相关信息。
分析原因:再利用for循环读取全部文件内容后,文件指针将会移至文件末尾,这样再执行查找时就会从文件末尾开始,显然不符合要求,所以会出现错误。
解决方法:在读取完数据后先关闭文件,在查找时再次打开文件,这时文件指针就会指向文件开头。
3. 存在问题3:再多个使用getchar或者gets输入的时候,会出现直接跳过输入的情况。
分析原因:在使用getchar或者gets输入的时候,系统会将前一步用来确认执行的回车当成字符读入,导致跳过该步输入。
解决方法:再getchar或者gets前面加上getchar()语句,读掉回车,下面的getchar或者gets就可以正常输入。
4. 存在的问题:system(“color attr”)命令中,attr不能是变量! 解决方法:使用switch语句一个一个写。
四、小结
通过编写该程序,熟悉了C语言的基本语法,选择,循环等结构,深入练习了函数的调用方法,和文件的读写方法,熟悉了结构体的使用,更加深化了面向过程语言思想,和一些基本算法。
通过对程序的后期调试,熟悉了C常见错误,锻炼了思维的严密性,和完备性。
通过对程序的注释和画流程图,形成了一套自己编程的风格,和清晰地思路,使思维更加条理化,清晰化。
附件:主要源程序代码(需打印)
#include
FILE *fp; char a; float kqcs=0; struct student { }
stu[100]; //定义储存学生信息的结构体数组
主
函
数
开
始
//********************************************void main() {
void look(); //系统界面颜色这只函数 void record(); //录入数据函数 void amend(); //修改数据函数 void search(); //查询数据函数 void goal(); //计算总评函数 char item;
printf(\※※※※※※※※※※※※※※※※※※※※※\\n\printf(\※ ※\\n\printf(\※ 学 生 考 勤 管 理 系 统 ※\\n\printf(\※ ※\\n\printf(\※ 刘玉柱 河南科技学院 农学122 ※\\n\printf(\※ ※\\n\printf(\※※※※※※※※※※※※※※※※※※※※※\\n\printf(\※ ※\\n\printf(\※ 1.学生信息及考勤情况录入 ※\\n\printf(\※ ※\\n\printf(\※ 2.学生信息及考勤情况修改 ※\\n\printf(\※ ※\\n\printf(\※ 3.学生信息及考勤情况查询 ※\\n\printf(\※ ※\\n\printf(\※ 4.学生考勤总评分数查询 ※\\n\printf(\※ ※\\n\char name[10]; char number[11]; char sex; int year; int month; int day; int kq;
************************************************
}
printf(\※ 5.系统界面设置 ※\\n\printf(\※ ※\\n\printf(\※※※※※※※※※※※※※※※※※※※※※\\n\printf(\
printf(\请选择您需要的操作\\n\scanf(\switch(item) {
case '5': look();break; case '1': record();break; case '2': amend();break; case '3': search();break; case '4': goal();break;
}
//**************************************************主 函 数 结 束**************************************************
///*****************************************录入数据函数内容开始*********************************************************** void record() {
int i,j=0,jx=1;
printf(\************************学 生 基 本 信 息 录 入if((fp=fopen(\{ }
for(i=0;jx==1;i++) //输入信息循环 {
for(;j==0;) //输入确认循环 {
getchar();
printf(\请输入第%d个学生的姓名 \gets(stu[i].name);
printf(\请输入第%d个学生的学号 \gets(stu[i].number);
printf(\请输入第%d个学生的性别(男:m 女:f) \stu[i].sex=getchar();
printf(\请输入第%d个学生的生日(格式:年 月 日) \scanf(\printf(\请输入第%d个学生的当前考勤次数 \printf(\文件打开失败\\n\exit(0);
*****************************\\n\
重 }
scanf(\
printf(\您输入的信息为 姓名 %s 学号 %s 性别 %c 生日 %d年%d月%d日\\n 0
输
1
确
认
\
}
fclose(fp);
printf(\返回主菜单\\n\getchar(); a=getchar(); getchar();
if(a=='0') main(); //返回主菜单
} j=0;
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) printf(\文件写入错误\\n\printf(\是否继续输入下一个学生信息 0 终止 1 继续\\n\scanf(\继续输入选择
scanf(\输入确认
//写入文件
///*****************************************录入数据函数内容结束***********************************************************
///*****************************************修改数据函数内容开始*********************************************************** void amend() {
int i=0,j=0,sway,t,x; char name[10],number[10];
printf(\ **********************学 生 考 勤 修 改if((fp=fopen(\将文件内容读入内存 { }
for(i=0;feof(fp)==0;i++) fread(&stu[i],sizeof(struct student),1,fp); //读取fclose(fp); //关闭文件 printf(\选择查找方式 1 按照姓名查找 2 按照学号查找\scanf(\if(sway==1) {
printf(\请输入需要修改学生的姓名 \printf(\文件打开失败\\n\exit(0);
**************************\\n\
文件内容
/**********************按照姓名查找开始*************************///
月
scanf(\for(j=0;t!=0;j++) { }
if(j
printf(\您查找的学生信息如下\\n 姓名 %s 学号 %s 性别 %c 生日 %d年%d
日
当
前
考
勤
次
t=strcmp(stu[j].name,name); if(j==i) { }
t=0;
printf(\未找到您所查询的数据,请重新输入\\n\
数 %d\\n\tu[j-1].day,stu[j-1].kq);
/**********************按照学号查找开始*************************///
if(sway==2) {
printf(\请输入需要修改学生的学号 \scanf(\for(j=0;t!=0;j++) }
}
printf(\是否继续修改其他学生考勤 0 否 1 是\scanf(\if(x==1) amend();
printf(\是否修改该生考勤信息 0 否 1 是\选择是否修改考勤 scanf(\输入选择变量值 if(x==1) { }
printf(\请输入新的考勤值 \
scanf(\输入新的考勤值
if((fp=fopen(\以只写方式打开文件 { }
for(j=0;j
printf(\文件打开失败\\n\exit(0);
printf(\文件写入错误\\n\写入文件
/**********************按照姓名查找结束*************************///
月
{ }
if(j
printf(\您查找的学生信息如下\\n 姓名 %s 学号 %s 性别 %c 生日 %d年%d
日
当
前
考
勤
次
t=strcmp(stu[j].number,number); if(j==i) { }
t=0;
printf(\未找到您所查询的数据,请重新输入\\n\
数 %d\\n\tu[j-1].day,stu[j-1].kq);
printf(\返回主菜单\\n\getchar(); a=getchar(); getchar();
if(a=='0') main(); } }
}
printf(\是否继续修改其他学生考勤 0 否 1 是\scanf(\if(x==1) amend();
printf(\是否修改该生考勤信息 0 否 1 是\选择是否修改考勤 scanf(\输入选择变量值 if(x==1) { }
printf(\请输入新的考勤值 \
scanf(\输入新的考勤值
if((fp=fopen(\以只写方式打开文件 { }
for(j=0;j
printf(\文件打开失败\\n\exit(0);
printf(\文件写入错误\\n\写入文件
/**********************按照学号查找结束*************************///
///*****************************************修改数据函数内容结束***********************************************************
///*****************************************查询数据函数内容开始*********************************************************** 月
void search() {
int i=0,j=0,sway,t,x; char name[10],number[10];
printf(\ ***********************学 生 信 息 查 询if((fp=fopen(\将文件内容读入内存 { }
for(i=0;feof(fp)==0;i++) fread(&stu[i],sizeof(struct student),1,fp); //fclose(fp); //关闭文件 printf(\选择查找方式 1 按照姓名查找 2 按照学号查找\scanf(\if(sway==1) { %d
printf(\请输入需要修改学生的姓名 \scanf(\for(j=0;t!=0;j++) { }
if(j
printf(\您查找的学生信息如下\\n 姓名 %s 学号 %s 性别 %c 生日 %d年%d
日
当
前
考
勤
次
t=strcmp(stu[j].name,name); if(j==i) { }
t=0;
printf(\未找到您所查询的数据,请重新输入\\n\
printf(\文件打开失败\\n\exit(0);
***************************\\n\
读取文件内容
/**********************按照姓名查找开始*************************///
数 %d\\n\tu[j-1].day,stu[j-1].kq);
}
}
printf(\是否继续查询其他学生信息 0 否 1 是\scanf(\if(x==1) search();
/**********************按照姓名查找结束*************************///
/**********************按照学号查找开始*************************/// 月
if(sway==2) {
printf(\请输入需要修改学生的学号 \scanf(\for(j=0;t!=0;j++) { }
if(j
printf(\您查找的学生信息如下\\n 姓名 %s 学号 %s 性别 %c 生日 %d年%d
日
当
前
考
勤
次
t=strcmp(stu[j].number,number); if(j==i) { }
t=0;
printf(\未找到您所查询的数据,请重新输入\\n\
数 %d\\n\tu[j-1].day,stu[j-1].kq);
printf(\返回主菜单\\n\getchar(); a=getchar(); getchar();
if(a=='0') main(); } }
}
printf(\是否继续查询其他学生信息 0 否 1 是\scanf(\if(x==1) search();
/**********************按照学号查找结束*************************///
///*****************************************查询数据函数内容结束***********************************************************
///*****************************************计算考勤分数函数内容开始***********************************************************
void goal() {
int i=0,j=0,sway,t,x; float score;
年
char name[10],number[10];
printf(\ ***********************学 生 考 勤 分 数 计 算if(kqcs==0) { }
if((fp=fopen(\将文件内容读入内存 { }
for(i=0;feof(fp)==0;i++) fread(&stu[i],sizeof(struct student),1,fp); //fclose(fp); //关闭文件 printf(\选择查找方式 1 按照姓名查找 2 按照学号查找\scanf(\if(sway==1) { %d
printf(\请输入需要修改学生的姓名 \scanf(\for(j=0;t!=0;j++) { }
if(j
printf(\您查找的学生信息如下\\n 姓名 %s 学号 %s 性别 %c 生日 %d月
%d
日
当
前
考
勤
次
t=strcmp(stu[j].name,name); if(j==i) { }
t=0;
printf(\未找到您所查询的数据,请重新输入\\n\
printf(\文件打开失败\\n\exit(0);
printf(\请输入应到考勤总数 \请输入应到考勤总数 scanf(\
**************************\\n\
读取文件内容
/**********************按照姓名查找开始*************************///
数 %d\\n\tu[j-1].day,stu[j-1].kq);
}
printf(\是否继续计算其他学生考勤分数 0 否 1 是\scanf(\if(x==1) goal();
score=(stu[j-1].kq)/kqcs*100;
printf(\该生当前考勤分数为 %5.2f\
}
/**********************按照姓名查找结束*************************/// /**********************按照学号查找开始*************************/// 当
}
if(j
printf(\您查找的学生信息如下\\n 姓名 %s 学号 %s 性别 %c 生日 %d年%d月%d日
前
考
勤
次
if(sway==2) { {
t=strcmp(stu[j].number,number); if(j==i) { }
t=0;
printf(\未找到您所查询的数据,请重新输入\\n\printf(\请输入需要修改学生的学号 \scanf(\for(j=0;t!=0;j++)
数 %d\\n\tu[j-1].day,stu[j-1].kq); }
/**********************按照学号查找结束*************************/// }
///*****************************************计算考勤分数函数内容结束**********************************************// ///***********************************************
void look()
界
面
函
数
开
始
****************************************************//
printf(\返回主菜单\\n\getchar(); a=getchar(); getchar();
if(a=='0') main(); }
printf(\是否继续计算其他学生考勤分数 0 否 1 是\scanf(\if(x==1) goal();
score=(stu[j-1].kq)/kqcs*100;
printf(\该生当前考勤分数为 %5.2f\
{
int i,j;
printf(\背景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、7:白\scanf(\switch(i) { case 0:
{ } {
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、scanf(\
switch(j) { case 0: } break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
7:白\
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 1:
7:白\
switch(j) { case 0:
system(\break;
} {
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、scanf(\switch(j) { case 0: } break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
scanf(\
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 2:
7:白\
case 1:
} {
}
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
break;
case 3:
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、scanf(\switch(j) { case 0:
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
7:白\
case 1:
case 2:
case 3:
case 4:
} {
}
system(\break;
system(\break;
system(\break;
system(\break;
case 5:
case 6:
case 7:
break;
case 4:
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、scanf(\switch(j) { case 0:
system(\break;
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\break;
7:白\
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
} { } {
}
system(\break;
break;
case 5:
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、scanf(\switch(j) { case 0: } break;
system(\break;
system(\break;
system(\break;
system(\break;
system(\break;
printf(\输入无效!背景和前景颜色相同!\\n\break;
system(\break;
system(\break;
7:白\
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 6:
printf(\前景颜色:0:黑、1:蓝、2:绿、3:湖蓝色、4:红、5:紫、6:黄、
7:白\
正在阅读:
C语言课程设计任务(学生考勤系统)10-23
曼型干式气柜运行管理12-24
16春地大《消费者心理与行为》在线作业一04-11
数控机床复习资料 第三版01-25
光移LED摇摇棒设计报告(精)01-10
中国共产党章程(已划重点版)01-10
建筑工程质量通病专项治理方案01-31
榕江县司法局学习型党组织创建活动实施方案06-20
可爱的小闹钟作文450字06-30
企业一套表统计调查核心指标体系07-04
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 考勤系统
- 任务
- 语言
- 课程
- 学生
- 设计
- 2019高考语文高考满分作文
- 特种电子级及电子材料气体可研报告
- 漳州市新型农村社会养老保险推行现状分析与对策探讨
- 03、皮亚杰儿童智力理论
- matlab实验指导书 - 图文
- 傣族舞与胶州秧歌三道弯的不同之处-2019年文档
- 塌孔处理
- 职能部门薪酬设计方案
- 贯彻党的十八大精神,充分认识加强反腐倡廉建设的重要性 课程的考试-满分
- 认识三角形(三)教学设计
- 公共关系案例分析题
- 电路基础陈洪亮答案
- 平方根复习课
- 2011年7月全国自考概率论与数理统计(二)02197试题及答案
- 西南大学2017年秋季《计算机导论》在线作业答案20171114
- 《学生成绩管理系统》可行性报告书
- 雨天县交规模拟考试精选第1套试题
- Visual FoxPro 程序设计题库(30)
- 四川大学2014年914
- 观后感