C#智能终端点到系统的开发与实现

2018-07-28 07:19李忠玉甘成许小旭余林峰
电脑知识与技术 2018年11期
关键词:智能终端程序开发系统设计

李忠玉 甘成 许小旭 余林峰

摘要:考勤点到和课堂问答是高校教学中的必备环节,为了提高学生出勤率和课堂效率,减少教师在课堂考勤的时间,该文开发了一款基于C#语言的课堂智能点名系统;该系统采用随机算法进行点名,自动记录出勤情况;在问题环节,自动屏蔽抽问过的学生。课堂实践表明,该系统的运行稳定有序,能够改善课堂效率,有一定的推广意义和实用价值。

关键词:C#程序开发;智能终端;系统设计;考勤管理

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)11-0069-03

Development and Implementation of Intelligent Terminal Attendance System Based on C#

LI Zhong-yu, GAN Cheng, XU Xiao-xu,YU lin-feng

(School of Computer Science, Chengdu Normal College, Chengdu 611130,China)

Abstract: Attendance and classroom questioning are the necessary links in college teaching. In order to improve student attendance and classroom efficiency, this paper develops a class intelligent attendance system based on c#. The system uses random algorithm to check attendance, record attendance automatically, and automatically screen students who have been questioned. The practice shows that the system is stable and orderly, which can improve the classroom efficiency and has certain practical value.

key words: C# program development; Intelligent terminal;System design;Attendance management

1 背景

課堂考勤和随机问答是高校考核学生平时成绩的重要环节;任课教师和辅导员可以通过考勤情况和课堂问答的效果,来综合评价学生并对日常教学和管理做出相应的调整。研究发现目前大多数考勤制度严厉而实施松散[1];很多任课教师或者辅导员均采用传统纸质点名或者课上签到的方式;有的信息化手段应用比较良好的高校采用APP进行点到。但是采用传统的点到方式不仅费时费力,而且会产生考勤数据统计不方便、代替答到的情况发生;如果采用APP进行定位签到的话,又会出现学生“自由自在玩手机”的现象发生。对于考勤点到系统,许多教师进行研究的时候多融入嵌入式技术,有的引入指纹考勤系统[2],有的采用新型的人脸识别技术[3]。虽然将这些新型的信息技术应用到课程上可以有效地避免学生间“代替”等现象的发生,但是将嵌入式技术融入课堂点到系统会无形中增加教学的成本,也会在一定程度上耽误课堂教学的时间。例如一款合适的人脸识别考勤系统价格比较昂贵;又如果采用指纹签到系统,那可能会出现课间学生在教室门口“排长龙”打指纹的现象。鉴于此,该文提出了一款基于C#的智能终端点到系统的设计方案,该方案可以直接将点到系统的安装包安装在教师终端电脑上,老师点击开始按钮就可以自动点到,在投影仪上输出学号、姓名和班级等相关信息,对学生进行考勤管理。在进行课堂问答时,智能终端能够自动标记已被抽问的同学,每次抽问都会避开已被抽问同学;同时引入智能算法让每位同学被抽点的几率相同,从而提高课堂问题的公平性和效率。

2 系统功能构架设计

2.1 总体构架思路

该系统具有两个登陆终端:学生端和教师端,具有不同的权限;可以分别用于机房教学环境和多媒体课堂。在多媒体课堂进行教学时,系统主要被教师用于点到和抽问,此时教师通过自己的工号登陆,可以进行课堂点到和抽问。在点到或者抽问时可以采用顺序和随机两种方式;当在机房进行教学时,教师在点名或者抽问时,学生可以通过自己的学号登陆后,自行查询是否自己被抽点,如果自己被点到,这时就需要进行确认。其简单的系统构架如下图1所示:

2.2 系统功能详解

2.2.1 系统登录

该系统采用两级权限,通过赋予不同角色的用户不同的权限来实现不同的功能。用户可以自由选择自己的用户类型(老师/学生),然后输入自己的用户名以及密码直接登陆,如果想要退出系统则可直接点击取消。如图2所示:

2.2.2 教师角色用户功能说明

如果在登录界面点击教师类型并输入账号密码后,则进入如图3所示的班级选择界面,教师可以选择专业和班级,上课和下课时可以通过两个不同的按钮进行点到,同时点到时有两种点到方式可供选择,如图4所示。

1)顺序点到方式;教师可以通过点击上课点到--->开始点名按钮,对全班同学进行按学号顺序点名,点名的结果可以直接显示在多媒体教室的投影仪上;如果在机房上课,则对界面中出现某位同学信息,该同学就需要登录学生端进行选择到或者未到。系统会自动对每位同学的点到情况进行记录。2)随机点到:如果老师只希望随机抽点几位同学,那么老师可以点击随机点到按钮(同顺序点到方式一样),此时教师在随机点名时可以标记学生到还是没到;如图5所示。

在课堂上老师如果想用随机的方式来对学生进行抽问,那么在学生回答完问题后,老师可以通过正确、错误或者未到按钮来对学生进行加分、减分,从而学生的抽问情况进行有效的记录。如图6所示。

同時,老师如果希望在快要下课的时候考查下学生的出勤情况,看看学生有没有偷跑的情况,则可以使用下课点到功能,通过点击下课点到-->开始点名按钮进行开始点名,方式与上课点到相似,但是可以对“偷跑”学生进行减分处理。

2.2.3 学生角色身份功能说明

学生可以通过登陆界面登陆图1界面之后,会弹出学生信息查询界面如图7所示,学生可以在该界面点击查询按钮,可以查询自己每一节课的点到情况;系统里面可以显示自己每节课被点到的情况和被抽问时的加减分数,里面对每一节课有详细的日期显示和点到记录。

3 关键功能模块代码实现

该系统的主要功能是提供给教师实现点到和抽问功能,在登录界面主要是进行用户身份的选择,当以教师身份进入界面后,随即可以进行相应的一些功能操作;其实该系统最主要的四个选择是上课、下课、点到和抽问环节;进如不同的环节后再进行下一步的操作。现将各个环节的关键代码说明如下:

1)点名界面的布局,使用了4个panel控件和一个SplitContainer,其中SplitContainer为父容器,在其左边放置操作按钮,上课、下课、抽问和点到。放置四个panel控件在SplitContainer的右边,并且隐藏。当点击操作按钮时,实质是为了让panel控件出现,并控制panel控件出现的位置;同时在四个panel控件中,各放置了一个点名界面。实现一个panel控件出现的主程序代码如下:

private void xkbutton_Click(object sender, EventArgs e)

{

System.Drawing.Graphics graphics = this.CreateGraphics();

graphics.DrawLine(Pens.Black, 429, 0, 429, 652);

下课.Location = new Point(3, 3);

下课.Visible = true;

下课.Size = new Size(795, 569);

上课.Visible = false;

点名.Visible = false;

抽问.Visible = false;}

2)上下课顺序点名的实现。在上课及下课的界面中点击开始点名按钮时,程序将根据选择的班级在后台创建一个新的表,当点名时,出现的同学信息将是这个表中的第一行数据记录的同学,下一个时,程序将会把临时创建的表中的第一行数据删除,并再次显示新的第一行数据记录的同学,依次实现顺序点名,主要的程序代码如下:

①根据选择的班级创建临时表,并按学号进行排序

string banji = label1.Text;

string str = @"DataSource=DESKTOP-L9G0F3R\SQLEXPRESS; Initial Catalog=dianming;Integrated Security=True";

SqlConnection conn = new SqlConnection(str);

conn.Open();

string sql = "select * into linshi from Class where 班级='" + banji + "' order by 学号";

SqlCommand cmd = new SqlCommand(sql, conn);

cmd.ExecuteScalar();

②显示第一位同学的姓名学号并且删除主要sql语句

string sql = "select top 1 学号 from linshi ";

string sql = "select top 1 姓名 from linshi ";

string sql = "delete top (1) from linshi ";

3.3 随机点名的实现

主要是根据老师选择的班级的结果中,随机选取一个记录,然后将记录显示。并且已经被抽取到的同学将会被记录在表中,当进行下一次抽取的时候,系统将核对记录表中的数据,当查到同一节课中该同学已经被记录,则将弹出提示,该同学已经被点到过。主要代码如下:

①随机抽取的sql语句:

string sql = "select top 1学号,NEWID() as random from Class where 班级='" + banji + "' order by random";

②已经被抽取到的同学记录,将不再被抽取:

string str = @"Data Source=DESKTOP-L9G0F3R\SQLEXPRESS;Initial Catalog=dianming;Integrated Security=True";

SqlConnection conn = new SqlConnection(str);

conn.Open();

string sql = "select * from chuqin where cast(日期 as date) between '" + vipdate + "' and dateadd(d, 1, '" + vipdate + "') and 学号='" + xuehao + "'";

//string sql2="";

SqlCommand cmd = new SqlCommand(sql, conn);

int a = Convert.ToInt32(cmd.ExecuteScalar());

if (a > 0)

{ MessageBox.Show("该同学今天已经点到"); }

else{

string sql2 = "insert into chuqin (学号,姓名,班级,日期,上课点名) values('" + xuehao + "','" + xinming + "','" + banji + "','" + vipdate + "','" + qchuqin + "')";

SqlCommand cmd1 = new SqlCommand(sql2, conn);

int b = Convert.ToInt32(cmd1.ExecuteNonQuery());

if (b > 0)

{ MessageBox.Show("保存成功!");}

3.4 学生查询记录的实现

当学生身份登陆之后,可以在界面点击查询看到自己的点名记录,该界面主要使用了一个DataGridView控件,当学生登陆时,输入自己的账号,数据库将根据此来查询到该生的信息,并将姓名学号都显示出来。点击查询按钮后,程序访问数据库中有关出勤的表,SqlDataAdapter填充DataSet,然后绑定给DataGridView,学生便能看到自己的有关出勤信息。相关代码如下:

string str = @"Data Source=DESKTOP-L9G0F3R\SQLEXPRESS;Initial Catalog=dianming;Integrated Security=True";

SqlConnection conn = new SqlConnection(str);

conn.Open();

string sql = "select * from chuqin where 姓名='" + Stname + "' ";

SqlCommand cmd = new SqlCommand(sql, conn);

DataSet ds = new DataSet();

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

adapter.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

conn.Close();

4 結束语与展望

该文提出了一种采用C#实现的不同权限的智能终端点到系统的设计方法。该系统的教师用户可以通过顺序和随机的模式分别进行上课点到和下课点到,同时老师可以在课堂上采用随机抽问的方式对学生进行考核,同时根据学生回答问题的情况对其进行加分和减分操作;学生通过使用学生用户角色登录系统可以进行点到确认和多次课程的点到和抽问信息查询,使用方便快捷。通过将近一学期的使用表明,该文提出的设计方案设计的点到系统的运行是稳定的,通过系统的应用有效地提高了课堂的效率和课堂的出勤率,同时也减少了教师的工作量,在抽问环节引入了随机方式,大大提高了学生参与课堂活动的积极性,激发了学生的兴趣。

作为一款辅助教学的智能系统,该系统还有很多值得完善和改进的地方:1)可以引入语音播报系统,在系统进行点到或者抽问时,能够直接通过教室的扩音器直接播报出来;2)可以在系统中加入学生的图像信息,当出现学生的姓名和学号时能够展示学生的图像;3)在一学期的每一门课程结束过后,能够导出学生每一门课程的课堂问答次数,缺勤的次数等。

参考文献:

[1] 刘富汉.高校学生考勤制度浅议[J].湖南工业职业技术学院学报,2011, 11(3): 97-98.

[2] 马梅,乐伟明.基于指纹识别技术的考勤“点到”系统设计[J].电子技术,2016(7).

[3] 白文庆,董小妮.基于嵌入式人脸识别考勤系统的设计[J].电脑开发与应用, 2015(1):71-72.

[4] 龚根华,王炜立.ADO.NET数据访问技术[M].北京: 清华大学出版社,2016.

[5] 孙践知,张迎新,肖媛媛.C#程序设计[M].北京: 清华大学出版社,2014.

[6] 章通,陈金玉. 网络指纹考勤系统的设计与实现[J].计算机应用与软件,2011,28(2): 73-75.

[7] 陈燕俐,蔡捷.网络指纹考勤管理系统的设计与实现[J].工业控制计算机,2005, 18(12): 52-53.

[8] 段少雄,田捷,李恒华.高效指纹考勤系统的研究与设计[J].计算机工程,2003, 29(9): 37-38.

猜你喜欢
智能终端程序开发系统设计
APP应用程序开发模式探究
基于TestStand的自动检测程序开发
基于嵌入式系统Windows CE的应用程序开发
基于App inventor 2手机程序开发过程的学习与实——以“喵喵定时器”APP开发为例