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

一.项目简介

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

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

     码云仓库链接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模块

 ①运用了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界面

                                    

                                      

六.总结与感想

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

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

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

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

5.

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

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

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

猜你喜欢

转载自www.cnblogs.com/zlshy/p/12174219.html