




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳工程学院课程设计报告摘要第1章绪论1.1项目背景世界的发展,社会的进步,人们的物质生活和精神生活都得到了很大的飞跃,尤其是在近十几年里,随着计算机技术的飞速发展,游戏的开发和设计似乎日新月异。可是人类在进步、国家在进步、世界在进步,那么必然会带来新的产物,由前一个阶段向后一阶段过度。在新的条件下,有必要实现更加完美的可视编程技术,提高娱乐效果。本系统从对推箱子的基本原理——地图变换的算法,着眼于为Java的编程开发。在计算机飞速发展的今天,将计算机这一信息处理利器应用于游戏娱乐已是势必所然,而且这也将为人们的娱乐生活带来前所未有的改变,它可以带来意想不到的效益,同时也会为游戏开发的飞速发展提供无限潜力。采用Java开发平台带来了明显的经济效益和社会效益。主要体现在:极大的提高了游戏的运行效率。基于游戏开发的全面自动化,可以减少设计过程中的漏洞,可以节约不少开支,增加企业收入。这样可使游戏开发商有更大的发展空间,被人们和社会所认同,在社会上有它的位置和地位。对于游戏设计的操作自动化和信息化,全面提高了游戏的水平,让玩家员很容易的实现操作的自由化和视觉的舒适化。对于客户的管理,更明确和准确化,既保证了客户的安全,又利于管理者进行统计和查询。对于旅馆服务管理,很方便的提供客户必要的服务,让顾客得到满足。具体信息的处理有强大的数据库做后盾,它里面保存大量且重要的信息,实现了旅馆管理的数据化,因为现在可以说是数据的时代,其实就是所谓的信息时代。1.2编写目的随着我国改革开放的不断深入,经济飞速的发展,游戏行业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的开发技术是万万不行的,游戏的开发的全面速度化、技术化则是其中极其重要的部分。为了加快游戏开发的步伐,提高游戏开发的效率,开发技术已变得十分重要。推箱子游戏是目前比较流行的游戏之一,许多流行的操作系统或者是软件都带有这种游戏,它既能锻炼人们思维的严谨性还能给人们带来快乐,我个人也很喜欢这种游戏,因此,我就利用这个机会以面向对象程序设计方法将这个游戏设计了出来。当然我也借鉴了前人的一些经验技巧。但是由于时间仓促加之个人经验有限,游戏设计的有些粗糙,希望老师能够给予谅解,学生在以后的学习中将不断学习、完善。1.3项目开发环境本游戏对系统的硬件环境要求:CPU:PentiumIII600以上内存要求:600MB以上内存剩余资源:128MB以上软件环境:JDK1.6及其以上版本沈阳工程学院课程设计报告第2章相关技术第2章相关技术2.1系统涉及语言Java语言是一种跨平台、适合于分布式计算机环境的面向对象的程序设计语言。具体来说它有如下特点:简单性、面向对象、分布式、平台无关性、解释性、可靠、安全、可移植、多性能、动态性等性能。2.2开发工具本系统开发时使用的是稳定性较强的的WindowsXP中文专业版,Java程序设计的开发环境是JDK5.0。Java的开发方式大体上分为两种:一种方式是JDK(JavaDevelopKits)工具集,这是一种命令行的方式。另一种开发环境是(IntergratedDevelopmentEnvironment,IDE)。采用JDK开发Java程序,能够很快理解各部分程序代码之间的关系,有利于理解Java面向对象程序设计的思想。JDK的一个显著特点就是随着Java的版本的升级而升级,而它的缺点也是非藏明显的就是大规模的企业级Java开发非常困难,不能进行复杂的Java软件开发,而且也不利于团体协同开发。沈阳工程学院课程设计报告第3章系统分析第3章系统分析系统分析是一个描述系统开发各个早期阶段的词汇,是一种问题解决技术,它将一个系统分解成各个组成部分,目的是研究各个部分如何工作、如何交互,以实现其系统目标。3.1需求分析随着科学技术的发展,人们的生活水平越来越繁忙,在充满竞争的社会条件下,压力往往带给人们很多烦恼,所以合理的解压方式称为现代人的共同心愿。为了给大家提供一个合理的解压平台,我们在本次课程设计中为大家开发了一款适合休闲娱乐的小游戏,在娱乐的同时也给了上班族们一种思考问题的另一个空间。推箱子游戏主要分为初始化模块、画图模块、移动箱子模块、移动小人模块、功能控制模块。推箱子游戏功能模块图如图3.1所示。图3.1功能模块图研究方案:(1)以现代软件工程原理和思想指导整个课题的开发过程,要经过系统可行性分析、需求分析、概要设计、详细设计、编码、调试维护和安装实施等步骤。(2)要有详细的设计说明书;(3)每一模块的功能要很清晰;(4)本游戏能够正常的运行,能较好得完成预定的功能;(5)游戏要有完整的帮助文件,供玩家能方便的操作。3.2可行性分析1)引言在当今社会,市场竞争的程度非常强盛,而且随着“蚁族”人群的大幅度上升,人么的生活节奏变得越来越紧凑,压力越来越沉重,所以在这种环境下,为人们解决加压问题成为一个焦点话题。在本游戏系统中,我们本着“帮助人们减压解负”的宗旨,为广大用户提供一个广阔的思考空间。2)可行性研究的前提(1)要求a.功能:能够准确快速的记忆,操作简便,我们使用上下左右方向键控制画面动作。通过对矩阵的选择来改变地图和画面。在游戏界面的右上方显示的功能键依次为“重来”、“悔一步”、“第一关”、“上一关”、“下一关”、“最终关”、“选关”、“音乐关(开)”、“更换音乐”。重来:重新开始当前关;悔一步:返回上一移动状态(可以连续返回多步);第一关:游戏系统默认开始关为第一关,此按钮可以将关从其它关跳跃到第一关。上一关:返回到当前关的上一关;下一关:返回到当前关的下一关;最终关:跳跃到最后一关,即第五十关;选关:选择想要玩的关;音乐关(开):默认为开,点击自动关闭音乐和开启音乐。更换音乐:从不同的音乐中选取适合玩家的音乐。同时我们添加了菜单选项,在菜单栏里有“选项”、“设置音乐”、“帮助”菜单。“选项”菜单里包括“重新开始”、“下一关”、“上一关”、“悔一步”、“第一关”、“最终关”、“退出”等功能。b.性能:稳定快速,实时控制。c.完成期限:5天(学习)+5天(开发试行)。(2)目标难易适中,适合大多数人休闲娱乐,本游戏注重入门简单,易于理解,开发智力,提高人们思考问题能力和想象能力,改善人们的思考方式,拓展人们的思维方式,本着全心全意为客户着想,至始至终贯穿我们的宗旨。(3)条件、假定和限制运行环境:兼容当前主流操作系统Windows2003/XP/Vista硬件环境:***以上计算机。开发软件:JAVA等该系统的预期寿命为×年最早投入运行的时间为23.2.1进行可行性研究的方法通过调查问卷的方式对推箱子游戏进行全面的分析《对现行的推箱子游戏的满意度调查》等。评价尺度费用不能超过X万元,信息更新的维护为重点开发时间的长短不超过3周,使用起来容易上手。投资及效益分析为了新系统的开发,设计和维持运行而需要的各项经费开支,在起始阶段有所增加,但是“效益”也将在短期实现。支出(1)系统开发费用a.人员费用:本系统开发期为3天,试运行2天。开发期需要开发人员3人,试运行期需要开发人员1人。人员费用为x万元。b.设备费:本系统所需的硬件设备费用为x万元。c.不可预见费:按开发费用的15%计算。(2)其他一次性支出a.研究(需求的研究和设计的研究)——包括在开发费用中b.检查费用和技术管理性费用c.培训费、旅差费以及开发安装人员所需要的一次性支出(3)非一次性支出列出在该系统生命期内按月或按季或按年支出的用于运行和维护的费用,包括:a.设备的租金和维护费用;b.软件的租金和维护费用;c.数据通讯方面的租金和维护费用;d.人员的工资、奖金;e.房屋、空间的使用开支;f.公用设施方面的开支;g.保密安全方面的开支;h.其他经常性的支出等。(4)收益提高工作效率;减少工作人员;以减少开支。同时在用户下载的时候收取适当的费用来维持本游戏的开发工作。结论经过一系列的各个不同方面的可行性分析,通过对玩家的问卷调查得出的结果,取得需要解决的问题的基本的一致看法,开发小组的开发方案的到批准,老师同意,开发工作开始进行。3.3系统设计目标根据前面所做的需求分析及用户的需求可以得出,推箱子游戏实施时,应达到以下目标:①界面设计友好、美观。②数据存储安全、可靠。③信息分类清晰、准确。④操作简单,且易于记忆。⑤音乐自选,以便适应玩家心理需求。⑥自动选择关卡。3.4功能结构图根据游戏需求分析得出的结论,我们设计了五大功能模块初始化模块、画图模块、移动箱子模块、移动小人模块、功能控制模块。具体构架如图3.1所示。图3.1功能结构沈阳工程学院课程设计报告总结第4章系统详细模块设计与实现4.1推箱子的界面框架按钮推箱子的界面设计是由我组李龙辉同学完成的,界面的设计要求是,提供多种的按钮与菜单,为使用者提供方便的使用,例如:选项、音乐的设置、关卡的调配、以及对自己走过的步骤进行悔步。设计其中包括了按钮的大小,界面的可见性,以及一些特别细微的部分如:4.1.1界面框架与按钮设计的代码界面设计中包括了,所有你所直观见到的图形界面,窗体的大小,下拉菜单中的功能菜单,使得玩家能够很直观的见到所有游戏中的功能。界面中有菜单,包括:“选项”、“设置音乐”、“帮助”。按钮包括:“重来”、“悔一步”、“第一关”、“上一关”、“下一关”、“最终关”、“选关”、“音乐”。详细代码:classmainFrameextendsJFrameimplementsActionListener,ItemListener{ privatestaticfinallongserialVersionUID=1L; JLabellb; JLabellb2; JButtonbtnrenew,btnlast,btnnext,btnchoose,btnfirst,btnover,btnmuc,btnback; mainpanelpanel; Soundsound; JComboBoxjc=newJComboBox(); MenuItemrenew=newMenuItem("重新开始"); MenuItemback=newMenuItem("悔一步"); MenuItemlast=newMenuItem("上一关"); MenuItemnext=newMenuItem("下一关"); MenuItemchoose=newMenuItem("选关"); MenuItemexit=newMenuItem("退出"); MenuItemqin=newMenuItem("琴萧合奏"); MenuItempo=newMenuItem("泡泡堂"); MenuItemguang=newMenuItem("灌篮高手"); MenuItemnor=newMenuItem("默认"); MenuItemeye=newMenuItem("eyesonme"); MenuItemabout=newMenuItem("关于推箱子..."); mainFrame() { super("推箱子v2.0"); setSize(720,700); setVisible(true); setResizable(false); setLocation(150,10); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Containercont=getContentPane(); cont.setLayout(null); cont.setBackground(Color.black); Menuchoice=newMenu("选项"); choice.add(renew); choice.add(last); choice.add(next); choice.add(choose); choice.add(back); choice.addSeparator(); choice.add(exit); renew.addActionListener(this); last.addActionListener(this); next.addActionListener(this); choose.addActionListener(this); exit.addActionListener(this); back.addActionListener(this); Menusetmuc=newMenu("设置音乐"); setmuc.add(nor); setmuc.add(qin); setmuc.add(po); setmuc.add(guang); setmuc.add(eye); nor.addActionListener(this); qin.addActionListener(this); po.addActionListener(this); guang.addActionListener(this); eye.addActionListener(this); Menuhelp=newMenu("帮助"); help.add(about); about.addActionListener(this); MenuBarbar=newMenuBar(); bar.add(choice); bar.add(setmuc); bar.add(help); setMenuBar(bar); nor.setEnabled(false); lb=newJLabel("推箱子",SwingConstants.CENTER); lb2=newJLabel("更换音乐",SwingConstants.CENTER); add(lb); add(lb2); lb.setBounds(100,20,400,20); lb.setForeground(Color.white); lb2.setBounds(625,500,55,20); lb2.setForeground(Color.white); btnrenew=newJButton("重来"); btnback=newJButton("悔一步"); btnlast=newJButton("上一关"); btnnext=newJButton("下一关"); btnchoose=newJButton("选关"); btnfirst=newJButton("第1关"); btnover=newJButton("最终关"); btnmuc=newJButton("音乐关"); add(btnrenew); add(btnlast); add(btnnext); add(btnchoose); add(btnfirst); add(btnover); add(btnmuc); add(btnback); btnrenew.setBounds(625,100,80,30); btnrenew.addActionListener(this); btnback.setBounds(625,150,80,30); btnback.addActionListener(this); btnfirst.setBounds(625,200,80,30); btnfirst.addActionListener(this); btnlast.setBounds(625,250,80,30); btnlast.addActionListener(this); btnnext.setBounds(625,300,80,30); btnnext.addActionListener(this); btnover.setBounds(625,350,80,30); btnover.addActionListener(this); btnchoose.setBounds(625,400,80,30); btnchoose.addActionListener(this); btnmuc.setBounds(625,450,80,30); btnmuc.addActionListener(this); jc.setBounds(625,530,80,20); jc.addItem("默认"); jc.addItem("琴萧合奏"); jc.addItem("泡泡堂");-* jc.addItem("灌篮高手"); jc.addItem("eyesonme"); jc.addItemListener(this); cont.add(jc); sound=newSound(); sound.loadSound(); panel=newmainpanel(); add(panel); panel.Tuixiangzi(panel.level); panel.requestFocus(); validate(); }4.1.2界面框架与按钮设计的图形效果一款好的游戏界面会大大提升游戏的经济效益,本着为上班族“减压解负的原则”,我们设计界面按照直观、简洁、明朗的设计风格,采用手动布局和添加选择框的方式设计游戏的主界面。主界面如图4.1所示。图4.1主界面4.2推箱子游戏的游戏性与音乐性其主要功能是给用户一个友好的游戏界面,游戏中包括50关的地图,推箱子这个游戏的50个地图是事先完成的,将所有地图上面的信息以数字的形式储存在一个20*20的二维数组当中;然后,每一关都按照数组重新绘制地图,这样就拥有了50张地图。4.2.1地图的绘制地图的绘制通过创建数组,并将图片插入到数组中来改变每一项地图。在控制地图的变换过程中,通过使用栈技术来控制动作变化,地图变换。具体算法:classReadmap{ privateintlevel,mx,my; privateint[][]mymap=newint[20][20]; FileReaderr; BufferedReaderbr; Stringbb=""; int[]x; intc=0; Readmap(intk) { level=k; Strings; try { Filef=newFile("maps\\"+level+".map"); r=newFileReader(f); br=newBufferedReader(r); } catch(IOExceptione) { System.out.println(e); } try { while((s=br.readLine())!=null) { bb=bb+s; } } catch(IOExceptiong) { System.out.println(g); } byte[]d=bb.getBytes(); intlen=bb.length(); int[]x=newint[len]; for(inti=0;i<bb.length();i++)x[i]=d[i]-48; for(inti=0;i<20;i++) { for(intj=0;j<20;j++) { mymap[i][j]=x[c]; if(mymap[i][j]==5) { mx=j; my=i; } c++; } } } int[][]getmap() { returnmymap; } intgetmanX() { returnmx; } intgetmanY() { returnmy; }}4.2.2地图的绘制形成与地图的效果图地图以二维数组的形式进行存储的,不同的数字有着不同的含义。地图二维数组的形式与地图的效果图如下面所示地图的存储形式地图的生成效果图在地图当中不同的数字代表不同的含义我组当时是将0~9解读成为不同的图形与图像。“0”代表“地图以内的空位”;“1”代表“地图中的边缘”;“2”代表“地图以内的空位非点位”;“3”代表“地图中的箱子”;“4”代表“点位”;“5”代表“小人面部朝下”;“6”代表“小人面部朝左”;“7”代表“小人面部朝右”;“8”代表“小人面部朝上”;“9”代表“箱子已经到达点位”;4.2.3音乐调用在本游戏系统中,我们设计音乐为可选择性,这样玩家可以根据个人爱好选择合适的音乐放松自己的心情。对音乐的选择算法我们采用的是使用监听器,通过对选择音乐时间的监听,完成播放不同的音乐。音乐调用代码如下:classSound{ Stringpath=newString("musics\\"); Stringfile=newString("nor.mid"); Sequenceseq; Sequencermidi; booleansign; voidloadSound() { try{ seq=MidiSystem.getSequence(newFile(path+file)); midi=MidiSystem.getSequencer(); midi.open(); midi.setSequence(seq); midi.start(); midi.setLoopCount(Sequencer.LOOP_CONTINUOUSLY); } catch(Exceptionex) { ex.printStackTrace(); } sign=true; } voidmystop() { midi.stop(); midi.close(); sign=false; } booleanisplay() { returnsign; } voidsetMusic(Stringe) { file=e; }}4.3小人与箱子移动的算法移动中包括正移动,与“悔一步”的负移动。正移动:小人上下左右的移动是由本组咸英智组员所做,归结起来上下左右是一个判断的算法,判断都是通过判断小人前面是否是空位箱子或者是墙,如果没有,就移动;有的话,据判断箱子是否可以移动,最后讨论箱子推过的,小人移动,以及被遮挡住点的图形变化,重新绘制地图,算法判断完毕。传出数据记录在,一个栈当中,以备“悔一步”使用。负移动:通过记录在栈中的数据判断,前一步是的移动方向以及移动使用过的算法,逆向将代码重新运行,同时绘制地图以达到前一步的状态。4.3.1移动的代码在本游戏系统中,给人的视觉感受应该是能感受都动作的变化,逼真的人物动作会使系统更有效。通过控制人物、箱子、空地、障碍物在数组中的位置的改变来控制移动动作。物移动代码:voidmoveup(){ if(map[manY-1][manX]==2||map[manY-1][manX]==4) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4; else map[manY][manX]=2; map[manY-1][manX]=8; repaint(); manY--; mystack.push(10); } elseif(map[manY-1][manX]==3) { if(map[manY-2][manX]==4) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4; else map[manY][manX]=2; map[manY-1][manX]=8; map[manY-2][manX]=9; repaint(); manY--; mystack.push(11); } elseif(map[manY-2][manX]==2) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4; else map[manY][manX]=2; map[manY-1][manX]=8; map[manY-2][manX]=3; repaint(); manY--; mystack.push(11); } else { map[manY][manX]=8; repaint(); } } elseif(map[manY-1][manX]==9) { if(map[manY-2][manX]==4) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4; else map[manY][manX]=2; map[manY-1][manX]=8; map[manY-2][manX]=9; repaint(); manY--; mystack.push(11); } elseif(map[manY-2][manX]==2) { if(maptmp[manY][manX]==4||maptmp[manY][manX]==9) map[manY][manX]=4; else map[manY][manX]=2; map[manY-1][manX]=8; map[manY-2][manX]=3; repaint(); manY--; mystack.push(11); } else { map[manY][manX]=8; repaint(); } } if(map[manY-1][manX]==1) { map[manY][manX]=8; repaint(); }}4.3.2栈的应用推箱子中的数据存储是很重要的,不然无法进行“悔一步”的操作。本系统采用栈的存储方式来存储并控制人物、箱子的移动和地图的变换。悔一步操作让玩家有了反悔的一步,这节省玩家的时间,避免因错位导致重新开始。栈的代码如下所示:elseif(e.getSource()==btnback||e.getSource()==back){ if(panel.isMystackEmpty()) JOptionPane.showMessageDialog(this,"您还未移动!!!"); else { switch(panel.back()) { case10: panel.backup(10); break; case11: panel.backup(11); break; case20: panel.backdown(20); break; case21: panel.backdown(21); break; case30: panel.backleft(30); break; case31: panel.backleft(31); break; case40: panel.backright(40); break; case41: panel.backright(41); break; } } panel.requestFocus();}elseif(e.getSource()==nor){ jc.setSelectedIndex(0);}elseif(e.getSource()==qin){ jc.setSelectedIndex(1);}elseif(e.getSource()==guang){ jc.setSelectedIndex(3);}elseif(e.getSource()==eye){ jc.setSelectedIndex(4);}elseif(e.getSource()==po){ jc.setSelectedIndex(2);}booleanisMystackEmpty(){ returnmystack.isEmpty();}intback(){ return(Integer)mystack.pop();}voidremove(){ mystack.removeAllElements();}
总结通过这两周的课程设计我充分了解了理论与课程设计相结合的重要性,有充分的理论基础上必须有实际上的应用,在实际的应用中才能发现个种问题,再灵活的应用理论知识去解决它们。在这两周的学习过程中,我们不仅能够把以前所学知识联系起来,并且还学会了一些新的知识。虽然我们小组有明确的分工,但并不意味着我们的各个设计部分是相互独立的,相反的,我们每一步进行的设计都是互相协调进行的,每一个人对设计的各个阶段都相当了解,因为每一步设计都需要了解整体设计的思想,而且彼此间也有相互的联系。此次的课程设计中给我体会最深的是我们的协作关系,我们是一个整体,所以我们齐心协力只为一个目标而共同努力,正所谓众人拾柴火焰高,我们有很好的团队意识,我们不会因为我们的自身原因而担误课程设计的进程!在这两周的课程设计中,我们先是查阅一些相关的资料,在资料中,明确了我们应该干什么,也就是定好了题目,并做好了需求分析。我们开始具体分工,并商量各自应该留怎样的接口。在编写程序的过程中,我们不断协调和商量,应该怎么做更好,当然也遇到了一些问题,比如界面的设计怎么样让人们可以接受,用什么样的布局,配什么样的背景;视频程序和背景音乐怎样实现,需要什么样的包;在连接数据库的时候,怎么能提高系统的查询速度,并节约资源。虽然我们被问题包围,但是我们深信一点,没有实现不了的程序,我们商量,查资料,请教老师,问题随着我们的努力迎刃而解。我们从中学到,没有过不去的坎,就是看你想不想过。在课程设计的的过程中是累,但是我们觉的过的很充实,不仅学到了知识,而且锻炼了我们的意志。在此期间通过对JAVA设计的系统训练,使我基本上达到了这周的课程设计目的,并且懂得了要想学好课,除了要有扎实的基础知识的功底深厚外,还需要有一定的实践动手能力,操作能力。我们要学习别人的长处,改掉自己的缺点,要懂得用网络,现在的网络包括的知识很多,就是看你能不能把握住,有没有那个心。在网络上要善于讨论,在论坛里向那些高人学习,学习他们学习的方法和思想。虽然课程设计已经完事,可是我们觉得应该继续努力,自己做点东西,增加自己的学习经历和学习经验,不断的深入,了解它的内部,借助它创造财富。课程设计之所以进行的如此顺利,得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全的防护措施总结计划
- 2024年上海市珠峰中学教师招聘笔试真题
- 2024年广东省交通运输厅下属事业单位真题
- 学习如何进行软件项目的风险评估试题及答案
- 2024年湖州房地产交易有限公司招聘笔试真题
- 2024年河南省事业单位联考笔试真题
- 前景分析的年度方法计划
- 2024年广东深圳小学全国选聘教师笔试真题
- 仓库内耗管理的有效对策计划
- 团队目标与个人目标的统计划
- 四年级下册英语教案-Unit 4 There are seven days in a week Lesson 22 |人教精通版
- 售后服务合同范本英文
- 《大学生创业基础系列课程》课件-第6课-创业机会-2学时
- 通信线路高风险作业施工安全操作须知样本
- 高等数学课件第一章函数与极限
- 屋顶-坡屋顶构造(建筑构造)
- 医学简易呼吸器操作及并发症和处理措施课件
- 肾性高血压患者的护理查房课件
- 卡氏儿童孤独症评定量表(CARS)
- 腹部体格检查-幻灯课件
- 高中数学核心概念的教学研究课件
评论
0/150
提交评论