《面向对象程序设计》课程设计报告样本.docx
- 文档编号:15520067
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:12
- 大小:36.29KB
《面向对象程序设计》课程设计报告样本.docx
《《面向对象程序设计》课程设计报告样本.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》课程设计报告样本.docx(12页珍藏版)》请在冰点文库上搜索。
《面向对象程序设计》课程设计报告样本
课程设计报告
系别
计算机科学与技术系
课程名称
面向对象程序设计
设计题目
***
专业
计算机科学与技术
班级
1501班
组长
***
组员
******************
时间
2016-2017-2
目录
课程设计报告1
坦克游戏5
任务分工5
实现功能5
一、画出坦克5
1.定义坦克类(classTank),用paint画出坦克共有属性:
外形,颜色,方向,速度等5
2.定义子弹类(classShot)5
二、我的坦克可以上下左右移动,炮筒方向也跟着变换6
1.定义我的坦克类(classHero)6
2.我的坦克初始位置6
三、敌人的坦克可以上下左右移动,炮筒方向也跟着变换6
1.定义敌人的坦克类(classEnemyTank)6
2.6
3.定义敌人的坦克数量6
四、我的坦克可以发子弹(线程),按下j键,发射一颗子弹(最多可连发5颗)6
五、当敌人坦克击中我的坦克,显示爆炸效果6
六、进入游戏时,首页面出现闪烁字体“stage:
1”7
1.设置字体颜色7
2.设置字体类型和大小7
3.设置字体显示的位置7
4.产生闪烁效果需让字体一会出现,一会消失7
七:
设置菜单:
游戏(G):
开始新游戏(N)、退出系统(E)、存盘退出(C)、续上局(S)7
1.初始化菜单和快捷方式7
2.对jmi1响应7
八、点击菜单各按钮8
1.点击“开始新游戏”按钮时,需删除旧面板(即开始界面),创建新界面8
2.点击“退出系统”按钮时,保存击毁敌人数量后退出8
3.点击“存盘退出”按钮时,保存击毁敌人的数量和坐标后退出8
4.点击“续上局”按钮时,在上局的基础上继续玩8
九、可以在玩游戏时暂停和继续,存盘退出游戏,可以记录当时的敌人坦克坐标,并可以恢复9
1.用文件流的方式将击毁敌人坦克数量保存在指定文件中9
2.若是存盘退出,把敌人坦克坐标保存在指定文件中9
3.当打开“续上局”时,把保存的信息导入9
4.完成操作后,需关闭字节流,遵循先开后关原则9
十、设置面板的大小、游戏界面的大小9
1.面板大小9
2.游戏界面大小9
十一、画出提示坦克和信息10
1.敌人坦克为蓝色,设置位置10
2.我的坦克为黄色,设置位置10
3.玩家的总成绩,设置字体样式大小、位置10
十二、记录类(classRecorder),同时保存玩家的设置10
1.设置每关有20辆敌人坦克,我有3辆,记录总共消灭多少敌人10
附件一:
运行过程(截图)11
1.进入初始界面11
2.点击“开始游戏“按钮12
3.当我的坦克消灭一辆敌人坦克,敌人坦克数量减1,您的总成绩加1.13
坦克游戏
(描述游戏……)
任务分工
(每个人的任务)
实现功能
一、画出坦克
1.定义坦克类(classTank),用paint画出坦克共有属性:
外形,颜色,方向,速度等
①坦克绘画:
如:
炮筒方向向上
//画出左边矩形
g.fill3DRect(x,y,5,30,false);
//画出右边矩形
g.fill3DRect(x+15,y,5,30,false);
//画出中间矩形
g.fill3DRect(x+5,y+5,10,20,false);
//画出中间圆
g.fillOval(x+5,y+10,10,10);
//画出直线
g.drawLine(x+10,y+15,x+10,y);
②坦克颜色:
敌人坦克为蓝色,我的坦克为黄色。
③坦克方向:
0表示向上,1表示向右,2表示向下,3表示向左
④坦克速度:
intspeed=1;y+=speed;x+=speed;通过改变speed的值,可控制坦克运动快慢。
2.定义子弹类(classShot)
在面板内,最多只能发5颗子弹:
二、我的坦克可以上下左右移动,炮筒方向也跟着变换
1.定义我的坦克类(classHero),根据坦克的方向定义我的子弹的横纵坐标。
2.我的坦克初始位置:
hero=newHero(185,250);
三、敌人的坦克可以上下左右移动,炮筒方向也跟着变换
1.定义敌人的坦克类(classEnemyTank),把敌人坦克做成线程类,用Runnable实现。
2.让敌人坦克随机产生方向:
this.direct=(int)(Math.random()*4);
但敌人坦克死亡后,break退出线程(不占用空间)。
3.定义敌人的坦克数量:
intenSize=3;
四、我的坦克可以发子弹(线程),按下j键,发射一颗子弹(最多可连发5颗)
五、当敌人坦克击中我的坦克,显示爆炸效果
1.定义三张图片,三张图片切换组成一颗炸弹
2.用life表示炸弹的生命值,初始life=9,当life<6,出现第一张图,当life<5,出现第二张图,当life<4,出现第三张图,形成爆炸效果。
六、进入游戏时,首页面出现闪烁字体“stage:
1”
1.设置字体颜色:
g.setColor(Color.yellow);
2.设置字体类型和大小:
FontmyFont=newFont("华文新魏",Font.BOLD,30);
3.设置字体显示的位置:
g.drawString("stage:
1",145,120);
4.产生闪烁效果需让字体一会出现,一会消失:
if(times%2==0)
七:
设置菜单:
游戏(G):
开始新游戏(N)、退出系统(E)、存盘退出(C)、续上局(S)
1.初始化菜单和快捷方式:
JMenuBarjmb=null;
JMenujm1=null;
JMenuItemjmi1=null;
jmb=newJMenuBar();
jm1=newJMenu("游戏(G)");
jm1.setMnemonic('G');
jmi1=newJMenuItem("开始新游戏(N)");
jm1.setMnemonic('N');
2.对jmi1响应:
jmi1.addActionListener(this);
jmi1.setActionCommand("newgame");
jm1.add(jmi1);
jmb.add(jm1);
八、点击菜单各按钮
1.点击“开始新游戏”按钮时,需删除旧面板(即开始界面),创建新界面
//创建战场面板
mp=newMyPanel("newGame");
//启动mp线程
Threadt=newThread(mp);
t.start();
//先删除旧的开始面板
this.remove(msp);
this.add(mp);
//注册监听
this.addKeyListener(mp);
//显示刷新
this.setVisible(true);
2.点击“退出系统”按钮时,保存击毁敌人数量后退出
Recorder.keepRecodring();
System.exit(0);
3.点击“存盘退出”按钮时,保存击毁敌人的数量和坐标后退出
Recorderrd=newRecorder();
rd.setEts(mp.ets);
rd.keepRecAndEnemyTank();
System.exit(0);
4.点击“续上局”按钮时,在上局的基础上继续玩
mp=newMyPanel("con");
Threadt=newThread(mp);
t.start();
this.remove(msp);
this.add(mp);
this.addKeyListener(mp);
this.setVisible(true);
九、可以在玩游戏时暂停和继续,存盘退出游戏,可以记录当时的敌人坦克坐标,并可以恢复
1.用文件流的方式将击毁敌人坦克数量保存在指定文件中
2.若是存盘退出,把敌人坦克坐标保存在指定文件中
privatestaticFileWriterfw=null;
privatestaticBufferedWriterbw=null;
fr=newFileReader("f:
\\myRecording.txt");
br=newBufferedReader(fr);
3.当打开“续上局”时,把保存的信息导入
Stringn="";
n=br.readLine();
allEnNum=Integer.parseInt(n);
privatestaticFileReaderfr=null;
privatestaticBufferedReaderbr=null;
4.完成操作后,需关闭字节流,遵循先开后关原则
br.close();
fr.close();
十、设置面板的大小、游戏界面的大小
1.面板大小:
this.setSize(580,450);
2.游戏界面大小:
g.fillRect(0,0,400,300);
十一、画出提示坦克和信息
1.敌人坦克为蓝色,设置位置
this.drawTank(80,330,g,0,0);
g.setColor(Color.black);
g.drawString(Recorder.getEnNum()+"",110,350);
2.我的坦克为黄色,设置位置
this.drawTank(140,330,g,0,1);
g.setColor(Color.black);
g.drawString(Recorder.getMyLife()+"",165,350);
3.玩家的总成绩,设置字体样式大小、位置
g.setColor(Color.black);
Fontf=newFont("宋体",Font.BOLD,20);
g.setFont(f);
g.drawString("您的总成绩",420,30);
this.drawTank(420,60,g,0,0);
g.setColor(Color.black);
g.drawString(Recorder.getAllEnNum()+"",460,80);
十二、记录类(classRecorder),同时保存玩家的设置
1.设置每关有20辆敌人坦克,我有3辆,记录总共消灭多少敌人
privatestaticintenNum=20;
privatestaticintmyLife=3;
privatestaticintallEnNum=0;
附件一:
运行过程(截图)
1.进入初始界面
2.点击“开始游戏“按钮
3.当我的坦克消灭一辆敌人坦克,敌人坦克数量减1,您的总成绩加1.
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 面向 对象 程序设计 课程设计 报告 样本