计算机智能手机开发课程设计任务书.docx

上传人:b****6 文档编号:5999735 上传时间:2023-01-02 格式:DOCX 页数:26 大小:148.83KB
下载 相关 举报
计算机智能手机开发课程设计任务书.docx_第1页
第1页 / 共26页
计算机智能手机开发课程设计任务书.docx_第2页
第2页 / 共26页
计算机智能手机开发课程设计任务书.docx_第3页
第3页 / 共26页
计算机智能手机开发课程设计任务书.docx_第4页
第4页 / 共26页
计算机智能手机开发课程设计任务书.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

计算机智能手机开发课程设计任务书.docx

《计算机智能手机开发课程设计任务书.docx》由会员分享,可在线阅读,更多相关《计算机智能手机开发课程设计任务书.docx(26页珍藏版)》请在冰豆网上搜索。

计算机智能手机开发课程设计任务书.docx

计算机智能手机开发课程设计任务书

武汉理工大学华夏学院

课程设计报告书

课程名称:

智能手机软件开发

 

题目:

飞扬的小鸟

系名:

信息工程系

专业班级:

计算机1111

姓名:

学号:

10210411131

指导教师:

凌伟

 

2014年6月20日

武汉理工大学华夏学院信息工程系

课程设计任务书

课程名称:

智能手机软件开发课程设计指导教师:

凌伟

班级名称:

计算机1111开课系、教研室:

自动化与计算机

一、课程设计目的与任务

本课程的设计的目的是通过实践使同学们经历智能手机软件开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的智能手机开发的知识。

结合具体的开发案例飞扬的小鸟,理解并初步掌握智能手机开发的主要环节和步骤以及智能手机游戏开发的知识。

二、课程设计的内容与基本要求

1、课程设计题目

飞扬的小鸟

2、课程设计内容

要求学生根据所学的软件工程的理念,利用所学的Android手机开发的知识,开发一个智能手机游戏飞扬的小鸟,并针对该手机游戏软件进行需求分析,总体设计、详细设计、编码、测试。

《飞扬的小鸟》是由来自越南的独立游戏开发者DongNguyen所开发的作品,游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍,而这只鸟其实是根本不会飞的……所以玩家每点击一下小鸟就会飞高一点,不点击就会下降,玩家必须控制节奏,拿捏点击屏幕的时间点,让小鸟能在落下的瞬间跳起来,恰好能够通过狭窄的水管缝隙,只要稍一分神,马上就会失败阵亡。

游戏玩法:

在游戏开始后,点击屏幕,要记住是保持一定的规律的仔细观察点击屏幕,不要让小鸟掉下来。

游戏过程:

让小鸟不要撞到管子,每穿过一个管子的缝隙得1分。

游戏背景音乐设计

游戏背景动画设计

游戏界面设计

游戏关卡设计

游戏积分榜的设计

 

三、课程设计步骤及时间进度和场地安排

本课程设计将安排在第18周,教育技术中心。

具体安排如下:

第一天,系统开发平台搭建及主流开发工具安装

第二天,游戏界面的设计

第三天,游戏业务的设计

第四天,游戏关卡的设计

第五天,系统调试测试打包和验收

周次

星期一

星期二

星期三

星期四

星期五

第18周

第1-8节

第1-8节

第1-8节

第1-8节

第1-8节

地点

现教221

现教221

现教221

现教221

现教221

 

四、课程设计考核及评分标准

课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。

具体评分标准如下:

设置六个评分点

(1)设计方案正确,具有可行性、创新性;25分

(2)系统开发效果较好;25分

(3)态度认真、刻苦钻研、遵守纪律;10分

(4)设计报告规范、课程设计报告质量高、参考文献充分20分

(5)课程设计答辩概念清晰,内容正确10分

(6)课程设计期间的课堂考勤、答疑与统筹考虑。

10分

按上述六项分别记分后求和,总分按五级记分法记载最后成绩。

优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),

不及格(0~59分)

 

1需求分析

1.1课设设计题目

飞扬的小鸟

1.2设计目的

⑴通过实践使同学们经历智能手机软件开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的智能手机开发的知识。

⑵结合具体的开发案例飞扬的小鸟,理解并初步掌握智能手机开发的主要环节和步骤以及智能手机游戏开发的知识。

⑶要求学生根据所学的软件工程的理念,利用所学的Android手机开发的知识,开发一个智能手机游戏飞扬的小鸟;

⑷针对该手机游戏软件进行需求分析,总体设计、详细设计、编码、测试;

1.3设计任务及要求

⑴设计“飞扬的小鸟”游戏包括:

游戏玩法,游戏过程,游戏背景音乐设计,游戏背景动画设计,游戏界面设计,游戏关卡设计,游戏积分榜的设计。

⑵游戏玩法:

游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍,而这只鸟其实是根本不会飞的……所以玩家每点击一下小鸟就会飞高一点,不点击就会下降,玩家必须控制节奏,拿捏点击屏幕的时间点,让小鸟能在落下的瞬间跳起来,恰好能够通过狭窄的水管缝隙,只要稍一分神,马上就会失败阵亡。

 

2软硬件运行环境及开发工具

2.1硬件环境

CPU:

Pentium43.0以上。

内存:

512MB以上。

硬盘:

80GB以上。

显示器:

1024×768像素以上。

数据库:

Access2000以上。

操作系统:

WindowsXP或更高版本。

2.2软件环境

MyElipse、JAVA

3系统需求分析

3.1.实现用户登录检测,密码修改;

3.2.用户信息管理

3.2.1用户信息输入;

3.2.2信息查询,可根据不同关键字进行条件查询;

3.2.3用户信息修改:

拥有权限的操作员可以修改,删除普通用户;

4系统总体设计

4.1系统功能简介

用户管理系统的是管理用户信息的系统,实例包括增加用户、查询用户信息、修改用户信息删除用户信息,具体的功能如下:

1.实现用户登录检测,密码修改;

2.用户信息管理

(1)用户信息输入;

(2)信息查询,可根据不同关键字进行条件查询;

(3)用户信息修改:

拥有权限的操作员可以修改,删除普通用户;

 

4.2系统功能模块规划

4.2.1系统的整体功能模块框架图

图1系统的整体功能模块框架图

 

4.2.2系统流程图

图2系统流程图

 

4.3系统数据库设计

4.3.1数据库概念结构设计

图3用户信息图

4.3.2数据库逻辑结构设计

编号

字段名称

数据类型

说明

1

uid

int

密码,主键

2

username

varchar

用户名

3

upass

varchar

密码

4

sex

varchar

性别

5

age

int

年龄

6

qq

varchar

qq

7

email

varchar

邮箱

8

tel

varchar

电话

9

Ndescr

varchar

个人描述

图4数据库所需元素

4.4数据库的连接技术

当安装好MySQLServer5.0系统以后,首先创建连接,在打开连接创建数据库,再创建表,在这个过程中最重要的就是创建密码一定要与代码一致,要不然所创建的用户管理系统就无法与数据库连接,出现错误。

5系统详细设计

经过需求分析、功能模块设计之后要进入详细设计阶段,本阶段将按系统的主要模块进行论述,重在阐述具体的某项功能的实现方法或运用到的相关技术。

5.1运行结果

登录界面的设计

登录界面

游戏过程中的界面设计

游戏结束时的界面设计

5.2操作说明及运行结果

5.2.1操作说明

游戏玩法:

玩家每点击一下小鸟就会飞高一点,不点击就会下降,玩家必须控制节奏,拿捏点击屏幕的时间点,让小鸟能在落下的瞬间跳起来,恰好能够通过狭窄的水管缝隙,只要稍一分神,马上就会失败阵亡。

游戏积分榜的设计:

让小鸟不要撞到管子,每穿过一个管子的缝隙得1分。

 

7总结

在本次课程设计中,我们遇到的困难很多,在解决它们的同时我们又学到了很多,获益非浅,特别是如何分析、建立、开发一个游戏。

在一个游戏开发的过程中编码不是重要的,重要的是分析游戏、建立起游戏模型。

在分析一个游戏前,分析人员必须要对将要开发的游戏所涉及到的各方面知识有一个认识,然后将游戏的模型建立起来。

而且一个成功的游戏要符合用户的需要,要以用户为中心,开发出用户想要的游戏,而不能自以为是,想当然。

在游戏编写中,我们认识到游戏要有简便的界面,完备的文挡。

拥有这些条件,游戏的复杂度才能大大减少,修改代码时更加容易下手。

我认为,所谓良好的界面,就是用户需要的界面,力求简便全面。

所以设计一个界面时,开发人员必须要了解用户的想法,从用户的角度去设计,当然,开发不能全听用户的意见,在详细分析了游戏后,开发人员可以向用户提出一些修改的意见,在双方多次交流后定出游戏所需的功能,以决定界面的实现。

在编码中,良好的编程风格与习惯是提高工作效率的一个重要方面,而且良好的编程风格与习惯也是使软件便于维护的基础。

那如何是良好的编程风格与习惯呢?

我们认为主要是程序的模块化、必要的注释和完备的设计文挡三个方面。

所谓模块化就是使程序的功能实现分成多个单独的功能模块,而不能在一大段代码中实现多个功能,如果这样做,别的人是非常难读懂你的程序。

必要的注释,显而易见是要在程序的编写中加入对程序的说明,原因就是为了别人能读懂你的程序,再一段时间后你自己还能读懂自己的程序。

而完备的设计文挡是在系统开发过程中记录下开发的全部过程,拥有它,在以后维护软件时就有依据使维护工作变得简单一些。

总结这次课程设计给我们感受最深的至少有四点:

1.进行软游戏件开发这样的工作,要有恒心,要能静下新来做,而不能浮躁。

2.要遵循游戏开发本身的规律和善于吸收已有的经验。

3.要善于同别人交流与合作,善于获取有用的各种资源。

4.要真真实实多查资料,多问,多看。

8参考文献

[1]王建华.ASPNET2.0动态网站开发技术与实践[M].北京:

电子工业出版社,2007.

[2]王珊萨师煊,数据库系统概论(第四版),高等教育出版社,2006

[3]萨师煊,SQLServer从入门到精通,高等教育出版社,2006

[4]Eric J.Naiburg、RobertA.Maksimchuk著 陈立军、郭旭译,UML数据库设计应用,人民邮电出版社,2002

[5]周之黄玫译,SQLServer2000技术参考大全,清华大学出版社,2001

[6]余杰李莎莎,SQLServer项目开发实践,中国铁道出版社,2006

附录A:

系统核心代码

进入界面设计

packagecom.tarent.flappybird;

importjavax.swing.JFrame;

publicclassFlappyBird{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

JFramewin=newJFrame("飞扬的小鸟作者:

卢灿");

win.setSize(432,674);

win.setLocationRelativeTo(null);

win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

win.setResizable(false);

Worldworld=newWorld();//创建一个小鸟活动世界

win.add(world);//把面板(world)添加到可视化窗口界面(win)里面

win.setVisible(true);

world.action();//让游戏界面动起来

}

}

小鸟类

packagecom.tarent.flappybird;

importjava.awt.image.BufferedImage;

importjava.io.IOException;

importjavax.imageio.ImageIO;

/**小鸟类*/

publicclassBird{

BufferedImageimage;//鸟的图片

BufferedImage[]images=newBufferedImage[8];

intx;//鸟的中心点

inty;

intwidth;//鸟的宽和高

intheight;

doublealpha=0;

doubles;//t秒移动的距离

doubleg=4;

doublet=0.25;

doublespeed=20;//鸟的速度

intindex=0;//(让index++%8,赋值给图片的下标)

publicBird(){

//循环加载鸟的每一张图,存放在images数组里边

for(inti=0;i<8;i++){

try{

images[i]=ImageIO.read(getClass().getResource(i+".png"));

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

image=images[0];

width=image.getWidth();

height=image.getHeight();

x=132;//鸟的位置

y=280;

}

publicvoidstep(){

//x不变,y自由落体

doublev0=speed;

s=v0*t-0.5*g*t*t;

y-=s;//y=y-s;

speed=v0-g*t;//最后的速度作为鸟的初速度

alpha=Math.atan(s/8);

//换图片

image=images[index++%8];

}

publicvoidflappy(){

speed=20;

}

/*判断鸟是否碰撞到了地面*/

publicbooleanhit(Groundground){

if(y+height/2>=ground.y){

alpha=-3.14/2;//垂直撞地

returntrue;//碰到了地面

}

returnfalse;

}

publicbooleanhit(Columncolumn){//子类重载上面的hit方法,根据参数列表不同,访问

//不同的重载方法。

intm=x+width/2;

intn=x-width/2;

inta=column.x-column.width/2;

intb=column.x+column.width/2;

if(m>=a&&n<=b){

inta1=y-15;

inta2=y+15;

intb1=column.y-column.grap/2;

intb2=column.y+column.grap/2;

if(a1<=b1||a2>=b2){

returntrue;

}

}

returnfalse;

}

}

小鸟世界类

packagecom.tarent.flappybird;

importjava.awt.Color;

importjava.awt.Font;

importjava.awt.Graphics;

importjava.awt.Graphics2D;

importjava.awt.event.MouseAdapter;

importjava.awt.event.MouseEvent;

importjava.awt.image.BufferedImage;

importjava.io.IOException;

importjavax.imageio.ImageIO;

importjavax.swing.JPanel;

//ctrl+shift+f排版

publicclassWorldextendsJPanel{

BufferedImagebg;//背景图

BufferedImagestart_image;//游戏开始

BufferedImagegameover_image;//游戏结束

Groundground;//土地

Columnc1;//两个柱子

Columnc2;

Birdbird;//鸟

booleanisGameOver;//判断游戏是否结束

booleanstarted;//判断游戏是否开始

intscore=0;//得分

/*构造器,构造方法,构造函数,用来给属性赋初始值*/

publicWorld(){

try{

//加载背景图

bg=ImageIO.read(getClass().getResource("bg.png"));

start_image=ImageIO.read(getClass().getResource("start.png"));

gameover_image=ImageIO.read(getClass().getResource("gameover.png"));

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}//trycatch解决异常

//初始化土地,柱子,鸟

newWorld();

}

publicvoidnewWorld(){

ground=newGround();//初始化土地

c1=newColumn

(1);//第一根柱子

c2=newColumn

(2);//第二根柱子

bird=newBird();//初始化鸟

score=0;

isGameOver=false;

started=false;

}

/*画图的方法,g是画图工具*/

publicvoidpaint(Graphicsg){

//画背景图

g.drawImage(bg,0,0,null);

/*,先画柱子后画土地,美观*/

//画柱子

g.drawImage(c1.image,c1.x-c1.width/2,c1.y-c1.height/2,null);//画第一个柱子

g.drawImage(c2.image,c2.x-c2.width/2,c2.y-c2.height/2,null);//画第二个柱子

//画土地

g.drawImage(ground.image,ground.x,ground.y,null);//画土地

//画鸟

//bird.alpha=-1.2;//赋值改变头朝向

Graphics2Dg1=(Graphics2D)g;

//在鸟的(x,y)位置,把坐标系旋转alpha倾角

g1.rotate(-bird.alpha,bird.x,bird.y);

g1.drawImage(bird.image,bird.x-bird.width/2,bird.y-bird.height/2,null);

g1.rotate(bird.alpha,bird.x,bird.y);

if(!

started){//画游戏开始的示意图

g.drawImage(start_image,0,0,null);

}

if(isGameOver){

g.drawImage(gameover_image,0,0,null);

}

//画分数

Fontf=newFont("隶书",Font.BOLD,25);

g.setFont(f);

g.setColor(Color.black);

g.drawString("你的得分为:

"+score,10,20);

}

/**让图片动起来的方法*/

publicvoidaction(){

//为该游戏界面,添加鼠标监听事件

MouseAdapterm=newMouseAdapter(){

//监听鼠标点击操作

publicvoidmousePressed(MouseEvente){

System.out.println("点我!

随便点");

if(isGameOver){

newWorld();//重新开始

}else{

//鸟跳一下

bird.flappy();

started=true;//开始游戏

}

}

};

this.addMouseListener(m);

while(true){

if(started){//游戏开始,并且结束,这个过程,才动

if(!

isGameOver){

ground.step();//土地动一次

c1.step();//柱子动一次

c2.step();

bird.step();

}

}

//是否得分

if(bird.x==c1.x||bird.x==c2.x){

//得一分

score++;

}

repaint();//重绘游戏界面

try{

Thread.sleep(1000/60);

}catch(InterruptedExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

//游戏输赢的判定

if(bird.hit(ground)||bird.hit(c1)||bird.hit(c2)){

isGameOver=true;

}

}

}

}

柱子类

packagecom.tarent.flappybird;

importjava.awt.image.BufferedImage;

importjava.io.IOException;

importjava.util.Random;

importjavax.imageio.ImageIO;

/**柱子类*/

publicclassColumn{

BufferedImageimage;//柱子的图片

intx;//柱子的中心点

inty;

intwidth;//柱子的宽和高

intheight;

intdistance;//两根柱子的距离

intgrap=144;//一根柱子中间的间隙距离

Randomrandom=newRandom();//随机函数生成器,用来随机柱子高度

/*构造器,给属性赋初值**/

publicColumn(intnum){//num代表第几根柱子

try{

image=ImageIO.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1