课程设计:洗地毯机15篇

时间:2019-05-14 07:31:16下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《课程设计:洗地毯机1》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《课程设计:洗地毯机1》。

第一篇:课程设计:洗地毯机1

地毯清洗机的设计

机电工程系 焊接技术与自动化专业

Z100353班 第七组

指导老师: 张旦闻

设计人: 韩雪斌

李庚 巩喜帅

地毯清洗机

前言 :

随着当今社会的高速发展,人民的生活水平日益改善,物质生活越来越丰富多彩。为了满足人们日益增长的物质需求,各种各样的生活用品也如雨后春笋般出现。如空调、电脑、珍木家具,地毯等。当然这些东西方便人们的同时,也给生活带来诸多不便。就如地毯,清洗就是一大困扰人的难题。为了解决人们的生活难题,方便人们的生活,我组特设计一款地毯清洗机。以解决困扰人们的生活难题,现将该机的一些情况介绍如下。

在介绍地毯清洗机之前,我们先来了解一下地毯的一些情况。现在地毯的种类很多,按地毯材质分类有:

(l)纯毛地毯 我国的纯毛地毯是以土种绵羊毛为原料,其纤维长,拉力大,弹性好,有光泽,纤维稍粗而且有力,是世界上编织地毯的最好优 质原料。纯毛地毯的重量约为1.6~2.6kg/平米,是高级客房、会堂、舞台等地面的高级装修材料。近年来还生产了纯羊毛无纺织地毯,它是不用纺织或编织方法而制成的纯毛地毯。

(2)混纺地毯 混纺地毯是以毛纤维与各种合成纤维混纺而成的地面装修材 料。混纺地毯中因掺有合成纤维,所以价格较低,使用性能有所提高。如在羊毛纤维中加入20%的尼龙纤维混纺后,可使地毯的耐 磨性提高五倍,装饰性能不亚于纯毛地毯,并且价格下降。(3)化纤地毯 化纤地毯也叫合成纤维地毯,如聚丙烯化纤地毯,丙纶化纤地 毯,睛纶(聚乙烯睛)化纤地毯、尼龙地毯等。它是用簇绒法或机织法将合成纤维制成面层,再与麻布底层缝合而成。化纤地毯耐磨性 好并且富有弹性,价格较低,适用于一般建筑物的地面装修。

(混纺地毯)(纯毛地毯)

(塑料地毯)(化纤地毯)

(各种地毯的样式)

(4)塑料地毯 塑料地毯是采用聚氯乙烯树脂、增塑剂等多种辅助材料,经均 匀混炼、塑制而成,它可以代替纯毛地毯和化纤地毯使用。塑料地毯质地柔软,色彩鲜艳,舒适耐用,不易燃烧且可自熄,不怕湿。塑料地毯适用于宾馆、商场、舞台、住宅等。因塑料地毯耐 水,所以也可用于浴室起防滑作用。

地毯还可根据供应的款式分类有:(1)整幅成卷供应的地毯 化纤地毯、塑料地毯以及无纺织纯毛地毯常接整幅成卷供货。铺设这种地毯可使室内有宽敞感,整体感,但损坏更换不太方便,也不够经济。(2)块状地毯 纯毛等不同材质的地毯均可成块供应。纯毛地毯还可以成套 供货,每套由若于块形状、规格不同的地毯组成。花式方块地毯是由花色各不相同的小块地毯组成,它们可以拼成不同的图案。块状地毯铺设方便而灵活,位置可随时变动,这一方面给室内 设计提供了更大的选择性,同时也可满足不同主人的情趣,而且磨损严重部位的地毯可随时调换,从而延长了地毯的使用寿命,达到 既经济又美观的目的。在室内巧妙地铺设小块地毯,常常可以起到画龙点睛的效果。小块地毯可以破除大片灰色地面的单调感,还能使室内不同的功能区有所划分。门口毯、床前毯、道毯等均是块状地毯的成功应用。

地毯的作用

(一)保暖、调节功能

地毯织物大多由保温性能良好的各种纤维织成,大面积地铺垫地毯可以减少室内通过地面散失的热量,阻断地面寒气的侵袭,使人感到温暖舒适。测试表明,在装有暖气的房内铺以地毯后,保暖值将比不铺地毯时增加12%左右。

地毯织物纤维之间的空隙具有良好的调节空气湿度的功能,当室内湿度较高时,它能吸收水分;室内较干燥时,空隙中的水分又会释放出来,使室内湿度得到一定的调节平衡,令人舒爽怡然。

(二)吸音功能

地毯的丰厚质地与毛绒簇立的表面具备良好的吸音效果,并能适当降低噪声影响。由于地毯吸收音响后,减少了声音的多次反射,从而改善了听音清晰程度,故室内的收录音机等音响设备,其音乐效果更为丰满悦耳。此外,在室内走动时的脚步声也会消失,减少了周围杂乱的音响干扰,有利于形成一个宁静的居室环境。

(地毯的一些危害因素增长率呈负增长)

(三)舒适功能

人们在硬质地面上行走时,脚掌着力于地以及地面的反作用力,使人感觉不舒适并容易疲劳。铺垫地毯后,由于地毯为富有弹性纤维的织物,有丰满、厚实、松软的质地,所以在上面行走时会产生较好的回弹力,令人步履轻快,感觉舒适柔软,有利于消除疲劳和紧张。在现代居室中,由于钢材、水泥、玻璃等建筑材料的性质生硬与冷漠,使人们十分注意如何改变它们,以追求触觉与视觉的柔软感和舒适度。地毯的铺垫给人们以温馨,起着极为重要的作用。

(四)审美功能

地毯质地丰满,外观华美,铺设后地面能显得端庄富丽,获得极好的装饰效果。生硬平板的地面一旦铺了地毯便会满室生辉,令人精神愉悦,给人一种美感的享受。地毯在室内空间中所占面积较大,决定了居室装饰风格的基调。选用不同花纹、不同色彩的地毯,能造成各具特色的环境气氛。大型厅堂的庄严热烈,学馆会室的宁静优雅,家居房舍的亲切温暖,地毯在这些不同居室气氛的环境中扮演了举足轻重的角色。

羊毛地毯有较好的吸音能力,可以大大消弱各种噪音,它可以吸收声波高达50%的能量。羊毛地毯的隔热性能也很好,因毛纤维具有很低的热传导性,使得热量不易散失。冬天,它可以防止屋中的热度传走,保持屋内的舒适环境。

羊毛地毯还具有吸湿、防水以及防止空气污染等重要功能,在一般的湿度中羊毛会占本身重量13%-18%的水分,在特殊的条件下,羊毛的含水量还可达到33%,正是这种特殊的性质,使它具有了调节环境湿度的作用,在高湿度环境中,它可从空气中吸收潮气,在空气干燥时又可以把其水分释放出来。

除此之外,羊毛地毯还具有良好的阻燃性能、抗脚蹋污染性能、易清洗的特点,即使经过几年的使用后,送到工厂清洗,色泽仍艳丽如

初。

(地毯的使用费用市场分析)

由于地毯有诸多功能,被广泛应用于宾馆的餐厅、歌舞厅、大型展览中心、会议场馆、酒店、机场地毯地面和家居。然而地毯在使用过程中问题也接踵而来。地毯的主要缺点有:纳尘性能较强,清洁比较困难,易产生水渍现象;容易滋生细菌和满虫,价格也较高。为满足市场需求,解决地毯清洗问题,洗地毯机的产生成为历史的必然,各种洗地毯机应运而生。

19世纪70年代,梅尔维尔·比塞尔在密歇根州大瀑布城一家瓷器工厂工作。由于用稻草来捆扎瓷器,因此产生了蒙蒙尘雾。在工人们叠放东西以及用普通扫帚打扫包装间时,灰尘危害更为严重。越是这些时候,比塞尔的头痛病发作得也就越严重。他开始认识到自己的头痛病大概是因为对灰尘的过敏性反应。

要解决比塞尔的问题,显而易见的答案就是设计一种把刷子和灰尘都留在小箱子里的器械。于是,他开始着手设计。

对许多设计方案进行试验之后,比塞尔决定把一系列刷子连接到一个滚筒上去。滚筒连着清扫机的轮子,因此当清扫机往前推时,滚筒就会转动起来。另外还有一个能够调节刷子高度,以应付不同地面状况的旋钮。最后,最为重要的是整部机械装置都安装在一个同时也收集灰尘的小箱子里面。1876年,比塞尔的“大瀑布城”牌单擦机投放市场。比塞尔的清扫机立即取得了成功。它比扫帚使用起来更为快捷、方便和干净。它还是一种结构简单、相当便宜的装置,许多人都买得起。甚至20世纪初真空吸尘器问世之后,还有许多人仍然用治好比塞尔头痛病的机器来清扫自己的地毯。地毯翻新正如石材翻新一样,可让环境焕然一新,且不影响正常工作或营业,创造显著价值。严重污染的餐厅地毯,和深藏大量污垢的陈年地毯,皆需翻新或清洗。地毯清洗机犹如医生,可医各样重度污染和深度污垢,恢复地毯干净美观的原貌;适用于宾馆的餐厅、歌舞厅和餐饮酒楼等场所

目前市场上常用洗地毯机的现状

洗地毯机的种类有很多,但常用的有两种:一是干泡地毯机;二是喷汽抽吸式洗地毯机。

干泡洗地毯子机有滚刷式和转刷式两种,用该机洗地毯的方法比较简单,只能对不脏的地毯和纯羊毛地毯清洗效果颇佳,且对地毯损伤较小。干粉干洗法是利用粉状清洁剂使污垢变成悬浮状态,然后用吸尘器吸走。缺点是其粉状清洁剂会深入地毯深处,很难彻底清除。蒸汽干洗法是把清洁剂(低泡)混合后加入带有加热系统的抽洗机内,利用泵的压力把蒸汽射在地毯表面,靠高速运转的刷子刷洗后,把污水抽出。缺点是设备昂贵,对地毯有损伤。泡沫干洗法是把地毯清洁剂(高泡)加入带有电子打泡箱的机器内,使其产生大量泡沫,然后注入地毯纤维间,在泡沫中清洗,干燥后,用强力吸尘器将残留物吸去。缺点是要求操作人员素质要高,如操作不当,会产生纹路,地毯中有残留清洗剂。

喷汽抽吸式洗地毯机,工作时往往是喷液、擦洗、吸水同步进行,洗涤力特别强,去污效果也好,但操作比较笨重,且对地毯的破坏性较大。

将地毯清洁剂溶液利用抽洗机喷入地毯——经刷洗后——用真空抽洗——把污液吸出。缺点是水分多,干透时间长,浸泡后地毯会皱缩、发霉、积垢、易产生色差,会缩短地毯寿命,一般不经常使用。另外,目前一般的酒店,客房,宾馆,办公室等使用的都是进口的洗地毯机,价格比较昂贵,不宜在普通家庭用户广泛推广。

(目前市场上使用的洗地毯机的部分部件内部结构)

设计方案

市场上的地毯种类包括各种真皮、纯毛、化纤质地的地毯、挂毯、床毯、装饰毯等。基于目前市场上地毯清洗机功能单一,不能满足清洗多种种类的地毯的要求这些问题,我组特设计出满足上述要求的多功能洗地毯机。此款洗地毯机集干泡洗地毯机和喷汽抽吸式洗地毯机功能与一身,不仅坚固耐用,清洁效果好,而且操作方便,性能多样,使用正确的附件,还可清洗地面、挂毯、车座以及瓷砖和窗格。

其设计原理如下:

喷抽式地毯清洗机工作原理: 地毯清洗机将水与清洁剂混合液在压力的作用下喷入地毯深层,然后地毯清洗机将溶有污物的混合液抽回至污水槽中。经过清洗的地毯略带潮气,片刻之后会自然风干,您可以马上可以领略地毯清洁、松软的美好感觉。

干洗法是利用粉状清洁剂使污垢变成悬浮状态,然后用吸尘器吸走,它可以令稀释后的干泡地毯清洁剂产生的泡沫更轻、更丰富,使清洗后的地毯更易干,以达到理想、满意的清洁效果。

主要结构:

洗地毯机的主要部件由两个吸力泵,以及污水箱、净水箱、强力喷射水泵、电机立式刷地机、吸尘吸水机等组成,采用真空抽吸。

采用立式刷地机和吸尘吸水机组合,刷地机清洗地毯,吸尘吸水机抽吸污水,是很多宾馆选择最多的方式。该款地毯清洗机,集地毯清洁与保值于一体,配备浮动式滚刷,即使清洁不平坦地面,依然可以获得完美清洁效果;采用全新后退式操作系统,充分保证地毯清洁后的干净与风干,有效避免地毯二次污染,配合专业地毯清洁剂可以对地毯进行深层清洁。

电瓶动力强劲保证了它可以长时间不间断工作。浮动式刷头,保证机器与地毯的持续接触。清洁剂定量配比技术。

(地毯清洗机预想图)

紧凑的设计,使本设备可以应用于酒店客房、大型会议室、报告大厅等中大面积的空间

随机配件:

1、透明手扒:喷水抽吸同步,解决附着在家具及楼梯等角落地毯上的浮尘。

2、2.8米伸缩吸水管(可伸长至8米)和7.5米高压喷水管,令主机停在房间门口,清洗耙头即可完成房间内清洗工作。

1、特大容量水箱,适合大面积地毯清洗。

2、分体式设计,适合不同空间地毯清洗,即使在客房内也操作方便。

3、高压水泵配合五组喷头,令60℃热水完全汽化,成倍提高溶解污垢的速度和溶解量。

4、高速摆刷,将地毯里的污渍、泥沙、残留药剂,彻底洁净,同时梳松地毯纤维,恢复地毯弹性;即使污染严重的餐厅走道也能彻底清洗干净。

5、两只三层风叶抽吸马达,吸力特强,两小时即可干燥。

6、聚乙烯材质主机,优质不锈钢摆刷式耙头,皆坚固耐用。

7、主机配备感应装置,令污水升至感应器时吸水马达自动暂停

断路。

8、踏板式机柄调节装置,操作更方便。

9、即洗即用,不易造成第二次污染,不会影响行人出入。

10、清洗效果较好,含水量少,干透时间较短,操作方便,不易损伤地毯。清洗比较彻底,能清洗深层污迹,操作方便。

对清洗好的地毯进行合理的保养以便延长其使用寿命 地毯保养的注意事项如下:

1.在地毯吸尘中,要注意地毯的边角。

2.地毯如有皱折,一定要及时修整、牵伸,否则易损坏。3.地毯有破损应及时修补,否则破损会不断扩大。

4.发现地毯生虫,要及时喷洒杀虫剂和吸尘,防止虫蛀表面的扩张。

5.在去污过程中,要防止清除一处,又污染了另一处,同时,用软刷刷洗时,用力要适当,以减少对地毯纤维的损坏。

6.在地毯清洗中,尽量除去残留清洁剂,因任何化学清洁剂都有一定的腐蚀性,以延长地毯的使用寿命。

7.经过抽洗的地毯一定要干透。地毯在长期浸泡过程中,纤维会逐渐老化、变质,同时易生虫、生霉甚至溃烂。、8.在清洗地毯时,水温不易过高(一般为40度左右),否则会造成地毯收缩。

参考文献:

1、国家统计局资源网。

2、《机械图原理》。

3、@@洗地毯机生产有限公司

4、洗地毯机市场分析报告

5、地毯生产及保养方法

第二篇:机械原理课程设计-洗瓶机推瓶机课程设计[推荐]

机械创新设计

(一)课程设计

题目:洗瓶机推瓶机课程设计

班级:

姓名: 学号:

指导老师:

学校:

目录

一、总体设计方案

1.1设计要求------------2 1.2原始数据和设计要求--3 1.3方案设计------------4

二、执行机构的设计

1.4机构尺寸及设计------5 1.5运动分析------------6 三、传动机构设计

1.6凸轮动力输出装置的减速设计-------------------------7 1.7心得体会(总结)----10 1.8参考文献------------11

1.1设计要求

1)总功能要求和工作原理选择设计,洗瓶机主要由推瓶机构,导辊机构,转刷机构组成。如图1.1所示,待洗的瓶子放在两个不同转向的导棍上,导辊带动瓶子旋转。当推头M把瓶子推向前进时,转动的刷子就把瓶子外面洗干净。当前一个瓶洗刷完毕时,后一个待洗的瓶子已送入导辊待推。

2)为实现功能要求,清洗刷需要转动,瓶子需要转动,瓶子需要沿导棍移动,需要有输送瓶的机构,经过分析机构的设计要求可知:设计的推瓶机构应使推头M以接近均匀速度推瓶。平稳的接触和脱离瓶子,然后推头快速的返回原位,准备第二个工作循环。

根据设计要求,推头M可走图1.2所使的示意轨迹,而且推头M在工作行程中应做匀速直线运动,在工作前后可有变速运动,回程时有急回。

图1.2 推头M运动轨迹

1.2原始数据和设计要求

设计推瓶机构时的原始数据和要求为: 1)瓶子尺寸:大端直径d=80mm,长200mm。

2)推进距离l=600mm。推瓶机构应使推头M接近均匀的速度推瓶,平稳地接触和脱离瓶子,然后,推头快速返回原位,准备第二个工作循环。

3)按生产率的要求,推程平均速度为v=45mm/s,返回时平均速度为工作行程的3倍。

4)画出机构运动方案简图(机械运动示意图)5)对机械传动系统和执行机构进行尺寸计算 6)机构传动性能良好,结构紧凑,制造方便

1.3方案设计

凸轮—铰链四杆机构方案

如图1.3所示,铰链四杆机构的连杆2上点M走近似于所要求的轨迹,M点的速度由等速转动的凸轮通过构件3的变速转动来控制,由于此方案的曲柄1是从动件,所以要注意过死点的措施,由于推程有600MM,导致凸轮尺寸太大,整个组合所占体积过大。

图1.3凸轮-铰链四杆机构方案

1.4机构尺寸及设计

1)杆长的设计

A.为满足传动角的一定要求,设计11和12在两个特殊位置(推头位移最大和最小时)所形成的这一夹角值在一定范围内。

B.杆长14由于与中心具的距离和基圆的大小有关,而基圆半径不宜过大,但基圆半径的大小又与压力角有关,由此设计14的长度。C.杆长13对另一个凸轮的基圆有一定影响,同样为了保证压力角在许可范围内,由此设计长度13 杆长计算:

L=900mm, l1=700mm, l3=600mm, l4=135mm, Ψ1=133° Ψ2=26° Ψ3=47° E=200mm F=140mm 2)设计的推导公式 l1+ L =M l1cos1 + Lcos2 = Mx l2sin1 + Lsin2 = My

222M2+

Ml2Mlcos2MlsinLy1x11y11xAcos2+Bsin1C0

2其中

A=2Mxl1;B2MyL1;CL2Mx2Myl12

BB2A2C2 12arctanAC2arctanMyl1sin1Mxl1cos1

l1+ l2=  + l3 l1cos1l2cos2E

l1sin1l2sin2qyl3 qyr0s

2arctanqyl3l1sin1El1cos1

qy(El1cos1)tan2l1sin1l3

3)运动图如下

图1.4机构运动示意图

1.5运动分析 所用凸轮设计及其曲线

图1.5凸轮位移曲线图

1)取基圆半径r=100mm,h=60mm,偏置圆e=40mm。如下图凸轮的理论轮廓线。

图1.6凸轮的理论轮廓线。

2)移动从动件凸轮取基圆半径r=72mm,h=60mm,偏置圆e=40mm。如下图1.7凸轮的理论轮廓线。

图1.7移动从动件凸轮轮廓线

3)运动参数设计

已知:推程V=45mm/s;回程V=135mm/s;整个运动机构的周期: T=T推程+T回程=16.30s;凸轮的角速度ω=2π/T=0.386rad/s

1.6凸轮动力输出装置的减速设计

已知:电动机转速为1450r/min,凸轮的角速度0.386rad/s,即转速为3.68r/min,则现设计的变速箱内各齿轮的齿数为:Z1=20;Z2=Z6=60;Z3=16;Z4=80;Z5=15;Z7=20;Z8=44;装置如图1.9所示

图1.9减速装置

齿数 模数 分度圆直径(mm)Z1=20 m=2 d1=40 Z2=60 m=2 d2=120 Z3=16 m=2 d3=32 Z4=80 m=2 d4=160 Z5=15 m=2 d5=30 Z6=60 m=2 d6=120 Z7=20 m=2 d7=40 Z8=44 m=2 d8=88 1.7心得体会

经过近两个星期的忙碌,我们终于不负众望将课程设计任务拿下来,其中有艰苦但更多的是快乐,在此之中的经验教训及总结记录下来。

课程设计的任务结束了,我们学到了很多,对机械原理这门课我们有了更深的理解,对比以前不懂得的的有了新的认识。除了课本上的东西,还学到了一些课外的东西,团队合作精神,独立思考能力,不断创新能力.....总之这次课程设计,让我受益匪浅。

通过这次课程设计,我有了很多收获,首先,通过这次的课程设计,我进一步巩固和加深了所学机械方面的基本理论,基本概念和基本知识。培养了自己分析和解决与本课程有关的具有机械所涉及的实际问题的能力。对于平面连杆机构和齿轮有了更加深的理解,为后续课程设计的学习奠定了坚定的基础,而且这次课程设计过程中,与同学共同讨论,团结合作,最终实现了预期的目的。

其次通过这次的课程设计,对机构的工作原理及机构选型,运动方案的确定以及对连杆机构进行运动分析有了更加精确和深入的了解。这都将为我们以后实际和出去社会参加工作奠定了坚定的基础。

虽然这次课程设计结束了。但我们在机械方面的设计及创新才刚刚开始。

1.8参考文献

1.郑军红 朱建儒 刘喜平《机械原理》北京——机械工业出版社

2.《机构分析与设计》华大年等主编——机械工业出版社 3.《连杆机构》伏尔默主编——机械工业出版社 4.《机械传动设计手册》江耕华主编——煤碳工业出版社 5.《机械原理》邹慧君主编——高等教育出版社

第三篇:地毯考察报告

地毯考察报告

地毯概述:

地毯,是以棉、麻、毛、丝、草等天然纤维或化学合成纤维类原料,经手工或机械工艺进行编结、栽绒或纺织而成的地面铺敷物。它是世界范围内具有悠久历史传统的工艺美术品类之一。分类:

1、按制作方法分类

地毯因制作方法不同可分为机制地毯、手工地毯。机制地毯又包括簇绒地毯和机织威尔顿地毯、机织阿克明斯特地毯

a)簇绒地毯

该地毯属于机械制造地毯的一大分类,它不是经纬交织而是将绒头纱线经过钢针插植在地毯基布上,然后经过后道工序上胶握持城头而成。由于该地毯生产效率较高,因此是酒店装修首选地毯,可谓物美价廉

b)机织威尔顿地毯

该地毯是通过经纱、纬纱、绒头纱三纱交织,后经上胶、剪绒等后道工序整理而成。由于该地毯工艺源于英国的威尔顿地区,因此称为威尔顿地毯。此织机是双层织物故生产效率比较快

c)机织阿克明斯特地毯

该地毯也是通过经纱、纬纱、绒头纱三纱天织,后经上胶、剪绒等后道工序整理而成。该地毯使用的工艺源于英国的阿克明斯特,此织机属单层织物且机速很低,地毯织造效率非常低,其效率仅为威尔顿织机的30%。

2、按使用功能分类

a)商用地毯

广义上讲是指除家庭用及工业用地毯以外的所有地毯。商用地毯在国内还仅限于宾馆、酒店、写子楼、办公室、酒楼等场所,而在美国及西方发达国家,商用地毯除上述使用场所外,已在机场候机楼、码头浪船大厅、车站候车厅、超市、医院、学校、养老院、托儿所、影剧院等场所被普遍使用,并随着经济发展和社会进步,面用地毯的使用范围会逐步加大,覆盖面会更广。b)家用地毯

顾名思义就是家庭用地毯家用地毯在我国仍停在条块地毯上,因为中国家庭的装修仍大量以木地板为主而西方发达国家,家庭用地毯是以满铺和块毯相结合,中国的家庭用地毯潜力很大

c)工业用地毯

工业用地毯从国内到国外,仍仅限于汽车、飞机、客船、火车等装饰而用。地毯的种类与特点

地毯最初仅为铺地,起御寒湿而利于坐卧的作用,在后来的发展过程中,由于民族文化的陶冶和手工技艺的发展,逐步发展成为一种高级的装饰品,既具隔热、防潮、舒适等功能,也有高贵、华丽、美观、悦目的效果,从而成为高级建筑装饰的必备产品。现在地毯的种类很多,按地毯材质分类有:

(l)纯毛地毯我国的纯毛地毯是以土种绵羊毛为原料,其纤维长,拉力大,弹性好,有光泽,纤维稍粗而且有力,是世界上编织地毯的最好优质原料。目前,有的厂家将我国的土种绵羊毛与进口(如新西兰等国)毛纤维掺配使用,发挥进口羊毛纤维细、光泽亮等特点,取得了很好效果。纯毛地毯的重量约为1.6~2.6kg/平米,是高级客房、会堂、舞台等地面的高级装修材料。近年来还生产了纯羊毛无纺织地毯,它是不用纺织或编织方法而制成的纯毛地毯。

(2)混纺地毯混纺地毯是以毛纤维与各种合成纤维混纺而成的地面装修材料。混纺地毯中因掺有合成纤维,所以价格较低,使用性能有所提高。如在羊毛纤维中加入20%的尼龙纤维混纺后,可使地毯的耐磨性提高五倍,装饰性能不亚于纯毛地毯,并且价格下降。

(3)化纤地毯化纤地毯也叫合成纤维地毯,如聚丙烯化纤地毯,丙纶化纤地毯,睛纶(聚乙烯睛)化纤地毯、尼龙地毯等。它是用簇绒法或机织法将合成纤维制成面层,再与麻布底层缝合而成。化纤地毯耐磨性好并且富有弹性,价格较低,适用于一般建筑物的地面装修。(4)塑料地毯塑料地毯是采用聚氯乙烯树脂、增塑剂等多种辅助材料,经均匀混炼、塑制而成,它可以代替纯毛地毯和化纤地毯使用。塑料地毯质地柔软,色彩鲜艳,舒适耐用,不易燃烧且可自熄,不怕湿。塑料地毯适用于宾馆、商场、舞台、住宅等。因塑料地毯耐水,所以也可用于浴室起防滑作用。

款式分类有:

(1)整幅成卷供应的地毯化纤地毯、塑料地毯以及无纺织纯毛地毯常接整幅成卷供货。铺设这种地毯可使室内有宽敞感,整体感,但损坏更换不太方便,也不够经济。

(2)块状地毯纯毛等不同材质的地毯均可成块供应。纯毛地毯还可以成套供货,每套由若于块形状、规格不同的地毯组成。花式方块地毯是由花色各不相同的小块地毯组成,它们可以拼成不同的图案。块状地毯铺设方便而灵活,位置可随时变动,这一方面给室内设计提供了更大的选择性,同时也可满足不同主人的情趣,而且磨损严重部位的地毯可随时调换,从而延长了地毯的使用寿命,达到既经济又美观的目的。在室内巧妙地铺设小块地毯,常常可以起到画龙点睛的效果。小块地毯可以破除大片灰色地面的单调感,还能使室内不同的功能区有所划分。门口毯、床前毯、道毯等均是块状地毯的成功应用。地毯按其所用场所性能的不同,分为六个等级:

(1)轻度家用级:铺设在不常使用的房间或部位;

(2)中度家用级或轻度专业使用级:用于主卧室或餐室等;

(3)一般家用级或中度专业使用级:用于起居室、交通频繁部位如楼梯、走廊等;(4)重度家用级或一般专业用级:用于家中重度磨损的场所;(5)重度专业使用级:家庭一般不用;

(6)豪华级:地毯的品质好,纤维长,因而豪华气派。选用地毯的原则

地毯选用与装修标准、风格统一的原则

任何一项工程不论是新建工程、老工程翻建或重新装修都是有计划、有标准的。是按五星标准装修还是三星标准;是西式风格还是中式风格;是古典流派还是现代流派,这一切是你选用什么类别、档次、色泽、图案地毯的基准点,也只有坚持装修标准风格同选用地毯的统一性,才能使你的工程尽善尽美,达到锦上添花的目的。分区域选用地毯的原则

一个完整的酒店工程是由多个不同区域组成,有客房、走廊、电梯厅、大小餐厅、大小会议室、接待室,还有办公区域、娱乐区域等。由于这些区域的功能不同,也造成人流、车流的不等。是静是闹、是冷是暖,为了适应区域的特殊性,各区域地毯的选择必须是与之呼应,也就是适应性问题。

地毯选用与外部环境适应的原则

常年平均降雨量、平均气温、室外相对温度、湿度、大气质量、卫生绿化等都是考虑因素,不把这些因素考虑进去,会给地毯在使用过程中带来很大麻烦。如哈尔滨市近半年的冬季,城市很干净,但客人脚上的冰、雪一进入宾馆即溶化,给走廊、客房地毯造成大量污染。山西是产煤大省,细小甚至肉眼都看不见的粉尘随着进入者的鞋一起带进酒店,对地毯保洁带来困难。因此,在外部环境特殊时更应多考虑地毯类别与环境的统一性。地毯选用与工程预算相吻合的原则

首先是不应由于预算影响选用地毯的等级,但可以调整。机制地毯因制作工艺不同和原料配比的不同造成价格各异,这样就为既不降低地毯等级还能吻合预算提供很大的选择余地。同为80%羊毛的客房地毯因制作工艺不同,阿克明斯特、威尔顿、羊毛簇绒价格差别很明显。使用50%的羊毛、50%化纤混纺(化纤除尼龙外,涤纶、晴纶等化纤价格均比羊毛价格低),既可保证地毯实用品质,又可消除静电,羊毛与化纤优缺点互补,也可降低造价。另外还可通过降低地毯厚度,减少绒头重量来降低价格。总之应在不降低地毯选用类别、等级的原则下,在同等级、同类别地毯范围内进行品种、用毛比例、绒头重量的调整,以求地毯品质同工程预算的统一。

地毯选用坚持货比三家的原则

不论是进口地毯或是国产地毯,生产厂家都会因设备的不同、原料选用的不同、加工工艺的差别和管理水平高低等,造成最终产品、品种、质量、花色、价格及服务的各异。通过产品对厂家的选择可以采用样品对比、信息资料分析、考察企业等途径完成,以此达到地毯选用最佳和获得服务更好的目的。地毯的性能 隔音效果

地毯以其紧密透气的结构,可以吸收及隔绝声波,有良好的隔音效果。改善空气质量

地毯表面绒毛可以捕捉,吸附漂浮在空气中的尘埃颗粒,有效改善室内空气质量。地毯安全性

地毯是一种软性铺装材料,有别于如大理石.瓷砖等硬性地面铺装材料,不易滑倒磕碰,家里有儿童、老人等的建议铺块毯或满铺毯。艺术美化效果

地毯具有丰富的图案、绚丽的色彩、多样化的造型,能美化您的装饰环境,体现您的个性。无毒害

地毯不具有辐射,不散发象甲醛等不利于身体健康的气体,达到各种环保要求。运用范围及发展

早在十800多年以前的西汉时代,随着佛教的传入,西藏人民用牛、羊毛制成拜佛垫,后来就制作毯子使用,从而形成了我国萌芽状态的地毯业。唐宋时代,其制作方法逐渐传到内地,编织技术也逐步改进提高。清朝康熙年间,宫廷里使用了地毯。但是由于当时地毯仅供朝廷皇亲、官僚贵族受用,且全部是手工加工,生产发展还是很缓慢。

直到21世纪80年代中期以前,我国绝大部分地毯都用于出口,大多数人觉得地毯离自己太远了。80年代中期以后,随着改革开放,人们生活水平得到提高,地毯,这一古老的艺术品才被人们逐渐熟悉起来。

如今,许多家庭都以拥有华丽的地毯作为高档品位的象征。

我国机制地毯的发展现状

1、机制地毯行业发展状况良好,年增幅均保持在20%左右。

经过20年的设备引进和技术消化吸收,我国地毯工业具备了较好的设备技术基础,一批具有相当规模、产品档次高、质量过硬、与世界先进水平差距不大的骨干企业脱颖而出,彻底扭转了十几年前国内所需的中高档地毯几乎全部依靠进口的局面。目前国产地毯已占国内中高档地毯消费的绝大部分。地毯年实际产量超过5000万平方米,无论品种规格、花色档次及原材料质地,均可与国外地毯媲美。

机制地毯自上世纪70年代在中国开始大规模生产以来,一直呈上升状态,并取得了令人瞩目的成绩。近些年来,中国机制地毯发展迅猛。特别是2000年以来,内外销市场的年增幅均保持在20%左右。在满足市场需求的同时,各生产企业在原料使用、产品研发、工艺创新等方面不断努力,已经很好地解决了地毯防虫、防潮、清洗等难题。

2、机制地毯行业发展特点 20多年来,中国机制地毯业与改革开放的中国同步,实现了快速发展,目前的主要特点是:(1)规模不断扩大

国内共拥有机制地毯设备500多台套,生产能力不断增强。2005年,中国机制地毯(不含针刺地毯)总产量共1亿多平方米,比2004年同比增长20%左右。近10年(1996年—2005年)中国机制地毯产量平均每年递增15%左右,近5年(2000年—2004年)中国机制地毯总产量平均每年递增 20.11%。其中簇绒地毯近10年平均每年递增10.43%,近5年平均每年递增13%;机织地毯近10年平均每年递增29.32%,近5年平均每年递增38.12%;拼块地毯近5年平均每年递增136.58%。

中国机制地毯业规模迅速扩的原因有三个方面:

一方面,现有机制地毯行业的领头企业不断扩充规模,持续快速发展,一部分中坚企业稳步增长。

第二方面,部分手工地毯开始向机制地毯转移。现在已有十几家手工地毯企业开始走手、机并举之路,而且企业投入规模较大;

第三方面,随着中国加入WTO,国外一些地毯企业也开始进军中国地毯市场。一些外国独资企业如埃及东方编织有限公司、根莱环保地毯有限公司已落户天津宝坻,且未来生产规模都很大。

(2)产品结构不断完善

相对而言,中国机制地毯业比较分散,没有国外地毯企业规模大,但产品类型丰富多彩。从阿克斯明斯特地毯、威尔顿地毯、簇绒地毯到方块地毯、印花地毯、汽车地毯等产品,无论从工艺上,还是从原料上,高中低档产品一应俱全。

(3)品质不断提高

中国高端地毯产品达到国际水平。十几家企业获得了新西兰羊毛局认证,而且有的企业与英威达、霍尼维尔、首诺、东丽、3M等结成了长期的良好的合作关系。

(4)自主研发能力增强

企业十分重视自主研发能力的提高,和自主知识产权的保护。借助于国际间的交流,与大专院校的合作,从产品开发到图案设计水平都有了很大的提高。

(三)机制地毯的出口状况

近几年来,作为室内软装饰重要产品之一的中国手工地毯、机制地毯,发展迅速,内外销市场均保持了20%左右的增长速度。不仅如此,中国机制地毯知名企业和产品,凭实力频频亮相国际市场,产品出口多以自有品牌为主。早在上世纪30年代至70、80年代间,由中国天津创新发展的手工90道羊毛栽绒地毯,就凭借中国传统的京式图案和法式美术式图案等,畅销全世界,并跻身名牌工艺品之列。

(四)东西方地毯消费差异

据有关资料表明,中西方在铺地物类型的消费结构上大不相同,欧美国家消费的纤维地毯占铺地物总量的70%以上,其它陶瓷、木质、塑料、复合材料等硬质地板只占不到30%;而目前中国地毯只占铺地物总量的十分之一。

另外,中西方在地毯消费构成上呈强烈反差,在2004年西方销售的40亿平方米地毯中,65%是家用地毯,商用地毯只占35%,而我国的机制地毯,目前年产1亿多平方米,消费对象主要是宾馆饭店和娱乐场所。(五)与其它行业相比,国内地毯企业与国际知名地毯企业或机构合作的意识较弱,还未有大规模的深入合作。

操作工艺:

1.工艺流程

基层处理→弹线、套方、分格、定位→地毯剪裁→钉倒刺板挂毯条→铺设衬垫→铺设地毯→细部处理及清理

2.活动式铺设:是指不用胶粘剂粘贴在基层的一种方法,即不与基层固定的铺设,四周沿墙角修齐即可。一般仅适用于装饰性工艺地毯的铺设。

3.固定式铺设操作工艺:

1)基层处理:铺设地毯的基层,一般是水泥地面,也可以是木地板或其他材质的地面。要求表面平整、光滑、洁净,如有油污,须用丙酮或松节油擦净。如为水泥地面,应具有一定的强度,含水率不大于8%,表面平整偏差不大于4mm。

2)弹线、套方、分格、定位:要严格按照设计图纸对各个不同部位和房间的具体要求进行弹线、套方、分格,如图纸有规定和要求明,则严格按图施工。如图纸没具体要求时,应对称找中并弹线便可定位铺设。

3)地毯剪裁:地毯裁剪应在比较宽阔的地方集中统一进行。一定要精确测量房间尺寸,并按房间和所用地毯型号逐一登记编号。然后根据房间尺寸、形状用裁边机断下地毯料,每段地毯的长度要比房间长出2cm左右,宽度要以裁去地毯边缘线后的尺寸计算。弹线裁去边缘部分,然后以手推裁刀从毯背裁切,裁好后卷成卷编上号,放入对号房间里,大面积房厅应在施工地点剪裁拼缝。

4)钉倒刺板挂毯条:沿房间或走道四周踢脚板边缘,用高强水泥钉将倒刺板钉在基层上(钉朝向墙的方向),其间距约40cm左右。倒刺板应离开踢脚板面8-10mm,以便于钉牢倒刺板。

5)铺设衬垫:将衬垫采用点粘法刷107胶或聚醋酸乙烯乳胶,粘在地面基层上,要离开倒刺板10mm左右。

6)铺设地毯:

a.缝合地毯:将裁好的地毯虚铺在垫层上,然后将地毯卷起,在接接处缝合。缝合完毕,用塑料胶纸贴于缝合处,保护接缝处不被划破或勾起,然后将地毯平铺,用弯针在接缝处做绒毛密实的缝合。

b.位伸与固定地毯:先将毯的一条长边固定在倒刺板上,毛边掩到踢脚板下,用地毯撑子拉伸地毯。拉伸时,用手压住地毯撑,用膝撞击地毯撑,从一边一步一步推向另一边。如一遍未能拉平,应重复拉伸,直至拉平为止。然后将地毯固定在另一条倒刺板上,掩好毛边。长出的地毯,用裁割刀割掉。一个方向拉伸完毕,再进行另一个方向的拉伸,直至四个边都固定在倒刺板上。

c.铺粘地毯时,先在房间一边涂刷胶粘剂后,铺放已预先裁割的地毯,然后用地毯撑子,向两边撑拉;再沿墙边刷两条胶粘剂,将地毯压平掩边。

7)细部处理清理:要注意门口压条的处理和门框、走道与门厅,地面与管根、暖气罩、槽盒,走道与卫生间门坎,楼梯踏步与过道平台,内门与外门,不同颜色地毯交接处和踢脚板等部位地毯的套割与固定和掩边工作,必须粘结牢固,不应有显露、后找补条等破活。地毯铺设完毕,固定收口条后,应用吸尘器清扫干净,并将毯面上脱落的绒毛等彻底清理干净。

第四篇:Java期中课程设计(ATM机)报告

Java期中课程设计报告

报告题目:ATM模拟程序

姓名:

学号:2009118246 学院:信息科学与技术学院

专业:计算机科学与技术

一、课程设计目的和内容

目的:课程设计的主要目的是结合面向对象程序设计课程,培养面向对象软件开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。

内容:设计ATM取款机主要包括登录页面、选择服务、存款、取款、查询余额、修改密码和退出等功能。注:各种按钮的事件和功能简单模拟ATM取款机的要求。

二、系统需求分析

1、功能需求分析(1)模拟ATM柜员机程序;

(2)修改密码。当用户需要修改密码时,可以用这个功能,新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。(3)取款。用户根据自己需要取多少钱,输入要取的金额,每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。(4)查询余额。用户需要知道自己帐户还剩多少钱时,可以查询自己帐户的余额。

(5)存款。用户可以存款,金额为100的倍数,不能出现负存款。(6)锁机。当用户3次输入密码错误时,停止操作。

2、设计需求分析

A界面设计简洁、友好、美观大方。B操作简单、快捷方便。

C信息分类清晰、准确。3.ATM功能模块图

4、约束条件(1)设计工具

开发工具:NetBeans 运行环境:Windows 7(2)界面要求

以Windows窗口形式显示,标题栏为ATM自动取款机不同的窗口中有不同的按钮和选择菜单。

三、系统设计

1、功能结构模块图

我们所设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。其功能结构图如下所示:

2、业务流程图

四、详细设计

1、界面设计概述

我设计的ATM机,主要应用java图形用户界面开发的知识,在netbeans上根据要求来创建窗体,窗体整个框架使用JFrame类构造,JFrame有自己的外边框和自己的标题,创建JFrame时可以指定其窗口标题,在创建窗口时,好多代码是自动生成,我只是在其基础上添加一些约束条件的代码,比如说每次输入的取款金额必须为100的整数,当密码输入三次错误,便锁卡等代码需要自己编写,这里我会主要说明自己编写的那部分代码,也是程序中比较重要的部分,其中有许多Swing组件重复应用,代码相同,在报告中不重复说明,比如说数字“0-9”的代码,“退卡”按钮的代码等。

1、各模块界面设计与程序设计

主模块设计:

主函数中定义了6个静态变量:密码(thePassword),余额(balance),新密码1(password1),新密码2(password2),其中密码为String类型,余额是double型,计数器(counter),用来记密码的输入次数,整型,初始化为0,dataStr是String类型,初始化为空字符串,还定义了FileWriter()和FileReader()方法分别用来写和读ATM在交易中的余额和密码也就是dataStr,使用户的余额和密码变成变化后的值。在主方法中首先要调用一次FileReader()方法,获取余额和密码。程序代码如下:

import java.io.*;public class Atm {

/**

* @param args the command line arguments

*/

static String thePassword;

static double balance;

static int counter = 0;

static String password1;

static String password2;

static String filePath = “./temp.txt”;

static File file = new File(filePath);static String dataStr = “";//写文件

static void FileWriter(){

String dataStr;

try{

if(!file.exists())

file.createNewFile();

dataStr = balance + ”,“ + thePassword + ”,“;

byte[] data = dataStr.getBytes();

FileOutputStream fos = new FileOutputStream(file);

fos.write(data);

fos.close();

}

catch(Exception e){

e.printStackTrace();

}

}

//读文件

static void FileReader(){

try{

if(!file.exists())

file.createNewFile();

byte[] data = new byte[64];

FileInputStream fis = new FileInputStream(file);

int rs = 0;

while((rs = fis.read(data))> 0){

dataStr += new String(data,0,rs);

}

if(!dataStr.isEmpty()){

String[] sets = dataStr.split(”,“);

balance = Double.parseDouble(sets[0]);

thePassword = sets[1];

}

fis.close();

}

catch(Exception e){

e.printStackTrace();

}

}

public static void main(String args[]){

FileReader();//调用读文件

try {

for(javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()){

if(”Nimbus“.equals(info.getName())){

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch(ClassNotFoundException ex){

java.util.logging.Logger.getLogger(AtmWelcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch(InstantiationException ex){

java.util.logging.Logger.getLogger(AtmWelcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch(IllegalAccessException ex){

java.util.logging.Logger.getLogger(AtmWelcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch(javax.swing.UnsupportedLookAndFeelException ex){

java.util.logging.Logger.getLogger(AtmWelcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} AtmWelcome aw=new AtmWelcome();aw.setSize(390,290);

aw.setVisible(true);

} }

1)待机界面

这个界面可以说是一个待机界面,点击“插卡”按钮,进入登陆界面,其过程相当于ATM读取磁卡信息的过程,利用了Swing控件中的标签和按钮,在“插卡”按钮添加鼠标点击事件代码如下:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmEnter().setVisible(true);//进入登陆界面

this.setVisible(false);}

2)登陆界面

这个登陆界面,用户名和账号在插卡时相当于系统已经读取,所以下面这个界面只是密码验证,输入正确的密码,若正确,则进入主交易界面,若错误则进入密码错误,重新输入,若输入3次错误,则进入锁卡界面,具体界面和程序代码如下所示:

“确定”按钮的鼠标点击事件代码(用户三次输入错误判断程序):

private void jButton11MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

int l=jPasswordField1.getText().length();

if(l==6&&jPasswordField1.getText().equals(Atm.thePassword))

{

new AtmEnterSuccess().setVisible(true);

this.setVisible(false);}

else if(Atm.counter<2)

{new AtmPasswordError().setVisible(true);

this.setVisible(false);

Atm.counter++;

}

else{new AtmLock().setVisible(true);

this.setVisible(false);

}

}

“数字0-9”按钮的鼠标点击事件代码:

public void setNumber(String c){

jPasswordField1.setText(jPasswordField1.getText()+c);

} private void jButton4MouseClicked(java.awt.event.MouseEvent evt){ // TODO add your handling code here:

setNumber(”1“);

}

private void jButton1MouseClicked(java.awt.event.MouseEvent evt){ // TODO add your handling code here:

setNumber(”2“);}

private void jButton5MouseClicked(java.awt.event.MouseEvent evt){ // TODO add your handling code here:

setNumber(”3“);}

private void jButton3MouseClicked(java.awt.event.MouseEvent evt){ // TODO add your handling code here:

setNumber(”4“);}

private void jButton2MouseClicked(java.awt.event.MouseEvent evt){ // TODO add your handling code here:

setNumber(”5“);}

private void jButton6MouseClicked(java.awt.event.MouseEvent evt){ // TODO add your handling code here:

setNumber(”6“);}

private void jButton7MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

setNumber(”7“);}

private void jButton8MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

setNumber(”8“);}

private void jButton9MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

setNumber(”9“);}

private void jButton12MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

setNumber(”0“);}

“退卡”按钮的鼠标点击事件代码:

private void jButton10MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmWelcome().setVisible(true);//返回到待机界面

this.setVisible(false);}

“更正”按钮的鼠标点击事件代码:

private void jButton14MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

int l = jPasswordField1.getText().length();

if(l!= 0)

jPasswordField1.setText(jPasswordField1.getText().substring(0,l-1));}

3)主交易界面

这个界面分别设计了“查询余额”按钮,“取款”按钮,“修改密码”按钮等,点击时分别进入相应的功能界面,具体代码如下所示:“查询余额”按钮的鼠标点击事件代码:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmAccountBalance().setVisible(true);//进入显示余额界面

this.setVisible(false);}

“取款”按钮的鼠标点击事件代码:

private void jButton4MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmWithdrawl().setVisible(true);//进入取款界面

this.setVisible(false);}

“存款”的鼠标点击事件代码:

private void jButton3MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmDeposit().setVisible(true);//进入存款界面

this.setVisible(false);}

“修改密码”的鼠标点击事件代码:

private void jButton6MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmPasswordChange().setVisible(true);//进入密码修改界面

this.setVisible(false);}

4)密码错误界面

当在登录界面登陆时,若密码错误则出现密码错误界面,这个界面上点击“继续” 按钮则返回到登陆界面重新输入密码,具体代码如下: “继续”按钮的鼠标点击事件代码:

private void jButton2MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmEnter().setVisible(true);//返回到登陆界面

this.setVisible(false);}

5)锁卡界面

密码输错3次,卡锁,代码见登陆界面的“确定”按钮点击事件代码。6)余额查询界面

点击“继续”则返回到主交易界面,具体的代码如下: 显示余额的代码:

public AtmAccountBalance(){

initComponents();

java.awt.EventQueue.invokeLater(new Runnable(){

public void run(){

setVisible(true);

}

});

jLabel1.setText(”当前余额:“+ Atm.balance);

Atm.FileWriter();} “继续”按钮的鼠标点击代码如下:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmEnterSuccess().setVisible(true);//进入主交易界面

this.setVisible(false);}

7)取款界面

取款界面规定单次最多取款5000元,若所取金额在界面上有,则直接点击相应按钮,若没有,则点击“其他面额”按钮,然后输入自己想取得面额,具体事件代码如下:

100,300,500,1000,2000按钮的鼠标点击事件代码如下:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

if(Atm.balance>=Double.valueOf(jButton1.getText()))

{

new AtmWithdrawlSuccess().setVisible(true);//进入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton1.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//进入余额不足界面

this.setVisible(false);

} }

private void jButton3MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

if(Atm.balance>=Double.valueOf(jButton3.getText()))

{

new AtmWithdrawlSuccess().setVisible(true);//进入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton3.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//进入余额不足界面

this.setVisible(false);

} }

private void jButton5MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here

if(Atm.balance>=Double.valueOf(jButton5.getText()))

{

new AtmWithdrawlSuccess().setVisible(true);//进入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton5.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//进入余额不足界面

this.setVisible(false);

} }

private void jButton4MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

if(Atm.balance>=Double.valueOf(jButton4.getText()))

{

new AtmWithdrawlSuccess().setVisible(true);//进入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton4.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//进入余额不足界面

this.setVisible(false);

} }

private void jButton6MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

if(Atm.balance>=Double.valueOf(jButton6.getText()))

{

new AtmWithdrawlSuccess().setVisible(true);//进入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton6.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//进入余额不足界面

this.setVisible(false);

} }

“其他面额”按钮鼠标点击事件代码:

private void jButton2MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmWithdrawlInput().setVisible(true);//输入取款金额界面

this.setVisible(false);}

“返回”按钮的鼠标点击事件代码:

private void jButton7MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmEnterSuccess().setVisible(true);//返回主交易界面

this.setVisible(false);}

8)取款金额输入界面

这个界面是当用户所想取得金额在界面上没有的时候,便需要用户自己输入,规定输入的金额必须是100的倍数,且不大于5000元,具体事件代码如下所示:(其中按钮0-9的代码,“退卡”按钮等的代码和前面相同)

“确定”按钮的鼠标事件代码:

private void jButton11MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

double a=Double.valueOf(jTextField1.getText());

if(Atm.balance>=a&&a%100==0&&a<=5000.0){

new AtmWithdrawlSuccess().setVisible(true);//取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jTextFiled1.getText());

Atm.FileWriter();

}

if(a%100!=0||a>5000){

new AtmWithdrawlInputError().setVisible(true);//取款金额输入错误界面

this.setVisible(false);

}

else{

new AtmBalanceNotEnough().setVisible(true);//余额不足

this.setVisible(false);

}

}

“取消”按钮的鼠标事件代码:

private void jButton13MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmEnterSuccess().setVisible(true);//返回到主交易界面

this.setVisible(false);}

9)存款界面

和取款界面类似,具体的代码如下所示: 100,300,500,1000,2000按钮的鼠标事件代码:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);//存款成功界面

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton1.getText());

Atm.FileWriter();}

private void jButton3MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton3.getText());

Atm.FileWriter();}

private void jButton5MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton5.getText());

Atm.FileWriter();}

private void jButton4MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton4.getText());

Atm.FileWriter();}

private void jButton6MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton6.getText());

Atm.FileWriter();}

“其他面额”按钮的鼠标事件代码:

private void jButton2MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmDepositInput().setVisible(true);//输入存款金额界面

this.setVisible(false);}

10)输入存款金额界面

和存款界面2类似,具体的事件代码如下: “确定”按钮的鼠标事件点击代码:

private void jButton11MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

String cs=jTextField1.getText();

if(Double.valueOf(cs)%100==0&&Double.valueOf(cs)>0){

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(cs);

Atm.FileWriter();}

else{new AtmDepositInputError().setVisible(true);//存款金额输入错误界面

this.setVisible(false);

} }

11)密码修改界面

本来修改密码是要输入原密码的,但我们在使用ATM时,一开始就输入了密码,否则也不能进入修改密码界面,所以在这里直接输入新密码,连续两次输入,且两次输入的密码相同,且6位密码不完全相同,则修改密码成功,否则失败,具体代码如下: “确定”按钮的鼠标事件代码:

private void jButton11MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

String a=jPasswordField1.getText();

Atm.password1=a;

new AtmPasswordInAgain().setVisible(true);//进入密码确认界面

this.setVisible(false);}

“返回”按钮的鼠标事件代码:

private void jButton10MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmEnterSuccess().setVisible(true);

this.setVisible(false);}

12)密码修改确认界面

第二次输入新密码,具体代码如下: “确定”按钮的鼠标事件代码:

private boolean Samechars(String str)//若6位密码相同,则返回false {

if(str.equals(”000000“)==true || str.equals(”111111“)==true || str.equals(”222222“)==true || str.equals(”333333“)==true || str.equals(”444444“)==true || str.equals(”555555“)==true || str.equals(”666666“)==true || str.equals(”777777“)==true || str.equals(”888888“)==true || str.equals(”999999")==true)

return true;

else

return false;}

private void jButton11MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

String b= jPasswordField1.getText();

Atm.password2=b;

int i = jPasswordField1.getText().length();

if(i== 6 && Atm.password1.equals(b)&& Samechars(b)==false)

{

Atm.thePassword = b;

Atm.FileWriter();

new AtmPasswordChangeSuccess().setVisible(true);//进入修改成功界面

this.setVisible(false);

}

else

{ new AtmPasswordUnsucc().setVisible(true);//进入失败界面

this.setVisible(false);}

} 13)密码修改成功界面

当两次输入的密码相同,则弹出密码修改成功界面,点击“继续”按钮返回到主交易界面,退出系统则点击“退卡”按钮。代码略。14)密码修改失败界面

点击“确定”按钮,则返回到修改密码界面,若放弃修改点击“退卡”按钮,若还想进行其他交易,则点击“确定”后,再点击修改密码界面的“返回”按钮。

“确定”按钮的鼠标点击事件代码:

private void jButton2MouseClicked(java.awt.event.MouseEvent evt){

// TODO add your handling code here:

new AtmPasswordChange().setVisible(true);//返回到密码修改界面

this.setVisible(false);}

15)存款成功界面

点击“继续”则返回到主交易界面,“退出”则退出交易。16)存款失败界面

当所存金额不是100的整数时,则存款失败,同样点击“返回”按钮则返回到主交易界面,点击“退卡”则退出交易。17)取款成功界面

当索取金额不大于5000,且是100的整数,当前余额不小于索取金额时,则取款成功。

18)取款失败界面(余额不足)

当输入的金额大于当前余额,输入的金额不大于5000且是100的倍数,则弹出余额不足界面。19)取款失败界面(输入金额错误)

当输入的金额不是100的倍数且大于5000时,出现此界面。

五、参考文献

《Java应用案例教程》张红梅,姜晓刚等著

清华大学出版社

六、心得体会

在这次的期中课程设计中,我主要运用了Java语言的图形用户界面设计、异常处理、Swing控件,输入输出流等,综合运用了Java语言。我深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java中的类实现某些基本功能,在完成设计的同时培养了自己的编程思维,为以后做别的设计打下基础。

刚开始做ATM机课程设计的时候,我简直一点头绪也没有,我想着自己编程一直都那么差,怎么可能完成这么难的设计,但是这是期中考试设计,肯定得交啊,所以我不得不图书馆借书看,边看边做,在做的过程中,我才知道java不只是写代码,还有许多其他的功能,我发现我对专业课不像以前那么的排斥了,还有感觉通过自己查询相关书籍去实践以及和同学交流获取的知识更巩固,我不再那么讨厌编程了,我觉得无论什么事情,只要自己愿意去尝试,并且尽自己最大努力去做,总会有所收获的。本来一直认为这门专业对女生来说学起来很吃力,很困难,但是现在又有了信心,差的人可以付出更多的努

力去弥补自己的不足,这样就可以不被落下了。在以后的学习中,我会更加努力,我觉得java学习一定要理论与实践相结合,才能更好地掌握知识。

第五篇:JAVA课程设计-ATM机模拟系统

《Java语言程序设计》

课程设计报告

目:

ATM柜员机

业:

信息与计算科学

号:

名:

指导教师:

成绩:

2010 年 12 月 10 日

目 录

1课程设计研究背景及意义.......................................2 2 课程设计题目描述和基本功能设计要求...........................2 3 系统需求分析.................................................2 3.1 功能需求分析............................................2 3.2 其他需求分析............................................3 4 系统设计.....................................................3 4.1 总体设计................................................3 4.2 ATM柜员机界面设计......................................4 4.3 各功能模块设计..........................................5

4.3.1 登陆页面模块设计................................5 4.3.2 选择服务模块设计................................6 4.3.3 取款模块设计....................................7 4.3.4 修改密码模块设计................................8 4.3.5 查询余额模块设计................................9 4.3.6 退卡模块设计....................................9 4.4 异常处理情况说明.......................................10 5 系统实现与测试..............................................10 6 课程设计总结................................................13 6.1 遇到的问题及解决办法...................................13 6.2 心得体会...............................................14 参考文献......................................................14 附录(源码)..................................................14

1课程设计研究背景及意义

这次课程设计是通过JAVA编程来实现ATM柜员机的功能。以前,人们用手算取钱,不管从方便的角度还是速度的角度来看都不及现在。电子技术的不断发展使得ATM自动化的功能不断完善。在二十一世纪的今天,ATM柜员机是人们生活中重要的工具,所以,对ATM柜员机的研究的课程设计具有重大意义。

这次课程设计的主要目的是结合面向对象程序设计课程,培养我们面向对象开发的思维,初步了解软件开发的一般流程,提高用JAVA编程的实际动手能力并增强大家对面向对象的了解。这次课程设计的主要内容是独立用JAVA语言开发一个小的应用程序。课程设计题目描述和基本功能设计要求

本次设计的ATM柜员机主要是由各个Windows窗口组成,它是由登录页面、选择服务、取款、查询余额、修改密码和退卡等功能。它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求。组员分工:

组长(单焱): 负责分配其他组员的任务,构建需求分析,系统实现及异常处理情况,调试程序等,把握ATM柜员机的整体布局。

组员1(刘星):负责登陆界面模块,选择服务模块及退卡模块,编写相应代码。组员2(王玲玲):负责取款、修改密码、查询余额模块,编写相应代码。系统需求分析 3.1 功能需求分析

本ATM柜员机的主要功能如下所述:

要求使用图形用户界面。当输入给定的卡号和密码(初始卡号为000000和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:

 查询余额:初始余额为50000元

 ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

 ATM存款:不能出现负存款。

 修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

3.2 其他需求分析

(1)性能描述

实时性好、灵活性强、易于不同年龄阶段的人操作。(2)设计约束 开发工具:Eclipse3.2.运行环境:Windows 2000以上。(3)界面要求

以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、最大化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。系统设计 4.1 总体设计

本次设计的ATM柜员机主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由取款模块、查询余额模块、修改密码模块、退卡模块组成。如图:

图1

ATM功能结构示意图

4.2 ATM柜员机界面设计

一个系统的界面应该要简单明了,当然样式美观就更好了。本次设计的界面主要是由窗体组成,操作简单。而每一个窗口则执行相应的功能。

一个系统界面的好坏直接影响到用户的操作,界面设计要求样式美观、简单明了、方便易操作。界面主要分为窗体、菜单、按钮和文本输入框几个部分,分别执行相应的操作。

(1)窗体的设计

窗体整个框架使用Frame类构造,Frame有自己的外边框和自己的标题,创建Frame时可以指定其窗口标题,我创建的窗口标题是各个不同功能的模块的名字,比如说查询余额,还有取款等。相应源代码为:WindowBox(String s){super(s);}、Selection(String s,Account act){ } 向Frame窗口中添加组件使用add()。例如:button1 = new Button(“存款”);

p1.add(button1);this.add(p1);super(s);每个Frame在其右上角都有三个控制图标,分别代表将窗口最小化、窗口最大化和关闭的操作,其中最小化和最大化操作Frame可自动完成,而关闭窗口操作实现需要书写有关的代码,在我的程序中我采用的是对WINDOWS_CLOSING事件做出响应,调用dispose()方法关闭窗口。Frame也可以引发WindowsEvent类代表的窗口事件。相应源代码为:

addWindowListener(new WindowAdapter()//窗口侦听器,以从此窗口接收窗口事件 {public void windowClosing(WindowEvent e)//处理窗口关闭事件

{ System.exit(0);} });}(2)窗体的主要结构的设计(网格布局)

我所设计的窗口的主要结构的特点就是每个窗口都对应着一个特定的功能。比如说报各种各样的错,还有各种查询余额、取款、选择服务等,所以它们都是由各种按钮和文本框,标签组成的,而联系各个窗体成为一个整体的就是各个按钮的监听事件。所以整个设计就趋向简单化了。

为了定义各个按钮所对应的命令和操作,首先需要将各个按钮注册给实现了动作事件的监听接口ActionListener的监听者,然后为监听者定义actionPerformed(ActionEvent e)方法,在这个方法中调用e.getSource()或e.getActionCommand()来判断用户点击的菜单子项,并完成这个菜单子项定义的操作。

4.3 各功能模块设计 4.3.1 登陆页面模块设计

与ATM柜员机打交道比较多的,也是大家对安全比较关心的问题:密码。所以第一个界面就是要输入密码和卡号才能继续服务。

我定义了文本框累的对象tf1,tf2。抓药是用于输入单行的文本;文本区调用public String getText()方法,获取用户想要的字符串。用来判断输入的密码和卡号是否正确,如果不正确的话,则弹出密码或卡号错误的警告框,并用dispose()关掉窗口。此模块相应的部分源代码为:

public void actionPerformed(ActionEvent e){

Account act;

String card;

String pwd;

act=new Account(“000000”,“Devil”,“123456”,50000);//初始化

/*选择各种服务*/

if(e.getSource()== button1){

String number1,number2;

number1=tf1.getText();

number2=tf2.getText();

/*判断密码和卡号是否正确*/ if((act.get_Code().equals(number1))&&(act.get_Password().equals(number2))){

dispose();

/*卡号和密码都正确则进入功能选择窗口*/

Selection s = new Selection(“选择服务”,act);

}else{

dispose();

JOptionPane.showMessageDialog(null, “您输入的卡号或密码不正确,请核实后再确定”,“消息!”, JOptionPane.INFORMATION_MESSAGE);

new WindowBox(“登录界面”);

}

}

/*退卡*/ if(e.getSource()==button2){

dispose();

JOptionPane.showMessageDialog(null, “谢谢使用!”, “消息!”,JOptionPane.INFORMATION_MESSAGE);System.exit(0);

} } 4.3.2 选择服务模块设计

在选择服务模块中,有各种ATM的服务功能,只要用户在该界面中选择按钮,它就会弹出各个相应的界面。每一个按钮都有监听器,在选择了按钮后,java.awt.event中的ActionEvent类创建一个事件对象,并将它传递给方法public void actionPerformed(ActionEvent e)中的参数e,监视器就会知道所发生的事件,对此事件进行处理。其中的部分源代码为:

p.add(new Label(“请选择你要的服务”));

this.add(p);

button1 = new Button(“存款”);

p1.add(button1);

this.add(p1);

button2 = new Button(“取款”);

p2.add(button2);

this.add(p2);

button3 = new Button(“查询余额”);

p3.add(button3);

this.add(p3);

button4 = new Button(“退出”);

p4.add(button4);

this.add(p4);

button5 = new Button(“修改密码”);

p5.add(button5);

this.add(p5);

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

});button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);setBounds(300,300,300,300);setVisible(true);validate();} public void actionPerformed(ActionEvent e){ if(e.getSource()==button2){//取款

dispose();

GetBalance gb = new GetBalance(“取款”,act);} if(e.getSource()==button3){//查询余额

Query q =new Query(“查询余额”,act);

dispose();} else if(e.getSource()==button4){//退出

dispose();

} JOptionPane.showMessageDialog(null, “谢谢使用!”, “消息!”,JOptionPane.INFORMATION_MESSAGE);System.exit(0);

} else if(e.getSource()==button5){//修改密码

ChangePassword cp = new ChangePassword(“修改密码”,act);

dispose();} 4.3.3 取款模块设计

在取款模块中,和其他的界面也是同样的结构。也是有一个文本框和一个按钮还有标签组成的。用户在文本框中输入他想取的数额,但是必须是100的倍数,而且每一次最多只能取5000块。当然了取款的时候也不能超过卡里的余额,再就是卡里的余额不可以为负,否则就会弹出报错的窗口。其方法为:

if(e.getSource()== button){

if(act.get_Money()< 0){// 判断余额是否为负

dispose();JOptionPane.showMessageDialog(null, “余额为负数”, “消息”,JOptionPane.INFORMATION_MESSAGE);} else if(money <= act.get_Money()){// 取钱的数额不大于余额

if(money % 100 == 0){

dispose();

JOptionPane.showMessageDialog(null, “取款成功!”, “消息”,JOptionPane.INFORMATION_MESSAGE);act.set_Balance(money);this.setVisible(false);Selection s = new Selection(“选择服务”, act);}

if((money % 100!= 0)||(money >= 5000)){// 取钱数为100的倍数或不大于5000

dispose();

JOptionPane.showMessageDialog(null,的钱!“, ”消息“,务窗口

}

”每次只能取100的倍数,而且不能超过5000,请重新输入你想取

JOptionPane.INFORMATION_MESSAGE);act.get_Money();this.setVisible(false);Selection s = new Selection(“选择服务”, act);// 返回选择服} else if(money > act.get_Money()){// 判断取款数额是否大于余额

dispose();

JOptionPane.showMessageDialog(null, “超过已有的钱数,请重新输入你想取的钱!”,“消息”, JOptionPane.INFORMATION_MESSAGE);

this.setVisible(false);

} Selection s = new Selection(“选择服务”, act);} 4.3.4 修改密码模块设计

在修改密码模块中,首先你必须要输入你的旧密码是否正确,否则就会报错。再一个就是要两次输入你的新密码,且两次药匹配,否则也会报错,然后再重新回到修改密码的界面。在修改密码时用到的方法为:

/*判断旧密码是是否正确*/ if(pwd2.equals(act.get_Password())){ /*判断两次输入的密码是否匹配*/

if(pwd3.equals(pwd4)){

/*如果都正确的话就设置新密码*/

act.setPassword(pwd3);

dispose();

Selection s = new Selection(“选择”,act);}else{

dispose();

ErrorWarn2 ew2 = new ErrorWarn2(“消息”,act);

} }else{

this.setVisible(false);

ErrorWarn3 ew1 = new ErrorWarn3(“消息”,act);

dispose();} 4.3.5 查询余额模块设计

在查询余额模块设计中, 和其他的界面的结构相差不多。有一个余额显示和一个按钮还有标签组成的。查询时用到的方法:

Query(String s, Account act){// 构造函数

super(s);this.act = act;button = new Button(“确定”);// TextField tf = new TextField(6);Panel panel1 = new Panel();Panel panel = new Panel();panel1.add(new Label(“你的余额为: ” + act.get_Money()));// 查询余额的button.addActionListener(this);panel.add(button);this.add(panel);this.add(panel1);this.setLayout(new GridLayout(2, 1));this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

System.exit(0);} });setBounds(300, 300, 300, 300);setVisible(true);

方法

} 4.3.6 退卡模块设计

在退卡模块设计中,这个方法就更加的简单了,它只是用了if(e.getSource()==button4){//退出

dispose();JOptionPane.showMessageDialog(null, “谢谢使用!”, “消息!”,JOptionPane.INFORMATION_MESSAGE);System.exit(0);} 这个方法就可以实现了,这里就不再多说了。

4.4 异常处理情况说明

(1)打开、保存文件时的异常处理 需要处理的异常:IOException(2)数据库访问时的异常处理 需要处理的异常:SQLException(3)加载类时的异常处理

需要处理的异常:ClassNotFindException,当应用程序试图使用Class类中的forName方法通过字符串名加载类时,但是没有找到具有指定名称的类的定义。

(4)加载URL时的异常

需要处理的异常:MalformedURLException,抛出这一异常指示出现了错误的 URL。或者在规范字符串中找不到任何合法协议,或者无法分析字符串。系统实现与测试

(1)编译运行程序后,将会看到如下的界面,如图2所示。如果输入的密码或卡号不正确的话就会报右下图的错误。

图2 主界面—登陆页面

(2)选择服务界面效果

当输入的密码和卡号正确,单击确定后就会进入到选择服务的界面,如图3所示。然后就可以选择所需要的服务了。

图3 选择服务界面

(3)取款界面,如图4所示。

图4 取款界面

当输入的钱数不是100的倍数或每一次大于5000时就会报图5的错误。

图5 输入错误1 当取款时如果超过卡里的余额的话就会报图6的错误。

图6 输入错误2(4)查询余额界面,如图7所示。

图7 查询余额界面

(5)修改密码界面,如图8所示。

图8 修改密码界面

当输入的初始密码不正确会报图9所示错误。

图9 输入错误1

当2次输入的新密码不同会报图10所示错误。

图10 输入错误2

经过测试,所有的功能基本上都实现了,而且运行正常。课程设计总结

6.1 遇到的问题及解决办法

在此次课程设计中遇到了一些问题,如:对于面向对象的方法了解不够透彻,运用到实际的软件开发中存在着困难;对于Java语言,只学习到了一些最基本的知识,这导致编写程序时经常出现一些语法错误,而且要在短时间内用Java语言来设计一个具体的系统是一个较大的挑战;还有对于正规开发一个系统的流程不熟悉,适应起来比较慢,编写各个模块相对应的操作时,自己感觉难以动手,这表明所学的知识不能灵活运用到实际中。

对于以上的问题,自己有清楚的认识,解决办法是需要大量阅读相关的书籍,对于书上以及网站上下载的资料中的Java实例必须有清楚的理解,还有就是多跟精通此方面的老师和同学交流,取其精华。对于实际动手能力与系统开发的流程的适应,必须多进

行实际的练习与操作,才能有大的进步。

6.2 心得体会

在这次的课程设计中,主要运用了Java语言的界面设计、异常处理、、Awt控件、Swing控件,输入输出流等,综合运用了Java语言。深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java中的类实现某些基本功能,并学会了自己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。

通过这次课程设计我学到了一些东西,这次的课程设计中,主要是运用JAVA语言来编写一个小的应用程序,当然还可以用其他的技术来辅助。在这个小应用程序当中,我用了Java外还用了Swing控件。输入输出流等。由于以前学的不是很扎实,而且还有些知识我们都是没有学过的,这就要求我们去查相关的书籍,还有就是和同学之间的交流。正因为这样,才锻炼了我的自学的能力,还有就是加深了我对各个知识点的认识,并且提高了我对专业的学习的兴趣,为我以后的学习打下了基础。此外,还感受到了面向对象语言的类库的强大的功能,掌握了运用JAVA中的类实现某些基本功能,并学会了自己查询使用类的方法,也就是要会用API文档,为以后更好的学习面向对象语言奠定了基础。

通过努力,这次课程设计终于完成了,在这个过程当中,学到了很多的知识,同时也感谢我的同学的帮助和指导。在以后的学习当中,我会更加努力的学习好专业知识,并将所学的知识用于实践当中去,以便牢固掌握知识。

参考文献

[1] 王萌,刘婧,来宾著.JAVA程序设计[M]北京 冶金工业出版社,2004 [2] 黄聪明 精通 JAVA2程序设计[M]北京:清华大学出版社,2004.4 [3] 王文涛,袁海燕 JAVA实用程序设计100例[M]北京:人民邮电出版社,2005.5 [4] 雍俊海 JAVA程序设计[M]北京:清华大学出版社,2006.8 [5] 刘宝林 JAVA程序设计与案例[M]北京:高等教育出版社,2006.11 附录(源码)

/******登陆页面首窗口*******/ import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;

import java.io.*;

public class WindowBox extends Frame implements ActionListener { Box baseBox, box1, box2;TextField tf1, tf2;Button button1;Button button2;

WindowBox(String s){// 构造方法

super(s);tf1 = new TextField(6);tf2 = new TextField(6);box1 = Box.createVerticalBox();

box1.add(new Label(“请输入你的卡号”));// 输入卡号 box1.add(Box.createVerticalStrut(8));box1.add(new Label(“请输入你的密码”));// 输入密码 box2 = Box.createVerticalBox();box2.add(tf1);// box2.add(new TextField(16));

box2.add(Box.createVerticalStrut(8));box2.add(tf2);// box2.add(new TextField(16));

baseBox = Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(10));baseBox.add(box2);add(baseBox);button1 = new Button(“确定”);// 加入按钮 button1.addActionListener(this);add(button1);button2 = new Button(“退卡”);// 退卡按钮 button2.addActionListener(this);add(button2);setLayout(new FlowLayout());/* 监听器 */

this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

System.exit(0);} });setBounds(300,300,220,220);setVisible(true);} public void actionPerformed(ActionEvent e){

Account act;String card;String pwd;act = new Account(“000000”, “Devil”, “123456”, 50000);// 初始化 /* 选择各种服务 */

if(e.getSource()== button1){

String number1, number2;// 输入的两个卡号和密码的变量 number1 = tf1.getText();number2 = tf2.getText();/* 判断两次输入的卡号和密码是否正确 */

if((act.get_Code().equals(number1))

&&(act.get_Password().equals(number2))){ dispose();Selection s = new Selection(“选择服务”, act);} else { dispose();

JOptionPane.showMessageDialog(null, “您输入的卡号或密码不正确,请核实后再确定”,“消息!”, JOptionPane.INFORMATION_MESSAGE);

// 报输入密码或卡号不正确

new WindowBox(“登录界面”);

}

}

if(e.getSource()== button2){

System.exit(0);

dispose();// 退出

} } }

/*************主函数****************/ public class ATM { public static void main(String[] args){

new WindowBox(“登录页面”);} } /********* 选择服务窗口 ***************/ import java.awt.*;import java.awt.event.*;

public class Selection extends Frame implements ActionListener { Button button1, button2, button3, button4, button5;

Panel p1 = new Panel();Panel p2 = new Panel();Panel p3 = new Panel();Panel p4 = new Panel();Panel p5 = new Panel();Panel p = new Panel();Account act;public Selection(){ } Selection(String s, Account act){ super(s);this.act = act;this.setLayout(null);this.setLayout(new GridLayout(6, 1));

p.add(new Label(“请选择你要的服务”));this.add(p);/* 各种服务功能 */

button1 = new Button(“存款”);p1.add(button1);this.add(p1);button2 = new Button(“取款”);p2.add(button2);this.add(p2);button3 = new Button(“查询余额”);p3.add(button3);this.add(p3);button4 = new Button(“退出”);p4.add(button4);this.add(p4);button5 = new Button(“修改密码”);p5.add(button5);this.add(p5);this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

System.exit(0);} });button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);button5.addActionListener(this);setBounds(300, 300, 300, 300);setVisible(true);validate();

} } public void actionPerformed(ActionEvent e){

} if(e.getSource()== button2){// 取款

dispose();GetBalance gb = new GetBalance(“取款”, act);} if(e.getSource()== button3){// 查询余额

Query q = new Query(“查询余额”, act);dispose();} else if(e.getSource()== button4){// 退出

dispose();

JOptionPane.showMessageDialog(null, “谢谢使用!”, “消息!”,JOptionPane.INFORMATION_MESSAGE);System.exit(0);} else if(e.getSource()== button5){// 修改密码

ChangePassword cp = new ChangePassword(“修改密码”, act);dispose();} /**********取款功能************/ import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;

public class GetBalance extends Frame implements ActionListener { Box baseBox, box1, box2;Button button;TextField tf;Account act;

GetBalance(String s, Account act){// 构造函数

super(s);this.act = act;

button = new Button(“确定”);Panel panel = new Panel();Panel panel1 = new Panel();tf = new TextField(6);this.setLayout(new GridLayout(2, 1));panel1.add(new Label(“请输入你想取钱的数目”));panel1.add(tf);panel.add(button);this.add(panel1);

this.add(panel);button.addActionListener(this);this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

} });setBounds(300, 300, 300, 300);this.setVisible(true);} public void actionPerformed(ActionEvent e){ // System.out.println(e.getActionCommand());

double money;money = Double.parseDouble(tf.getText().trim());if(e.getSource()== button){

if(act.get_Money()< 0){// 判断余额是否为负

dispose();JOptionPane.showMessageDialog(null, “余额为负数”, “消息”,JOptionPane.INFORMATION_MESSAGE);} else if(money <= act.get_Money()){// 取钱的数额不大于余额

if(money % 100 == 0){

dispose();

JOptionPane.showMessageDialog(null, “取款成功!”, “消息”,JOptionPane.INFORMATION_MESSAGE);act.set_Balance(money);this.setVisible(false);Selection s = new Selection(“选择服务”, act);}

if((money % 100!= 0)||(money >= 5000)){// 取钱数为100的倍数或不大于5000

dispose();

JOptionPane.showMessageDialog(null,的钱!“, ”消息“,务窗口

”每次只能取100的倍数,而且不能超过5000,请重新输入你想取

JOptionPane.INFORMATION_MESSAGE);act.get_Money();this.setVisible(false);Selection s = new Selection(“选择服务”, act);// 返回选择服 // dispose();} } else if(money > act.get_Money()){// 判断取款数额是否大于余额

dispose();JOptionPane.showMessageDialog(null, “超过已有的钱数,请重新输入

你想取的钱!”,“消息”, JOptionPane.INFORMATION_MESSAGE);

this.setVisible(false);口

Selection s = new Selection(“选择服务”, act);// 返回选择服务窗

} } } }

/********修改密码功能*************/ import java.awt.Button;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Label;import java.awt.Panel;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JOptionPane;

public class ChangePassword extends Frame implements ActionListener { Panel panel1 = new Panel();Panel panel2 = new Panel();Panel panel3 = new Panel();Panel panel = new Panel();TextField tf4, tf5, tf6;Button button;Account act;ChangePassword(String s, Account act){

super(s);

this.act = act;

tf4 = new TextField(6);

tf5 = new TextField(6);

tf6 = new TextField(6);

button = new Button(“确定”);button.addActionListener(this);/* 建立新密码 */

panel1.add(new Label(“请输入你的旧密码:”));panel1.add(tf4);panel2.add(new Label(“请输入你的新密码:”));panel2.add(tf5);

} panel3.add(new Label(“请再次输入你的新密码”));panel3.add(tf6);panel.add(button);this.add(panel1);this.add(panel2);this.add(panel3);this.add(panel);setLayout(new GridLayout(4, 1));setBounds(300, 300, 300, 300);this.setVisible(true);/* 窗口事件 */

this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){

System.exit(0);} });/* 判断事件源,看条件是否成立再修改密码 */

public void actionPerformed(ActionEvent e){ if(e.getSource()== button){

String pwd2, pwd3, pwd4;

pwd2 = tf4.getText();

pwd3 = tf5.getText();

pwd4 = tf6.getText();

if(pwd2.equals(act.get_Password())){// 判断旧密码是否正确

if(pwd3.equals(pwd4)){// 判断两次输入的新密码是个匹配

act.setPassword(pwd3);// 启用新的密码

dispose();

JOptionPane.showMessageDialog(null, “密码修改成功!”, “消息

JOptionPane.INFORMATION_MESSAGE);

”,Selection s = new Selection(“选择”, act);// 返回服务窗口 } else { this.setVisible(true);

// ErrorWarn2 ew = new ErrorWarn2(“消息”,act);dispose();JOptionPane.showMessageDialog(null, “两次密码输入不匹配”, “

JOptionPane.INFORMATION_MESSAGE);

消息”,Selection s = new Selection(“选择”, act);// 返回服务窗口

} } else { this.setVisible(false);dispose();

“,} JOptionPane.showMessageDialog(null, ”初始密码输入错误“, ”消息

JOptionPane.INFORMATION_MESSAGE);

Selection s = new Selection(“选择”, act);// 返回选择服务窗口

} } } /**************查询余额功能******************/ import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;

public class Query extends Frame implements ActionListener { Button button;Account act;

Query(String s, Account act){// 构造函数

super(s);this.act = act;

button = new Button(“确定”);// TextField tf = new TextField(6);Panel panel1 = new Panel();Panel panel = new Panel();

panel1.add(new Label(“你的余额为: ” + act.get_Money()));// 查询余额的方法

// panel1.add(tf);

button.addActionListener(this);

panel.add(button);

this.add(panel);

this.add(panel1);

this.setLayout(new GridLayout(2, 1));

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

setBounds(300, 300, 300, 300);

setVisible(true);} public void actionPerformed(ActionEvent e){

if(e.getSource()== button){

dispose();

Selection s = new Selection(“选择服务”, act);// 返回选择服务窗口

} } }

/***********账户****************/ import java.io.*;/* 该类为实现客户信息及部分功能 */ public class Account {

{

} private String code = null;// 信用卡号 private String name = null;// 客户姓名

private String password = null;// 客户密码 private double money = 0.0;// 卡里金额

public Account(String code, String name, String password, double money)

} this.code = code;this.name = name;this.password = password;this.money = money;public String get_Code(){// 取得卡号

return code;} public String get_Name(){// 取得名字

return name;} public String get_Password(){// 取得密码

return password;} public double get_Money(){// 重置余额

return money;} /* 得到剩余的钱的数目 */

protected void set_Balance(double mon){ money-= mon;} /* 重置密码的方法 */

public String setPassword(String pwd){ password = pwd;return password;}

下载课程设计:洗地毯机15篇word格式文档
下载课程设计:洗地毯机15篇.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    实验室洗瓶机配备标准及清洗剂的重要性

    实验室洗瓶机配备标准及清洗剂的重要性 全自动洗瓶机的技术性能: 开机自检、LED显示、触摸控制、在线同步显示水温、运行时间、运行步骤等参数。 控制系统具有十个标准清洗程......

    机本08级《机械制造工艺学》课程设计指导书

    机本0803-0807班《机械机械工艺学课程设计》指导书第 1 页 共 3 页 《机制工艺与夹具设计课程设计》指导书 一、设计的目的: 机械制造工艺学与机床夹具设计课程设计是在《机......

    数电课程设计报告-乒乓球机(精选五篇)

    数字电路与系统课程设计 大连理工大学城市学院 数字电路与系统课程设计 设计题目:设计自动售货机控制电路 学 院:电子与自动化学院 专 业: 自动化 学 生: 王 宇 同 组 人: 王一、......

    地毯清洁作业指导书

    深圳市长城物业管理股份有限公司 保洁手册-作业指导书 管理处标准版 地毯清洁作业指导书 编号:CCPM/G-0804-C308 密级:D 第1页 共 2页 版号/改次: C/0 工作文件 1.0 适用范围......

    地毯使用说明书

    使用说明书 新的地毯使用初期会有轻微伏毛出现,属正常现象。整个使用过程中,应注意的是地毯的清洗。 清洗地毯规范及操作 一、水抽清洗地毯(可适于化纤地毯) 使用设备:地毯刷、喷......

    地毯清洗合同书

    地毯清洗合同书 甲方 : 乙方: 经双方友好协商,由乙方根据甲方的要求,承接甲方清洗地毯工程,为了规范运作,保质保量完成工程,双方协议如下: 清洗时间: 一、时间 年 月 日 时开始 ,一......

    地毯清洗合同

    地毯清洗合同 甲方:云南钜都矿业有限公司 乙方:昆明明洁家政服务中心 经甲、乙双方友好协商,本着平等互利、,公平公正的原则,明确双方责、权、利,确保清洗服务能优质按时完成,特签......

    地毯清洗标准

    地毯的清洗程序和清洁标准地毯清洁是地毯保养中很重要的一项工作,进行地毯清洁的操作人员要经过专业的培训。因为地毯清洁过程中要使用很多不同的机器和清洗剂,清洗的地毯的质......