




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机学院课程设计专 业: 计算机应用技术 课程名称: 3G开发根底 课题名称: 台球游戏系统 教 师: 学 号: 姓 名: 前言Android是基于 HYPERLINK :/baike.baidu /view/1634.htm Linux开放性内核的 HYPERLINK :/baike.baidu /view/880.htm 操作系统,是 HYPERLINK :/baike.baidu /view/105.htm Google公司在2007年11月5日公布的 操作系统。早期由原名为“Android的公司开发,谷歌在2005年收购“后,继续进行对Android系统开发运营,它采用了软件堆层的
2、架构,主要分为三局部。底层Linux内核只提供根本功能,其他的应用 HYPERLINK :/baike.baidu /view/37.htm 软件那么由各公司自行开发,局部程序以Java编写。 2021年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢送的智能 平台。现在,Android系统不但应用于智能 ,也在 HYPERLINK :/baike.baidu /view/74538.htm 平板电脑市场急速扩张。综合本学期的学习,开发一款基于android环境的台球游戏,熟练掌握android应用开发。课程设计目的1、熟悉Java开发环境,熟悉
3、用Java完成一个应用程序的设计过程,掌握有关编 辑、调试和整合程序的方法和技巧。2、通过此设计,了解Java语言的特点;熟悉Java程序的编写;体会Java语言在问题求解中的特点。3、总结学习Java语言的心得和体会,并对Java课程设置提出自己的意见和建议。熟悉android开发环境,熟悉用java语言实现一个安卓程序的设计过程,掌握有关的设计技巧熟悉android开发环境,熟悉用java语言实现一个安卓程序的设计过程,掌握有关的设计技巧通过此课程设计,了解android系统的特点,掌握android相关的知识点。总结学习android开发环境,熟悉用java语言实现一个安卓程序的设计过程
4、,掌握有关的设计技巧总结学习android的心得和体会,并且android课程提出自己的意见和建议,从中得到自己的学习心得和体会。设计任务及要求根据android课程学习,将 台球游戏设计的总体设计框架以及详细的设计和实现过程通老师讲解和自己的理解将其全部以课程设计的方式书写出来。总体设计框架台球游戏欢送界面 开始界面退出 帮助设置开始游戏关于倒计时模式练习模式排行榜详细设计和实现过程配置开发环境1、 安装JDK首先将下载的jdk-6u24-windows-i586安装到C:下 2、配置环境变量选择计算机右键属性高级设置环境变量CLASSPATH : .;%JAVA_HOME%lib;%JAV
5、A_HOME%libdt.jar;%JAVA_HOME%libtools.jar;JAVA_HOME : C:Program Files(x86)Javajdk_24Path : %JAVA_HOME%bin;将以上三个配置到环境变量中3、安装eclipse双击eclipse快捷方式图标,它会在你选择的路径下生成一个workspace文件夹,以后的工程都在这里面。安装ADT 离线安装ADT: 点击eclipse上的help进入如下图,点击add将ADT导入假设安装成功那么会出现如下图的navigate下面 图标。安装SDK点击window进入preference,然后点击android,在SD
6、K Location中导入SDK,安装成功之后如下图。 台球游戏是根据人们日常中打台球的模式进行模拟式的通过点击按钮来调准角度并出击球杆。选择【开始游戏】之后可选择【倒计时模式】和【练习模式】进行玩台球游戏,另外还可以点击【排行榜】查看分数情况,倒计时模式是在一定的时间进行玩游戏,练习模式是对于初次玩台球游戏的玩家或者不熟练的玩家。WhatMessageConstantMainMenuViewGameActivityFailViewHighScoreWellcomeViewWinViewAboutViewChoiceViewHelpViewSoundControlViewBallBallGoT
7、hreadCueGameViewGameViewDrawThreadKeyThreadStrengthBarTableTimerTimeRunningThreadVirtualButtonCueAnimateThreadImageButtonExISwitchButtonSwitchButtonCollisionUtilColorUtilPicLoadUtilScreenScaleResultScreenScaleUtil 各个类功能清单文件名主要功能备注定义台球所需工具主体类Main方法Surface所需的常量类球杆变形按钮角度调整按钮AboutView,java关于界面选项菜单界面帮助界面
8、声音控制界面台球桌球运动球杆倒计时间游戏界面桌球运动画面监听触控按键线程类力度条球台计时器倒计时线程类虚拟按钮类游戏失败界面分数记录界面主界面欢送界面游戏胜利界面进行碰撞检测和物理计算工具类颜色工具类系统当前日期工具类图片工具类横竖屏幕工具类计算缩放情况工具类 抽象类WhatMessage的描述public class WhatMessage public static final int GOTO_WELLCOME_VIEW=0; /欢送界面 public static final int GOTO_MAIN_MENU_VIEW=1 ; /主菜单界面 public static final
9、int GOTO_GAME_VIEW=2;/游戏界面 public static final int GOTO_SOUND_CONTORL_VIEW=3; /声音控制界面 public static final int GOTO_WIN_VIEW=4;/胜利界面 public static final int GOTO_FAIL_VIEW=5;/失败界面 public static final int GOTO_HIGH_SCORE_VIEW=6; /排行榜界面 public static final int GOTO_HELP_VIEW=7; /帮助界面 public static fina
10、l int GOTO_ABOUT_VIEW=8; /关于界面 public static final int GOTO_CHOICE_VIEW=9; /选择界面 public static final int OVER_GAME=10; /游戏结束这个类主要是标识所有SurfaceView的常量,这些界面的常量用数字0至10表示的好处是:在后面的编程过程中更快捷,而且简单明了。界面设置public class AboutView extends ViewGroupPaint paint;/画笔引用Bitmap bgBitmap;/背景图片Bitmap bmp;/文字的图片float bmpx;
11、/文字位置public AboutView(GameActivity activity) super(activity);setWillNotDraw(false);paint=new Paint();/创立画笔paint.setAntiAlias(true);/翻开抗锯齿initBitmap();/初始化位图资源/确定View的大小Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) this.setMeasuredDimension(bgBitmap.getWidth(), bgBitma
12、p.getHeight();/确定各子控件的位置与大小,调用子控件的layout函数进行Overrideprotected void onLayout(boolean changed, int l, int t, int r, int b) /显示函数Overridepublic void onDraw(Canvas canvas) canvas.drawBitmap(bgBitmap, 0, 0, paint);canvas.drawBitmap(bmp, bmpx+Constant.X_OFFSET, Constant.BMP_Y+Constant.Y_OFFSET, paint);/加载
13、图片的方法public void initBitmap()bgBitmap=BitmapFactory.decodeResource(this.getResources(), R.drawable.help);bmp=BitmapFactory.decodeResource(this.getResources(), R.drawable.bmp0);bgBitmap=PicLoadUtil.scaleToFitFullScreen(bgBitmap, Constant.wRatio, Constant.hRatio);bmp=PicLoadUtil.scaleToFit(bmp, Consta
14、nt.ssr.ratio);/初始化图片的位置bmpx=(Constant.SCREEN_WIDTH-bmp.getWidth()/2;界面设置的类继承ViewGroup,使用onMeasure确定view大小、onLayo确定各个子控件的位置与大小,onDraw方法显示函数,initBitmao方法加载图片。监听器public class KeyThread extends Thread private boolean flag=true;GameView gameView;private int sleepSpan=40;private float changeSpeedTime=80f;
15、/改变速度的时间点public KeyThread(GameView gameView)this.gameView=gameView;Overridepublic void run()while(flag)if(!(gameView.keyState&0 x20)=0)/第6位是1,可以改变按下按钮时间gameView.btnPressTime+=;if(!(gameView.keyState&0 x1)=0)/和00001按位或,判断第1位是否为1,标志向左移if(gameView.btnPressTimechangeSpeedTime)/如果按键时间缺乏gameView.cue.rotat
16、eLeftSlowly();/将球杆慢速左转else/如果按键超过规定时间gameView.cue.rotateLeftFast();/将大炮快速左转else if(!(gameView.keyState&0 x2)=0)/和00010按位或,判断第2位是否为1,标志向右移if(gameView.btnPressTimechangeSpeedTime)/如果按键时间缺乏gameView.cue.rotateRightSlowly();/将球杆慢速右转else/如果按键超过规定时间gameView.cue.rotateRightFast();/将大炮快速右转try Thread.sleep(sl
17、eepSpan);/睡眠指定毫秒数 catch(Exception e) e.printStackTrace();/打印堆栈信息 public void setFlag(boolean flag) this.flag = flag;这监听器是起监听作用的线程类,这段代码是监听触控按键的线程类,这个线程是对球杆角度偏移进行控制。线程间通信Handler myHandler = new Handler()/处理各个SurfaceView发送的消息 public void handleMessage(Message msg) switch(msg.what) case WhatMessage.GOT
18、O_MAIN_MENU_VIEW: gotoMainMenuView(); break; case WhatMessage.GOTO_GAME_VIEW: gotoGameView(); break; case WhatMessage.GOTO_SOUND_CONTORL_VIEW: gotoSoundControlView(); break; case WhatMessage.GOTO_WIN_VIEW: gotoWinView(); break; case WhatMessage.GOTO_FAIL_VIEW: gotoFailView(); break; case WhatMessage
19、.GOTO_HIGH_SCORE_VIEW: gotoHighScoreView(); break; case WhatMessage.GOTO_WELLCOME_VIEW: gotoWellcomeView(); break; case WhatMessage.GOTO_HELP_VIEW: gotoHelpView(); break; case WhatMessage.GOTO_ABOUT_VIEW: gotoAboutView(); break; case WhatMessage.GOTO_CHOICE_VIEW: gotoChoiceView(); break; case WhatMe
20、ssage.OVER_GAME: goToOverView(); break; ;线程间的通信需要用到Handler来发送消息。线程之间的通信的原理是,线程通过Handler将消息发送出去,发出去的消息就会到进入到MessageQueue中,然后再通过Looper将消息循环的发送出去。是Messge对象的属性,起到标示作用。自定义按钮public class ImageButtonEx extends Button protected Bitmap btBitmap;protected boolean bButtonPressed=false;public ImageButtonEx(Cont
21、ext context)super(context);public ImageButtonEx(Context context,Bitmap btBitmap)super(context);this.btBitmap=btBitmap;setBackgroundDrawable(null); 自定义按钮的好处是,可以根据自己的喜爱和需要来绘制按钮,可以使你的游戏界面做得更漂亮,吸引群众的眼球。在这个游戏中的自定义按钮需要用到图形图像处理中的画布Canvas、画笔Paint和位图Bitmap。定时器/绘制时间的方法public void drawSelf(Canvas canvas,Paint
22、paint)int second=this.leftSecond%60;int minute=this.leftSecond/60;/绘制秒钟drawNumberBitmap(second,numberBitmaps,endX+Constant.X_OFFSET,endY+Constant.Y_OFFSET,canvas, paint);/绘制分隔符int secondLength=(second+).length()=1 ? (second+).length()+1 : (second+).length();float breakMarkX=endX-secondLength*numberW
23、idth-breakMarkWidth;float breakMarkY=endY;canvas.drawBitmap(breakMarkBitmap, breakMarkX+Constant.X_OFFSET, breakMarkY+Constant.Y_OFFSET,paint);/绘制时间分隔符图片/绘制分钟float miniteEndX=breakMarkX;float miniteEndY=endY;drawNumberBitmap(minute,numberBitmaps,miniteEndX+Constant.X_OFFSET,miniteEndY+Constant.Y_OFF
24、SET,canvas, paint); 数据存储/翻开或创立数据库的方法 public void openOrCreateDatabase() try ( /data/data/com.bn.d2.bill/mydb, /数据库所在路径 null, /CursorFactory SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY /读写、假设不存在那么创立 ); String sql=create table if not exists highScore + ( + score integer, + date va
25、rchar(20) + ); sld.execSQL(sql); catch(Exception e) Toast.makeText(this, 数据库错误:+e.toString(), Toast.LENGTH_SHORT).show(); /关闭数据库的方法 public void closeDatabase() try sld.close(); catch(Exception e)Toast.makeText(this, 数据库错误:+e.toString(), Toast.LENGTH_SHORT).show(); /插入记录的方法 public void insert(int sco
26、re,String date) try String sql=insert into highScore values(+score+,+date+); sld.execSQL(sql); sld.close(); catch(Exception e)Toast.makeText(this, 数据库错误:+e.toString(), Toast.LENGTH_SHORT).show(); /查询的方法 public String query(int posFrom,int length)/开始的位置,要查寻的记录条数 StringBuilder sb=new StringBuilder();/
27、要返回的结果 Cursor cur=null; openOrCreateDatabase(); String sql=select score,date from highScore order by score desc; cur=sld.rawQuery(sql, null); try cur.moveToPosition(posFrom);/将游标移动到指定的开始位置 int count=0;/当前查询记录条数 while(cur.moveToNext()&countlength) int score=cur.getInt(0); String date=cur.getString(1)
28、; sb.append(score); sb.append(/); sb.append(date); sb.append(/);/将记录用/分隔开 count+; catch(Exception e)Toast.makeText(this, 数据库错误:+e.toString(), Toast.LENGTH_SHORT).show();finallycur.close();closeDatabase(); /转换成字符,并返回return sb.toString(); /得到数据库中记录条数的方法 public int getRowCount() int result=0; Cursor cu
29、r=null; openOrCreateDatabase(); try String sql=select count(score) from highScore; cur=sld.rawQuery(sql, null); if(cur.moveToNext() result=cur.getInt(0); catch(Exception e)Toast.makeText(this, 数据库错误:+e.toString(), Toast.LENGTH_SHORT).show();finallycur.close();closeDatabase(); return result; 这个游戏中的数据
30、存储用到的是SQLite数据库。SQLite是一个开源的嵌入式关系数据库,它可以减少应用程序管理数据的开销,可移植性好,很容易使用,它本身很小,但却高效而且可靠。嵌入式数据库的一大好处是在程序内部不需要网络配置,也不需要管理。使用SQLite数据存储需要熟悉SQL语句的使用。使用SQLite数据库首先需要创立数据库,相关记录就会在数据库中。多线程 public void run() for(int i=0;itotalSleepTime/sleepSpan;i+) SurfaceHolder myholder=WinView.this.getHolder(); Canvas canvas =
31、myholder.lockCanvas(); try synchronized (myholder) render(canvas); finally if (canvas != null) myholder.unlockCanvasAndPost(canvas); try Thread.sleep(sleepSpan); catch(Exception e) e.printStackTrace(); 该run方法是实现Runnable 接口的。关键字synchronized用来与对象的互斥锁联系。当某个对象用synchronized修饰时,说明该对象在任一时刻只能有一个线程访问。当线程执行到s
32、ynchronized块结束时,需要释放对象锁。当在synchronized块中遇到break,return或抛出Exception,那么自动释放对象锁。信息提示Toast.makeText(this, 数据库错误:+e.toString(), Toast.LENGTH_SHORT).show();Toast(提示)是Android中用来显示提示消息的一种机制。Toast没有焦点且显示的时间有限,不会打断用户的当前操作,不能与用户交互,显示一段时间后会自动消失。显示时长有有两个:一个是Toast.LENGTH_SHORT短时间,另一种是Toast.LENGTH_LONG(长时间)。布局管理 此
33、次布局用到的是线性布局,排列方式是相对于 屏幕垂直排布,宽高占满整个 屏幕,文字大小的高是包裹内容,宽是占满 屏幕。设计小结 在本次课程设计中,我学到了很多的知识,我个人认为这个台球游戏编程需要一定的物理和数学根底,并且头脑要保持时刻清醒,要不然很容易绕晕。在对Android的学习上是我学会了怎么将学到的理论知识用到实践中去,改变了过去的学习方法和学习态度,找到了一门自己很喜欢的学科。在这次课程设计中本课程设计中,深深的感受到了一个人力量的薄弱,了解到了在完成一个完整的工程上团队的重要性,在实际的程序开发中,团队的力量往往比个人力量之和要大上很多,并且在今后的开发中,我们都将是以团队的形式展开
34、工作的,所以我们应该在现在学习的时候养成一种良好的团队精神,以为将来的开发打下一顶的根底。内部资料请勿外传9JWKffwvG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pD
35、x2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh
36、5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK
37、!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxG89AmUE9a
38、QGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmY
39、WpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5ux
40、Y7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ks
41、v*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#
42、&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNuGK8!z89AmYWpaz
43、adNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm
44、6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8
45、!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8
46、!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz84!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2
47、zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP
48、$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849
49、GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89A
50、mYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqvadNu#KN&MuWFA5uxY7JnD6YWRrWwcv
51、R9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Am
52、YWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjq
53、v$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7J
54、nD6YWRrWwcvR9CpbK!zn%Mz84!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3
55、tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tn
56、GK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%MadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*adNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGj
57、qv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWp
58、azadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYp
59、Eh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!z
60、n%Mz84!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深圳市少年宫scratch创意编程 科技生活01-汽车组装-教学设计
- 临床肿瘤学 考试题及答案
- 园艺师环境保护与节能技术试题及答案
- 共享单车 授权合同样本
- 农业职业经理人考试农业机械化应用与试题答案
- 2024年福建事业单位考试全攻略试题及答案
- 精细备考安排福建事业单位考试试题及答案
- 打破陈规福建事业单位考试试题及答案
- 全面复习2024年园艺师考试试题及答案
- 推动高水平对外开放新举措
- 05 Maxwell-RMxprt参数化与优化设置
- 人卫版内科学第九章白血病(第1-2节)
- TSG 81-2022 场(厂)内专用机动车辆安全技术规程
- 【教学课件】飞行校验课程
- 挡墙施工危险源辨识及风险评价
- 七下:欧洲西部
- 互调分析仪基础知识及使用
- 净水器项目计划书(参考模板)
- 学校经费支出预算表
- 花篮式悬挑脚手架施工方案(附计算书)内容
- 公共行政学》课程综述(2)
评论
0/150
提交评论