Java课程设计---学生考勤系统(可收作业、记录考勤时间、自动汇总成表、聊天)

一、概述

本次课程设计完成了一个学生考勤系统。运用了Threads线程,socket通信,文件输入输出流,以及GUI和数据库等相关知识。此系统实现了通信,文件传输等功能。老师首先登陆教师端,然后学生输入学号密码完成登录(学生信息存储在数据库中,通过与mysql数据库的连接实现验证),再将学生端与教师端进行连接。此时学生端为一个线程,而在教师端增加一个线程。

此工程下Student和Teacher两个包下的class文件如下:
在这里插入图片描述在这里插入图片描述

二、功能介绍

1.学生登录

学生登录时需在已弹出的窗口中输入学号和密码,并通过已连接的数据库验证是否存在该学生以及密码是否正确。若登录成功,则跳转到登录后界面。此时建立新的线程,并通过Socket与教师端建立联系,并记录学生姓名、登录时间,发送到教师端。

2.教师登录

单击run,即可进入教师登录后界面,等待学生的连接。

3.学生交流

学生可通过界面中的文本框发送信息到教师端,教师端同时可以查看学生之间的交流。

4.提交作业

学生可通过choose file 按钮浏览电脑内的文件,并通过send按钮提交作业。

5.接收作业

因为教师端已经写好文件的储存路径,因此教师无需另外接收作业,文件自动存入指定路径,并按照教师要求的方式命名作业名。

6.学生退出

学生点击quiz即可退出,此时结束本线程,终止与教师端的通信,并向教师端发送退出时间。

三、具体实现方法

1.学生端

界面分为学生登录时与登录后,使用Swing类写出基本界面,学生登录成功后新建一个线程,应用Socket与老师端建立通信,实现登录与发送信息,学生登录后在教师端显示学生姓名和登录时间,因此要在登录时将姓名和登录时间等信息发送到教师端。

交作业时,应用了文件输入输出流,再通过Socket将文件传给教师端。聊天时,通过Thread新建一个线程,然后通过Socket实现通信。

2.教师端

教师端的界面不需要登录,所以用Swing写一个有两个文本框的界面。当教师登录时,即新建一个Socket通信,等待学生来连接。教师端可有多个线程,同时接收登录的学生信息(姓名,登录时间,退出时间)。Current number即是在线的学生数。

接收消息时,教师端先新建一个线程,然后通过Socket与学生端的线程建立通信联系。
接收文件时,教师端新建一个线程与学生端通过Socket通信传输文件。教师端成功接收文件后按照指定路径存入。

3.连接数据库

通过导入已有的数据库,实现学生端与老师端的连接,方便老师检查班级同学出勤情况。

四、整体效果展示

1.教师端

老师启动教师端,弹出界面。(currentNumber:0意为此时在线学生数为0)
在这里插入图片描述

2.学生端

学生在界面中输入学号和密码,验证通过即登陆成功。

登录界面如下:
在这里插入图片描述

登录后开始一个新线程而教师端增加一个线程。教师端显示如下:
在这里插入图片描述

(此时currentNumber:1代表在线人数为1)

学生可单击quiz选择退出界面,退出后教师端显示如下:
在这里插入图片描述

此时为未提交作业时的退出情况,教师可以看到登陆时间与退出时间。

3.学生交流区

学生可通过界面中的文本框发送信息。信息将发送到教师端。教师可查看学生发来的信息。

效果展示如下:
在这里插入图片描述
在这里插入图片描述

4.提交作业

学生在界面内可选择提交作业
在这里插入图片描述

可在电脑内选择文件:

在这里插入图片描述
在这里插入图片描述

提交成功后,通过教师端存入预设好的路径中。老师不必逐一保存作业。
在这里插入图片描述

五、个人总结

1.通过这次课程设计,加深了对Thread以及socket的理解。本次课程设计从小组成员确定到完成全部设计,共历时三周。期间遇到过无数个bug,通过百度和询问同学解决。我认为通过本次课程设计,增强了我的心理承受能力和抗压能力,能更好的应对以后的各种课程。

2.本次课程设计一开始时很不自信,认为这是一个很有挑战性的任务。在详细查阅了各种资料,阅读了各种博客后,虽然对本实验所涉及的知识点有了大概的了解,但仍然不知道如何着手去做。后来经过同学的指导,发现了更为简洁的实现本次实验的方法。所以要感谢队友们。

3.本次课程设计的实施前期大量的寻找资料,翻书。虽然有时候走了一些弯路,但终归学到了很多,在改代码的时候也注意到了很多以前看书没有注意到的细节。通过本次实验,我对java中多线程和Socket通信加深了了解。更锻炼了寻找信息的能力。

PS:想要完整项目请在评论区注明用意,并附上邮箱,大概一到两天会发送到该邮箱,请耐心等待哦。

猜你喜欢

转载自blog.csdn.net/qq_44528283/article/details/111321747