




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与工程学院集中性实践教学计划书( 2013 2014学年第1学期)课程名称: 专业实习 姓 名: 学 号: 2010081303 专 业: 计算机科学与技术 班 级: 计科103班 课程负责人: 云健 指导教师: 孟佳娜,张恒博 教学起止周:第 10至 12教学周 摘 要 近年来,java作为一种新的编程语言,以其可移植性和平台无关性等优点,得到了广泛地应用,特别是java与万维网的完美结合,使其成为网络编程和嵌入式编程领域的首选编程语言。本设计报告阐述了连连看游戏的分析与设计的全过程,并在论文中相应的位置插入了图片、流程图以及一些具有技巧性的程序代码,更加清晰的描述了该游戏是如何实现的。连连看游戏有编写简单容易上手等特点,非常适合人们在完成工作的时候适当的娱乐要求。这些小游戏大都是以益智和娱乐为目的,不仅给紧张工作的人们以放松,还可以让人们的大脑得到开发。连连看游戏采用java语言开发,以myeclipse为开发平台。游戏主界面是基于swing(图形用户界面)的开发,使得游戏界面简单清晰。并调用了其中的一些函数,完成了事件的触发功能。希望通过这次开发设计出的连连看小游戏,给大家的生活带来一点乐趣。 游戏通过定义动态的二维数组,根据一定的算法实现规定的路径判断。关键词:连连看游戏;算法设计;路径判断;java实习计划:星期二星期三星期四星期五第十周观看实习要求,确立项目。查找image图片设计大致轮廓正式起草方案,总结第十一周编程编程编程调试,总结一周的工作第十二周修改完善,检查可能存在的bug撰写实习报告验收,答辩目 录摘 要2一、绪论12.1 技术可行性12.2 经济可行性22.3 操作可行性2三、课程设计题目任务描述和要求23.1 任务描述23.1.1 界面23.1.2程序33.2 设计要求及目的4四、需求分析44.1 方案选择4在概要设计阶段,主要有两中方案可供选择:44.2功能描述54.3 功能需求54.4 功能模块及思路54.5 系统需求分析总结7五、设计方案85.1 总体设计85.2 详细设计95.2.1 游戏界面设计95.2.2鼠标点击控制95.2.3 路径判断的设计9六、 实现106.1 游戏界面106.2 游戏各功能及代码12一、绪论目前中国国内网络游戏市场正在日趋成熟,随着市场的逐步完善,各种形式的电子游戏也争相登场,成功游戏不断涌现。比较成熟的项目主要有:反恐精英(cs)、星际争霸、魔兽争霸2、fifa2003、帝国时代、fifa2004等等。这时也出现了越来越多的网络小游戏,休闲类项目包括网络围棋、中国象棋、四国军棋、桥牌、麻将、拱猪、斗地主、拖拉机、连连看等。 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以作为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发多种版本的的“连连看”。随着flash应用的流行,网上出现了多种在线flash版本“连连看”,如“水晶连连看”“果蔬连连看”等等。 2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏。二、 可行性分析2.1 技术可行性此次编写的连连看游戏是建立在myeclipse8.5开发环境下,java中swing为连连看游戏的设计提供了便利,此次设计主要是运用的java语言编程与实现的。在此开发环境中是完全可行的。连连看游戏是涉及到图形界面处理的,其中图片的导入可以通过开发软件的图片导入控件直接导入,但是相应的操作需要对界面进行重绘,图1.1是界面控制处理的流程图:开始button随机生成图片界面button布局选中相同的两张图片不符合规则重新选择隐藏button图片消除完毕结束ynyn图2.1 图形界面控制2.2 经济可行性一个游戏的实现,需要考虑玩家花费的人力物力,不计算能够回收多少资金就不是一个好的项目负责人。一个新想法如果不经过项目负责人的决策是不可能立项的。所以,在进行游戏设计的过程中,一定要把项目的规模和市场效果考虑进去,否则游戏再好,如果不适合市场的需要也是徒劳 。通过花费、时间和人力的综合考虑,连连看游戏的设计只需要一台装有开发软件java的计算机和一个具有相关知识的开发者,是有经济可行性的。 2.3 操作可行性从技术上来考虑,这是可以实现的。需要你熟悉c#与 以及sql server 2008并能够简单的应用,那样留言簿就能够实现了。但对于用户来说他要的仅仅是能够与大家交流,分享心情的平台。他并不会在乎你用什么技术去实现以及你花费多少精力去完成的。因此在操作上必须简单,这是完全能够去实现的。因此在操作上是完全可行的。 此次课程设计的连连看游戏是基于myeclipse8.5之上的,只要你的电脑安装了此软件就可以玩连连看游戏了.三、课程设计题目任务描述和要求3.1 任务描述3.1.1 界面其界面如下(图3.1.1):图.2程序游戏过程,如果玩家在规定的时间内消完则提示玩家胜利,如果在一定时间内图片没有消完则提示玩家时间到,游戏失败。经过对游戏的初步分析,连连看游戏包含了如下规则: 1、条件:程序的关键在于判断用户连续点击的两个图案能否消除。两个图片可以消除的条件有两个: u 图片相同 u 图片间连线的转角数不得超过2 。 2、操作:第一次使用鼠标点击游戏界面中的牌,该牌此时为被选中,以特殊方式显示;再次以鼠标点击其他牌,若该牌与被选中的牌图案相同,且把第一个牌到第二个牌连起来,中间的直线不超过 3 根,则消掉这一对牌,否则第一个牌恢复成未被选中状态,而第二个牌变成被选中状态。在规定的时间内将游戏界面上的牌全部消除掉。则游戏胜利 ,在规定时间,界面上的牌仍未全部消掉。则游戏失败3.2 设计要求及目的 通过本次课程设计,并在实际运用中学习和熟悉java程序开发的基础过程,进一步熟悉掌握java程序设计语言的基础内容、基本技能和方法,同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。 1. 主要是能通过开发“连连看”这个小游戏,提高自己java程序设计编程的实际能力。2. 进一步熟悉掌握java程序设计的基础内容, java多线程编程等。3. 大体了解怎样用java来编写小游戏,增强我们实践能力和创新精神的综合培养。 4. 设计过程中,对整个游戏所实现的功能进行详细的设计以及对存在的问题及解决办法进行最终确定;而后完成游戏的程序编写,并优化;最后,写出设计本游戏的详细文档说明,并作课程设计汇报。四、需求分析4.1 方案选择 在概要设计阶段,主要有两中方案可供选择: 一、所有的图片都是按约定好的种类数和在同一区域的重复次数随机出现,并且每张图片的的出现次数为偶数 ,时间会有限制,每一关的图片数量或种方案的设计思想,时间是不同的,这样就增加了游戏的难度。二、在同一区域中,图片出现的种类数和重复次数是可以由玩家选择的,时间由游戏约定。不过玩家选择的种类数和重复次数必须是偶数才可以顺利完成游戏,否则游戏虽然可以正常运行,但无法完成游戏。在第一种方案中,由于出现的图像按种类数和重复次数都由软件约定,这样就缺乏玩家自主选择的空间,只是在玩系统已经是设定好的游戏,不能改变什么,这样就在无意中降低了玩家在游戏的过程中乐趣,最后致使玩家放弃继续玩下去。我们参考了网络上的连连看游戏,考虑到游戏的娱乐性。所以我们放弃第一种方案的设计思想,参考网络上流行的连连看的游戏,设计出第二种方案。4.2功能描述本设计采用单机模式,当在规定的时间内消完全部的图片则当前关卡通过,如果在规定的时间内没能消完所有的图片则游戏结束,重新开始新游戏。游戏规则是模仿普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张想同图片用三根以内的直线能连在一起,就可以消去;否则,不予处理。游戏过程,如果玩家在一定的时间内消完则提示玩家胜利;如果在一定时间内图片没有消完则提示玩家时间到。4.3 功能需求1、 设计游戏界面2、 游戏基本功能3、 在游戏无解决方案时重排4.4 功能模块及思路4.4.1 解决游戏区域问题 这个问题最简单,但是却是最花时间的。正所谓:万事开头难。刚开始想了好多控件来实现。比如label,panel,button等等,2后来在参考文献中发现一个扫雷游戏可以通过image控件来画图。因此在几天之后才解决这个最早的最简单的也是最头疼的问题。 4.4.2 获取图片位置的思路 首先,最基本的就是用button代替图片进行布局了,然后将图片set到button用来做背景图片。这里采用最简单的方法数组。考虑到图片是多行多列的格式。所以采用二维数组(数组名为game_grid方式来控制比较直观,并且为了程序容易解读,统一在不同过程中用名为i和j的变量来分别表示行列。程序开始时给数组中的各个元素赋初值为0,即表示没有图片。 然后数组控制整个游戏区域,游戏区域最外围为空白区域,即相关元素的值为0。这样就可以保证游戏刚开始后,第二层显示的图片之间的相连路径处理时就没有阻碍了。 这个游戏考虑到玩家对图片的爱好不同,故可以自由修改。将数组game_grid的数据与图片名匹配(如:game_grid的数据为125则图片名为1,2.25与之一一对应),玩家则只需要将自己喜欢的图片改变图片名字去替换就可以了。其button背景图片的方法是用imageicon来存储图片信息然后set到button中。这个思路的具体算法可以后面的3.2.2的第二个步骤中得以体现。 4.4.3 分类判断法 这里实质上是一种递归的思想,要判断图片a与图片b能否通过一条有n个转角的路径相连,可以转化为判断能否找到图片c,c与a能直线相连,且c与b能用一条有n-1个转角的路径相连。若这样的图片c存在,那么a与b就可以通过一条有n个转角的路径相连。 根据转角数不得超过2个的规则,我们可以分为转角数分别为0个、1个、2个这三种情况分别讨论。3 (1)0转角连通(直线连通):两个图片的纵坐标或横坐标相等,且两者连线间没有其他图案阻隔。 (2)一个转角连通:其实相当于两个图片的横向与纵向的直线相交只有一个焦点。 图4.4.2一个转角连通 (3)两个转角连通: 判断图片a与图片b能否经过有两个转角的路径连通实质上可以转化为判断能否找到一个点c,这个c点与a可以直线连通,且c与b可以通过有两个转角的路径连通。若能找到这样一个c点,那么a与b就可以经过有两个转角的路径连通 。 判断是否经两个转角连通的算法需要做两个方向上的扫描:水平扫描和垂直扫描。 水平判断。如下图所示,为了判断a,b能否通过2个转角连通,则从a开始在水平方向上向左右扫描,并判断经过的点能否与b点经过1个转角连通。显然c点能与b点经1个转角连通,故a,b能经2个转角连通。 图4.4.3两个转角连通的判断 垂直判断。如下图所示,为了判断a,b能否通过2个转角连通,则从a开始在垂直方向上下扫描,并判断经过的点能否与b点经过1个转角连通。显然c点能与b点经1个转角连通,故a,b能经2个转角连通。图4.4.4两个转角连通的判断 4.5 系统需求分析总结通过对现行连连看系统的调查与分析,本系统的结构基本合理,系统功能基本能够达到windows小游戏的要求。本系统的输入边界是用户进行鼠标事件操作,图片全部消除,游戏结束,并且游戏胜利4。通过对连连看游戏规则以及相关算法的分析,本系统总的数据量较小,规模不大,适合于在普通微机或小型机上运行。五、设计方案5.1 总体设计本设计采用单机模式,当在规定的时间内消完全部的图片则当前关卡通过,如果在规定的时间内没能消完所有的图片则游戏结束,重新开始新游戏。游戏规则是模仿普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。在两张想同图片用三根以内的直线能连在一起,就可以消去;否则,不予处理。连连看游戏其结构图如下:开始结束胜利失败网格划分图片导入连连看游戏 界面操作客户区游戏区菜单响应图片响应 图5.1 游戏结构图 5.2 详细设计5.2.1 游戏界面设计 游戏界面的设计对于编程人员来说,可能算是最简单的问题,但是,对于大多数玩家来说,他可能不会关心你是怎么实现的,玩家一开始选择玩这个游戏,他可能更加关心的界面是否美观,是不是能让他有耳目一新的感觉。在本次课程设计中,主要用 java中swing界面编程来实现5。5.2.2鼠标点击控制鼠标点击控制主要表现在游戏的功能控制上,外部的鼠标、键盘对游戏操作的相应,连连看游戏主要是鼠标点击对游戏操作的作用,例如:鼠标单击开始、结束选项对游戏的控制6。5.2.3 路径判断的设计连连看游戏的所要求的是:两个目标之间连接线的折点不超过两个。(连接线由x轴和y轴的平行线组成) 那么分析一下连接的情况可以看到,一般分直线连接、一个折点、两个折点三种情况(其理论在第二章已详述)。其满足游戏规则:那么目标图片将顺利的消除。否则,继续游戏。5.2.4 游戏详细过程流程图 如图5.2.4所示: 图5.2.4 游戏过程流程图六、 实现6.1 游戏界面1、游戏初始界面 如下图6.1所示图6.1 基本界面图游戏完成界面 如图6.2所示图6.2 完成界面6.2 游戏各功能及代码package lianliankanwcg;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class lianliankan extends jframeprivate static final long serialversionuid = 1l;public lianliankan()lianliankanjpanel llk=new lianliankanjpanel();add(llk);class lianliankanjpanel extends jpanel implements actionlistener,itemlistener private static final long serialversionuid = 1l;private int map=new int1010;private int kinds,randomx,randomy,randomx1,randomy1;private int coordinatex,coordinatey,coordinatex1,coordinatey1;private point linestart=new point(0,0);private int clicktimes;private int jishushengyu;private int fruitkinds=4;private int score;private int guanshu;loudou ld=new loudou();jbutton blockbutton=new jbutton1010;choice difficultchoice = new choice();jbutton newgamebutton=new jbutton(开始);jbutton reload=new jbutton(刷新);imageicon aicon = new imageicon(image/sucai1.jpg);imageicon bicon = new imageicon(image/sucai2.jpg);imageicon cicon = new imageicon(image/sucai3.jpg);imageicon dicon = new imageicon(image/sucai4.jpg);imageicon eicon = new imageicon(image/sucai5.jpg);imageicon ficon = new imageicon(image/sucai6.jpg);imageicon gicon = new imageicon(image/sucai7.jpg);imageicon hicon = new imageicon(image/sucai8.jpg);imageicon iicon = new imageicon(image/sucai9.jpg);imageicon jicon = new imageicon(image/sucai10.jpg);imageicon k1icon = new imageicon(image/sucai11.jpg);imageicon licon = new imageicon(image/sucai12.jpg);imageicon micon = new imageicon(image/sucai13.jpg);imageicon nicon = new imageicon(image/sucai14.jpg);imageicon oicon = new imageicon(image/sucai15.jpg);imageicon kicon = new imageicon(image/kongbai.jpg);public lianliankanjpanel()this.setlayout(null);newmap();for(int i=0;i10;i+)for(int j=0;j10;j+)blockbuttonij=new jbutton();add(blockbuttonij);blockbuttonij.addactionlistener(this);blockbuttonij.setbounds(j*40, i*40, 40, 40);difficultchoice.add(傻瓜); difficultchoice.add(普通); difficultchoice.add(中等);difficultchoice.add(高难);newgamebutton.setbounds(map0.length*40+30, 20, 60, 20);reload.setbounds(map0.length*40+30, 60, 60, 20);difficultchoice.setbounds(map0.length*40+30, 100, 60, 20);difficultchoice.additemlistener(this);newgamebutton.addactionlistener(this);reload.addactionlistener(this);ld.setbounds(map0.length*40+30, 240, 70, 160);this.add(ld);this.add(newgamebutton);this.add(reload);this.add(difficultchoice); public void paintcomponent(graphics g) /画画函数super.paintcomponent(g);g.drawstring(得分: +score, 430, 160);g.drawstring(第 +(guanshu+1)+ 关, 430, 200);for(int i=0;i10;i+)for(int j=0;j10;j+)switch (mapij) case 0:blockbuttonij.seticon(kicon);break;case 1:blockbuttonij.seticon(aicon);break;case 2:blockbuttonij.seticon(bicon);break;case 3:blockbuttonij.seticon(cicon);break;case 4:blockbuttonij.seticon(dicon);break;case 5:blockbuttonij.seticon(eicon);break;case 6:blockbuttonij.seticon(ficon);break;case 7:blockbuttonij.seticon(gicon);break;case 8:blockbuttonij.seticon(hicon);break;case 9:blockbuttonij.seticon(iicon);break;case 10:blockbuttonij.seticon(jicon);break;case 11:blockbuttonij.seticon(k1icon);break;case 12:blockbuttonij.seticon(licon);break;case 13:blockbuttonij.seticon(micon);break;case 14:blockbuttonij.seticon(nicon);break;case 15:blockbuttonij.seticon(oicon);break;default:break;public void chongzai() /重载函数 jishushengyu=0;for(int i=1;i9;i+)for(int j=1;j0)jishushengyu+;int map1=new int1010;this.map=map1;for(int i=0;i0);maprandomy1randomx1=kinds;do randomx=(int)(math.random()*1000)%8+1;randomy=(int)(math.random()*1000)%8+1; while (maprandomyrandomx0); maprandomyrandomx=kinds;repaint();public void newgame() /重新开始游戏 for(int i=0;i10;i+)for(int j=0;j10;j+)blockbuttonji.setenabled(true);int map=new int1010;this.map=map;newmap();ld.settimes(0);score=0;guanshu=0;ld.setdijiguan(guanshu);public void guoguan() /所有方块清除 进行下一关 int jishushengyu2=0;for(int i=1;i9;i+)for(int j=1;j0)jishushengyu2+;if(jishushengyu2=0)int map=new int1010;this.map=map;newmap();ld.settimes(0);guanshu+;ld.setdijiguan(guanshu);reload.setenabled(true);public void newmap() /新建地图for(int i=0;i0);maprandomy1randomx1=kinds;do randomx=(int)(math.random()*1000)%8+1;randomy=(int)(math.random()*1000)%8+1; while (maprandomyrandomx0);maprandomyrandomx=kinds;public boolean linecheck(int y1,int x1,int y2,int x2) /判断是否在一条直线上if(y1=y2) if(x2x1)int j=0;for(int i=0;i0)j+;if(j=0)return true;if(x1x2)int j=0;for(int i=0;i0)j+;if(j=0)return true;if(x1=x2)if(y2y1)int j=0;for(int i=0;i0)j+;if(j=0)return true;if(y1y2)int j=0;for(int i=0;i0)j+;if(j=0)return true;return false;public boolean zhejiaocheck(int y1,int x1,int y2,int x2) /判断能否折角相连if(linecheck(y1,x1,y2,x1)&linecheck(y2,x1,y2,x2)&mapy2x1=0) return true;if(linecheck(y1,x1,y1, x2)&linecheck(y1,x2,y2,x2)&mapy1x2=0) /一条线上return true;return false;public boolean liangcizhejiaocheck(int y1,int x1,int y2,int x2) /判断能否两次折角相连for(int i=0;i9;i+)if(x2+1+i=0&mapy2x2-1-i=0&linecheck(y2, x2, y2, x2-1-i)if(zhejiaocheck(y1, x1, y2, x2-1-i)return true;if(y2+1+i=0&mapy2-1-ix2=0&linecheck(y2, x2, y2-1-i, x2)if(zhejiaocheck(y1, x1, y2-1-i, x2)return true;return false;public boolean ifcantouch(int y1,int x1,int y2,int x2) /能否在两次折角内连接 if(y1=y2&(x1=x2+1|x1=x2-1) /相邻 return true;if(x1=x2&(y1=y2+1|y1=y2-1)return true;if(linecheck(y1,x1,y2, x2) /一条线上return true;if(zhejiaocheck(y1, x1, y2, x2) /折角上return true;if(liangcizhejiaocheck(y1, x1, y2, x2) /两次折角return true;if(liangcizhejiaocheck(y2, x2, y1, x1) return true;return false;public void clearblock() /清除两个一样的 符合条件的方块if(clicktimes=2)if(mapcoordinatey1coordinatex1=mapcoordinateycoordinatex&!(coordinatex1=coordinatex)&(coordinatey1=coordinatey)if(ifcantouch(coordinatey1, coordinatex1, coordinatey, coordinatex)if(mapcoordinatey1coordinatex10)score=score+10;mapcoordinatey1coordinatex1=0;mapcoordinateycoordinatex=0;guoguan();public void actionperformed(actionevent e) if(ld.gettimes()=55)for(int i=0;i10;i+)for(int j=0;j10;j+)blockbuttonji.setenabled(false);if(e.getsource()=reload)chongzai();reload.setenabled(false);if(e.getsource()=newgamebutton)newgame();reload.setenabled(true);for(int i=0;i10;i+)for(int j=0;j10;j+)if(e.getsource()=blockbuttonji)clicktimes+;linestart.move(i,j);if(clicktimes%2=1)coordinatex1=i;coordinatey1=j;if(clicktimes%2=0)coordinatex=i;coordinatey=j;this.requestfocus();clearblock();repaint();public void itemstatechanged(itemevent e) /选择难度 if(e.getsource()=difficultchoice)string selected = difficultchoice.getselecteditem(); if(selected=傻瓜) fruitkinds=4;newgame();repaint(); else if(selected=普通) fruitkinds=8;newgame();repaint(); else if(selected=中等) fruitkinds=12;newgame();repaint(); else if(selected=高难) fruitkinds=15;newgame();repaint(); public static void main(string args) /主函数 lianliankan frame=new lianliankan();frame.settitle(美女连连看 by: d g q );frame.setdefaultcloseoperation(jframe.exit_on_close);frame.setlocation(440, 100);frame.setsize(540,440);frame.setvisible(true);class loudou extends jpanel implements runnableprivate static final long serialversionuid = 1l;private int dijiguan;int remaintimes=0;int x1=0;int y1=35;int x2=60;int y2=155;thread nthread1;jlabel overjlabel=new jlabel(gamesta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安陆市2024-2025学年八年级下学期语文期中测试试卷
- 安徽省阜阳市太和县2023-2024学年高二上学期第一次月考化学试题及答案
- 浦东新区2025学年度第二学期教学质量检测
- 浙江省杭州市青春中学2025-2026学年下学期八年级历史与社会、道德与法治期中试卷(无答案)
- 2025-2026学年苏科版八年级数学上册第一次月考检测卷(含答案)
- 道路运输土方合同范本
- 闲置东西收购合同范本
- 托管联盟经营合同范本
- 入股养殖公司合同范本
- 单位电脑采购合同范本
- 2025至2030全球及中国人丙种球蛋白行业产业运行态势及投资规划深度研究报告
- 骨科疾病临床诊疗思维
- 医疗卫生专项整治实施纲要
- YY 0267-2025血液净化体外循环系统血液透析器、血液透析滤过器、血液滤过器及血液浓缩器用体外循环血路/液路
- 高空作业考证试题及答案
- 鼻部美学设计合集
- 技术入股合作协议书
- 私人诊所治疗协议书
- 新浙教版七年级上册初中科学全册教案(教学设计)
- 雷达装备智能化发展-全面剖析
- GMP认证药厂固体车间及中药材提取车间平面图
评论
0/150
提交评论