第一篇:課程設(shè)計:洗地毯機(jī)1
地毯清洗機(jī)的設(shè)計
機(jī)電工程系 焊接技術(shù)與自動化專業(yè)
Z100353班 第七組
指導(dǎo)老師: 張旦聞
設(shè)計人: 韓雪斌
李庚 鞏喜帥
地毯清洗機(jī)
前言 :
隨著當(dāng)今社會的高速發(fā)展,人民的生活水平日益改善,物質(zhì)生活越來越豐富多彩。為了滿足人們?nèi)找嬖鲩L的物質(zhì)需求,各種各樣的生活用品也如雨后春筍般出現(xiàn)。如空調(diào)、電腦、珍木家具,地毯等。當(dāng)然這些東西方便人們的同時,也給生活帶來諸多不便。就如地毯,清洗就是一大困擾人的難題。為了解決人們的生活難題,方便人們的生活,我組特設(shè)計一款地毯清洗機(jī)。以解決困擾人們的生活難題,現(xiàn)將該機(jī)的一些情況介紹如下。
在介紹地毯清洗機(jī)之前,我們先來了解一下地毯的一些情況。現(xiàn)在地毯的種類很多,按地毯材質(zhì)分類有:
(l)純毛地毯 我國的純毛地毯是以土種綿羊毛為原料,其纖維長,拉力大,彈性好,有光澤,纖維稍粗而且有力,是世界上編織地毯的最好優(yōu) 質(zhì)原料。純毛地毯的重量約為1.6~2.6kg/平米,是高級客房、會堂、舞臺等地面的高級裝修材料。近年來還生產(chǎn)了純羊毛無紡織地毯,它是不用紡織或編織方法而制成的純毛地毯。
(2)混紡地毯 混紡地毯是以毛纖維與各種合成纖維混紡而成的地面裝修材 料?;旒彽靥褐幸驌接泻铣衫w維,所以價格較低,使用性能有所提高。如在羊毛纖維中加入20%的尼龍纖維混紡后,可使地毯的耐 磨性提高五倍,裝飾性能不亞于純毛地毯,并且價格下降。(3)化纖地毯 化纖地毯也叫合成纖維地毯,如聚丙烯化纖地毯,丙綸化纖地 毯,睛綸(聚乙烯睛)化纖地毯、尼龍地毯等。它是用簇絨法或機(jī)織法將合成纖維制成面層,再與麻布底層縫合而成?;w地毯耐磨性 好并且富有彈性,價格較低,適用于一般建筑物的地面裝修。
(混紡地毯)(純毛地毯)
(塑料地毯)(化纖地毯)
(各種地毯的樣式)
(4)塑料地毯 塑料地毯是采用聚氯乙烯樹脂、增塑劑等多種輔助材料,經(jīng)均 勻混煉、塑制而成,它可以代替純毛地毯和化纖地毯使用。塑料地毯質(zhì)地柔軟,色彩鮮艷,舒適耐用,不易燃燒且可自熄,不怕濕。塑料地毯適用于賓館、商場、舞臺、住宅等。因塑料地毯耐 水,所以也可用于浴室起防滑作用。
地毯還可根據(jù)供應(yīng)的款式分類有:(1)整幅成卷供應(yīng)的地毯 化纖地毯、塑料地毯以及無紡織純毛地毯常接整幅成卷供貨。鋪設(shè)這種地毯可使室內(nèi)有寬敞感,整體感,但損壞更換不太方便,也不夠經(jīng)濟(jì)。(2)塊狀地毯 純毛等不同材質(zhì)的地毯均可成塊供應(yīng)。純毛地毯還可以成套 供貨,每套由若于塊形狀、規(guī)格不同的地毯組成?;ㄊ椒綁K地毯是由花色各不相同的小塊地毯組成,它們可以拼成不同的圖案。塊狀地毯鋪設(shè)方便而靈活,位置可隨時變動,這一方面給室內(nèi) 設(shè)計提供了更大的選擇性,同時也可滿足不同主人的情趣,而且磨損嚴(yán)重部位的地毯可隨時調(diào)換,從而延長了地毯的使用壽命,達(dá)到 既經(jīng)濟(jì)又美觀的目的。在室內(nèi)巧妙地鋪設(shè)小塊地毯,常常可以起到畫龍點(diǎn)睛的效果。小塊地毯可以破除大片灰色地面的單調(diào)感,還能使室內(nèi)不同的功能區(qū)有所劃分。門口毯、床前毯、道毯等均是塊狀地毯的成功應(yīng)用。
地毯的作用
(一)保暖、調(diào)節(jié)功能
地毯織物大多由保溫性能良好的各種纖維織成,大面積地鋪墊地毯可以減少室內(nèi)通過地面散失的熱量,阻斷地面寒氣的侵襲,使人感到溫暖舒適。測試表明,在裝有暖氣的房內(nèi)鋪以地毯后,保暖值將比不鋪地毯時增加12%左右。
地毯織物纖維之間的空隙具有良好的調(diào)節(jié)空氣濕度的功能,當(dāng)室內(nèi)濕度較高時,它能吸收水分;室內(nèi)較干燥時,空隙中的水分又會釋放出來,使室內(nèi)濕度得到一定的調(diào)節(jié)平衡,令人舒爽怡然。
(二)吸音功能
地毯的豐厚質(zhì)地與毛絨簇立的表面具備良好的吸音效果,并能適當(dāng)降低噪聲影響。由于地毯吸收音響后,減少了聲音的多次反射,從而改善了聽音清晰程度,故室內(nèi)的收錄音機(jī)等音響設(shè)備,其音樂效果更為豐滿悅耳。此外,在室內(nèi)走動時的腳步聲也會消失,減少了周圍雜亂的音響干擾,有利于形成一個寧靜的居室環(huán)境。
(地毯的一些危害因素增長率呈負(fù)增長)
(三)舒適功能
人們在硬質(zhì)地面上行走時,腳掌著力于地以及地面的反作用力,使人感覺不舒適并容易疲勞。鋪墊地毯后,由于地毯為富有彈性纖維的織物,有豐滿、厚實(shí)、松軟的質(zhì)地,所以在上面行走時會產(chǎn)生較好的回彈力,令人步履輕快,感覺舒適柔軟,有利于消除疲勞和緊張。在現(xiàn)代居室中,由于鋼材、水泥、玻璃等建筑材料的性質(zhì)生硬與冷漠,使人們十分注意如何改變它們,以追求觸覺與視覺的柔軟感和舒適度。地毯的鋪墊給人們以溫馨,起著極為重要的作用。
(四)審美功能
地毯質(zhì)地豐滿,外觀華美,鋪設(shè)后地面能顯得端莊富麗,獲得極好的裝飾效果。生硬平板的地面一旦鋪了地毯便會滿室生輝,令人精神愉悅,給人一種美感的享受。地毯在室內(nèi)空間中所占面積較大,決定了居室裝飾風(fēng)格的基調(diào)。選用不同花紋、不同色彩的地毯,能造成各具特色的環(huán)境氣氛。大型廳堂的莊嚴(yán)熱烈,學(xué)館會室的寧靜優(yōu)雅,家居房舍的親切溫暖,地毯在這些不同居室氣氛的環(huán)境中扮演了舉足輕重的角色。
羊毛地毯有較好的吸音能力,可以大大消弱各種噪音,它可以吸收聲波高達(dá)50%的能量。羊毛地毯的隔熱性能也很好,因毛纖維具有很低的熱傳導(dǎo)性,使得熱量不易散失。冬天,它可以防止屋中的熱度傳走,保持屋內(nèi)的舒適環(huán)境。
羊毛地毯還具有吸濕、防水以及防止空氣污染等重要功能,在一般的濕度中羊毛會占本身重量13%-18%的水分,在特殊的條件下,羊毛的含水量還可達(dá)到33%,正是這種特殊的性質(zhì),使它具有了調(diào)節(jié)環(huán)境濕度的作用,在高濕度環(huán)境中,它可從空氣中吸收潮氣,在空氣干燥時又可以把其水分釋放出來。
除此之外,羊毛地毯還具有良好的阻燃性能、抗腳蹋污染性能、易清洗的特點(diǎn),即使經(jīng)過幾年的使用后,送到工廠清洗,色澤仍艷麗如
初。
(地毯的使用費(fèi)用市場分析)
由于地毯有諸多功能,被廣泛應(yīng)用于賓館的餐廳、歌舞廳、大型展覽中心、會議場館、酒店、機(jī)場地毯地面和家居。然而地毯在使用過程中問題也接踵而來。地毯的主要缺點(diǎn)有:納塵性能較強(qiáng),清潔比較困難,易產(chǎn)生水漬現(xiàn)象;容易滋生細(xì)菌和滿蟲,價格也較高。為滿足市場需求,解決地毯清洗問題,洗地毯機(jī)的產(chǎn)生成為歷史的必然,各種洗地毯機(jī)應(yīng)運(yùn)而生。
19世紀(jì)70年代,梅爾維爾·比塞爾在密歇根州大瀑布城一家瓷器工廠工作。由于用稻草來捆扎瓷器,因此產(chǎn)生了蒙蒙塵霧。在工人們疊放東西以及用普通掃帚打掃包裝間時,灰塵危害更為嚴(yán)重。越是這些時候,比塞爾的頭痛病發(fā)作得也就越嚴(yán)重。他開始認(rèn)識到自己的頭痛病大概是因?yàn)閷覊m的過敏性反應(yīng)。
要解決比塞爾的問題,顯而易見的答案就是設(shè)計一種把刷子和灰塵都留在小箱子里的器械。于是,他開始著手設(shè)計。
對許多設(shè)計方案進(jìn)行試驗(yàn)之后,比塞爾決定把一系列刷子連接到一個滾筒上去。滾筒連著清掃機(jī)的輪子,因此當(dāng)清掃機(jī)往前推時,滾筒就會轉(zhuǎn)動起來。另外還有一個能夠調(diào)節(jié)刷子高度,以應(yīng)付不同地面狀況的旋鈕。最后,最為重要的是整部機(jī)械裝置都安裝在一個同時也收集灰塵的小箱子里面。1876年,比塞爾的“大瀑布城”牌單擦機(jī)投放市場。比塞爾的清掃機(jī)立即取得了成功。它比掃帚使用起來更為快捷、方便和干凈。它還是一種結(jié)構(gòu)簡單、相當(dāng)便宜的裝置,許多人都買得起。甚至20世紀(jì)初真空吸塵器問世之后,還有許多人仍然用治好比塞爾頭痛病的機(jī)器來清掃自己的地毯。地毯翻新正如石材翻新一樣,可讓環(huán)境煥然一新,且不影響正常工作或營業(yè),創(chuàng)造顯著價值。嚴(yán)重污染的餐廳地毯,和深藏大量污垢的陳年地毯,皆需翻新或清洗。地毯清洗機(jī)猶如醫(yī)生,可醫(yī)各樣重度污染和深度污垢,恢復(fù)地毯干凈美觀的原貌;適用于賓館的餐廳、歌舞廳和餐飲酒樓等場所
目前市場上常用洗地毯機(jī)的現(xiàn)狀
洗地毯機(jī)的種類有很多,但常用的有兩種:一是干泡地毯機(jī);二是噴汽抽吸式洗地毯機(jī)。
干泡洗地毯子機(jī)有滾刷式和轉(zhuǎn)刷式兩種,用該機(jī)洗地毯的方法比較簡單,只能對不臟的地毯和純羊毛地毯清洗效果頗佳,且對地毯損傷較小。干粉干洗法是利用粉狀清潔劑使污垢變成懸浮狀態(tài),然后用吸塵器吸走。缺點(diǎn)是其粉狀清潔劑會深入地毯深處,很難徹底清除。蒸汽干洗法是把清潔劑(低泡)混合后加入帶有加熱系統(tǒng)的抽洗機(jī)內(nèi),利用泵的壓力把蒸汽射在地毯表面,靠高速運(yùn)轉(zhuǎn)的刷子刷洗后,把污水抽出。缺點(diǎn)是設(shè)備昂貴,對地毯有損傷。泡沫干洗法是把地毯清潔劑(高泡)加入帶有電子打泡箱的機(jī)器內(nèi),使其產(chǎn)生大量泡沫,然后注入地毯纖維間,在泡沫中清洗,干燥后,用強(qiáng)力吸塵器將殘留物吸去。缺點(diǎn)是要求操作人員素質(zhì)要高,如操作不當(dāng),會產(chǎn)生紋路,地毯中有殘留清洗劑。
噴汽抽吸式洗地毯機(jī),工作時往往是噴液、擦洗、吸水同步進(jìn)行,洗滌力特別強(qiáng),去污效果也好,但操作比較笨重,且對地毯的破壞性較大。
將地毯清潔劑溶液利用抽洗機(jī)噴入地毯——經(jīng)刷洗后——用真空抽洗——把污液吸出。缺點(diǎn)是水分多,干透時間長,浸泡后地毯會皺縮、發(fā)霉、積垢、易產(chǎn)生色差,會縮短地毯壽命,一般不經(jīng)常使用。另外,目前一般的酒店,客房,賓館,辦公室等使用的都是進(jìn)口的洗地毯機(jī),價格比較昂貴,不宜在普通家庭用戶廣泛推廣。
(目前市場上使用的洗地毯機(jī)的部分部件內(nèi)部結(jié)構(gòu))
設(shè)計方案
市場上的地毯種類包括各種真皮、純毛、化纖質(zhì)地的地毯、掛毯、床毯、裝飾毯等?;谀壳笆袌錾系靥呵逑礄C(jī)功能單一,不能滿足清洗多種種類的地毯的要求這些問題,我組特設(shè)計出滿足上述要求的多功能洗地毯機(jī)。此款洗地毯機(jī)集干泡洗地毯機(jī)和噴汽抽吸式洗地毯機(jī)功能與一身,不僅堅固耐用,清潔效果好,而且操作方便,性能多樣,使用正確的附件,還可清洗地面、掛毯、車座以及瓷磚和窗格。
其設(shè)計原理如下:
噴抽式地毯清洗機(jī)工作原理: 地毯清洗機(jī)將水與清潔劑混合液在壓力的作用下噴入地毯深層,然后地毯清洗機(jī)將溶有污物的混合液抽回至污水槽中。經(jīng)過清洗的地毯略帶潮氣,片刻之后會自然風(fēng)干,您可以馬上可以領(lǐng)略地毯清潔、松軟的美好感覺。
干洗法是利用粉狀清潔劑使污垢變成懸浮狀態(tài),然后用吸塵器吸走,它可以令稀釋后的干泡地毯清潔劑產(chǎn)生的泡沫更輕、更豐富,使清洗后的地毯更易干,以達(dá)到理想、滿意的清潔效果。
主要結(jié)構(gòu):
洗地毯機(jī)的主要部件由兩個吸力泵,以及污水箱、凈水箱、強(qiáng)力噴射水泵、電機(jī)立式刷地機(jī)、吸塵吸水機(jī)等組成,采用真空抽吸。
采用立式刷地機(jī)和吸塵吸水機(jī)組合,刷地機(jī)清洗地毯,吸塵吸水機(jī)抽吸污水,是很多賓館選擇最多的方式。該款地毯清洗機(jī),集地毯清潔與保值于一體,配備浮動式滾刷,即使清潔不平坦地面,依然可以獲得完美清潔效果;采用全新后退式操作系統(tǒng),充分保證地毯清潔后的干凈與風(fēng)干,有效避免地毯二次污染,配合專業(yè)地毯清潔劑可以對地毯進(jìn)行深層清潔。
電瓶動力強(qiáng)勁保證了它可以長時間不間斷工作。浮動式刷頭,保證機(jī)器與地毯的持續(xù)接觸。清潔劑定量配比技術(shù)。
(地毯清洗機(jī)預(yù)想圖)
緊湊的設(shè)計,使本設(shè)備可以應(yīng)用于酒店客房、大型會議室、報告大廳等中大面積的空間
隨機(jī)配件:
1、透明手扒:噴水抽吸同步,解決附著在家具及樓梯等角落地毯上的浮塵。
2、2.8米伸縮吸水管(可伸長至8米)和7.5米高壓噴水管,令主機(jī)停在房間門口,清洗耙頭即可完成房間內(nèi)清洗工作。
1、特大容量水箱,適合大面積地毯清洗。
2、分體式設(shè)計,適合不同空間地毯清洗,即使在客房內(nèi)也操作方便。
3、高壓水泵配合五組噴頭,令60℃熱水完全汽化,成倍提高溶解污垢的速度和溶解量。
4、高速擺刷,將地毯里的污漬、泥沙、殘留藥劑,徹底潔凈,同時梳松地毯纖維,恢復(fù)地毯彈性;即使污染嚴(yán)重的餐廳走道也能徹底清洗干凈。
5、兩只三層風(fēng)葉抽吸馬達(dá),吸力特強(qiáng),兩小時即可干燥。
6、聚乙烯材質(zhì)主機(jī),優(yōu)質(zhì)不銹鋼擺刷式耙頭,皆堅固耐用。
7、主機(jī)配備感應(yīng)裝置,令污水升至感應(yīng)器時吸水馬達(dá)自動暫停
斷路。
8、踏板式機(jī)柄調(diào)節(jié)裝置,操作更方便。
9、即洗即用,不易造成第二次污染,不會影響行人出入。
10、清洗效果較好,含水量少,干透時間較短,操作方便,不易損傷地毯。清洗比較徹底,能清洗深層污跡,操作方便。
對清洗好的地毯進(jìn)行合理的保養(yǎng)以便延長其使用壽命 地毯保養(yǎng)的注意事項如下:
1.在地毯吸塵中,要注意地毯的邊角。
2.地毯如有皺折,一定要及時修整、牽伸,否則易損壞。3.地毯有破損應(yīng)及時修補(bǔ),否則破損會不斷擴(kuò)大。
4.發(fā)現(xiàn)地毯生蟲,要及時噴灑殺蟲劑和吸塵,防止蟲蛀表面的擴(kuò)張。
5.在去污過程中,要防止清除一處,又污染了另一處,同時,用軟刷刷洗時,用力要適當(dāng),以減少對地毯纖維的損壞。
6.在地毯清洗中,盡量除去殘留清潔劑,因任何化學(xué)清潔劑都有一定的腐蝕性,以延長地毯的使用壽命。
7.經(jīng)過抽洗的地毯一定要干透。地毯在長期浸泡過程中,纖維會逐漸老化、變質(zhì),同時易生蟲、生霉甚至潰爛。、8.在清洗地毯時,水溫不易過高(一般為40度左右),否則會造成地毯收縮。
參考文獻(xiàn):
1、國家統(tǒng)計局資源網(wǎng)。
2、《機(jī)械圖原理》。
3、@@洗地毯機(jī)生產(chǎn)有限公司
4、洗地毯機(jī)市場分析報告
5、地毯生產(chǎn)及保養(yǎng)方法
第二篇:機(jī)械原理課程設(shè)計-洗瓶機(jī)推瓶機(jī)課程設(shè)計[推薦]
機(jī)械創(chuàng)新設(shè)計
(一)課程設(shè)計
題目:洗瓶機(jī)推瓶機(jī)課程設(shè)計
班級:
姓名: 學(xué)號:
指導(dǎo)老師:
學(xué)校:
目錄
一、總體設(shè)計方案
1.1設(shè)計要求------------2 1.2原始數(shù)據(jù)和設(shè)計要求--3 1.3方案設(shè)計------------4
二、執(zhí)行機(jī)構(gòu)的設(shè)計
1.4機(jī)構(gòu)尺寸及設(shè)計------5 1.5運(yùn)動分析------------6 三、傳動機(jī)構(gòu)設(shè)計
1.6凸輪動力輸出裝置的減速設(shè)計-------------------------7 1.7心得體會(總結(jié))----10 1.8參考文獻(xiàn)------------11
1.1設(shè)計要求
1)總功能要求和工作原理選擇設(shè)計,洗瓶機(jī)主要由推瓶機(jī)構(gòu),導(dǎo)輥機(jī)構(gòu),轉(zhuǎn)刷機(jī)構(gòu)組成。如圖1.1所示,待洗的瓶子放在兩個不同轉(zhuǎn)向的導(dǎo)棍上,導(dǎo)輥帶動瓶子旋轉(zhuǎn)。當(dāng)推頭M把瓶子推向前進(jìn)時,轉(zhuǎn)動的刷子就把瓶子外面洗干凈。當(dāng)前一個瓶洗刷完畢時,后一個待洗的瓶子已送入導(dǎo)輥待推。
2)為實(shí)現(xiàn)功能要求,清洗刷需要轉(zhuǎn)動,瓶子需要轉(zhuǎn)動,瓶子需要沿導(dǎo)棍移動,需要有輸送瓶的機(jī)構(gòu),經(jīng)過分析機(jī)構(gòu)的設(shè)計要求可知:設(shè)計的推瓶機(jī)構(gòu)應(yīng)使推頭M以接近均勻速度推瓶。平穩(wěn)的接觸和脫離瓶子,然后推頭快速的返回原位,準(zhǔn)備第二個工作循環(huán)。
根據(jù)設(shè)計要求,推頭M可走圖1.2所使的示意軌跡,而且推頭M在工作行程中應(yīng)做勻速直線運(yùn)動,在工作前后可有變速運(yùn)動,回程時有急回。
圖1.2 推頭M運(yùn)動軌跡
1.2原始數(shù)據(jù)和設(shè)計要求
設(shè)計推瓶機(jī)構(gòu)時的原始數(shù)據(jù)和要求為: 1)瓶子尺寸:大端直徑d=80mm,長200mm。
2)推進(jìn)距離l=600mm。推瓶機(jī)構(gòu)應(yīng)使推頭M接近均勻的速度推瓶,平穩(wěn)地接觸和脫離瓶子,然后,推頭快速返回原位,準(zhǔn)備第二個工作循環(huán)。
3)按生產(chǎn)率的要求,推程平均速度為v=45mm/s,返回時平均速度為工作行程的3倍。
4)畫出機(jī)構(gòu)運(yùn)動方案簡圖(機(jī)械運(yùn)動示意圖)5)對機(jī)械傳動系統(tǒng)和執(zhí)行機(jī)構(gòu)進(jìn)行尺寸計算 6)機(jī)構(gòu)傳動性能良好,結(jié)構(gòu)緊湊,制造方便
1.3方案設(shè)計
凸輪—鉸鏈四桿機(jī)構(gòu)方案
如圖1.3所示,鉸鏈四桿機(jī)構(gòu)的連桿2上點(diǎn)M走近似于所要求的軌跡,M點(diǎn)的速度由等速轉(zhuǎn)動的凸輪通過構(gòu)件3的變速轉(zhuǎn)動來控制,由于此方案的曲柄1是從動件,所以要注意過死點(diǎn)的措施,由于推程有600MM,導(dǎo)致凸輪尺寸太大,整個組合所占體積過大。
圖1.3凸輪-鉸鏈四桿機(jī)構(gòu)方案
1.4機(jī)構(gòu)尺寸及設(shè)計
1)桿長的設(shè)計
A.為滿足傳動角的一定要求,設(shè)計11和12在兩個特殊位置(推頭位移最大和最小時)所形成的這一夾角值在一定范圍內(nèi)。
B.桿長14由于與中心具的距離和基圓的大小有關(guān),而基圓半徑不宜過大,但基圓半徑的大小又與壓力角有關(guān),由此設(shè)計14的長度。C.桿長13對另一個凸輪的基圓有一定影響,同樣為了保證壓力角在許可范圍內(nèi),由此設(shè)計長度13 桿長計算:
L=900mm, l1=700mm, l3=600mm, l4=135mm, Ψ1=133° Ψ2=26° Ψ3=47° E=200mm F=140mm 2)設(shè)計的推導(dǎo)公式 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)運(yùn)動圖如下
圖1.4機(jī)構(gòu)運(yùn)動示意圖
1.5運(yùn)動分析 所用凸輪設(shè)計及其曲線
圖1.5凸輪位移曲線圖
1)取基圓半徑r=100mm,h=60mm,偏置圓e=40mm。如下圖凸輪的理論輪廓線。
圖1.6凸輪的理論輪廓線。
2)移動從動件凸輪取基圓半徑r=72mm,h=60mm,偏置圓e=40mm。如下圖1.7凸輪的理論輪廓線。
圖1.7移動從動件凸輪輪廓線
3)運(yùn)動參數(shù)設(shè)計
已知:推程V=45mm/s;回程V=135mm/s;整個運(yùn)動機(jī)構(gòu)的周期: T=T推程+T回程=16.30s;凸輪的角速度ω=2π/T=0.386rad/s
1.6凸輪動力輸出裝置的減速設(shè)計
已知:電動機(jī)轉(zhuǎn)速為1450r/min,凸輪的角速度0.386rad/s,即轉(zhuǎn)速為3.68r/min,則現(xiàn)設(shè)計的變速箱內(nèi)各齒輪的齒數(shù)為:Z1=20;Z2=Z6=60;Z3=16;Z4=80;Z5=15;Z7=20;Z8=44;裝置如圖1.9所示
圖1.9減速裝置
齒數(shù) 模數(shù) 分度圓直徑(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心得體會
經(jīng)過近兩個星期的忙碌,我們終于不負(fù)眾望將課程設(shè)計任務(wù)拿下來,其中有艱苦但更多的是快樂,在此之中的經(jīng)驗(yàn)教訓(xùn)及總結(jié)記錄下來。
課程設(shè)計的任務(wù)結(jié)束了,我們學(xué)到了很多,對機(jī)械原理這門課我們有了更深的理解,對比以前不懂得的的有了新的認(rèn)識。除了課本上的東西,還學(xué)到了一些課外的東西,團(tuán)隊合作精神,獨(dú)立思考能力,不斷創(chuàng)新能力.....總之這次課程設(shè)計,讓我受益匪淺。
通過這次課程設(shè)計,我有了很多收獲,首先,通過這次的課程設(shè)計,我進(jìn)一步鞏固和加深了所學(xué)機(jī)械方面的基本理論,基本概念和基本知識。培養(yǎng)了自己分析和解決與本課程有關(guān)的具有機(jī)械所涉及的實(shí)際問題的能力。對于平面連桿機(jī)構(gòu)和齒輪有了更加深的理解,為后續(xù)課程設(shè)計的學(xué)習(xí)奠定了堅定的基礎(chǔ),而且這次課程設(shè)計過程中,與同學(xué)共同討論,團(tuán)結(jié)合作,最終實(shí)現(xiàn)了預(yù)期的目的。
其次通過這次的課程設(shè)計,對機(jī)構(gòu)的工作原理及機(jī)構(gòu)選型,運(yùn)動方案的確定以及對連桿機(jī)構(gòu)進(jìn)行運(yùn)動分析有了更加精確和深入的了解。這都將為我們以后實(shí)際和出去社會參加工作奠定了堅定的基礎(chǔ)。
雖然這次課程設(shè)計結(jié)束了。但我們在機(jī)械方面的設(shè)計及創(chuàng)新才剛剛開始。
1.8參考文獻(xiàn)
1.鄭軍紅 朱建儒 劉喜平《機(jī)械原理》北京——機(jī)械工業(yè)出版社
2.《機(jī)構(gòu)分析與設(shè)計》華大年等主編——機(jī)械工業(yè)出版社 3.《連桿機(jī)構(gòu)》伏爾默主編——機(jī)械工業(yè)出版社 4.《機(jī)械傳動設(shè)計手冊》江耕華主編——煤碳工業(yè)出版社 5.《機(jī)械原理》鄒慧君主編——高等教育出版社
第三篇:地毯考察報告
地毯考察報告
地毯概述:
地毯,是以棉、麻、毛、絲、草等天然纖維或化學(xué)合成纖維類原料,經(jīng)手工或機(jī)械工藝進(jìn)行編結(jié)、栽絨或紡織而成的地面鋪敷物。它是世界范圍內(nèi)具有悠久歷史傳統(tǒng)的工藝美術(shù)品類之一。分類:
1、按制作方法分類
地毯因制作方法不同可分為機(jī)制地毯、手工地毯。機(jī)制地毯又包括簇絨地毯和機(jī)織威爾頓地毯、機(jī)織阿克明斯特地毯
a)簇絨地毯
該地毯屬于機(jī)械制造地毯的一大分類,它不是經(jīng)緯交織而是將絨頭紗線經(jīng)過鋼針插植在地毯基布上,然后經(jīng)過后道工序上膠握持城頭而成。由于該地毯生產(chǎn)效率較高,因此是酒店裝修首選地毯,可謂物美價廉
b)機(jī)織威爾頓地毯
該地毯是通過經(jīng)紗、緯紗、絨頭紗三紗交織,后經(jīng)上膠、剪絨等后道工序整理而成。由于該地毯工藝源于英國的威爾頓地區(qū),因此稱為威爾頓地毯。此織機(jī)是雙層織物故生產(chǎn)效率比較快
c)機(jī)織阿克明斯特地毯
該地毯也是通過經(jīng)紗、緯紗、絨頭紗三紗天織,后經(jīng)上膠、剪絨等后道工序整理而成。該地毯使用的工藝源于英國的阿克明斯特,此織機(jī)屬單層織物且機(jī)速很低,地毯織造效率非常低,其效率僅為威爾頓織機(jī)的30%。
2、按使用功能分類
a)商用地毯
廣義上講是指除家庭用及工業(yè)用地毯以外的所有地毯。商用地毯在國內(nèi)還僅限于賓館、酒店、寫子樓、辦公室、酒樓等場所,而在美國及西方發(fā)達(dá)國家,商用地毯除上述使用場所外,已在機(jī)場候機(jī)樓、碼頭浪船大廳、車站候車廳、超市、醫(yī)院、學(xué)校、養(yǎng)老院、托兒所、影劇院等場所被普遍使用,并隨著經(jīng)濟(jì)發(fā)展和社會進(jìn)步,面用地毯的使用范圍會逐步加大,覆蓋面會更廣。b)家用地毯
顧名思義就是家庭用地毯家用地毯在我國仍停在條塊地毯上,因?yàn)橹袊彝サ难b修仍大量以木地板為主而西方發(fā)達(dá)國家,家庭用地毯是以滿鋪和塊毯相結(jié)合,中國的家庭用地毯潛力很大
c)工業(yè)用地毯
工業(yè)用地毯從國內(nèi)到國外,仍僅限于汽車、飛機(jī)、客船、火車等裝飾而用。地毯的種類與特點(diǎn)
地毯最初僅為鋪地,起御寒濕而利于坐臥的作用,在后來的發(fā)展過程中,由于民族文化的陶冶和手工技藝的發(fā)展,逐步發(fā)展成為一種高級的裝飾品,既具隔熱、防潮、舒適等功能,也有高貴、華麗、美觀、悅目的效果,從而成為高級建筑裝飾的必備產(chǎn)品?,F(xiàn)在地毯的種類很多,按地毯材質(zhì)分類有:
(l)純毛地毯我國的純毛地毯是以土種綿羊毛為原料,其纖維長,拉力大,彈性好,有光澤,纖維稍粗而且有力,是世界上編織地毯的最好優(yōu)質(zhì)原料。目前,有的廠家將我國的土種綿羊毛與進(jìn)口(如新西蘭等國)毛纖維摻配使用,發(fā)揮進(jìn)口羊毛纖維細(xì)、光澤亮等特點(diǎn),取得了很好效果。純毛地毯的重量約為1.6~2.6kg/平米,是高級客房、會堂、舞臺等地面的高級裝修材料。近年來還生產(chǎn)了純羊毛無紡織地毯,它是不用紡織或編織方法而制成的純毛地毯。
(2)混紡地毯混紡地毯是以毛纖維與各種合成纖維混紡而成的地面裝修材料。混紡地毯中因摻有合成纖維,所以價格較低,使用性能有所提高。如在羊毛纖維中加入20%的尼龍纖維混紡后,可使地毯的耐磨性提高五倍,裝飾性能不亞于純毛地毯,并且價格下降。
(3)化纖地毯化纖地毯也叫合成纖維地毯,如聚丙烯化纖地毯,丙綸化纖地毯,睛綸(聚乙烯睛)化纖地毯、尼龍地毯等。它是用簇絨法或機(jī)織法將合成纖維制成面層,再與麻布底層縫合而成?;w地毯耐磨性好并且富有彈性,價格較低,適用于一般建筑物的地面裝修。(4)塑料地毯塑料地毯是采用聚氯乙烯樹脂、增塑劑等多種輔助材料,經(jīng)均勻混煉、塑制而成,它可以代替純毛地毯和化纖地毯使用。塑料地毯質(zhì)地柔軟,色彩鮮艷,舒適耐用,不易燃燒且可自熄,不怕濕。塑料地毯適用于賓館、商場、舞臺、住宅等。因塑料地毯耐水,所以也可用于浴室起防滑作用。
款式分類有:
(1)整幅成卷供應(yīng)的地毯化纖地毯、塑料地毯以及無紡織純毛地毯常接整幅成卷供貨。鋪設(shè)這種地毯可使室內(nèi)有寬敞感,整體感,但損壞更換不太方便,也不夠經(jīng)濟(jì)。
(2)塊狀地毯純毛等不同材質(zhì)的地毯均可成塊供應(yīng)。純毛地毯還可以成套供貨,每套由若于塊形狀、規(guī)格不同的地毯組成?;ㄊ椒綁K地毯是由花色各不相同的小塊地毯組成,它們可以拼成不同的圖案。塊狀地毯鋪設(shè)方便而靈活,位置可隨時變動,這一方面給室內(nèi)設(shè)計提供了更大的選擇性,同時也可滿足不同主人的情趣,而且磨損嚴(yán)重部位的地毯可隨時調(diào)換,從而延長了地毯的使用壽命,達(dá)到既經(jīng)濟(jì)又美觀的目的。在室內(nèi)巧妙地鋪設(shè)小塊地毯,常??梢云鸬疆孆堻c(diǎn)睛的效果。小塊地毯可以破除大片灰色地面的單調(diào)感,還能使室內(nèi)不同的功能區(qū)有所劃分。門口毯、床前毯、道毯等均是塊狀地毯的成功應(yīng)用。地毯按其所用場所性能的不同,分為六個等級:
(1)輕度家用級:鋪設(shè)在不常使用的房間或部位;
(2)中度家用級或輕度專業(yè)使用級:用于主臥室或餐室等;
(3)一般家用級或中度專業(yè)使用級:用于起居室、交通頻繁部位如樓梯、走廊等;(4)重度家用級或一般專業(yè)用級:用于家中重度磨損的場所;(5)重度專業(yè)使用級:家庭一般不用;
(6)豪華級:地毯的品質(zhì)好,纖維長,因而豪華氣派。選用地毯的原則
地毯選用與裝修標(biāo)準(zhǔn)、風(fēng)格統(tǒng)一的原則
任何一項工程不論是新建工程、老工程翻建或重新裝修都是有計劃、有標(biāo)準(zhǔn)的。是按五星標(biāo)準(zhǔn)裝修還是三星標(biāo)準(zhǔn);是西式風(fēng)格還是中式風(fēng)格;是古典流派還是現(xiàn)代流派,這一切是你選用什么類別、檔次、色澤、圖案地毯的基準(zhǔn)點(diǎn),也只有堅持裝修標(biāo)準(zhǔn)風(fēng)格同選用地毯的統(tǒng)一性,才能使你的工程盡善盡美,達(dá)到錦上添花的目的。分區(qū)域選用地毯的原則
一個完整的酒店工程是由多個不同區(qū)域組成,有客房、走廊、電梯廳、大小餐廳、大小會議室、接待室,還有辦公區(qū)域、娛樂區(qū)域等。由于這些區(qū)域的功能不同,也造成人流、車流的不等。是靜是鬧、是冷是暖,為了適應(yīng)區(qū)域的特殊性,各區(qū)域地毯的選擇必須是與之呼應(yīng),也就是適應(yīng)性問題。
地毯選用與外部環(huán)境適應(yīng)的原則
常年平均降雨量、平均氣溫、室外相對溫度、濕度、大氣質(zhì)量、衛(wèi)生綠化等都是考慮因素,不把這些因素考慮進(jìn)去,會給地毯在使用過程中帶來很大麻煩。如哈爾濱市近半年的冬季,城市很干凈,但客人腳上的冰、雪一進(jìn)入賓館即溶化,給走廊、客房地毯造成大量污染。山西是產(chǎn)煤大省,細(xì)小甚至肉眼都看不見的粉塵隨著進(jìn)入者的鞋一起帶進(jìn)酒店,對地毯保潔帶來困難。因此,在外部環(huán)境特殊時更應(yīng)多考慮地毯類別與環(huán)境的統(tǒng)一性。地毯選用與工程預(yù)算相吻合的原則
首先是不應(yīng)由于預(yù)算影響選用地毯的等級,但可以調(diào)整。機(jī)制地毯因制作工藝不同和原料配比的不同造成價格各異,這樣就為既不降低地毯等級還能吻合預(yù)算提供很大的選擇余地。同為80%羊毛的客房地毯因制作工藝不同,阿克明斯特、威爾頓、羊毛簇絨價格差別很明顯。使用50%的羊毛、50%化纖混紡(化纖除尼龍外,滌綸、晴綸等化纖價格均比羊毛價格低),既可保證地毯實(shí)用品質(zhì),又可消除靜電,羊毛與化纖優(yōu)缺點(diǎn)互補(bǔ),也可降低造價。另外還可通過降低地毯厚度,減少絨頭重量來降低價格??傊畱?yīng)在不降低地毯選用類別、等級的原則下,在同等級、同類別地毯范圍內(nèi)進(jìn)行品種、用毛比例、絨頭重量的調(diào)整,以求地毯品質(zhì)同工程預(yù)算的統(tǒng)一。
地毯選用堅持貨比三家的原則
不論是進(jìn)口地毯或是國產(chǎn)地毯,生產(chǎn)廠家都會因設(shè)備的不同、原料選用的不同、加工工藝的差別和管理水平高低等,造成最終產(chǎn)品、品種、質(zhì)量、花色、價格及服務(wù)的各異。通過產(chǎn)品對廠家的選擇可以采用樣品對比、信息資料分析、考察企業(yè)等途徑完成,以此達(dá)到地毯選用最佳和獲得服務(wù)更好的目的。地毯的性能 隔音效果
地毯以其緊密透氣的結(jié)構(gòu),可以吸收及隔絕聲波,有良好的隔音效果。改善空氣質(zhì)量
地毯表面絨毛可以捕捉,吸附漂浮在空氣中的塵埃顆粒,有效改善室內(nèi)空氣質(zhì)量。地毯安全性
地毯是一種軟性鋪裝材料,有別于如大理石.瓷磚等硬性地面鋪裝材料,不易滑倒磕碰,家里有兒童、老人等的建議鋪塊毯或滿鋪毯。藝術(shù)美化效果
地毯具有豐富的圖案、絢麗的色彩、多樣化的造型,能美化您的裝飾環(huán)境,體現(xiàn)您的個性。無毒害
地毯不具有輻射,不散發(fā)象甲醛等不利于身體健康的氣體,達(dá)到各種環(huán)保要求。運(yùn)用范圍及發(fā)展
早在十800多年以前的西漢時代,隨著佛教的傳入,西藏人民用牛、羊毛制成拜佛墊,后來就制作毯子使用,從而形成了我國萌芽狀態(tài)的地毯業(yè)。唐宋時代,其制作方法逐漸傳到內(nèi)地,編織技術(shù)也逐步改進(jìn)提高。清朝康熙年間,宮廷里使用了地毯。但是由于當(dāng)時地毯僅供朝廷皇親、官僚貴族受用,且全部是手工加工,生產(chǎn)發(fā)展還是很緩慢。
直到21世紀(jì)80年代中期以前,我國絕大部分地毯都用于出口,大多數(shù)人覺得地毯離自己太遠(yuǎn)了。80年代中期以后,隨著改革開放,人們生活水平得到提高,地毯,這一古老的藝術(shù)品才被人們逐漸熟悉起來。
如今,許多家庭都以擁有華麗的地毯作為高檔品位的象征。
我國機(jī)制地毯的發(fā)展現(xiàn)狀
1、機(jī)制地毯行業(yè)發(fā)展?fàn)顩r良好,年增幅均保持在20%左右。
經(jīng)過20年的設(shè)備引進(jìn)和技術(shù)消化吸收,我國地毯工業(yè)具備了較好的設(shè)備技術(shù)基礎(chǔ),一批具有相當(dāng)規(guī)模、產(chǎn)品檔次高、質(zhì)量過硬、與世界先進(jìn)水平差距不大的骨干企業(yè)脫穎而出,徹底扭轉(zhuǎn)了十幾年前國內(nèi)所需的中高檔地毯幾乎全部依靠進(jìn)口的局面。目前國產(chǎn)地毯已占國內(nèi)中高檔地毯消費(fèi)的絕大部分。地毯年實(shí)際產(chǎn)量超過5000萬平方米,無論品種規(guī)格、花色檔次及原材料質(zhì)地,均可與國外地毯媲美。
機(jī)制地毯自上世紀(jì)70年代在中國開始大規(guī)模生產(chǎn)以來,一直呈上升狀態(tài),并取得了令人矚目的成績。近些年來,中國機(jī)制地毯發(fā)展迅猛。特別是2000年以來,內(nèi)外銷市場的年增幅均保持在20%左右。在滿足市場需求的同時,各生產(chǎn)企業(yè)在原料使用、產(chǎn)品研發(fā)、工藝創(chuàng)新等方面不斷努力,已經(jīng)很好地解決了地毯防蟲、防潮、清洗等難題。
2、機(jī)制地毯行業(yè)發(fā)展特點(diǎn) 20多年來,中國機(jī)制地毯業(yè)與改革開放的中國同步,實(shí)現(xiàn)了快速發(fā)展,目前的主要特點(diǎn)是:(1)規(guī)模不斷擴(kuò)大
國內(nèi)共擁有機(jī)制地毯設(shè)備500多臺套,生產(chǎn)能力不斷增強(qiáng)。2005年,中國機(jī)制地毯(不含針刺地毯)總產(chǎn)量共1億多平方米,比2004年同比增長20%左右。近10年(1996年—2005年)中國機(jī)制地毯產(chǎn)量平均每年遞增15%左右,近5年(2000年—2004年)中國機(jī)制地毯總產(chǎn)量平均每年遞增 20.11%。其中簇絨地毯近10年平均每年遞增10.43%,近5年平均每年遞增13%;機(jī)織地毯近10年平均每年遞增29.32%,近5年平均每年遞增38.12%;拼塊地毯近5年平均每年遞增136.58%。
中國機(jī)制地毯業(yè)規(guī)模迅速擴(kuò)的原因有三個方面:
一方面,現(xiàn)有機(jī)制地毯行業(yè)的領(lǐng)頭企業(yè)不斷擴(kuò)充規(guī)模,持續(xù)快速發(fā)展,一部分中堅企業(yè)穩(wěn)步增長。
第二方面,部分手工地毯開始向機(jī)制地毯轉(zhuǎn)移?,F(xiàn)在已有十幾家手工地毯企業(yè)開始走手、機(jī)并舉之路,而且企業(yè)投入規(guī)模較大;
第三方面,隨著中國加入WTO,國外一些地毯企業(yè)也開始進(jìn)軍中國地毯市場。一些外國獨(dú)資企業(yè)如埃及東方編織有限公司、根萊環(huán)保地毯有限公司已落戶天津?qū)氎?,且未來生產(chǎn)規(guī)模都很大。
(2)產(chǎn)品結(jié)構(gòu)不斷完善
相對而言,中國機(jī)制地毯業(yè)比較分散,沒有國外地毯企業(yè)規(guī)模大,但產(chǎn)品類型豐富多彩。從阿克斯明斯特地毯、威爾頓地毯、簇絨地毯到方塊地毯、印花地毯、汽車地毯等產(chǎn)品,無論從工藝上,還是從原料上,高中低檔產(chǎn)品一應(yīng)俱全。
(3)品質(zhì)不斷提高
中國高端地毯產(chǎn)品達(dá)到國際水平。十幾家企業(yè)獲得了新西蘭羊毛局認(rèn)證,而且有的企業(yè)與英威達(dá)、霍尼維爾、首諾、東麗、3M等結(jié)成了長期的良好的合作關(guān)系。
(4)自主研發(fā)能力增強(qiáng)
企業(yè)十分重視自主研發(fā)能力的提高,和自主知識產(chǎn)權(quán)的保護(hù)。借助于國際間的交流,與大專院校的合作,從產(chǎn)品開發(fā)到圖案設(shè)計水平都有了很大的提高。
(三)機(jī)制地毯的出口狀況
近幾年來,作為室內(nèi)軟裝飾重要產(chǎn)品之一的中國手工地毯、機(jī)制地毯,發(fā)展迅速,內(nèi)外銷市場均保持了20%左右的增長速度。不僅如此,中國機(jī)制地毯知名企業(yè)和產(chǎn)品,憑實(shí)力頻頻亮相國際市場,產(chǎn)品出口多以自有品牌為主。早在上世紀(jì)30年代至70、80年代間,由中國天津創(chuàng)新發(fā)展的手工90道羊毛栽絨地毯,就憑借中國傳統(tǒng)的京式圖案和法式美術(shù)式圖案等,暢銷全世界,并躋身名牌工藝品之列。
(四)東西方地毯消費(fèi)差異
據(jù)有關(guān)資料表明,中西方在鋪地物類型的消費(fèi)結(jié)構(gòu)上大不相同,歐美國家消費(fèi)的纖維地毯占鋪地物總量的70%以上,其它陶瓷、木質(zhì)、塑料、復(fù)合材料等硬質(zhì)地板只占不到30%;而目前中國地毯只占鋪地物總量的十分之一。
另外,中西方在地毯消費(fèi)構(gòu)成上呈強(qiáng)烈反差,在2004年西方銷售的40億平方米地毯中,65%是家用地毯,商用地毯只占35%,而我國的機(jī)制地毯,目前年產(chǎn)1億多平方米,消費(fèi)對象主要是賓館飯店和娛樂場所。(五)與其它行業(yè)相比,國內(nèi)地毯企業(yè)與國際知名地毯企業(yè)或機(jī)構(gòu)合作的意識較弱,還未有大規(guī)模的深入合作。
操作工藝:
1.工藝流程
基層處理→彈線、套方、分格、定位→地毯剪裁→釘?shù)勾贪鍜焯簵l→鋪設(shè)襯墊→鋪設(shè)地毯→細(xì)部處理及清理
2.活動式鋪設(shè):是指不用膠粘劑粘貼在基層的一種方法,即不與基層固定的鋪設(shè),四周沿墻角修齊即可。一般僅適用于裝飾性工藝地毯的鋪設(shè)。
3.固定式鋪設(shè)操作工藝:
1)基層處理:鋪設(shè)地毯的基層,一般是水泥地面,也可以是木地板或其他材質(zhì)的地面。要求表面平整、光滑、潔凈,如有油污,須用丙酮或松節(jié)油擦凈。如為水泥地面,應(yīng)具有一定的強(qiáng)度,含水率不大于8%,表面平整偏差不大于4mm。
2)彈線、套方、分格、定位:要嚴(yán)格按照設(shè)計圖紙對各個不同部位和房間的具體要求進(jìn)行彈線、套方、分格,如圖紙有規(guī)定和要求明,則嚴(yán)格按圖施工。如圖紙沒具體要求時,應(yīng)對稱找中并彈線便可定位鋪設(shè)。
3)地毯剪裁:地毯裁剪應(yīng)在比較寬闊的地方集中統(tǒng)一進(jìn)行。一定要精確測量房間尺寸,并按房間和所用地毯型號逐一登記編號。然后根據(jù)房間尺寸、形狀用裁邊機(jī)斷下地毯料,每段地毯的長度要比房間長出2cm左右,寬度要以裁去地毯邊緣線后的尺寸計算。彈線裁去邊緣部分,然后以手推裁刀從毯背裁切,裁好后卷成卷編上號,放入對號房間里,大面積房廳應(yīng)在施工地點(diǎn)剪裁拼縫。
4)釘?shù)勾贪鍜焯簵l:沿房間或走道四周踢腳板邊緣,用高強(qiáng)水泥釘將倒刺板釘在基層上(釘朝向墻的方向),其間距約40cm左右。倒刺板應(yīng)離開踢腳板面8-10mm,以便于釘牢倒刺板。
5)鋪設(shè)襯墊:將襯墊采用點(diǎn)粘法刷107膠或聚醋酸乙烯乳膠,粘在地面基層上,要離開倒刺板10mm左右。
6)鋪設(shè)地毯:
a.縫合地毯:將裁好的地毯虛鋪在墊層上,然后將地毯卷起,在接接處縫合??p合完畢,用塑料膠紙貼于縫合處,保護(hù)接縫處不被劃破或勾起,然后將地毯平鋪,用彎針在接縫處做絨毛密實(shí)的縫合。
b.位伸與固定地毯:先將毯的一條長邊固定在倒刺板上,毛邊掩到踢腳板下,用地毯撐子拉伸地毯。拉伸時,用手壓住地毯撐,用膝撞擊地毯撐,從一邊一步一步推向另一邊。如一遍未能拉平,應(yīng)重復(fù)拉伸,直至拉平為止。然后將地毯固定在另一條倒刺板上,掩好毛邊。長出的地毯,用裁割刀割掉。一個方向拉伸完畢,再進(jìn)行另一個方向的拉伸,直至四個邊都固定在倒刺板上。
c.鋪粘地毯時,先在房間一邊涂刷膠粘劑后,鋪放已預(yù)先裁割的地毯,然后用地毯撐子,向兩邊撐拉;再沿墻邊刷兩條膠粘劑,將地毯壓平掩邊。
7)細(xì)部處理清理:要注意門口壓條的處理和門框、走道與門廳,地面與管根、暖氣罩、槽盒,走道與衛(wèi)生間門坎,樓梯踏步與過道平臺,內(nèi)門與外門,不同顏色地毯交接處和踢腳板等部位地毯的套割與固定和掩邊工作,必須粘結(jié)牢固,不應(yīng)有顯露、后找補(bǔ)條等破活。地毯鋪設(shè)完畢,固定收口條后,應(yīng)用吸塵器清掃干凈,并將毯面上脫落的絨毛等徹底清理干凈。
第四篇:Java期中課程設(shè)計(ATM機(jī))報告
Java期中課程設(shè)計報告
報告題目:ATM模擬程序
姓名:
學(xué)號:2009118246 學(xué)院:信息科學(xué)與技術(shù)學(xué)院
專業(yè):計算機(jī)科學(xué)與技術(shù)
一、課程設(shè)計目的和內(nèi)容
目的:課程設(shè)計的主要目的是結(jié)合面向?qū)ο蟪绦蛟O(shè)計課程,培養(yǎng)面向?qū)ο筌浖_發(fā)的思維,初步了解軟件開發(fā)的一般流程,提高用JAVA編程的實(shí)際動手能力并增強(qiáng)大家對面向?qū)ο蟮牧私狻?/p>
內(nèi)容:設(shè)計ATM取款機(jī)主要包括登錄頁面、選擇服務(wù)、存款、取款、查詢余額、修改密碼和退出等功能。注:各種按鈕的事件和功能簡單模擬ATM取款機(jī)的要求。
二、系統(tǒng)需求分析
1、功能需求分析(1)模擬ATM柜員機(jī)程序;
(2)修改密碼。當(dāng)用戶需要修改密碼時,可以用這個功能,新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。(3)取款。用戶根據(jù)自己需要取多少錢,輸入要取的金額,每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。(4)查詢余額。用戶需要知道自己帳戶還剩多少錢時,可以查詢自己帳戶的余額。
(5)存款。用戶可以存款,金額為100的倍數(shù),不能出現(xiàn)負(fù)存款。(6)鎖機(jī)。當(dāng)用戶3次輸入密碼錯誤時,停止操作。
2、設(shè)計需求分析
A界面設(shè)計簡潔、友好、美觀大方。B操作簡單、快捷方便。
C信息分類清晰、準(zhǔn)確。3.ATM功能模塊圖
4、約束條件(1)設(shè)計工具
開發(fā)工具:NetBeans 運(yùn)行環(huán)境:Windows 7(2)界面要求
以Windows窗口形式顯示,標(biāo)題欄為ATM自動取款機(jī)不同的窗口中有不同的按鈕和選擇菜單。
三、系統(tǒng)設(shè)計
1、功能結(jié)構(gòu)模塊圖
我們所設(shè)計的ATM柜員機(jī)主要是由登錄頁面模塊還由選擇服務(wù)模塊組成,其中選擇服務(wù)模塊又由取款模塊、查詢余額模塊、修改密碼模塊、退卡模塊組成。其功能結(jié)構(gòu)圖如下所示:
2、業(yè)務(wù)流程圖
四、詳細(xì)設(shè)計
1、界面設(shè)計概述
我設(shè)計的ATM機(jī),主要應(yīng)用java圖形用戶界面開發(fā)的知識,在netbeans上根據(jù)要求來創(chuàng)建窗體,窗體整個框架使用JFrame類構(gòu)造,JFrame有自己的外邊框和自己的標(biāo)題,創(chuàng)建JFrame時可以指定其窗口標(biāo)題,在創(chuàng)建窗口時,好多代碼是自動生成,我只是在其基礎(chǔ)上添加一些約束條件的代碼,比如說每次輸入的取款金額必須為100的整數(shù),當(dāng)密碼輸入三次錯誤,便鎖卡等代碼需要自己編寫,這里我會主要說明自己編寫的那部分代碼,也是程序中比較重要的部分,其中有許多Swing組件重復(fù)應(yīng)用,代碼相同,在報告中不重復(fù)說明,比如說數(shù)字“0-9”的代碼,“退卡”按鈕的代碼等。
1、各模塊界面設(shè)計與程序設(shè)計
主模塊設(shè)計:
主函數(shù)中定義了6個靜態(tài)變量:密碼(thePassword),余額(balance),新密碼1(password1),新密碼2(password2),其中密碼為String類型,余額是double型,計數(shù)器(counter),用來記密碼的輸入次數(shù),整型,初始化為0,dataStr是String類型,初始化為空字符串,還定義了FileWriter()和FileReader()方法分別用來寫和讀ATM在交易中的余額和密碼也就是dataStr,使用戶的余額和密碼變成變化后的值。在主方法中首先要調(diào)用一次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();//調(diào)用讀文件
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)待機(jī)界面
這個界面可以說是一個待機(jī)界面,點(diǎn)擊“插卡”按鈕,進(jìn)入登陸界面,其過程相當(dāng)于ATM讀取磁卡信息的過程,利用了Swing控件中的標(biāo)簽和按鈕,在“插卡”按鈕添加鼠標(biāo)點(diǎn)擊事件代碼如下:
private void jButton1MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmEnter().setVisible(true);//進(jìn)入登陸界面
this.setVisible(false);}
2)登陸界面
這個登陸界面,用戶名和賬號在插卡時相當(dāng)于系統(tǒng)已經(jīng)讀取,所以下面這個界面只是密碼驗(yàn)證,輸入正確的密碼,若正確,則進(jìn)入主交易界面,若錯誤則進(jìn)入密碼錯誤,重新輸入,若輸入3次錯誤,則進(jìn)入鎖卡界面,具體界面和程序代碼如下所示:
“確定”按鈕的鼠標(biāo)點(diǎn)擊事件代碼(用戶三次輸入錯誤判斷程序):
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);
}
}
“數(shù)字0-9”按鈕的鼠標(biāo)點(diǎn)擊事件代碼:
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“);}
“退卡”按鈕的鼠標(biāo)點(diǎn)擊事件代碼:
private void jButton10MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmWelcome().setVisible(true);//返回到待機(jī)界面
this.setVisible(false);}
“更正”按鈕的鼠標(biāo)點(diǎn)擊事件代碼:
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)主交易界面
這個界面分別設(shè)計了“查詢余額”按鈕,“取款”按鈕,“修改密碼”按鈕等,點(diǎn)擊時分別進(jìn)入相應(yīng)的功能界面,具體代碼如下所示:“查詢余額”按鈕的鼠標(biāo)點(diǎn)擊事件代碼:
private void jButton1MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmAccountBalance().setVisible(true);//進(jìn)入顯示余額界面
this.setVisible(false);}
“取款”按鈕的鼠標(biāo)點(diǎn)擊事件代碼:
private void jButton4MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmWithdrawl().setVisible(true);//進(jìn)入取款界面
this.setVisible(false);}
“存款”的鼠標(biāo)點(diǎn)擊事件代碼:
private void jButton3MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmDeposit().setVisible(true);//進(jìn)入存款界面
this.setVisible(false);}
“修改密碼”的鼠標(biāo)點(diǎn)擊事件代碼:
private void jButton6MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmPasswordChange().setVisible(true);//進(jìn)入密碼修改界面
this.setVisible(false);}
4)密碼錯誤界面
當(dāng)在登錄界面登陸時,若密碼錯誤則出現(xiàn)密碼錯誤界面,這個界面上點(diǎn)擊“繼續(xù)” 按鈕則返回到登陸界面重新輸入密碼,具體代碼如下: “繼續(xù)”按鈕的鼠標(biāo)點(diǎn)擊事件代碼:
private void jButton2MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmEnter().setVisible(true);//返回到登陸界面
this.setVisible(false);}
5)鎖卡界面
密碼輸錯3次,卡鎖,代碼見登陸界面的“確定”按鈕點(diǎn)擊事件代碼。6)余額查詢界面
點(diǎn)擊“繼續(xù)”則返回到主交易界面,具體的代碼如下: 顯示余額的代碼:
public AtmAccountBalance(){
initComponents();
java.awt.EventQueue.invokeLater(new Runnable(){
public void run(){
setVisible(true);
}
});
jLabel1.setText(”當(dāng)前余額:“+ Atm.balance);
Atm.FileWriter();} “繼續(xù)”按鈕的鼠標(biāo)點(diǎn)擊代碼如下:
private void jButton1MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmEnterSuccess().setVisible(true);//進(jìn)入主交易界面
this.setVisible(false);}
7)取款界面
取款界面規(guī)定單次最多取款5000元,若所取金額在界面上有,則直接點(diǎn)擊相應(yīng)按鈕,若沒有,則點(diǎn)擊“其他面額”按鈕,然后輸入自己想取得面額,具體事件代碼如下:
100,300,500,1000,2000按鈕的鼠標(biāo)點(diǎn)擊事件代碼如下:
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);//進(jìn)入取款成功界面
this.setVisible(false);
Atm.balance=Atm.balance-Double.valueOf(jButton1.getText());
Atm.FileWriter();}
else{ new AtmBalanceNotEnough().setVisible(true);//進(jìn)入余額不足界面
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);//進(jìn)入取款成功界面
this.setVisible(false);
Atm.balance=Atm.balance-Double.valueOf(jButton3.getText());
Atm.FileWriter();}
else{ new AtmBalanceNotEnough().setVisible(true);//進(jìn)入余額不足界面
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);//進(jìn)入取款成功界面
this.setVisible(false);
Atm.balance=Atm.balance-Double.valueOf(jButton5.getText());
Atm.FileWriter();}
else{ new AtmBalanceNotEnough().setVisible(true);//進(jìn)入余額不足界面
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);//進(jìn)入取款成功界面
this.setVisible(false);
Atm.balance=Atm.balance-Double.valueOf(jButton4.getText());
Atm.FileWriter();}
else{ new AtmBalanceNotEnough().setVisible(true);//進(jìn)入余額不足界面
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);//進(jìn)入取款成功界面
this.setVisible(false);
Atm.balance=Atm.balance-Double.valueOf(jButton6.getText());
Atm.FileWriter();}
else{ new AtmBalanceNotEnough().setVisible(true);//進(jìn)入余額不足界面
this.setVisible(false);
} }
“其他面額”按鈕鼠標(biāo)點(diǎn)擊事件代碼:
private void jButton2MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmWithdrawlInput().setVisible(true);//輸入取款金額界面
this.setVisible(false);}
“返回”按鈕的鼠標(biāo)點(diǎn)擊事件代碼:
private void jButton7MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmEnterSuccess().setVisible(true);//返回主交易界面
this.setVisible(false);}
8)取款金額輸入界面
這個界面是當(dāng)用戶所想取得金額在界面上沒有的時候,便需要用戶自己輸入,規(guī)定輸入的金額必須是100的倍數(shù),且不大于5000元,具體事件代碼如下所示:(其中按鈕0-9的代碼,“退卡”按鈕等的代碼和前面相同)
“確定”按鈕的鼠標(biāo)事件代碼:
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);
}
}
“取消”按鈕的鼠標(biāo)事件代碼:
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按鈕的鼠標(biāo)事件代碼:
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();}
“其他面額”按鈕的鼠標(biāo)事件代碼:
private void jButton2MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmDepositInput().setVisible(true);//輸入存款金額界面
this.setVisible(false);}
10)輸入存款金額界面
和存款界面2類似,具體的事件代碼如下: “確定”按鈕的鼠標(biāo)事件點(diǎn)擊代碼:
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時,一開始就輸入了密碼,否則也不能進(jìn)入修改密碼界面,所以在這里直接輸入新密碼,連續(xù)兩次輸入,且兩次輸入的密碼相同,且6位密碼不完全相同,則修改密碼成功,否則失敗,具體代碼如下: “確定”按鈕的鼠標(biāo)事件代碼:
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);//進(jìn)入密碼確認(rèn)界面
this.setVisible(false);}
“返回”按鈕的鼠標(biāo)事件代碼:
private void jButton10MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmEnterSuccess().setVisible(true);
this.setVisible(false);}
12)密碼修改確認(rèn)界面
第二次輸入新密碼,具體代碼如下: “確定”按鈕的鼠標(biāo)事件代碼:
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);//進(jìn)入修改成功界面
this.setVisible(false);
}
else
{ new AtmPasswordUnsucc().setVisible(true);//進(jìn)入失敗界面
this.setVisible(false);}
} 13)密碼修改成功界面
當(dāng)兩次輸入的密碼相同,則彈出密碼修改成功界面,點(diǎn)擊“繼續(xù)”按鈕返回到主交易界面,退出系統(tǒng)則點(diǎn)擊“退卡”按鈕。代碼略。14)密碼修改失敗界面
點(diǎn)擊“確定”按鈕,則返回到修改密碼界面,若放棄修改點(diǎn)擊“退卡”按鈕,若還想進(jìn)行其他交易,則點(diǎn)擊“確定”后,再點(diǎn)擊修改密碼界面的“返回”按鈕。
“確定”按鈕的鼠標(biāo)點(diǎn)擊事件代碼:
private void jButton2MouseClicked(java.awt.event.MouseEvent evt){
// TODO add your handling code here:
new AtmPasswordChange().setVisible(true);//返回到密碼修改界面
this.setVisible(false);}
15)存款成功界面
點(diǎn)擊“繼續(xù)”則返回到主交易界面,“退出”則退出交易。16)存款失敗界面
當(dāng)所存金額不是100的整數(shù)時,則存款失敗,同樣點(diǎn)擊“返回”按鈕則返回到主交易界面,點(diǎn)擊“退卡”則退出交易。17)取款成功界面
當(dāng)索取金額不大于5000,且是100的整數(shù),當(dāng)前余額不小于索取金額時,則取款成功。
18)取款失敗界面(余額不足)
當(dāng)輸入的金額大于當(dāng)前余額,輸入的金額不大于5000且是100的倍數(shù),則彈出余額不足界面。19)取款失敗界面(輸入金額錯誤)
當(dāng)輸入的金額不是100的倍數(shù)且大于5000時,出現(xiàn)此界面。
五、參考文獻(xiàn)
《Java應(yīng)用案例教程》張紅梅,姜曉剛等著
清華大學(xué)出版社
六、心得體會
在這次的期中課程設(shè)計中,我主要運(yùn)用了Java語言的圖形用戶界面設(shè)計、異常處理、Swing控件,輸入輸出流等,綜合運(yùn)用了Java語言。我深刻感受到了面向?qū)ο笳Z言中類庫的強(qiáng)大功能,掌握了運(yùn)用Java中的類實(shí)現(xiàn)某些基本功能,在完成設(shè)計的同時培養(yǎng)了自己的編程思維,為以后做別的設(shè)計打下基礎(chǔ)。
剛開始做ATM機(jī)課程設(shè)計的時候,我簡直一點(diǎn)頭緒也沒有,我想著自己編程一直都那么差,怎么可能完成這么難的設(shè)計,但是這是期中考試設(shè)計,肯定得交啊,所以我不得不圖書館借書看,邊看邊做,在做的過程中,我才知道java不只是寫代碼,還有許多其他的功能,我發(fā)現(xiàn)我對專業(yè)課不像以前那么的排斥了,還有感覺通過自己查詢相關(guān)書籍去實(shí)踐以及和同學(xué)交流獲取的知識更鞏固,我不再那么討厭編程了,我覺得無論什么事情,只要自己愿意去嘗試,并且盡自己最大努力去做,總會有所收獲的。本來一直認(rèn)為這門專業(yè)對女生來說學(xué)起來很吃力,很困難,但是現(xiàn)在又有了信心,差的人可以付出更多的努
力去彌補(bǔ)自己的不足,這樣就可以不被落下了。在以后的學(xué)習(xí)中,我會更加努力,我覺得java學(xué)習(xí)一定要理論與實(shí)踐相結(jié)合,才能更好地掌握知識。
第五篇:JAVA課程設(shè)計-ATM機(jī)模擬系統(tǒng)
《Java語言程序設(shè)計》
課程設(shè)計報告
題
目:
ATM柜員機(jī)
專
業(yè):
信息與計算科學(xué)
學(xué)
號:
姓
名:
單
焱
指導(dǎo)教師:
李
又
良
成績:
2010 年 12 月 10 日
目 錄
1課程設(shè)計研究背景及意義.......................................2 2 課程設(shè)計題目描述和基本功能設(shè)計要求...........................2 3 系統(tǒng)需求分析.................................................2 3.1 功能需求分析............................................2 3.2 其他需求分析............................................3 4 系統(tǒng)設(shè)計.....................................................3 4.1 總體設(shè)計................................................3 4.2 ATM柜員機(jī)界面設(shè)計......................................4 4.3 各功能模塊設(shè)計..........................................5
4.3.1 登陸頁面模塊設(shè)計................................5 4.3.2 選擇服務(wù)模塊設(shè)計................................6 4.3.3 取款模塊設(shè)計....................................7 4.3.4 修改密碼模塊設(shè)計................................8 4.3.5 查詢余額模塊設(shè)計................................9 4.3.6 退卡模塊設(shè)計....................................9 4.4 異常處理情況說明.......................................10 5 系統(tǒng)實(shí)現(xiàn)與測試..............................................10 6 課程設(shè)計總結(jié)................................................13 6.1 遇到的問題及解決辦法...................................13 6.2 心得體會...............................................14 參考文獻(xiàn)......................................................14 附錄(源碼)..................................................14
1課程設(shè)計研究背景及意義
這次課程設(shè)計是通過JAVA編程來實(shí)現(xiàn)ATM柜員機(jī)的功能。以前,人們用手算取錢,不管從方便的角度還是速度的角度來看都不及現(xiàn)在。電子技術(shù)的不斷發(fā)展使得ATM自動化的功能不斷完善。在二十一世紀(jì)的今天,ATM柜員機(jī)是人們生活中重要的工具,所以,對ATM柜員機(jī)的研究的課程設(shè)計具有重大意義。
這次課程設(shè)計的主要目的是結(jié)合面向?qū)ο蟪绦蛟O(shè)計課程,培養(yǎng)我們面向?qū)ο箝_發(fā)的思維,初步了解軟件開發(fā)的一般流程,提高用JAVA編程的實(shí)際動手能力并增強(qiáng)大家對面向?qū)ο蟮牧私?。這次課程設(shè)計的主要內(nèi)容是獨(dú)立用JAVA語言開發(fā)一個小的應(yīng)用程序。課程設(shè)計題目描述和基本功能設(shè)計要求
本次設(shè)計的ATM柜員機(jī)主要是由各個Windows窗口組成,它是由登錄頁面、選擇服務(wù)、取款、查詢余額、修改密碼和退卡等功能。它的各種按鈕的事件和功能可以簡單的模擬ATM柜員機(jī)的要求。組員分工:
組長(單焱): 負(fù)責(zé)分配其他組員的任務(wù),構(gòu)建需求分析,系統(tǒng)實(shí)現(xiàn)及異常處理情況,調(diào)試程序等,把握ATM柜員機(jī)的整體布局。
組員1(劉星):負(fù)責(zé)登陸界面模塊,選擇服務(wù)模塊及退卡模塊,編寫相應(yīng)代碼。組員2(王玲玲):負(fù)責(zé)取款、修改密碼、查詢余額模塊,編寫相應(yīng)代碼。系統(tǒng)需求分析 3.1 功能需求分析
本ATM柜員機(jī)的主要功能如下所述:
要求使用圖形用戶界面。當(dāng)輸入給定的卡號和密碼(初始卡號為000000和密碼為123456)時,系統(tǒng)能登錄ATM柜員機(jī)系統(tǒng),用戶可以按照以下規(guī)則進(jìn)行:
? 查詢余額:初始余額為50000元
? ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。
? ATM存款:不能出現(xiàn)負(fù)存款。
? 修改密碼:只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。
3.2 其他需求分析
(1)性能描述
實(shí)時性好、靈活性強(qiáng)、易于不同年齡階段的人操作。(2)設(shè)計約束 開發(fā)工具:Eclipse3.2.運(yùn)行環(huán)境:Windows 2000以上。(3)界面要求
以Windows窗口形式顯示,標(biāo)題欄為ATM柜員機(jī)名稱,右上角有最小化按鈕、最大化按鈕、關(guān)閉按鈕,不同的窗口中有不同的按鈕和選擇菜單。系統(tǒng)設(shè)計 4.1 總體設(shè)計
本次設(shè)計的ATM柜員機(jī)主要是由登錄頁面模塊還由選擇服務(wù)模塊組成,其中選擇服務(wù)模塊又由取款模塊、查詢余額模塊、修改密碼模塊、退卡模塊組成。如圖:
圖1
ATM功能結(jié)構(gòu)示意圖
4.2 ATM柜員機(jī)界面設(shè)計
一個系統(tǒng)的界面應(yīng)該要簡單明了,當(dāng)然樣式美觀就更好了。本次設(shè)計的界面主要是由窗體組成,操作簡單。而每一個窗口則執(zhí)行相應(yīng)的功能。
一個系統(tǒng)界面的好壞直接影響到用戶的操作,界面設(shè)計要求樣式美觀、簡單明了、方便易操作。界面主要分為窗體、菜單、按鈕和文本輸入框幾個部分,分別執(zhí)行相應(yīng)的操作。
(1)窗體的設(shè)計
窗體整個框架使用Frame類構(gòu)造,F(xiàn)rame有自己的外邊框和自己的標(biāo)題,創(chuàng)建Frame時可以指定其窗口標(biāo)題,我創(chuàng)建的窗口標(biāo)題是各個不同功能的模塊的名字,比如說查詢余額,還有取款等。相應(yīng)源代碼為:WindowBox(String s){super(s);}、Selection(String s,Account act){ } 向Frame窗口中添加組件使用add()。例如:button1 = new Button(“存款”);
p1.add(button1);this.add(p1);super(s);每個Frame在其右上角都有三個控制圖標(biāo),分別代表將窗口最小化、窗口最大化和關(guān)閉的操作,其中最小化和最大化操作Frame可自動完成,而關(guān)閉窗口操作實(shí)現(xiàn)需要書寫有關(guān)的代碼,在我的程序中我采用的是對WINDOWS_CLOSING事件做出響應(yīng),調(diào)用dispose()方法關(guān)閉窗口。Frame也可以引發(fā)WindowsEvent類代表的窗口事件。相應(yīng)源代碼為:
addWindowListener(new WindowAdapter()//窗口偵聽器,以從此窗口接收窗口事件 {public void windowClosing(WindowEvent e)//處理窗口關(guān)閉事件
{ System.exit(0);} });}(2)窗體的主要結(jié)構(gòu)的設(shè)計(網(wǎng)格布局)
我所設(shè)計的窗口的主要結(jié)構(gòu)的特點(diǎn)就是每個窗口都對應(yīng)著一個特定的功能。比如說報各種各樣的錯,還有各種查詢余額、取款、選擇服務(wù)等,所以它們都是由各種按鈕和文本框,標(biāo)簽組成的,而聯(lián)系各個窗體成為一個整體的就是各個按鈕的監(jiān)聽事件。所以整個設(shè)計就趨向簡單化了。
為了定義各個按鈕所對應(yīng)的命令和操作,首先需要將各個按鈕注冊給實(shí)現(xiàn)了動作事件的監(jiān)聽接口ActionListener的監(jiān)聽者,然后為監(jiān)聽者定義actionPerformed(ActionEvent e)方法,在這個方法中調(diào)用e.getSource()或e.getActionCommand()來判斷用戶點(diǎn)擊的菜單子項,并完成這個菜單子項定義的操作。
4.3 各功能模塊設(shè)計 4.3.1 登陸頁面模塊設(shè)計
與ATM柜員機(jī)打交道比較多的,也是大家對安全比較關(guān)心的問題:密碼。所以第一個界面就是要輸入密碼和卡號才能繼續(xù)服務(wù)。
我定義了文本框累的對象tf1,tf2。抓藥是用于輸入單行的文本;文本區(qū)調(diào)用public String getText()方法,獲取用戶想要的字符串。用來判斷輸入的密碼和卡號是否正確,如果不正確的話,則彈出密碼或卡號錯誤的警告框,并用dispose()關(guān)掉窗口。此模塊相應(yīng)的部分源代碼為:
public void actionPerformed(ActionEvent e){
Account act;
String card;
String pwd;
act=new Account(“000000”,“Devil”,“123456”,50000);//初始化
/*選擇各種服務(wù)*/
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();
/*卡號和密碼都正確則進(jìn)入功能選擇窗口*/
Selection s = new Selection(“選擇服務(wù)”,act);
}else{
dispose();
JOptionPane.showMessageDialog(null, “您輸入的卡號或密碼不正確,請核實(shí)后再確定”,“消息!”, JOptionPane.INFORMATION_MESSAGE);
new WindowBox(“登錄界面”);
}
}
/*退卡*/ if(e.getSource()==button2){
dispose();
JOptionPane.showMessageDialog(null, “謝謝使用!”, “消息!”,JOptionPane.INFORMATION_MESSAGE);System.exit(0);
} } 4.3.2 選擇服務(wù)模塊設(shè)計
在選擇服務(wù)模塊中,有各種ATM的服務(wù)功能,只要用戶在該界面中選擇按鈕,它就會彈出各個相應(yīng)的界面。每一個按鈕都有監(jiān)聽器,在選擇了按鈕后,java.awt.event中的ActionEvent類創(chuàng)建一個事件對象,并將它傳遞給方法public void actionPerformed(ActionEvent e)中的參數(shù)e,監(jiān)視器就會知道所發(fā)生的事件,對此事件進(jìn)行處理。其中的部分源代碼為:
p.add(new Label(“請選擇你要的服務(wù)”));
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 取款模塊設(shè)計
在取款模塊中,和其他的界面也是同樣的結(jié)構(gòu)。也是有一個文本框和一個按鈕還有標(biāo)簽組成的。用戶在文本框中輸入他想取的數(shù)額,但是必須是100的倍數(shù),而且每一次最多只能取5000塊。當(dāng)然了取款的時候也不能超過卡里的余額,再就是卡里的余額不可以為負(fù),否則就會彈出報錯的窗口。其方法為:
if(e.getSource()== button){
if(act.get_Money()< 0){// 判斷余額是否為負(fù)
dispose();JOptionPane.showMessageDialog(null, “余額為負(fù)數(shù)”, “消息”,JOptionPane.INFORMATION_MESSAGE);} else if(money <= act.get_Money()){// 取錢的數(shù)額不大于余額
if(money % 100 == 0){
dispose();
JOptionPane.showMessageDialog(null, “取款成功!”, “消息”,JOptionPane.INFORMATION_MESSAGE);act.set_Balance(money);this.setVisible(false);Selection s = new Selection(“選擇服務(wù)”, act);}
if((money % 100!= 0)||(money >= 5000)){// 取錢數(shù)為100的倍數(shù)或不大于5000
dispose();
JOptionPane.showMessageDialog(null,的錢!“, ”消息“,務(wù)窗口
}
”每次只能取100的倍數(shù),而且不能超過5000,請重新輸入你想取
JOptionPane.INFORMATION_MESSAGE);act.get_Money();this.setVisible(false);Selection s = new Selection(“選擇服務(wù)”, act);// 返回選擇服} else if(money > act.get_Money()){// 判斷取款數(shù)額是否大于余額
dispose();
JOptionPane.showMessageDialog(null, “超過已有的錢數(shù),請重新輸入你想取的錢!”,“消息”, JOptionPane.INFORMATION_MESSAGE);
this.setVisible(false);
} Selection s = new Selection(“選擇服務(wù)”, act);} 4.3.4 修改密碼模塊設(shè)計
在修改密碼模塊中,首先你必須要輸入你的舊密碼是否正確,否則就會報錯。再一個就是要兩次輸入你的新密碼,且兩次藥匹配,否則也會報錯,然后再重新回到修改密碼的界面。在修改密碼時用到的方法為:
/*判斷舊密碼是是否正確*/ if(pwd2.equals(act.get_Password())){ /*判斷兩次輸入的密碼是否匹配*/
if(pwd3.equals(pwd4)){
/*如果都正確的話就設(shè)置新密碼*/
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 查詢余額模塊設(shè)計
在查詢余額模塊設(shè)計中, 和其他的界面的結(jié)構(gòu)相差不多。有一個余額顯示和一個按鈕還有標(biāo)簽組成的。查詢時用到的方法:
Query(String s, Account act){// 構(gòu)造函數(shù)
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 退卡模塊設(shè)計
在退卡模塊設(shè)計中,這個方法就更加的簡單了,它只是用了if(e.getSource()==button4){//退出
dispose();JOptionPane.showMessageDialog(null, “謝謝使用!”, “消息!”,JOptionPane.INFORMATION_MESSAGE);System.exit(0);} 這個方法就可以實(shí)現(xiàn)了,這里就不再多說了。
4.4 異常處理情況說明
(1)打開、保存文件時的異常處理 需要處理的異常:IOException(2)數(shù)據(jù)庫訪問時的異常處理 需要處理的異常:SQLException(3)加載類時的異常處理
需要處理的異常:ClassNotFindException,當(dāng)應(yīng)用程序試圖使用Class類中的forName方法通過字符串名加載類時,但是沒有找到具有指定名稱的類的定義。
(4)加載URL時的異常
需要處理的異常:MalformedURLException,拋出這一異常指示出現(xiàn)了錯誤的 URL。或者在規(guī)范字符串中找不到任何合法協(xié)議,或者無法分析字符串。系統(tǒng)實(shí)現(xiàn)與測試
(1)編譯運(yùn)行程序后,將會看到如下的界面,如圖2所示。如果輸入的密碼或卡號不正確的話就會報右下圖的錯誤。
圖2 主界面—登陸頁面
(2)選擇服務(wù)界面效果
當(dāng)輸入的密碼和卡號正確,單擊確定后就會進(jìn)入到選擇服務(wù)的界面,如圖3所示。然后就可以選擇所需要的服務(wù)了。
圖3 選擇服務(wù)界面
(3)取款界面,如圖4所示。
圖4 取款界面
當(dāng)輸入的錢數(shù)不是100的倍數(shù)或每一次大于5000時就會報圖5的錯誤。
圖5 輸入錯誤1 當(dāng)取款時如果超過卡里的余額的話就會報圖6的錯誤。
圖6 輸入錯誤2(4)查詢余額界面,如圖7所示。
圖7 查詢余額界面
(5)修改密碼界面,如圖8所示。
圖8 修改密碼界面
當(dāng)輸入的初始密碼不正確會報圖9所示錯誤。
圖9 輸入錯誤1
當(dāng)2次輸入的新密碼不同會報圖10所示錯誤。
圖10 輸入錯誤2
經(jīng)過測試,所有的功能基本上都實(shí)現(xiàn)了,而且運(yùn)行正常。課程設(shè)計總結(jié)
6.1 遇到的問題及解決辦法
在此次課程設(shè)計中遇到了一些問題,如:對于面向?qū)ο蟮姆椒私獠粔蛲笍?,運(yùn)用到實(shí)際的軟件開發(fā)中存在著困難;對于Java語言,只學(xué)習(xí)到了一些最基本的知識,這導(dǎo)致編寫程序時經(jīng)常出現(xiàn)一些語法錯誤,而且要在短時間內(nèi)用Java語言來設(shè)計一個具體的系統(tǒng)是一個較大的挑戰(zhàn);還有對于正規(guī)開發(fā)一個系統(tǒng)的流程不熟悉,適應(yīng)起來比較慢,編寫各個模塊相對應(yīng)的操作時,自己感覺難以動手,這表明所學(xué)的知識不能靈活運(yùn)用到實(shí)際中。
對于以上的問題,自己有清楚的認(rèn)識,解決辦法是需要大量閱讀相關(guān)的書籍,對于書上以及網(wǎng)站上下載的資料中的Java實(shí)例必須有清楚的理解,還有就是多跟精通此方面的老師和同學(xué)交流,取其精華。對于實(shí)際動手能力與系統(tǒng)開發(fā)的流程的適應(yīng),必須多進(jìn)
行實(shí)際的練習(xí)與操作,才能有大的進(jìn)步。
6.2 心得體會
在這次的課程設(shè)計中,主要運(yùn)用了Java語言的界面設(shè)計、異常處理、、Awt控件、Swing控件,輸入輸出流等,綜合運(yùn)用了Java語言。深刻感受到了面向?qū)ο笳Z言中類庫的強(qiáng)大功能,掌握了運(yùn)用Java中的類實(shí)現(xiàn)某些基本功能,并學(xué)會了自己查詢使用類的方法,為以后的面向?qū)ο笳Z言的自學(xué)奠定了基礎(chǔ)。
通過這次課程設(shè)計我學(xué)到了一些東西,這次的課程設(shè)計中,主要是運(yùn)用JAVA語言來編寫一個小的應(yīng)用程序,當(dāng)然還可以用其他的技術(shù)來輔助。在這個小應(yīng)用程序當(dāng)中,我用了Java外還用了Swing控件。輸入輸出流等。由于以前學(xué)的不是很扎實(shí),而且還有些知識我們都是沒有學(xué)過的,這就要求我們?nèi)ゲ橄嚓P(guān)的書籍,還有就是和同學(xué)之間的交流。正因?yàn)檫@樣,才鍛煉了我的自學(xué)的能力,還有就是加深了我對各個知識點(diǎn)的認(rèn)識,并且提高了我對專業(yè)的學(xué)習(xí)的興趣,為我以后的學(xué)習(xí)打下了基礎(chǔ)。此外,還感受到了面向?qū)ο笳Z言的類庫的強(qiáng)大的功能,掌握了運(yùn)用JAVA中的類實(shí)現(xiàn)某些基本功能,并學(xué)會了自己查詢使用類的方法,也就是要會用API文檔,為以后更好的學(xué)習(xí)面向?qū)ο笳Z言奠定了基礎(chǔ)。
通過努力,這次課程設(shè)計終于完成了,在這個過程當(dāng)中,學(xué)到了很多的知識,同時也感謝我的同學(xué)的幫助和指導(dǎo)。在以后的學(xué)習(xí)當(dāng)中,我會更加努力的學(xué)習(xí)好專業(yè)知識,并將所學(xué)的知識用于實(shí)踐當(dāng)中去,以便牢固掌握知識。
參考文獻(xiàn)
[1] 王萌,劉婧,來賓著.JAVA程序設(shè)計[M]北京 冶金工業(yè)出版社,2004 [2] 黃聰明 精通 JAVA2程序設(shè)計[M]北京:清華大學(xué)出版社,2004.4 [3] 王文濤,袁海燕 JAVA實(shí)用程序設(shè)計100例[M]北京:人民郵電出版社,2005.5 [4] 雍俊海 JAVA程序設(shè)計[M]北京:清華大學(xué)出版社,2006.8 [5] 劉寶林 JAVA程序設(shè)計與案例[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){// 構(gòu)造方法
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());/* 監(jiān)聽器 */
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);// 初始化 /* 選擇各種服務(wù) */
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(“選擇服務(wù)”, act);} else { dispose();
JOptionPane.showMessageDialog(null, “您輸入的卡號或密碼不正確,請核實(shí)后再確定”,“消息!”, JOptionPane.INFORMATION_MESSAGE);
// 報輸入密碼或卡號不正確
new WindowBox(“登錄界面”);
}
}
if(e.getSource()== button2){
System.exit(0);
dispose();// 退出
} } }
/*************主函數(shù)****************/ public class ATM { public static void main(String[] args){
new WindowBox(“登錄頁面”);} } /********* 選擇服務(wù)窗口 ***************/ 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(“請選擇你要的服務(wù)”));this.add(p);/* 各種服務(wù)功能 */
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){// 構(gòu)造函數(shù)
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(“請輸入你想取錢的數(shù)目”));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){// 判斷余額是否為負(fù)
dispose();JOptionPane.showMessageDialog(null, “余額為負(fù)數(shù)”, “消息”,JOptionPane.INFORMATION_MESSAGE);} else if(money <= act.get_Money()){// 取錢的數(shù)額不大于余額
if(money % 100 == 0){
dispose();
JOptionPane.showMessageDialog(null, “取款成功!”, “消息”,JOptionPane.INFORMATION_MESSAGE);act.set_Balance(money);this.setVisible(false);Selection s = new Selection(“選擇服務(wù)”, act);}
if((money % 100!= 0)||(money >= 5000)){// 取錢數(shù)為100的倍數(shù)或不大于5000
dispose();
JOptionPane.showMessageDialog(null,的錢!“, ”消息“,務(wù)窗口
”每次只能取100的倍數(shù),而且不能超過5000,請重新輸入你想取
JOptionPane.INFORMATION_MESSAGE);act.get_Money();this.setVisible(false);Selection s = new Selection(“選擇服務(wù)”, act);// 返回選擇服 // dispose();} } else if(money > act.get_Money()){// 判斷取款數(shù)額是否大于余額
dispose();JOptionPane.showMessageDialog(null, “超過已有的錢數(shù),請重新輸入
你想取的錢!”,“消息”, JOptionPane.INFORMATION_MESSAGE);
this.setVisible(false);口
Selection s = new Selection(“選擇服務(wù)”, act);// 返回選擇服務(wù)窗
} } } }
/********修改密碼功能*************/ 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);// 返回服務(wù)窗口 } else { this.setVisible(true);
// ErrorWarn2 ew = new ErrorWarn2(“消息”,act);dispose();JOptionPane.showMessageDialog(null, “兩次密碼輸入不匹配”, “
JOptionPane.INFORMATION_MESSAGE);
消息”,Selection s = new Selection(“選擇”, act);// 返回服務(wù)窗口
} } else { this.setVisible(false);dispose();
“,} JOptionPane.showMessageDialog(null, ”初始密碼輸入錯誤“, ”消息
JOptionPane.INFORMATION_MESSAGE);
Selection s = new Selection(“選擇”, act);// 返回選擇服務(wù)窗口
} } } /**************查詢余額功能******************/ 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){// 構(gòu)造函數(shù)
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(“選擇服務(wù)”, act);// 返回選擇服務(wù)窗口
} } }
/***********賬戶****************/ import java.io.*;/* 該類為實(shí)現(xiàn)客戶信息及部分功能 */ 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;} /* 得到剩余的錢的數(shù)目 */
protected void set_Balance(double mon){ money-= mon;} /* 重置密碼的方法 */
public String setPassword(String pwd){ password = pwd;return password;}