实训报告样本
- 格式:doc
- 大小:234.00 KB
- 文档页数:21
实训工作报告(精选8篇)实训篇1一、实习(实训)报告一般由标题和正文两部分组成1.标题:标题可以采取规范化的标题格式,基本格式为,“关于实习(实训)报告”。
2.正文:正文一般分前言,主体,结尾三部分。
(1)前言:主要描述本次实习(实训)的目的意义、大纲的要求及接受实习(实训)任务等情况。
(2)主体:实习(实训)报告最主要的部分,详述实习(实训)的基本情况,包括:项目、内容、安排、组织、做法,以及分析通过实习(实训)经历了哪些环节,接受了哪些实践锻炼,搜集到哪些资料,并从中得出一些具体认识、观点和基本结论。
(3)结尾:可写出自己的收获、感受、体会和建议,也可就发现的问题提出解决问题的方法、对策;或总结全文的主要观点,进一步深化主题;或提出问题,引发人们的进一步思考;或展望前景,发出鼓舞和号召等。
二、对实习(实训)报告的要求1.按照大纲要求在规定的时间完成实习(实训)报告,报告内容必须真实,不得抄袭。
学生应结合自己所在工作岗位的工作实际写出本行业及本专业(或课程)有关的实习(实训)报告。
2.校外字数要求:不少于800字每周,累计实习3周及以上的不少于20xx字。
用A4纸书写或打印(正文使用小四号宋体、行距1.5倍。
其余排版要求以美观整洁为准)。
校内实习(实训)报告字数要求可适当减少,具体要求由学院依据课程特点规定。
3.实习(实训)报告撰写过程中需接受指导教师的指导,学生应在实习(实训)结束之前将成稿交实习(实训)指导教师。
时光匆匆,一个星期的实训在不知不觉中已经度过,在这段日子里,和同学老师度过了难忘的时光,尤其是和自己团队里的队友们,我们一起发现问题,一起解决问题。
其实,我们在成长。
这次的实训让我们在以后的磨练中可以有更多的知识发展自己。
更重要的是让我们从现实的角度去考虑问题,从更加实际的角度去认识问题,这是在大学里学不到的,即使到了社会上也要经历很长时间的摸爬滚打才能弄清楚的。
里面包含着很多的艰辛,同时也身受着收获。
实训的报告(精选16篇)实训的报告(精选16篇)在生活中,报告有着举足轻重的地位,不同的报告内容同样也是不同的。
那么大家知道标准正式的报告格式吗?下面是小编帮大家整理的实训的报告(精选16篇),欢迎阅读,希望大家能够喜欢。
实训的报告篇1为期三周的CAD实训即将结束,在这期间我的CAD技能得到了很大的提升,也让我在理论的基础上以实践锻炼自己的动手操作能力,做到学以致用、会学会用、学以活用的能力。
实习的任务标准就是在规定的时间内,允许的误差范围内做到数据的严谨、准确。
开始我们学习用天正画建筑平面图,在以前的实训周时,我们接触的是CAD,而这次我们学习了一种更快捷的制图工具——天正CAD。
你不必一根一根的画定位轴线,只需在"绘制轴网"中输入轴间距就会自动生成轴网,而且标注尺寸也非常方便,你不用设置多线一段一段的画墙体,只需设置内墙外墙墙厚将墙体选中就会自动生成墙体.总而言之,以前要用半天才能画完的平面图一节课就能画完了。
经过这次的学习我总结了在画平面图的步骤是:1.绘制轴网,两点轴标2.修剪轴网,单线变墙3.插入门窗,门窗标注4.插入楼梯、坡道5.绘制阳台、台阶、散水,标注细部尺寸和标高6.插入剖切符号、索引符号,附上文字7.插入图框,指北针,在标题栏中写入文字8检查后保存,打印成电子稿。
在绘图的过程中我也遇到了很多问题,如组合门窗时门和窗编码要一致,不然组合不上,门窗尺寸标注不上。
平面图画完后再画立面图和剖面图就容易多了,因为平面图画完后在文件布图里的工程管理里面把平面图的名称输入里面就会自动生成立面图和剖面图,不过要注意的是在选准基准点的时候要选同一个点,不然的话生成的立面就会错层,然后再根据要求选用你要的哪种门窗,生成立面的时候多余的线太多,得一点一点的删掉,剖面图在加楼梯时扶手时总是加不上去,并且生完立面再生成剖面时总是生成的不完整,下面的墙线延伸时总延不上,可能在刚接触这个软件不熟悉,问题也比较多,但这丝毫不影响我对它的积极性。
实训的报告实训的报告(通用19篇)在经济发展迅速的今天,报告有着举足轻重的地位,其在写作上有一定的技巧。
相信许多人会觉得报告很难写吧,下面是小编为大家整理的实训的报告,仅供参考,欢迎大家阅读。
实训的报告篇1实训内容:计算机组装与维护实训地点:学校一机房实训目的:通过计算机的组装,认识计算机的硬件和结构,了解计算机的整个组装过程和注意事项。
能够根据安装要求和安装标志正确安装CPU和内存条;能够将安装好CPU和内存条的主板正确、牢固的安装到机箱中;能够正确安装电源盒并能区分各组电源;能正确连接主板电源;能在机箱中固定好硬盘、光驱和软驱;能正确连接硬盘、光驱、软驱的数据线和电源线;能在对应的扩展槽中正确牢固的安装显卡、声卡和网卡;能将机箱面板上的指示灯、开关、前置USB 接口等连线正确的连接到主板上;能将显示器、键盘和鼠标正确的连接到主机箱上;能顺利、熟练地从主机箱中拆卸计算机的各个配件。
一.实习要求:识别计算机的各个部件,能自己动手组装一台计算机。
掌握CPU的接口类型和安装方法及内存插槽的类型和内存条的安装方法;掌握主板的安装方法和安装注意事项;了解电源的分类和ATX电源的特点;掌握硬盘、光驱、软驱的安装方法、数据线连接方向的辨别、电源线的安装标记的辨认等;了解扩展槽的种类,显卡、声卡、网卡的接口种类。
理解各连接线接头上英文标签的含义。
了解拆卸微机的注意事项。
二.安装:1.安装主板:首先打开机箱,去掉侧盖。
将主板的I/O端口朝机箱后部,主板的定位孔对准机箱上的主板之撑,用螺栓固定主板。
2.安装CPU:首先将主板Socket插座旁的把手轻轻向外拨一点,再向上拉起把手到垂直位置,将CPU的第一脚(缺孔引脚),插入CPU。
应注意圆角对准后插入,以防损坏,并压回把守,卡入把手定位卡固定。
3.安装风扇:将风扇安装到CPU上,把风扇低弹性挂钩挂在Socket插座两端的挂钩上,将风扇的三孔电源插头插在主板的风扇电源插座上(一般在CPU附近)。
实训报告(精选10篇)实训报告(精选10篇)随着人们自身素质提升,报告有着举足轻重的地位,其在写作上具有一定的窍门。
在写之前,可以先参考范文,以下是小编为大家收集的实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。
实训报告篇1一、实训时间:20xx年下学期15-16周二、实训地点:商务学院实训楼318室模拟实训办公室。
三、实训目的:为了掌握基本的做账,登记各种账簿。
四、实训内容:编制记账凭证、登记各种明细分类账、现金银行存款日记账、登记总分类账及编制财务会计报表。
五、实训步骤:1、根据审核无误的原始凭证登记记账凭证。
2、在编制记账凭证时同时也对记账凭证进行编号。
3、将已登好的原始凭证附在所属记长凭证的后面并粘贴好。
4、对已登好的记账凭证和原始凭证进行核对,查看是否金额有误,内容是否不符。
5、根据审核无误的记账凭证逐日逐笔登记现金日记账、银行存款日记账,做到日清月结。
6、根据审核无误的记账凭证登记各种明细分类账。
7、在登记账簿时应注意在记账凭证上做好已记账的标志。
8、根据记账凭证登记总分类账。
9、进行对账。
10、根据核对无误的总分类账编制财务会计报表。
六、实训心得体会:经过这两周的实训让我掌握了记账的基本程序,同时也让我锻炼自己的动手操作能力,使我更深一步了解到里面的乐趣,让我对它有了更一步的了解,也让我学了很多,更重要的是让我发现了自己的不足之处,它使我全面系统地掌握会计操作一个完整的业务循环,即从期初建账,原始凭证和记账凭证的填制、审核,账簿的登记、核对,错账的更正,会计处理程序的运用到会计报表的编制,从而对企业会计核算形成一个完整的概念。
也让我了解到这半年来到底学到了些什么,使更加我爱好这个专业。
实训报告篇2课程名称:计算机辅助设计实训实训时间:20xx年1月11日-20xx年1月16日班级:机械132姓名:赵浩男学号:xx311503239实训目的:通过实训,可以了解计算机辅助设计课程的基本原理,在已掌握的机械制图知识的上,进一步培养空间想象和构思能力,同时还具备平面设计的基本能力以及严谨细致的工作作风和认真负责的工作态度;更多的是掌握计算机平面图形的设计能力,为今后在专业课程和工作设计中需要的计算机制图能力奠定良好的基础。
实训报告万能模板五篇实训报告万能模板五篇I实训报告万能模板篇一一.实习目的1.了解铣削加工的工艺特点及加工范围。
2.了解常用铣床的组成、运动和用途,了解铣床常用刀具和附件的大致结构与用途。
3.熟悉铣削加工的加工方法和测量方法,了解用分度头进行简单分度进行的加工。
4.在铣床上正确安全工件、刀具并完成对平面、沟槽等的铣削。
二.实习设备1、铣床是用铣刀对工件进行铣削加工的机床。
铣床除能铣削平面、沟槽、轮齿、螺纹和花键轴外,还能加工比较复杂的型面,效率较刨床高,在机械制造和修理部门得到广泛应用在铣床上可以加工平面(水平面、垂直面)、沟槽(键槽、T形槽、燕尾槽等)、分齿零件(齿轮、花键轴、链轮乖、螺旋形表面(螺纹、螺旋槽)及各种曲面。
此外,还可用于对回转体表面、内孔加工及进行切断工作等。
2、铣刀------按用途区分有多种常用的型式。
①圆柱形铣刀:②面铣刀:③立铣刀:④三面刃铣刀⑤角度铣刀:⑥锯片铣刀;铣刀的结构分为4种。
①整体式:②整体焊齿式: ③镶齿式:④可转位式:3、铣床的维护与保养:1、班前保养:对重要部位进行检查。
擦净外露导轨面并按规定润滑各部。
空运转并查看润滑系统是否正常。
检查各油平面,不得低于油标以下,加注各部位润滑油。
2、班后保养:做好床身及部件的清洁工作,清扫铁屑及周边环境卫生。
-擦拭机床清洁工、夹、量具。
各部归位。
三.实习零件的加工自上周一开始,我们开始了铣工实训课,由于学校的设备限制,我们分为早班和晚班轮流实习,每3人一组开,加工一个“ V'型件,完成等分零件的实训课程!试训步骤:1上课第一天,王老师带我们熟悉了铣床的结构,让我们明白了铣床的构造,各个部位的用途,加工范围等2我们每人领到一个不规则的长方体铸铁快,我们经测量。
发现有加工余量3我们找一个最不规则的面进行加工,尽量少铣,将其铣平,4再以这个面为基准面开始铣削其对面,保证厚度为29mm5再加工较长的两个面,使使其宽度保证为456最后我们开始铣削工件的长度,铣削完后保证六面体的尺寸为29X 45X 557接着,我们在老师的指导下在六面体的长度方向其中两个相邻角铣出两个9X 9X 45°的斜面,在铣削斜面的时候我们将工件倾斜45度,用万能角度尺保证角度,再经计算后进行加工。
实训报告样本为了更好的了解会计在实际工作中的工作内容,以便于实际与理论相结合,也能更好的适应社会的要求,我们开设了成本会计实训课程。
一、实训目的:为了让我们更好的了解会计在实际工作中的工作内容,以便于实际与理论相结合,也更能够适应社会的要求,了解成本核算在实际工作的重要性,成本对一个企业来说是至关重要的,也是我们每个人必须要掌握的一门重要的课程,通过综训希望我们都能够对会计有一个更新更深层次的认识,让我们在工作中更具有实际的动手能力,更能懂得会计作账的基本流程。
二、实训内容及其大概过程:l实训内容1.各种成本费用的归集与分配。
生产成本的归集与分配是本次实训的重头戏,是中心环节。
成本归集与分配过程实际上就是成本计算过程。
在本次实训中,我们按照成本核算的基本程序,先后对材料费用、职工薪酬、其他费用、辅助生产费用、制造费用、废品损失、完工产品和在产品等七个板块进行了练习。
a、材料费用方面。
用于生产产品的原材料及主要材料,通常是按照产品分别领用的,可根据领料凭证直接计入各种产品成本的“直接成本”项目,但有时一批材料为几种产品共同使用,应根据一定的分配方法分配计入各产品成本。
b、人工费用方面。
应按成本项目进行归集,生产工人的计入生产成本,车间管理人员的计入制造费用,厂部管理部门的计入管理费用等,若生产多种产品,应按一定的方法进行分配后分别计入各成本项目。
c、辅助生产费用。
是为企业的基本生产服务而发生的费用,最终要分摊到各受益单位。
在本次实训中,主要运用交互分配法对供气车间和机修车间发生的生产费用进行分配,这里用的方法相对来说难度比前面的大,不过最重要的是求分配率。
交互分配法分配辅助生产费用要分两次进行:(1)交互分配:以(总费用/总劳务量)作为分配率在辅助生产车间内部进行分配。
(2)对外分配:以[(总费用+转入-转出)/对外劳务量]作为分配率在辅助车间以外的各受益单位之间进行分配。
d、制造费用的分配。
将在生产环节发生的制造费用按一定的方法(工时比例、定额材料比例、直接材料比例等)分配计入各有关产品的基本生产成本项目中。
实训实习报告5篇()实训实习报告精选1 我在大学最后阶段,选择进入社会锻炼,到公司中磨砺自身。
我所学的专业是物流专业,所以在选择实习工作时我侧重的也是物流方面的工作。
为了能够找到一份合适的物流工作我为此付出了很多努力。
我选择自主实习,所以实习工作就比较麻烦,几十份简历投入到招聘网站上如同石沉大海,没有一点反应,我并不放弃,最终经过了一周的努力终于找到了一份好工作。
面试成功过后我就进入到了公司上班,开始了实习工作,接触到了物流相关的工作。
我一开始进入物流公司,并没有直接到工作岗位上工作,而是要到各个物流中转站锻炼,熟悉物流各个工序,与我一同进入公司的一共有五个人,我们被分配给不同的部门。
刚开始的时候因为对工作不了解,但是又学过相关的知识,先入为主的做。
犯了很多错误,之后开始虚心请教并且学习,终于改变了很多,也慢慢适应了工作。
之后我开始学习物流订单管理,很多业务,不但要保证订单准确,还要进行审核,有些客户的在写地址的时候不详细,或者因为地址问题,货物送错了地方,最后都需要修改,这不但要锻炼我们的工作能力也锻炼我们效率,好几次都因为粗心导致派送错误,之后的赔偿都是由我来完成。
工作考验人,也锻炼人,如果不能在工作中及时进步,不能符合公司的要求,就会被辞退,为了尽快的适应工作,我不得不小心工作,认真做好基础任务,虽然效率慢了很多,但是犯错的概率极大的减少了,这让我知道了工作的方向,我也有了继续工作的底气。
我虽然不是公司正式一员,但我从来没有忘记自己要完成的任务,每天按时上班下班,做好安排的工作,不能耽搁时间。
在我们物流行业中,时间就是一切,大量的商品信息都需要通过云计算来提高工作效率同时,整合个方面的工作,虽然我负责的只是一小部分,但是依然需要继续提高工作效率,让工作做的更快。
我们都有师傅带我们工作,同时也辅助我们学习,按照公司的要求我们转正后就可以自己工作,我因为工作出问题多,经常被师傅责备,虽然有些难受,但是自己犯的错误就必须尽早改正,不然是不可能把工作完成。
实训报告万能模板六篇实训报告万能模板六篇一通过这次实训,我收获了许多,一方面学习到了很多以前没学过的专业学问与学问的应用,另一方面还提高了自己动手做工程的力量。
本次实训,是对我力量的进一步熬炼,也是一种考验。
从中获得的诸多收获,也是很珍贵的,是特别有意义的。
实训是一个让我把书本上的理论学问运用于实践中的好时机,原来,学的时候感慨学的内容太难懂,现在想来,有些其实并不难,关键在于理解。
在这次实训中还熬炼了我其他方面的力量,提高了我的综合素养。
首先,它熬炼了我做工程的力量,提高了独立思索问题、自己动手操作的力量,在工作的过程中,复习了以前学习过的学问,并把握了一些应用学问的技巧等。
其次,实训中的工程作业也使我更加有团队精神。
从那里,我学会了下面几点找工作的心态:一、连续学习,不断提升理论修养。
在信息时代,学习是不断地吸取新信息,获得事业进步的动力。
作为一名青年学子更应当把学习作为保持工作乐观性的重要途径。
走上工作岗位后,我会乐观响应单位号召,结合工作实际,不断学习理论、业务学问和社会学问,用先进的理论武装头脑,用精良的业务学问提升力量,以广博的社会学问拓展视野。
二、努力实践,自觉进展角色转化。
只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。
同样,一个人的价值也是通过实践活动来实现的,也只有通过实践才能熬炼人的品质,彰显人的意志。
必需在实际的工作和生活中潜心体会,并自觉的进展这种角色的转换。
实训报告万能模板六篇二在实习中,我严格根据实训规程进展操作。
做为一名初出茅庐的一般大学生,我不会放松对自己的要求,我盼望用自己一开头的学习热忱来对待日后的每一项任务工作。
在这次实训期间,虽然常常感到很苦,很累,但苦中有乐,累中好玩,也都表现的特别地乐观努力仔细。
这次实训内容主要就是机器修理工作,但我获益不浅,感慨良多。
我感受最深的,有如下几点:其一,实训是个人综合力量的检验。
要想优秀完成工作,除了办公室根底学问功底深厚外,还需有肯定的实践动手力量,操作力量,应付突发故障的力量,还要对办公室中常用软件都能娴熟操作。
实训报告实训报告模板(精选15篇)在不断进步的时代,报告的用途越来越大,我们在写报告的时候要注意逻辑的合理性。
那么什么样的报告才是有效的呢?以下是小编帮大家整理的实训报告模板,欢迎阅读,希望大家能够喜欢。
实训报告模板1学院系部班级姓名学号日期目录一、实训的基本要求 (3)二、实训纲要 (4)三、实训报告的内容(一)酒精擦浴 (4)(二)生命体征的测量 (5)(三)氧气吸入疗法 (6)(四)鼻饲法 (7)(五)导尿术 (8)(六)大量不保留灌肠法 (9)(七)给药法 (10)(八)静脉输液与输血方法 (11)(九)抢救技术 (12)(十)护理文件记录 (13)四、见习日志 (17)五、问卷调查表 (18)实训的'基本要求(一)实训前准备1.了解实训目的、操作步骤及注意事项。
2.复习有关的理论知识,充分理解实训的意义。
做到心中有数,以提高实训课的学习效果。
(二)实训期间1.遵守规则,服从指导,认真执行实训室守则,严格遵守操作规程。
2.服装整齐,仪表符合要求,正确操作,认真听取指导教师的讲解,注意观察示教过程;按操作规程正确使用实训仪器,注意安全,爱护护理模型人,节省消耗性实训物品。
3.应积极参与实训,并执行三查七对及无菌技术操作的原则。
4.讲究卫生,实训仪器的摆放要整齐、清洁、有序。
(三)实训结束1. 整理实验用品,清理病床单元。
2.认真书写实训报告,按时送交指导教师评阅。
实训报告模板2一、实习目的金工实习是多数东莞理工学院学生的重要实践性教学环节,学生通过金工实习接受最基础的工业训练,了解工业生产的基础知识,了解自己所学专业和制造业有什么关系,初步培养学生的劳动观点、生产观念、职业道德、安全意识和务实创新精神。
二、实习时间及概述在12月24日到12月28日,我们在学校进行了为期5天的金工实习,期间我们在实习中心进行了车、钳、数控铣、数控车、铸、焊、激光加工、电加工以及生产安全等工种的操作训练。
实训报告模板10篇实训报告是在学习进程中,通过实验中的视察、分析、综合、判定,照实地把实验的全进程和实验结果用文字情势记录下来的书面材料。
那么,实训报告到底要怎么写呢?以下是作者整理的实训报告模板10篇,欢迎大家鉴戒与参考!实训报告模板篇1这次实习,除了让我对商业企业的基本业务有了一定了解,并且能进行基本操作外,我觉得自己在其他方面的收获也是挺大的。
作为一位一直生活在单纯的大学校园的我,这次的实习无疑成为了我踏入社会前的一个平台,为我今后踏入社会奠定了基础。
第一,我觉得在学校和单位的很大一个不同就是进入社会以后必须要有很强的责任心。
在工作岗位上,我们必须要有强烈的责任感,要对自己的岗位负责,要对自己办理的业务负责。
如果没有完成当天应当完成的工作,那职员必须得加班;如果不谨慎显现了毛病,也必须负责纠正。
其次,我觉得工作后每个人都必须要坚守自己的职业道德和努力提高自己的职业素养,正所谓做一行就要懂一行的行规。
在这一点上我从实习单位同事那里深有体会。
比如,有的事务办理需要工作证多是自己认识的人,他们也会要求对方出示证有所微词时,他们也总是耐心的说明为何必须得这么做。
现在商业企业已经纳入正规化管理,所以职员的工作态度问题尤为重要,这点我有亲身感受。
最后,我觉得到了实际工作中以后,学历并不显得最重要,主要看的是个人的业务能力和交际能力。
任何工作,做得时间久了是谁都会做的,在实际工作中动手能力更重要。
因此,我体会到,如果将我们在大学里所学的知识与更多的实践结合在一起,用实践来检验真谛,使一个本科生具有较强的处理基本实务的能力与比较系统的专业知识,这才是我们实习的真正目的。
很感谢实习单位给我这个这么好的实习机会,让我学习很多、成长很多、收获很多。
实训报告模板篇2通过这次实训对这门做好网页,并不是一它包括网页的选题、内容采集整理、图片的处理、页面的排版设置、背景及其整套网页的色调等很多东西。
所以我得出一下总结:一、准备资料和挑选符合目的主题的合适素材做网页当然要收集、准备资料。
《Java实训》设计报告扫雷游戏专业:计算机网络技术班级:09-22学号:02姓名:宋少博石家庄科技信息职业学院信息工程系2011年5月31日扫雷游戏一、项目需求Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。
本章的课程设计使用Java 语言编写一个与其类似的扫雷游戏。
具体要求如下:(1) 扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。
单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。
(2) 选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。
(3) 用户要揭开某个方块,可单击它。
若所揭方块下有泪,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。
(4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。
用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。
(5) 扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。
(6)用户可以选择标记疑问的方块,用可以勾选游戏菜单下的标记(或者用快捷键alt+G 然后M)即可,此时双击右键并可出现“?”标记。
另有颜色选项,当用户勾选此项时,游戏将以最低图像像素来显示。
(7)如果用户需要即使提示声,并可选中声音选项,此时将听到计时的卡塔声。
当用户点中雷时,将有爆炸声产生,胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。
1.2 需实现的主要功能(1)用户可以自定义级别并且可以任意输入雷数;(2)具有计时功能,即显示用户完成移动盘子所花费的时间;(3)用户可以选择是否有音效;(4)自动保存扫雷英雄榜;二.总体设计本系统共包括3个java源文件和4个图像文件。
1.类之间的关系如图1.1所示。
图1.1 类之的关系2.java 源文件及其功能如表1所示。
3.图像文件Bomb.gif :地雷方块上的图标。
question.gif :疑惑探雷是否正确。
bomb_big.gif :触雷时方块上的图标。
flag.gif :探雷标记。
三、详细设计1.主类Main (1)成员变量(见表2)表2表1 源文件及其功能(2)成员变量(见表3)表3(3)源代码见文件Main.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;/*主类*/public class Main{public static void main(String args[]){(new MainBomb()).show();}}2.挖雷游戏 MainBomb(1)成员变量(见表4)(2)方法见(表5)(3)源代码见文件MainBomb.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;/*窗口及算法实现类*/class MainBomb extends JFrame implements ActionListener,MouseListener{public JTextField text;public Label nowBomb,setBomb;public int BlockNum,BombNum;//当前方块数当前雷数public Icon icon_bomb = new ImageIcon("Bomb.gif");//踩雷public Icon icon_bomb_big = new ImageIcon("bomb_big.gif"); //踩雷标记public Icon icon_flag = new ImageIcon("flag.gif");//雷标记public Icon icon_question = new ImageIcon("question.gif"); //疑惑是否有雷public JButton start = new JButton(" 开始 ");public Panel MenuPamel = new Panel();public Panel mainPanel = new Panel();public Bomb[][] bombButton;/*界面设计*/public MainBomb(){super("成型04-2 李超 JAVA课程设计 ");BlockNum = 64;BombNum = 10;Container c=getContentPane();c.setBackground(Color.gray);c.setLayout(new BorderLayout());text=new JTextField("10 ",3);nowBomb = new Label("当前雷数"+" "+BombNum+"");setBomb= new Label("设置地雷数");start.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){BombNum = Integer.parseInt(text.getText().trim());if(BombNum >= 10 && BombNum < 50 )replay();else{JOptionPane msg = new JOptionPane();JOptionPane.showMessageDialog(null,"您设置的地雷数太多了,请重设!","错误",2);}}} );MenuPamel.add(setBomb);MenuPamel.add(text);MenuPamel.add(start);MenuPamel.add(nowBomb);c.add(MenuPamel,"North");mainPanel.setLayout(new GridLayout( (int)Math.sqrt(BlockNum) , (int)Math.sqrt(BlockNum)) );bombButton=new Bomb[ (int)Math.sqrt(BlockNum) ][];for(int i = 0 ; i < (int)Math.sqrt(BlockNum) ; i++){bombButton[ i ]=new Bomb[ (int)Math.sqrt(BlockNum) ];}for(int i = 0 ; i < (int)Math.sqrt(BlockNum) ; i++ )for(int j = 0 ; j < (int)Math.sqrt(BlockNum) ; j++ ){bombButton[ i ][ j ]=new Bomb(i,j);bombButton[ i ][ j ].setForeground( Color.gray);bombButton[ i ][ j ].addActionListener(this);bombButton[ i ][ j ].addMouseListener(this);}for(int i = 0 ; i < (int)Math.sqrt(BlockNum) ; i++ )for(int j = 0 ; j < (int)Math.sqrt(BlockNum) ; j++ )mainPanel.add(bombButton[ i ][ j ]);c.add(mainPanel,"Center");startBomb();setSize(400,400);setLocation(350,200);setResizable(false);}/*布雷*/public void startBomb(){for(int i=0;i<BombNum;i++){int x =(int)(Math.random()*(int)(Math.sqrt(BlockNum)-1)); int y =(int)(Math.random()*(int)(Math.sqrt(BlockNum)-1));if(bombButton[ x ][ y ].isBomb==true)i--;elsebombButton[ x ][ y ].isBomb=true ;}}/*重新开始*/public void replay(){nowBomb.setText("当前雷数"+" "+BombNum+"");for(int i = 0 ; i < (int)Math.sqrt(BlockNum) ; i++)for(int j = 0 ; j < (int)Math.sqrt(BlockNum) ; j++){bombButton[ i ][ j ].isBomb=false;bombButton[ i ][ j ].isClicked=false;bombButton[ i ][ j ].setEnabled(true);bombButton[ i ][ j ].setText("");bombButton[ i ][ j ].setIcon(null);}startBomb();}/*是否挖完了所有的雷*/public void isWin(){int findBomb=0; //找到的地雷数for(int i=0;i< (int)Math.sqrt(BlockNum); i++)for(int j=0;j< (int)Math.sqrt(BlockNum ); j++){if(bombButton[ i ][ j ].isBomb == true && bombButton[ i ][ j ].isRight == true) findBomb++;}if( findBomb == Integer.parseInt(text.getText().trim()) ){JOptionPane msg = new JOptionPane();JOptionPane.showMessageDialog(this,"您挖完了所有的雷,您胜利了!","您胜利了",2); }}/*计算方块周围雷数 */public void CountRoundBomb(){for (int i=0; i< (int)Math.sqrt(BlockNum); i++){for (int j = 0; j < (int)Math.sqrt(BlockNum); j++){int count = 0;//当需要检测的单元格本身无地雷的情况下,统计周围的地雷个数if (bombButton[ i ][ j ].isBomb != true) {if ( (i - 1 >= 0) && (j - 1 >= 0)) {if (bombButton[i - 1][j - 1].isBomb == true) {count += 1; //检测左上方空格是否是地雷}}if ( (i - 1 >= 0)) {if (bombButton[i - 1][ j ].isBomb == true) {count += 1; //检测上方空格是否为地雷}}if ( (i - 1 >= 0) && (j + 1 <= (int)Math.sqrt(BlockNum)-1)) { if (bombButton[i - 1][j + 1] .isBomb == true) {count += 1; //检测右上方是否为地雷}}if ( (j - 1 >= 0)) {if (bombButton[ i ][j - 1] .isBomb == true) {count += 1; //检测左边是否为地雷}}if ( (i >= 0) && (j + 1 <= (int)Math.sqrt(BlockNum)-1)) {if (bombButton[ i ][j + 1].isBomb == true) {count += 1; //右边}}if ( (j - 1 >= 0) && (i + 1 <= (int)Math.sqrt(BlockNum)-1)) {if (bombButton[i + 1][j - 1].isBomb == true) {count += 1; //左下}}if ( (i + 1 <= (int)Math.sqrt(BlockNum)-1)) {if (bombButton[i + 1][ j ].isBomb == true) {count += 1; //下}}if ( (j + 1 <= (int)Math.sqrt(BlockNum)-1) && (i + 1 <= Math.sqrt(BlockNum)-1)) { if (bombButton[i + 1][j + 1].isBomb == true) {count += 1; //右下}}bombButton[ i ][ j ].BombRoundCount = count;}}}}/**当选中的位置为空,则翻开周围的地图**/public void isNull(Bomb[][] bombButton,Bomb ClickecButton){int i,j;i=ClickecButton.num_x;j=ClickecButton.num_y;if (ClickecButton.isBomb==true) {}else {if ( (i - 1 >= 0) && (j - 1 >= 0)) { //检测左上方空格是否是空if (bombButton[i - 1][j - 1].isBomb == false && bombButton[i - 1][j - 1].isClicked == false && bombButton[i - 1][j - 1].isRight == false) {bombButton[i-1][j-1].setText((bombButton[i-1][j-1].BombRoundCount)+"");bombButton[i - 1][j - 1].setEnabled(false);bombButton[i - 1][j - 1].isClicked=true;}}if ( (i - 1 >= 0)) { //检测上方空格是否为空if (bombButton[i-1][ j].isBomb == false && bombButton[i - 1][ j ].isClicked == false && bombButton[i - 1][ j ].isRight == false){bombButton[i-1][ j].setText((bombButton[i- 1][ j ].BombRoundCount)+"");bombButton[i - 1][ j ].setEnabled(false);bombButton[i - 1][ j ].isClicked=true;}}if ( (i - 1 >= 0) && (j + 1 <= ((int)Math.sqrt(BlockNum)-1)) ) { //检测右上方是否为空if (bombButton[i - 1][j + 1] .isBomb == false && bombButton[i - 1][j + 1].isClicked == false && bombButton[i - 1][j + 1].isRight == false){bombButton[i - 1][j + 1].setText((bombButton[i - 1][j + 1].BombRoundCount)+"");bombButton[i - 1][j + 1].setEnabled(false);bombButton[i - 1][j + 1].isClicked=true;}}if ( (j - 1 >= 0)) { //检测左边是否为空if (bombButton[ i ][j - 1].isBomb == false && bombButton[ i ][j - 1].isClicked == false && bombButton[ i ][j - 1].isRight == false) {bombButton[ i ][j - 1].setText((bombButton[ i ][j - 1].BombRoundCount)+"");bombButton[ i ][j - 1].setEnabled(false);bombButton[ i ][j - 1].isClicked=true;}}if ( (i >= 0) && (j + 1 <= ((int)Math.sqrt(BlockNum)-1)) ) { //检测右边空格是否是空if (bombButton[ i ][j + 1].isBomb == false && bombButton[ i ][j + 1].isClicked == false && bombButton[ i ][j + 1].isRight == false) {bombButton[ i ][j + 1].setText((bombButton[ i ][j + 1].BombRoundCount)+"");bombButton[ i ][j + 1].setEnabled(false);bombButton[ i ][j + 1].isClicked=true;}}if ( (j - 1 >= 0) && (i + 1 <= ((int)Math.sqrt(BlockNum)-1)) ) { //检测左下空格是否是空if (bombButton[i + 1][j - 1].isBomb == false && bombButton[i + 1][j - 1].isClicked == false && bombButton[i + 1][j - 1].isRight == false) {bombButton[i + 1][j - 1].setText((bombButton[i + 1][j - 1].BombRoundCount)+"");bombButton[i + 1][j - 1].setEnabled(false);bombButton[i + 1][j - 1].isClicked=true;}}if ( (i + 1 <= ((int)Math.sqrt(BlockNum)-1)) ) { //检测下边空格是否是空if (bombButton[i + 1][ j ].isBomb == false && bombButton[i + 1][ j ].isClicked == false && bombButton[i + 1][ j ].isRight == false) {bombButton[i + 1][ j ].setText((bombButton[i + 1][ j ].BombRoundCount)+"");bombButton[i + 1][ j ].setEnabled(false);bombButton[i + 1][ j ].isClicked=true;}}if ( (j + 1 <= ((int)Math.sqrt(BlockNum)-1) ) && (i + 1 <= ((int)Math.sqrt(BlockNum)-1)) ) { //检测右下边空格是否是空if (bombButton[i + 1][j + 1].isBomb == false && bombButton[i + 1][j + 1].isClicked == false && bombButton[i + 1][j + 1].isRight == false){bombButton[i+1][j+1].setText((bombButton[i+1][j+1].BombRoundCount)+"");bombButton[i + 1][j + 1].setEnabled(false);bombButton[i + 1][j + 1].isClicked=true;}}if ( (i - 1 >= 0) && (j - 1 >= 0))//检测左上isNull(bombButton,bombButton[i - 1][j - 1]);if ( (i - 1 >= 0))isNull( bombButton,bombButton[i - 1][ j ]);//检测上方if ( (i - 1 >= 0) && (j + 1 <= (int)Math.sqrt(BlockNum)-1))isNull( bombButton,bombButton[i - 1][j + 1]);//检测右上if ( (j - 1 >= 0))isNull(bombButton,bombButton[i][j - 1]);//检测左边if ( (i >= 0) && (j + 1 <= ((int)Math.sqrt(BlockNum)-1)) )isNull(bombButton,bombButton[i][j + 1]);//检测右边if ( (j - 1 >= 0) && (i + 1 <= ((int)Math.sqrt(BlockNum)-1)) )isNull(bombButton,bombButton[i + 1][j - 1]); //检测左下if ( (i + 1 <= ((int)Math.sqrt(BlockNum)-1)) ) //检测下isNull(bombButton,bombButton[i + 1][ j ]);if ( (j + 1 <= ((int)Math.sqrt(BlockNum)-1)) && (i + 1 <= ((int)Math.sqrt(BlockNum)-1)) )//检测右下isNull(bombButton,bombButton[i + 1][j + 1]);}}public void actionPerformed(ActionEvent e){CountRoundBomb();if(((Bomb)e.getSource()).isBomb==false&&((Bomb)e.getSource()).isClicked ==false) {((Bomb)e.getSource()).setText(( ((Bomb)e.getSource()).BombRoundCount)+"");((Bomb)e.getSource()).isClicked=true;((Bomb)e.getSource()).setIcon(null);((Bomb)e.getSource()).setEnabled(false);if((((Bomb)e.getSource()).BombRoundCount) == 0)isNull(bombButton,(Bomb)e.getSource());isWin();}else if(((Bomb)e.getSource()).isBomb == true){for(int i=0;i<(int)Math.sqrt(BlockNum);i++)for(int j=0;j<(int)Math.sqrt(BlockNum);j++){if(bombButton[ i ][ j ].isBomb == true)bombButton[ i ][ j ].setIcon(icon_bomb);}((Bomb)e.getSource()).setIcon(icon_bomb_big);JOptionPane msg = new JOptionPane();JOptionPane.showMessageDialog(this,"你踩到地雷了,按确定重来","你踩到地雷了",2); replay();}}public void mouseClicked(MouseEvent e){Bomb bombSource = (Bomb)e.getSource();boolean right = SwingUtilities.isRightMouseButton(e);if((right == true) && (bombSource.isClicked == false)){bombSource.BombFlag = (bombSource.BombFlag + 1)%3;if(bombSource.BombFlag == 1){if(BombNum > 0 && bombSource.isRight == false ){bombSource.setIcon(icon_flag);bombSource.isRight = true;BombNum--;}isWin();nowBomb.setText("当前雷数"+" "+BombNum+"");}else if(bombSource.BombFlag == 2){if( (BombNum!=0 ) ||(BombNum==0 &&(bombSource.getIcon()==icon_flag)) ) BombNum++;bombSource.setIcon(icon_question);nowBomb.setText("当前雷数"+" "+BombNum+"");}else if(bombSource.BombFlag == 0){bombSource.setIcon(null);bombSource.isRight = false;}}}public void mouseEntered(MouseEvent e){}public void mouseReleased(MouseEvent e){}public void mouseExited(MouseEvent e){}public void mousePressed(MouseEvent e){}}3.按钮 Bomb(1)成员变量(见表6)(2)源代码见文件Bomb.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;/*按扭类*/class Bomb extends JButton{public int num_x,num_y; //第几号方块public int BombRoundCount; //周围雷数public boolean isBomb; //是否为雷public boolean isClicked; //是否被点击 public int BombFlag; //探雷标记public boolean isRight; //是否点击右键public Bomb(int x,int y){ BombFlag = 0;num_x = x;num_y = y;BombRoundCount = 0;isBomb = false;isClicked = false;isRight = false;}}四.运行效果点击开始运行游戏,即可点选方格、根据方格数字推断雷的位置。