1.功能简述+功能架构
1.导入学生功能:通过Mysql数据库的连接可以从本地读取文本文档students.txt,从该文本文档中读取数据。进入数据库后可以通过JDBC使得java和数据库连接,从而做到读取数据和更新数据。
2.签到功能(另加功能) :在导入的文件当中可以按照名单对每个同学进行点名,并且可以计算出出勤率。
3.状态储存功能 :在数据库中读取called_times 和 answered_times 列的内容在相关操作下更新数据库并且改变状态。
4.点名功能 :每次点名选择同学时基于该同学已经被点名的次数,如果点名超过n个同学还未回答出该问题则从已回答出来问题且答对问题的次数较多的同学中随机抽取,如果仍未回答出该问题,则由老师来解答。
5.点名功能(另加功能):可以在点名完后询问是否再次进行点名,如果点击再次点名那么可以再次运行该系统;而如果点击结束,则可以结束程序。
6.统计功能 :添加了统计学生信息功能,可以通过输出框显示出学生的被点名次数、回答出问题的次数、比率统计。
7.导出数据功能 (另加功能):可以将经过签到和随机点名后的数据导出到txt文件中。
个人负责任务:
(1)本人负责搭建Java的GUI界面以及利用Java Swing等完善界面;
(2)写出该程序的基础框架代码以及基础的方法(无数据库连接部分);
(3)将Java项目打包成exe包,放到桌面上,令其可以在桌面直接打开。
团队博客链接:
RandomRollCall: java课程设计--基于状态的课堂点名
GitHub - akone007/RandomRollCall
2. Git提交记录截图:
四、本人负责功能详解
1.实现各种监听器、按钮事件等
按钮监听 :
单击按钮后的对应事件:
单击按钮事件判断及对话框弹出:
2.实现代码的封装
在主类中实现判断按钮事件方法的封装:
实现界面的方法:
方法类名(不包括其中的算法和数据库):
3.GUI界面搭建
4.将Java项目打包成exe程序
五、课程设计感想
1.原本计划是由我搭建html、CSS、JS等的设计,设计一个网页版的界面,然后由组长和我共同完成Java、Servlet、tomcat服务器的的实现,但由于我并不是很懂这方面知识,所以由组长完成,但由于受目前所学限制,没能完成。
2.这次设计,我是以设计基础页面和基础性代码为主,最后打包出exe文件,整体以复习之前知识为主,并没有太多接触更多方面的知识,但也因此接触到了一些忽视的方法。
六、展望
1.以后要学习mysql数据库及其与Java、html等的连接方法。
2.期望将没有学完的html、JS等学完,同时不忘复习Java的相关知识。
3.学习Servlet、tomcat服务器的使用。
Tips:基于本人技术很菜,和组长一起完成的课程设计,共同设计的GUI,部分代码自学后仍写不过编译,借助GPT之力完成编写,如有雷同勿喷~~