java课程设计Word文档下载推荐.docx
- 文档编号:5785746
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:24
- 大小:93.52KB
java课程设计Word文档下载推荐.docx
《java课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java课程设计Word文档下载推荐.docx(24页珍藏版)》请在冰点文库上搜索。
2)接口;
3)实现抽象方法;
4)响应事件.
1.3课程设计要求
1)仔细分析设计题目,编写程序源代码;
2)积极上机调试源程序,增强编程技巧与调程能力;
3)认真书写课程设计预习报告,课程设计说明书;
4)遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容.
第二章问题定义
2.1游戏开发需求分析
一个相对比较完整的手机游戏,通常包括了:
新游戏、游戏设置、排行榜、游戏帮助和游戏说明五个主要部分,本设计本着从学习娱乐的角度出发的角度,并没有太过复杂的环节,尽力展示出了一个完整游戏的的全部开发构成。
进入游戏主界面设有“退出”、“再来一局”、“重列”三个选择项键。
点击新游戏进入游戏界面,每次的数字排序不一样,游戏图块为5×
6共30块,每块上面的数字随机排列。
界面顶部有分数记录器,每关分数积累。
界面下方有菜单按钮,包括退出、再来一局、重列三个选项。
游戏次数不限,只为智力开发和休闲娱乐,消遣时间。
2.2游戏功能分析
通过JAVA编一个连连看程序,通过鼠标点击使相同两个数字消掉。
程序实现以下几个功能:
1)判断鼠标点击的两张图片是否相同;
2)判断2张图片是否可以相连;
3)判断两张图片是否可以相消;
4)判断时间;
5)判断剩余图片,是否胜利。
本游戏通过以上五个功能完成,虽然不是很复杂,但实现了JAVA程序设计的思想。
第三章总体与详细设计
3.1总体设计
1)本程序是Application程序,共有十一个成员方法;
2)一个是主方法;
3)是一个数据成员,其中两个二维数组。
3.2详细设计
1)设置主面板;
2)定义子面板;
3)设置退出、重列、重新开始三个按钮;
4)设置分数标签;
5)储存游戏按钮位置;
6)判断是否有按钮被选中;
7)编写消除方法。
第四章编码实现
1)程序主方法:
publicstaticvoidmain(String[]args)
{
lianliankanllk=newlianliankan();
ddp.randomBuild();
ddp.init();
}
2)判断同一行的相同按钮是否能够相连:
publicvoidlinePassOne(){
if(y0>
j){//第一按钮同行空按钮在左边
for(i=y0-1;
i>
=j;
i--){//判断第一按钮同左侧空按钮之间有没按钮
if(grid[x0][i]!
=0){
k=0;
break;
}
else{k=2;
}//K=2说明通过了第二次验证
if(y0<
j){//第一按钮同行空按钮在与第二按钮之间
for(i=y0+1;
i<
i++){
else{k=2;
}
3)定义面板上的数字按钮:
publicvoidreload(){
intsave[]=newint[30];
intn=0,cols,rows;
intgrid[][]=newint[8][7];
for(inti=0;
=6;
i++){
for(intj=0;
j<
=5;
j++){
if(this.grid[i][j]!
save[n]=this.grid[i][j];
n++;
n=n-1;
this.grid=grid;
while(n>
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
while(grid[cols][rows]!
this.grid[cols][rows]=save[n];
n--;
mainFrame.setVisible(false);
pressInformation=false;
//这里一定要将按钮点击信息归为初始
init();
for(inti=0;
i<
6;
for(intj=0;
j<
5;
j++){
if(grid[i+1][j+1]==0)
diamondsButton[i][j].setVisible(false);
4)数字相消的方法:
publicvoidxiao(){//相同的情况下能不能消去
if((x0==x&
&
(y0==y+1||y0==y-1))||((x0==x+1||x0==x-1)&
(y0==y))){//判断是否相邻
remove();
else{
for(j=0;
7;
j++){
if(grid[x0][j]==0){//判断第一个按钮同行哪个按钮为空
if(y>
j){//如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按钮在第二按钮左边
for(i=y-1;
=j;
i--){//判断第二按钮左侧直到第一按钮中间有没有按钮
if(grid[x][i]!
else{k=1;
}//K=1说明通过了第一次验证
if(k==1){
linePassOne();
if(y<
j){//如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边
for(i=y+1;
i++){//判断第二按钮左侧直到第一按钮中间有没有按钮
=0){
else{k=1;
if(k==1){
第五章调试与测试
1)写出批处理文件12.bat;
2)编写java格式的文件lianliankan.java;
3)开始运行,过程显示如下:
运行结果如下:
第六章总结与心得
总结:
通过这次的课程设计过程,我进一步了解JAVA程序的设计懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。
在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。
最后的时刻设置的障碍,是要考验我的能力,在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。
谢谢老师的那句话,她说:
人力有所不能及,然而,人的精神是不会败倒的。
我鼓起勇气,到处问,到处查资料,黄天不负有心人,终于看到了我所特别要求的函数,我实现了组合是关键的理论。
不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。
心得:
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
回想学习JAVA的过程中,既有快乐又有烦恼.
从领到书的那一刻,我就很郁闷,《面向对象程序设计-JAVA》到底事学什么的,有什么用。
刚开始上课时,还在迷茫这门课程是用来做什么的。
不过,这些感受都是在对这门课程不了解的情况下产生的。
后来慢慢的接触多了,听老师讲的多了,了解多了,渐渐的产生了兴趣。
尤其是学到类与对象和多态机制时,上机操作程序,经过编译,调试和运行后,出现界面,当时觉得很好奇,想真正的学好这门课程。
通过半个学期的学习,我掌握了基本知识。
下学期开始时,被通知要进行三周的课程设计。
当时有点懵,感觉学的东西很少,很零散,不知该怎么练到一起,就要课程设计,是不是太难为我们了。
第一天基本上都是在看书,把基本知识再熟悉一边。
到了下午的时候,老师发过来三道练习题,从这几道练习题上我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。
第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。
但是,到了第二周,我们由不得不再次陷入困境。
在整个程序的编写过程中。
最难的就是修改和删除这两个模块,这也是我们第二周要解决的重点问题。
开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。
困难之时,我们组的其他人,帮助了我,完成了修改和删除。
这样的话,整个程序基本上全部完成了,就剩下完善工作了。
回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在两个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论
知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
附录1
程序源代码
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclasslianliankanimplementsActionListener
JFramemainFrame;
ContainerthisContainer;
JPanelcenterPanel,southPanel,northPanel;
JButtondiamondsButton[][]=newJButton[6][5];
JButtonexitButton,resetButton,newlyButton;
JLabelfractionLable=newJLabel("
0"
);
JButtonfirstButton,secondButton;
intgrid[][]=newint[8][7];
staticbooleanpressInformation=false;
intx0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV;
inti,j,k,n;
publicvoidinit(){
mainFrame=newJFrame;
thisContainer=mainFrame.getContentPane();
thisContainer.setLayout(newBorderLayout());
centerPanel=newJPanel();
southPanel=newJPanel();
northPanel=newJPanel();
thisContainer.add(centerPanel,"
Center"
thisContainer.add(southPanel,"
South"
thisContainer.add(northPanel,"
North"
centerPanel.setLayout(newGridLayout(6,5));
for(intcols=0;
cols<
cols++){
for(introws=0;
rows<
rows++){
diamondsButton[cols][rows]=newJButton(String.valueOf(grid[cols+1][rows+1]));
diamondsButton[cols][rows].addActionListener(this);
centerPanel.add(diamondsButton[cols][rows]);
exitButton=newJButton;
exitButton.addActionListener(this);
resetButton=newJButton;
resetButton.addActionListener;
newlyButton=newJButton;
newlyButton.addActionListener(this);
southPanel.add(exitButton);
southPanel.add(resetButton);
southPanel.add(newlyButton);
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));
northPanel.add(fractionLable);
mainFrame.setBounds(280,100,500,450);
mainFrame.setVisible(true);
publicvoidrandomBuild(){
intrandoms,cols,rows;
for(inttwins=1;
twins<
=15;
twins++){
randoms=(int)(Math.random()*25+1);
for(intalike=1;
alike<
=2;
alike++){
this.grid[cols][rows]=randoms;
publicvoidfraction()
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));
init();
publicvoidestimateEven(intplaceX,intplaceY,JButtonbz){
if(pressInformation==false){
x=placeX;
y=placeY;
secondMsg=grid[x][y];
secondButton=bz;
pressInformation=true;
else{
x0=x;
y0=y;
fristMsg=secondMsg;
firstButton=secondButton;
if(fristMsg==secondMsg&
secondButton!
=firstButton){
xiao();
publicvoidxiao(){
(y0==y))){
if(grid[x0][j]==0){
j){
i--){
if(grid[x][i]!
j){
i++){
if(y==j){
if(k==2){
if(x0==x){
if(x0<
x){
for(n=x0;
n<
=x-1;
n++){
if(grid[n][j]!
if(grid[n][j]==0&
n==x-1){
if(x0>
n>
=x+1;
n--){
n==x+1){
for(i=0;
8;
i++){
if(grid[i][y0]==0){
if(x>
i){
for(j=x-1;
j>
=i;
j--){
if(grid[j][y]!
rowPassOne();
if(x<
for(j=x+1;
=i;
if(x==i){
if(k==2){
if(y0==y){
y){
for(n=y0;
=y-1;
if(grid[i][n]!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计