彩票购买抽奖程序——个人博客

一.课程设计团队博客链接

https://www.cnblogs.com/w-y-h--/p/14337295.html

二.个人负责模块或任务说明

这次的课程设计我主要负责功能的设计以及代码实现,负责模块:
GUI界面的设计;
用户端购买彩票,查询购买记录,提示是否中奖以及充值查询余额功能;
管理员端滚动开奖,查询信息功能以及自动创建功能。

三.自己的代码提交记录

四.自己负责模块或任务详细说明

1.开奖模块
采用了多线程的技术,一开始这个对于这个滚动的方式确实是没有什么思路,后来查询了多线程的相关资料,结合参考了一些往年博客的写法与上课的内容,重写了Mythread中的run方法,在开始与停止两个按钮上添加事件监听,在点击时分别启动start()方法与stop(),这样来实现滚动的效果。关键代码如下:

2.用户充值模块
这个部分涉及到文件的操作。为了保证管理端读取能同步用户的操作,所以金额是与用户名等信息一起进行存储的。因此,我们在每次进行充值与购买时,需要将当前的user类中存储的金额数进行修改,同时还要对文件中的金额进行修改。一开始是采用的是随机访问文件流RandomAccessFile对关键词进行锁定,但是写完后发现会对文件将文件中正确的换行符也修改掉,之后便开始在网上进行搜索,最后参考一篇全部读入与写出的资料写了这样一个方法:

这样读取每行文件内容,将需要替换的内容替换成新的内容后再进行写入,这里的为了避免出现金额相同的误删操作,旧字符串定义内容包括了用户的所有的信息,格式与存储格式相同,便于读取文件时直接锁定;同时也需要注意,编码个数需要设定为“gbk”,否则在写回文件的时候,中文内容会出现乱码。
3.自动创建用户并购买彩票模块
在管理员界面输入需要创建的人数之后,在这里使用了Thread类进行多线程操作,类似于上述的滚动。

同时在AutoRegister类中,使用User类,同时使用随机生成字符来与号码来当成user类的属性,写入对应的文件;利用Select类中随机生成彩票号码的方法获得彩票号,默认投注为1,获取上述创建的用户的ID信息,存入对应文件。关键代码如下:

4.提醒用户是否中奖模块
这里获取到三个时间,即距离用户此时查看时最近的开奖时间date3,再上一次一次的开奖时间date1,以及用户手上所持有的彩票购买时间date2,利用java.util.Date提供的比较两个日期的方法compareTo()来对两个时间进行比较。这里设定为date2必须在最近的两次开奖时间date1与date3之间,这样的彩票才有可使用性,最后根据flag来判断用户是否中奖。关键代码如下:

5.用户购买彩票模块
这里是手动选号的功能,自动选号类似,即将获取的之改为随机即可。增加读取每注的价格,在购买时判断用户余额是否足够购买。G关键代码如下:

6.文件的读写模块
使用BufferReader流对数据进行读取,每读取一行后将改行数据进行划分,展示在界面的表格内,这里是当管理员点击用户信息后的事件,以此为例,其余查询信息(如用户点击查看购买记录等)操作均类似。

五.课程设计感想

这次课程设计中我负责的内容对应我来说还是有一定的难度。代码量比较大,时间也有些仓促。这次课设中我主要碰到了一些问题:

  • 首先,因为在课设开始之前对数据库有一些了解,也想过使用数据库进行数据的处理,运用到这次的程序中。但是之前从来没有过使用数据库进行这样比较大型的程序的设计,因此在第一天的时候就遇到了困难,第一天快要结束时也仅仅只完成了一些gui界面的设计,利用数据库进行数据存储这方面依然不是很成功,因此只能改为使用文件进行数据的存储,这样虽然简单,但是这次的系统需要频繁的进行后台数据的读取、访问与修改等,这就使的这次的课设工作量有点偏大。
  • 其次,这次因为涉及到余额的问题,所有需要对文件进行访问与修改,这部分是比较令我头疼的,也卡了我很长的时间,最后在查阅了很多资料之后模仿着写出了一个替换方法。这次这种大量对文件的运用与操作,确实对我在这方面的知识与操作有了一定的提高。
  • 最后,这次算得上的第一次从头开始设计一个系统,(之前的购物车还有老师的提示),因此也让组员进行了一定的前期调查,最后总结,同时也参考的往年同学的博客,主要的查看界面设计与功能分布,了解用户需要满足什么样的功能以及管理员端需要有什么样的操作,这样慢慢的写完了课设。总的来说,这样一个大型的课设,完成一项一项的功能,并且不断总结,对自己的专业水平确实会有提高。同时将自己的思路与别人进行对比之后,也能对我们自己以后遇到问题所想到的解决方法有一定的拓宽,对自己也有一定的锻炼。
  • 总之,这次课设对我来说,很好地锻炼了我的java能力,但是在设计上也有不足之处。在之后的时间中,我会继续学习相关知识,并对课设的不足之处以及自己的不足之处进行优化与提升。
posted on 2021-01-28 13:45  蔡浩伟  阅读(169)  评论(0编辑  收藏  举报