这几天要做数据结构的课程设计,写了几天终于完成,虽然有很多不足之处,但勉强完成了。过后感觉从大一到现在写过许多项
目,是该总结一下那些年的课程设计了。
大一做的课程设计是“你画我猜”,那时候修修改改,前后用了一个月的时间,数据库方面是凡神做的,最后的成绩还不错。下面总
结一下经验和相关的算法:
1.“你画我猜”的关键是画板的实现和画面的传输。画板的实现算法思想是:Java提供了鼠标事件MouseListener和
MouseMotionListener,利用这两个监听器可以实现拖动鼠标画出曲线,首先定义一个点的类,即Point类,鼠标拖动一段可以看成无
数的点,因为点动成线,而把这些点放到一个ArrayList中,写一个paint方法,把这些点都取出来,每两个点之间画线即可,这样很
多点画线后就出现了曲线。需要注意的是:每个点要有一个boolean型的变量,记录这个点是鼠标的抬起还是按下,如果没有这个变
量,那么就会出现你画的两笔之间是相连的,因此要用这个boolean变量判断一下,决定相邻的两个点之间是否画线。画板的橡皮、
粗细这些操作的实现比较简单,不再陈述。画面传输的问题比较棘手,刚开始的时候我想着是实时地传图,但最后失败了,最后选
择了传点过去,也就是每画一笔时,再将点放到ArrayList中时都实时地传过去,这样就可以实现图画的实时变化。 具体的实现是:
Point po1 = new Point(e.getPoint().x,e.getPoint().y,true,co,n,1); //new一个点的对象
list.add(po1); //将点添加到ArrayList中
PointNewMsg msg = new PointNewMsg(id,po1,clear,cancel); //new一个点的信息对象
tc.nc.send(msg); //将这个点发过去
repaint(); //重画面版
对于信息的发送和传输,建议看一下尚学堂马士兵的 尚学堂科技_马士兵_在线聊天系统雏形视频教程、尚学堂科技_马士兵_坦克大
战视频教程,都非常好,而且在写别的项目时会用到其中的很多东西。
2.数据库方面。因为“你画我猜”需要题目的存取,因此需要数据库,当然也可以把题目放在一个文件中,当这样显得系统性不强。数
据库方面的问题比较简单,需要注意URL的写法,如:
String url = "jdbc:mysql://localhost/accout?user=root&password=123&useUnicode=true&characterEncoding=gbk";
这里的user和password要写你的用户名和密码。
下面是截图:
这是第一次做一个完整的系统,虽说还有许多不足之处,但自己的能力自己有了一定认识,其实每个人都是一样的,只要想做就一
定能做出来。当然也体会到:罗马果然不是一日建成的。