学生考勤系统.docx
- 文档编号:3040082
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:34
- 大小:723.88KB
学生考勤系统.docx
《学生考勤系统.docx》由会员分享,可在线阅读,更多相关《学生考勤系统.docx(34页珍藏版)》请在冰豆网上搜索。
学生考勤系统
学生考勤系统
一、系统开发背景
程序实践是是重要教学环节之一。
通过程序实践,强化计算机应用技能,从而巩固和充实所学的理论知识,加深对相关内容的理解,拓宽知识面,培养的创新精神和实践能力。
学生考勤管理程序是学校管理工作中一个比较重要的任务,过多的学生考勤工作给学校管理人员带来了很大麻烦的。
虽然原始的记录方法在一定的程度上可以解决问题,可是现在计算机已经走到了我们的生活,原始的记录方法的不足之处就显而易见了。
学生考勤管理程序,是一个对于学生考勤的管理系统,不仅大大减少了考勤管理人员的工作量,而且还方便了班级和学校对学生出课率的查询,只要通计算机登入本系统就能及时修改、更正学生的考勤信息,使信息真实、有效。
这样节省了大量人力、物力和财力。
节省了宝贵的时间,大大提高了工作效率。
用C语言进行了该系统的编写,可移植性高。
操作上力争实现人性化、合理化,满足学校、老师及非计算机管理人员的使用和查看。
二、系统分析与设计
(一)系统功能要求
设计一学生考勤系统。
考勤信息记录了学生的缺课情况,它包括:
缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、早退、请假及旷课)。
系统具有以下功能:
1、录入学生的缺课记录;
2、修改某个学生的缺课记录;
3、查询某个学生的缺课情况;
4、统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;
5、统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;
6、系统以菜单方式工作。
(二)系统模块结构设计
通过对系统功能的分析,学生综合测评系统功能如图1:
通过上图的功能分析,把整个系统划分为4个模块:
1、创建学生缺课记录,该模块主要实现:
学生基本信息(学号、姓名、课程名称、上课时间、缺课日期、迟到次数、早退次数、请假次数、旷课次数)录入,借助creat()函数实现。
2.修改学生缺课记录,该模块主要实现:
学生缺课信息(包括:
姓名、课程名称、上课时间、缺课日期、迟到次数、早退次数、请假次数、旷课次数)的修改,借助xiugai()函数实现。
3.查询学生缺课记录,该模块主要实现:
学生缺课信息的查询(包括:
按学号查询、按姓名查询、按课程名称查询),借助chaxun(),stringfac1(),stringfac2(),intfac()函数实现。
4.统计学生缺课记录,该模块主要实现以下功能:
(1)统计某段时间内,旷课学生姓名及旷课次数。
(2)统计某段时间内,有学生旷课的课程及旷课人次。
借助tongji(),tongjifac1(),tongjifac2(),tongji1printf(),tongji2printf()函数实现。
三、系统设计与实现
(一)创建学生缺课记录
分析:
首先输入需要创建缺课信息的总学生人数,然后参照样例输入缺课学生的信息,通过creat()函数实现。
流程图如图2:
图2creat()模块流程图
(二)修改学生缺课记录:
分析:
通过学号检测找到相应信息,再进行单项修改。
如图3:
图3xiugai()模块流程图
(三)查询学生缺课记录
该模块分别由chaxun()、stringfac1()、stringfac2()、intfac()四个函数实现。
其中:
chaxun()函数实现查询菜单的输出,调用与菜单相对应的功能子模块。
intfac()、stringfac1()、stringfac2()函数分别实现按学生学号、姓名查询、按课程名称查询功能。
(1)chaxun()函数流程图如图4:
图4chaxun()模块流程图
(2)intfac()函数流程图如图5:
图5intfac()模块流程图
(3)stringfac1()函数流程图如图6:
图6stringfac1()模块流程图
(4)stringfac2()函数流程图如图7:
图7stringfac2()模块流程图
(四)统计学生缺课记录:
该模块分别由tongji()、tongjifac1()、tongjifac2()、tongji1printf()、tongji2printf()五个函数实现。
其中:
tongji()函数实现统计菜单的输出,调用与菜单相对应的功能子模块。
tongjifac1()、tongjifac2()函数实现不同类别信息的检索及信息提取复制。
tongji1printf()、tongji2printf()函数实现不同类别信息的统计、排序和输出。
tongji()函数流程图如图8:
图8tongji()模块流程图
(1)tongjifac1()函数流程图如图9:
图9tongjifac1()模块流程图
(2)tongjifac2()函数流程图如图10:
图10tongjifac2()模块流程图
(3)tongji1printf()函数流程图如图11
图11tongji1printf()模块流程图
(4)tongji2printf()函数流程图如图12
图12tongji2printf()模块流程图
四、系统测试
软件测试主要采用黑盒测试对软件已经实现的功能是否满足需求进行测试和验证。
系统测试截图详见附件。
(一)main函数
通过输入正确和非正确的菜单选项测试main()函数中的函数调运、错误输入下菜单的循环、以及系统退出功能。
表格1主函数菜单等价类划分
输入条件
有效等价类
无效等价类
1.正确菜单选项
i>=1&&i<=5
i<1&&i>5
2.退出系统选项
i==5
i!
=5
测试用例:
[(i=1,i=4),(符合条件)];
[(i=6),(无效输入)];
[(i=5),(符合条件)];
(二)creat函数
通过输出检测赋值是否正确。
(三)xiugai函数
通过输入正确和非正确的菜单选项测试xiugai()函数中的修改功能、错误输入下菜单的循环、以及退出修改菜单。
表格2修改信息功能等价类划分
输入条件
有效等价类
无效等价类
修改信息功能
i>=1&&i<=n
k>=1&&k<=8
i<1&&i>n
k<1&&k>8
测试用例:
[(i=1,k=3),(符合条件)];
[(i=0),(无效输入)];
(四)chaxun、stringfac1、stringfac2、intfac函数
通过输入正确和非正确的菜单选项测试chaxun()函数中的函数调用、错误输入下菜单的循环、以及退出修改菜单;通过检测输出信息判定string1()、string2()、intfac()函数是否执行。
表格3查询信息模块等价类划分
输入条件
有效等价类
无效等价类
1.查询菜单选项
i>=1&&i<=4
i<1&&i>4
2.string1()功能
i>=0&&i<=n&&
strcmp(string,stu[i].name)==0
i>n||strcmp(string,stu[i].name)!
=0
3.string2()功能
i>=0&&i<=n&&
strcmp(string,stu[i].lesson_name)==0
i>n||
strcmp(string,stu[i].lesson_name)!
=0
4.intfac()功能
i>=0&&i<=n&&num==stu[i].num
i>n||
num!
=stu[i].num
测试用例:
1.[(i==2),(符合条件)];[(i=6),(无效输入)];
2.[(i==2,strcmp(string,stu[i].name)==0),(符合条件)];
[(i==2,strcmp(string,stu[i].name)!
=0),(无效输入)];
3.[(i==3,strcmp(string,stu[i].lesson_name)==0),(符合条件)];
[(i==3,strcmp(string,stu[i].lesson_name)!
=0),(无效输入)];
4.[(i==1,num==stu[i].num),(符合条件)];
[(i==1,num!
=stu[i].num),(无效输入)];
(五)tongji、tongjifac1、tongjifac2、tongji1printf、tongji2printf函数
通过输入正确和非正确的菜单选项测试统计()函数中的函数调用、错误输入下菜单的循环、以及退出修改菜单;通过检测tongji1printf、tongji2printf函数输出信息反向判定tongjifac1、tongjifac2函数是否执行。
表格4tongji()函数功能等价类划分
输入条件
有效等价类
无效等价类
tongji()函数功能
i>=1&&i<=3
i<=1&&i>=3
tongji()函数测试用例:
[(i=1),(符合条件)];[(i=6),(无效输入)];
tongjifac1、tongjifac2、tongji1printf、tongji2printf函数测试用例:
输入:
1.1顾紫航体育三、四节7.010002
1.2陈兴旭高数一、三、五节7.051101
1.3范志奇体育五、六节7.150002
1.4王志强高级程序语言设计一、二节7.092000
1.5徐鹏程高级程序语言设计三、四、五节7.200003
输出结果与预期一致。
五、总结
课程设计题目所要求的功能:
录入、修改、查询、统计学生的缺课记录等功能已经实现。
整个系统的设计过程对于我来说算是个学习、探索的过程,通过实践和对比别人开发程序的过程。
在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是前期对程序设计规划不够彻底,对系统的需求分析的要求认识不够清楚,使得在后边的工作中不得不经常反复去修改。
本次课程设计使我体会到设置中每一步的重要性。
所以在分析一个问题时,我们需要站在一个有远见的高度。
通过此次课程设计,我不但对C语言编程有了更深刻的认识,积累了使用软件工程的思想来开发软件的经验,更重要的是学会了在对待问题时应该考虑到哪些方面的问题和怎么解决问题。
虽然时间紧迫但我学会了很多,也感到自身知识的贫乏,希望在日后的努力中能做出更完善的系统。
六、附件
1.实验截图
图13主菜单
图14正确菜单选择
图15正确菜单选择
图16错误菜单选择
图17退出系统选项
图18创建缺课信息
图19创建缺课信息
图20修改菜单选项
图21修改功能测试
图22修改功能测试
图23修改功能测试
图24查询菜单选项
图25查询菜单选项
图26查询模块输出
图27查询模块输出
图28统计模块菜单测试
图29统计模块数据输出
图30统计模块数据输出
2.程序源代码
#include"stdio.h"
#include"string.h"
#defineN100
#defineNULL0
intn,m=0;//n为记录学生的个数;m为统计函数1中记录符合统计条件的个数
structkuangke
{//有关旷课统计函数1的信息记录
charname[40];
intkuangke_num;
}kuangke[N];
structkuangke2
{//有关旷
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 考勤 系统