桌面宠物online------------------面对对象程序综合设计2020年

一.项目简介

      实现桌面宠物并实现联网。

      初衷是希望有个桌面小助手一样的在桌面上动起来和自己互动,而且希望可以用自己喜欢点,觉得可爱的角色。

     码云仓库链接https://gitee.com/jellysheep/development_of_desktop_pet.git

图片借用了网络上各路大佬得图片,主要宠物gui也是基于其上。感谢。目前找不到出处了没挂上很抱歉。

二.设计思路

      1.建立Pet类为其主父类,其它类Girl类继承并实现Skill接口继承,利用DAO模式获得其,好感度,名字,年龄,性别的属性;

      2.建立Gui调用不同的宠物类的方法实现MVC,以及和宠物的互动例如动作与唱歌;

      3.建立登录与注册,再次使用DAO获得数据;

      4.为宠物添加其它功能,由于桌面宠物使一个桌面互动程序,主要是为了休闲,所以只要基础建好,可以添加许多功能。这里我实现了一个记账的功能(建立类与dao模式);

      5.加入提醒互动功能。因为每一个宠物我们这里跳出的提醒语句相同所以,直接建立一个类,调用数据库,写出gui实现。

 

三.小组成员与分工

 

 

 

 

 

四.主要模块代码

    1.User模块(MVC与DAO)

注册模块中获得种族,新建一个Fox类或者Girl类进入testbody以获得不同的gui和界面

 

 

 

 

2.Pet模块

 

 

 Pet属于抽象父类,skill是技能接口表达逻辑上宠物能实现的技能;

 ①运用了MVC与DAO,

利用Girl里的方法sing()和apper()使得BodyGui实现音乐与动画,

音乐有一个MusicPlayer类,在sing()中调用这里的代码,实现是girl在sing而不是在实现播放音乐

②使用多线程更迭图片实现互动

但是由于pet是抽象类,所以在获得数据时不能实体化,这里利用PetDao构建,想过每个宠物一个库但是未免太麻烦.

③在这个界面上弹出对话框的界面实现对话和提醒的互动

今天看到一篇文章谈论计算机编程艺术,认为和精力守恒定理一样:你投入到程序中的精力越多,用户使用时遇到的麻烦和折腾的精力就会越少,程序员要做的,正是在开发端和用户端之间尽量平衡开发和用户的复杂度。

也许会有更好的写法,但是目前没有想到就先这么写。

3.Accounter模块

 

 

 

 

同样是使用了MVC与Dao

 

4.Reminder模块

这个类建立读数据返回语句

 

在Pet的Gui上以对话框的形式提现利用多线程

5.音乐模块

 

 

6.操作setting界面

主要实现查看宠物的属性的功能

 

 

7.网络服务器数据库

租用了阿里云的服务器,实现MySQL的连接

8.设置了图标,类似与qq会的右下角的工具栏,实现功能页面

9.各个Gui的连接

   实现传参,主要以user为参数进行传递与调用方法将Gui连接在一起

 

五.操作演示

1.登录注册

                                 

 

 

 

2.互动

双击互动会使得宠物的好感度增加,拖拽改变动作。

 

 

 

 

 

 

 

 

3.对话

 

 

 

 

4.记账

 

 

 

 

 

 

 6.setting界面(好感度超过24时属性界面里的图片时睁开眼睛的)

                                    

 

 

 

                                      

调出信息面板

 

                                                   

 

 

 

六.总结与感想

1.Java确实是一门很方便好用的语言,有许多的方法可以调用,而且拥有继承接口等方法,可以实现更多功能和方便合作;

2.在项目开始前应该和队友多多交流,在没有全面交流时经常会有一种无力感以及后期的错误,例如方法要求不同等等

3.代码的优化书写是为节省用户的时间给用户更好的体验,但在更新代码时也要注意自己的投入,使之达到一个平衡

4.git很方便远程的代码书写,要学会利用

5.

测试的过程中遇到了很多问题比如线程,在鼠标进行操作的时候要怎么去变化,通过监听器去修改一个flag值在线程里加上一个比较flag来判断什么时候要做什么事情,还有服务器。在使用服务器作为数据库,要注意的有很多;首先要先在阿里云控制台设置端口的出入, 一般数据库的端口为3306,但是服务器并没有默认该端口可以通过,所以不开的话将不能通过3306端口访问数据库,同时还要在云端数据库运行允许外网ip访问权限的开放的命令,并且设置外网访问密码;还有和队友们对接的时候往往会出现意想不到的问题,好比如我调用队友写的菜单中的一个选项,会跳出一个GUI但是在关闭这个弹窗的时候会把其它GUI一起关闭这时候就需要队友修改自己的代码;

改进方面,就是互动的动作可能太少了,时间的不足没办法让我们的GUI宠物动作更加丰富,因为很多图片都需要我们自己去PS修改才能用;

通过这次课程设计,让我明白了团队合作有很大的好处,同时默契也是团队合作中的关键,团队合作使我灵活应用所学的知识,完成自己团队分工的内容;学会了很多东西,也知道可如何在服务器上架构数据库,怎么连接远程数据库,GUI的布局管理;这些都是日后实用的,只有不断的学习、实践,再学习、再实践才会成长。

6.

通过一周不到的努力设计,终于属于我们团队的桌面宠物诞生了,虽然功能并没有QQ宠物的完善,但是最重要的是我们的努力,不光是为了情怀,更是为了学会JAVA这门面向对象编程的语言,由于桌面宠物主打gui模块的设计,所以通过这次学习使我对于java图形界面的操作更为流畅,一些老师没教的东西也通过自主学习了解到。

虽然我没有负责类的设计与数据库的管理,但合作设计课设的时候都有一起探讨,这样我也学到了数据库以及一些算法的知识,不得不说实践才是硬道理,当初课堂上没有懂得的知识也突然恍然大悟。

就单独拿图形界面的设计来讲,之前没有学会怎么给界面加背景美化,给按钮加图标等等,也通过这次课设学习到,而对于一个游戏而言,必不可少的便是多线程的使用,音乐播放的停止不代表宠物的退出,这一切都由多线程解决,我也是如此才对多线程理解更为深刻

而之所以选择桌面宠物,作为曾经的童年回忆,“QQ宠物”早已被很多网友遗忘在了记忆的角落,如今迎来它的停运,或许是对过去的怀恋,大家纷纷发文告别青春,虽然有时候很烦,但如今真的要离别,还是有些不舍,真正感慨的或许不是QQ宠物,而是曾经的自己。

posted @ 2020-01-10 00:44  阢Lana  阅读(516)  评论(0编辑  收藏  举报
/*别去做新时代教化的奴隶,别轻易去向别人看齐——*/
正在加载今日诗词....
© options->title(); ?>. Typecho 强力驱动'); ?>.