王 惠 ,赵午铭
(九州职业技术学院 机电工程系,江苏 徐州 221116)
基于C#的智能点名系统的设计及实现
王 惠 ,赵午铭
(九州职业技术学院 机电工程系,江苏 徐州 221116)
课堂考勤点名和提问是高校教学过程中必不可少的环节,为了提高学生考勤数据的安全性和公平、公正性,摆脱教师看着点名册读名字做记录的繁琐工作,文章介绍使用C#语言设计开发课堂智能点名系统的实现过程和方法,可以由计算机来智能选择学生名单,并把考勤结果和回答问题情况记录下来,在学期末实现平时成绩的自动计算。
C#;智能点名;语音播报;自动计算成绩
随着计算机技术的不断深入和发展,越来越多的领域都应用计算机来实现操作的智能化与自动化。在教育领域,教师在课堂教学过程中,为了调动课堂教学的氛围,提高学生的上课注意力,增加师生之间的互动交流,更好的记录学生的过程化学习活动,点名和提问是教学过程中必不可少的环节。传统的纸质点名考勤方式不仅效率低,数据容易丢失[1],而且教师在学期末还不得不手工来计算学生的平时成绩,一方面工作繁琐,增加了教师的教学工作量,另一方面可能会统计错误,不能准确的评价学生的学习过程。为了提高学生课堂考勤数据的安全性和公平、公正性,使教师可以摆脱看着点名册读名字做记录的繁琐工作,可以由计算机来智能选择学生名单,自动完成语音播报点名,并把学生到课和回答问题情况记录下来。在学期结束时,教师可以利用已经记录的学生考勤情况和课堂回答问题情况,通过设置每项所占的分值,设定每次旷课、请假和迟到要扣的分数和每次提问要奖励的分数,方便快捷的计算出学生的平时成绩。所以有必要开发一个智能点名系统,帮助教师完成课堂的随机点名和学期末的平时成绩的统计计算工作,不仅可以保证点名时的公平、公正性,而且能够避免教师每次在点名表上手工记录的麻烦,实现了平时成绩的自动计算功能,大大减轻了教师的工作量,提高了平时成绩统计的正确性。
该点名系统使用C#语言编写,采用图形用户界面技术,实现教师课堂全部点名、随机点名功能、提问、保存考勤点名情况,导出平时成绩等功能。系统具体功能包括:
1)系统主界面:提供系统菜单和图形显示操作功能;2)学生信息导入:通过该界面选择保存授课班级学生信息的Excel文件,并把班级名称、学生信息、班级人数显示在主界面中;3)全部点名:设置自动语音点名时的时间间隔,自动依次选择导入班级的学生信息,并实现语音播报学生姓名的功能;4)随机点名:为了节省课堂考勤时间,设置抽取学生个数,随机抽取学生名单,并按学号从小到大依次自动语音播报;5)课堂提问:随机抽取提问学生并自动语音提问;6)保存考勤、提问情况:在点名过程中和提问结束后,通过快捷键修改学生的到课和回答问题情况并保存到原学生信息表中存储;7)平时成绩的自动计算与导出:教师根据课程的过程性考核方法设置平时成绩总分和每次旷课、请假、迟到要扣的分值、提问要奖励的分数,系统自动计算出每位学生的平时成绩,并导出到新建的Excel文件中,系统的总体功能结构图如图1所示。
图1 系统总体功能结构图
该点名系统包括欢迎界面、系统主界面、平时成绩参数设置等界面。首先系统启动后自动弹出欢迎提示对话框,单击确定之后弹出系统主界面,如图2所示。在主界面中可以通过菜单和相应的快捷键操作实现系统的功能,也可以通过图形界面上的功能按钮完成相应的操作。
图2 系统主界面
在主界面中选择导入学生名单菜单,弹出打开Excel文件对话框,选择存储授课班级学生信息的文件后,在系统主界面的DataGridView控件中会显示导入的班级学生信息,并在相应的班级信息框中显示当前导入的班级名称和班级总人数[2]。
在时间间隔控件中设置好自动点名的时间间隔后,单击全部点名按钮,随机点名功能将会失效,直到全部点名结束[3]。在全部点名过程中,该系统会依次选择被点名的信息并自动语音播报出当前学生的姓名,如果该学生没有到课,暂停全部点名,根据原因做好点名记录,设置快捷键ctrl+1增加旷课次数、ctrl+2增加请假次数、ctrl+3增加迟到次数。记录完毕后单击继续按钮完成全部点名功能。
在随机点名功能中,首先设置抽取学生的个数,然后系统会自动的从当前班级中抽取学生名单,并按照抽取学生的序号从小到大依次自动的选择、语音播报被选学生的信息。
系统的课堂提问功能可以随机抽取提问学生,并语音播报提问学生的姓名。当学生回答完毕之后,教师可以通过ctrl+4快捷键记录该学生回答问题的情况信息。
考勤和提问结束后,教师通过保存功能把课堂的点名和学生回答问题情况记录到原授课班级信息表中,以此作为学生过程性考核的关键资料。
当需要计算学生的平时成绩时,教师可以根据自己课程的过程性考核方法,首先设置平时成绩的计算参数,包括旷课、请假、迟到每次所扣分值、提问每次要加分数和平时成绩总分,单击保存按钮保存参数信息,实现了平时成绩计算的灵活性,提高了该系统应用的适用性。设置成绩参数界面如图3所示。
图3 设置成绩参数界面
使用导出成绩功能可以根据预先设置的成绩参数和已经记录的学生考勤提问情况自动计算出每个同学的平时成绩,并把信息导出到一个新的Excel文件中。
该系统实现的关键是能够实现Excel文件和DataGridView之间的数据导入导出、中文语音播报功能实现、随机抽取学生名单、自动计算平时成绩功能,具体技术分析如下:
1)Excel文件和DataGridView之间的数据导入导出。在保存学生信息和点名提问信息时选择使用Excel表存储,而没有选择主流的数据库存储技术,主要考虑到教师在点名时主要是针对班级进行,而每个班级的学生人数一般不会超过50人,系统的数据存储量不是很大;另一方面可以充分利用教务管理系统能够直接把授课班级学生信息导出到Excel文件中的功能,避免教师再次把信息输入数据库中的繁琐。在实现Excel文件和DataGridView之间的数据导入导出功能时系统采用的是OleDb技术[4]。该技术需要首先要在程序开始部分导入System.Data.OleDb命名空间,然后分别创建OleDbConnection、OleDbDataAdapter对象,通过OleDbConnection对象连接Excel文件,OleDbDataAdapter对象把select语句和OleDbConnection对象关联,从Excel文件读取数据,通过OleDbDataAdapter对象的fill方法填充数据表。最后设置DataGridView对象的DataSource属性为读取的数据表,实现Excel文件在DataGridView中的显示。数据保存时通过OleDbDataAdapter对象的update方法把修改的数据记录保存下来。实现该功能的主要程序代码如下:
2)中文语音播报功能。在实现中文语音播报功能时采用的是微软的TTS技术。该技术首先要安装TTS中文语音引擎,然后在控制面板中设置语音属性为简体中文。在编程实现时导入DotNetSpeech名称空间,创建SpeechVoiceSpeakFlags、SpVoice对象。在计时器Timer的Trick事件中通过调用SpVoice对象的speak方法实现中文语音的自动播报。
3)随机抽取学生名单功能。在随机抽取学生名单功能实现时系统使用的是Random类,通过Next方法产生0至学生总数之间的随机数,然后把这个随机数和已经产生的随机数进行比较,如果相等,则继续生成新的随机数,直到没有相等的为止。最后把生成的随机数保存到一个数组中。为了在随机点名时能够按顺序播报学生姓名,系统使用Array类的Sort方法从小到大排序,依次把随机数和数据集中的学生名单关联,并自动语音播报实现随机抽取学生点名的功能。
4)自动计算平时成绩功能。在实现自动计算平时成绩功能时,首先导入Microsoft.Office.Interop.Excel名称空间,分别创建ApplicationClass、Workbooks、Workbook、Worksheet对象。然后依次读取数据表中的每一列并保存到一个二维数组中,在循环的过程中求出每个学生的平时成绩,用已经设置好的平时成绩总分减去旷课、请假、迟到的分数,最后再加上学生回答问题要奖励的分数。如果最后求出的平时成绩超过设置的平时成绩总分则取设置的平时成绩总分为该学生的最后平时成绩;如果计算得到负数平时成绩,平时成绩则取0,并把平时成绩显示在每个学生的最后一列数据上。最后把存储学生平时成绩的二维表输出到一个新的Excel文件中。实现该功能的主要代码如下:
①设置列名。
②保存数据到二维表中。
③把二维表输出到Excel文件中。
本文提出一种基于C#语言的智能点名系统的设计与实现方法。该系统既能使传统的课堂考勤和提问实现数字化,并能够自动进行语音播报,可以记录学生旷课、请假、迟到和回答问题的情况,而且能够帮助教师自动统计计算导出学生的平时成绩。教师在课堂教学过程中使用该系统不仅可以从繁琐的考勤信息、提问记录和平时成绩计算中解放出来,而且通过在讲课的过程中使用计算机突然播出学生的姓名,可以调动课堂气氛、提高学生学习的注意力、改善学生的听课态度。该系统通过多位在教学一线教师的课堂应用实践,一致认为可以明显地提高学生的课堂学习效果,使课堂点名、提问和平时成绩统计工作不再那么繁琐,大大减轻了教师的教学工作量。
当然,作为一个新的课堂教学辅助工具,该系统的功能还需要不断地补充和完善。例如,可以尝试在学生信息表中加入学生照片信息,当系统选中一名学生点名时,只有答到的学生与信息表中的姓名、照片完全匹配,才算到课,这样可以防止学生替答现象的发生;同时在记录学生回答问题情况时可以进一步细化,不同的回答得到不同的分值,真正做到平时成绩统计的公平、公正,使课程的过程性考核更加符合学生真实的学习状态,有利于教师动态调整教学进度和方案,不断提高课程的教学效果。
[1] 张捷,朱晓姝,李露璐.一个新的课堂教学工具:智能考勤及提问点名系统的设计与实现[J]. 玉林师范学院学报,2014(2):119-124.
[2] 孙践知,张迎新,肖媛媛. C#程序设计[M]. 北京:清华大学出版社,2014.
[3] 传智播客高教产品研发部.C#程序设计基础入门教程[M].北京:人民邮电出版社,2014
[4] 龚根华,王炜立.ADO.NET数据访问技术[M].北京:清华大学出版社,2016.
The Design and Implementation of Intelligent Roll Calling System Based on C#
WANG Hui,ZHAO Wuming
(Mechanical and Electronic Engineering Department,Jiuzhou Polytechnic,Xuzhou Jiangsu 221116,China)
s:Attendance checking and question asking are essential parts in university classroom. In order to improve the security and fairness of students' attendance data and help teachers get rid of tedious work of reading the name list and keeping the record,this paper introduces an intelligent roll calling system by using C#,which could select the student names from the list,and keep the results of attendance and question answering intelligently. At the end of the semester,the attendance data and achievements of the students are calculated automatically by computer.
C#;intelligent roll calling;voice announcements;automatic results calculation
TP311.52
B
1672-6138(2017)03-0013-04
10.3969/j.issn.1672-6138.2017.03.004
[责任编辑:曹娜]
2017-05-31
江苏省高等学校大学生创新创业训练计划项目(201612054002Y)。
王惠(1982—),女,江苏徐州人,讲师,研究方向:计算机教育、图像处理与机器学习。