首页 > 其他 > 详细

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

时间:2020-01-10 10:26:58      阅读:79      评论:0      收藏:0      [点我收藏+]

一.项目简介

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

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

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

二.设计思路

      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宠物,而是曾经的自己。

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

原文:https://www.cnblogs.com/zlshy/p/12174219.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!