欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      24點游戲簡介[模版]

      時間:2019-05-13 03:02:17下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《24點游戲簡介[模版]》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《24點游戲簡介[模版]》。

      第一篇:24點游戲簡介[模版]

      24點數(shù)學(xué)游戲

      “巧算24點”是一種趣味數(shù)學(xué)游戲,游戲方式簡單易學(xué),能健腦益智,是一項極為有益的益智游戲活動。學(xué)生通過熟練掌握24點游戲的運(yùn)算技巧,極大限度地調(diào)動眼、腦、手、口、耳多種感官的協(xié)調(diào)活動,對于培養(yǎng)孩子快捷的心算能力和反應(yīng)能力很有幫助。

      第二篇:觀摩點簡介

      全國基層水利服務(wù)體系建設(shè)現(xiàn)場會(北方片)

      觀摩點簡介

      二○○一一年八月·寧夏

      目 錄

      觀摩線路圖..............................................................................................................................................1 青銅峽市邵剛水利工作站......................................................................................................................2 青銅峽市邵崗鎮(zhèn)玉泉村農(nóng)民用水協(xié)會..................................................................................................3 青銅峽市大壩水利工作站......................................................................................................................4 中衛(wèi)市鎮(zhèn)羅水利工作站..........................................................................................................................5 沙坡頭區(qū)九塘農(nóng)村飲水安全工程..........................................................................................................6 中衛(wèi)市鎮(zhèn)羅鎮(zhèn)李嘴農(nóng)民用水協(xié)會..........................................................................................................7 中衛(wèi)市沙坡頭區(qū)抗旱服務(wù)隊..................................................................................................................8

      觀摩線路圖

      青銅峽市邵剛水利工作站

      邵剛水利工作站建于1984年,是青銅峽市水務(wù)局所屬的不定級別定額補(bǔ)助事業(yè)單位,實行市水務(wù)局主管、鎮(zhèn)政府協(xié)管的管理體制。共有職工4名,其中站長1名。全站工作人員均通過基層農(nóng)業(yè)科技服務(wù)資格考試,其中具有水利初級職稱3人,大學(xué)學(xué)歷1人,50歲以上的1人,40歲以下的3人。該站有辦公房屋7間140平方米,倉庫等其他房屋7間136平方米,有9臺套抗旱泵。

      該站主要工作職責(zé)是:制定鎮(zhèn)村用水計劃,負(fù)責(zé)用水測量監(jiān)測;指導(dǎo)農(nóng)民用水者協(xié)會工作;水利工程的建設(shè)、管理、維護(hù)技術(shù)性勞務(wù)服務(wù);小型農(nóng)田水利建設(shè)的規(guī)劃、技術(shù)指導(dǎo)和質(zhì)量監(jiān)督;轄區(qū)防汛抗旱和水土保持的監(jiān)督指導(dǎo)工作;受主管局委托開展水政執(zhí)法工作。該站管理區(qū)域面積121.22平方公里,涉及13個行政村65個村民小組,灌溉面積42087公頃。有支、斗、農(nóng)渠1449條786千米,支、斗、農(nóng)溝456條169千米,過境干溝3條31公里,泵站5座。

      多年來,邵剛水利工作站堅持以服務(wù)基層為中心工作,充分發(fā)揮基層水利工作站服務(wù)、協(xié)調(diào)、監(jiān)督、管理、經(jīng)營的職能,圍繞農(nóng)田灌溉節(jié)水增效工作,指導(dǎo)組建農(nóng)民用水者協(xié)會7家,開展用水管理、測量水監(jiān)督、協(xié)會人員培訓(xùn)等工作,全鎮(zhèn)農(nóng)田灌溉年用水量從過去2004年的0.63億立方米減少到2010年的0.51億立方米;積極參與農(nóng)田水利項目建設(shè),開展技術(shù)服務(wù)和質(zhì)量監(jiān)督的實施,先后參與了人畜飲水工程、農(nóng)業(yè)綜合開發(fā)等項目及春秋兩季農(nóng)田水利建設(shè),改造中低產(chǎn)田4600余畝,建設(shè)泵站5座,轄區(qū)支、斗、農(nóng)渠的砌護(hù)率達(dá)到30%,全鎮(zhèn)農(nóng)業(yè)基礎(chǔ)設(shè)施得到極大的改善;全面開展水土保持監(jiān)督和防汛抗旱檢查、指導(dǎo)工作,取得了明顯成效。同時利用院內(nèi)閑置土地,興建預(yù)制場,一方面解決職工5%的差額工資,提高職工福利待遇;另一方面積極開展渠道砌護(hù)和過程維修,提高工程質(zhì)量,大力發(fā)展多種經(jīng)營。得到了各級組織高度評價和表彰,多次獲得區(qū)、市、局表彰獎勵。青銅峽市邵崗鎮(zhèn)玉泉村農(nóng)民用水協(xié)會

      邵崗鎮(zhèn)玉泉農(nóng)民用水協(xié)會組建于2005年,是一個以村為單位組建的用水協(xié)會,共有用水戶516戶,管轄支渠1條長1200米,斗農(nóng)渠6條長6500米,各類水利配套建筑物156座,泵站1座,抗旱泵7套,灌溉面積1560畝。

      協(xié)會按照有關(guān)政策規(guī)定和協(xié)會章程、制度,選舉產(chǎn)生了協(xié)會執(zhí)委和會長。現(xiàn)有會長1名,執(zhí)委4名。協(xié)會實行自主管理、自主經(jīng)營、自我服務(wù)、民主決策、市場化運(yùn)作、鎮(zhèn)村監(jiān)督協(xié)調(diào)、水管單位和市水務(wù)局業(yè)務(wù)指導(dǎo)、廣大農(nóng)民監(jiān)督的運(yùn)行管理方式。協(xié)會經(jīng)費來源為支斗渠維修管理費,包含在農(nóng)業(yè)灌溉水價中。協(xié)會財務(wù)由邵剛鎮(zhèn)委托鎮(zhèn)經(jīng)管站代管;支斗渠維修管理費的60%用于支付協(xié)會人員工資,30%用于水利工程維護(hù)管理費,10%用于辦公費用。協(xié)會管理的南附設(shè)渠和肖家小渠兩條支渠,實行個人承包經(jīng)營責(zé)任制。

      目標(biāo)考核激勵機(jī)制:根據(jù)管理支渠前三年的實際用水量,確定用水指標(biāo)和畝均水費標(biāo)準(zhǔn),由協(xié)會與承包人簽訂目標(biāo)管理責(zé)任書,實行目標(biāo)管理。年終,通過對承包人的績效考核,兌現(xiàn)承包人的工資。用水管理機(jī)制:由水管單位制定該灌域支渠的用水計劃并進(jìn)行供水,承包人組織支渠管理人員和淌水員為用水戶提供用水服務(wù),渠道全部實行“一把鍬淌水”制度,減少了水量浪費。5年間畝均節(jié)水率為38.3%。水費收繳管理機(jī)制:實行“開票到戶制”和“收費到戶制”。承包人憑票向農(nóng)民收繳水費,農(nóng)戶見票付款,做到票款兩清。監(jiān)督制約機(jī)制:按照“水量公開、水價公開、水費公開、多方監(jiān)督”的要求,水管單位和協(xié)會及時向用水戶公布灌溉面積、用水量、水價和水費,接受鎮(zhèn)村組織及用水戶的監(jiān)督。財務(wù)管理機(jī)制:實行“協(xié)會用、鎮(zhèn)管、市監(jiān)督”的制度,由鎮(zhèn)總會委托鎮(zhèn)經(jīng)管站代管協(xié)會財務(wù),對返還的支斗渠維管費進(jìn)行集中管理。由協(xié)會提出協(xié)會人員工資、協(xié)會日常辦公開支和水利工程維修方案和開支申請,總會按照使用比例進(jìn)行審核批準(zhǔn),并監(jiān)督執(zhí)行。

      青銅峽市大壩水利工作站

      大壩水利工作站組建于1984年,是青銅峽市水務(wù)局所屬的定額補(bǔ)助事業(yè)單位,實行市水務(wù)局主管、鎮(zhèn)政府協(xié)管的管理體制。共有職工5名,其中站長1名。全站工作人員均通過基層農(nóng)業(yè)科技服務(wù)資格考試,其中具有水利初級職稱3人,大專學(xué)歷1人,40歲以下的4人。該站有辦公房屋9間180平方米,倉庫等其它房屋7間140平方米,有11臺套抗旱泵。工作人員工資實行財政定額補(bǔ)助95%,差額5%通過多種經(jīng)營解決。該站管理區(qū)域面積204平方公里,涉及15個行政村84個村民小組,灌溉面積8.2萬畝。有支、斗、農(nóng)渠1667條833公里,支、斗、農(nóng)溝779條389公里,過境干溝3條23公里,補(bǔ)水泵站9座。多年來,大壩水利工作站認(rèn)真履行工作職責(zé),堅持以供水服務(wù)為中心工作,充分發(fā)揮基層水利工作站服務(wù)、協(xié)調(diào)、監(jiān)督、管理、經(jīng)營的職能。

      加強(qiáng)農(nóng)田灌溉管理。圍繞農(nóng)田灌溉節(jié)水增效工作,指導(dǎo)組建農(nóng)民用水者協(xié)會13家,開展用水管理、測量水監(jiān)督、人員培訓(xùn)等工作。2006年西貼渠農(nóng)民用水戶協(xié)會成立,水利工作站站長當(dāng)選為西貼渠農(nóng)民用水協(xié)會會長(兼大壩鎮(zhèn)農(nóng)民用水協(xié)會秘書長),負(fù)責(zé)管理占全鎮(zhèn)灌溉面積1/6的西貼渠,為大壩鎮(zhèn)5個村民小組1540戶1.3萬畝農(nóng)田灌排提供服務(wù),實現(xiàn)了供、管、收一體化。協(xié)會在運(yùn)行管理中,不斷修訂和完善了協(xié)會章程、各項管理制度,規(guī)范操作程序,做到水量、水價、水費、面積“四公開”,讓群眾淌放心水,繳明白費。2010年協(xié)會全年實用水量1771萬立方米,比2006年實用水量的1870萬立方米,減少99萬立萬米,節(jié)水率5.3%,為轄區(qū)內(nèi)其他農(nóng)民用水協(xié)會起到了示范帶動作用。全鎮(zhèn)農(nóng)田灌溉年用水量從2003年的1.36億立方米減少到2010年的1.05億立方米。

      服務(wù)于水利工程建設(shè)。積極配合當(dāng)?shù)卣M織的農(nóng)田水利項目建設(shè),編制小型農(nóng)田水利建設(shè)的規(guī)劃,末級渠道改造、人畜飲水工程、春秋兩季農(nóng)田水利建設(shè),開展技術(shù)指導(dǎo)和質(zhì)量監(jiān)督。先后改造中低產(chǎn)田1.6萬畝,轄區(qū)支、斗、農(nóng)渠的砌護(hù)率達(dá)到20%,全鎮(zhèn)農(nóng)業(yè)基礎(chǔ)設(shè)施得到極大的改善。

      強(qiáng)化水利行業(yè)執(zhí)法監(jiān)督工作。全面開展水土保持監(jiān)督和防汛抗旱檢查、指導(dǎo)工作,認(rèn)真履行水政監(jiān)察員職責(zé),及時化解水事糾紛,查處水事案件,營造良好的水利管理秩序,確保轄區(qū)內(nèi)水利工程正常運(yùn)行。積極開展水利多種經(jīng)營。利用本站閑置土地對外租賃,發(fā)展木炭生產(chǎn),每年收入1.4萬元,緩解了職工工資缺口和辦公經(jīng)費不足的壓力。

      中衛(wèi)市鎮(zhèn)羅水利工作站

      沙坡頭區(qū)鎮(zhèn)羅水利工作站是中衛(wèi)市水務(wù)局下設(shè)的基層水利事業(yè)管理單位,負(fù)責(zé)鎮(zhèn)羅鎮(zhèn)農(nóng)村水利的規(guī)劃調(diào)查、工程建設(shè)、工程維護(hù)、防汛抗旱、管理服務(wù)等職能任務(wù)。核定財政供養(yǎng)編制4人,具有中級職稱2人,管轄轄13個行政村、3萬多人口,有3.2萬畝農(nóng)田1176條支斗農(nóng)渠,352條支斗農(nóng)溝,1801座水工建筑物。

      一、加強(qiáng)自身建設(shè),提高服務(wù)水平。制訂了《水利工程建設(shè)管理制度》、《水費收繳管理制度》等制度,做到用制度管人、管事。加強(qiáng)業(yè)務(wù)技術(shù)培訓(xùn),使職工的業(yè)務(wù)能力得到了提高。不失時機(jī)向群眾宣傳水法規(guī)及節(jié)水灌溉知識,不斷擴(kuò)大依法治水的影響力。加強(qiáng)協(xié)調(diào)聯(lián)系,每年年初深入轄區(qū)各村,征求群眾對水利工作的意見建議,并加強(qiáng)與鎮(zhèn)羅鎮(zhèn)黨委、政府協(xié)調(diào)溝通,爭取資金529萬元對轄區(qū)1.8萬畝農(nóng)田實施綜合配套治理,充分發(fā)揮了承上啟下的“紐帶”作用。

      二、發(fā)揮職能作用,服務(wù)“三農(nóng)”發(fā)展。積極協(xié)助鎮(zhèn)農(nóng)田水利基本建設(shè)指揮部制定農(nóng)田水利基本建設(shè)實施方案,加強(qiáng)檢查,嚴(yán)把質(zhì)量。積極開展防汛抗旱,分片包干,強(qiáng)化措施,從工程的使用、管護(hù)、維修負(fù)責(zé)到底,有效提高了水利工程的完好率,確保了農(nóng)田灌溉。深入農(nóng)戶、田間地頭,向群眾提供水稻控制灌溉、量測水、農(nóng)村生活用水等實用、易懂的水利技術(shù)服務(wù)。

      三、完善用水組織,夯實管理基礎(chǔ)。通過選舉成立了由15人組成的鎮(zhèn)級農(nóng)民用水協(xié)會,成立了由30人組成的6個村級農(nóng)民用水協(xié)會,加強(qiáng)對協(xié)會的監(jiān)管和考核,實行獎罰措施,解決了農(nóng)田灌溉困難、農(nóng)民用水不公等問題。近年來,在連續(xù)大旱的情況下,實現(xiàn)了“保灌、節(jié)水、降費”的目標(biāo)。

      因工作到位,職能作用發(fā)揮充分,鎮(zhèn)羅鎮(zhèn)水利工作取得了顯著成效,水利站多次被市水務(wù)局及鎮(zhèn)羅鎮(zhèn)黨委、政府評為“先進(jìn)水利站”和 “先進(jìn)單位”,3人被授予全市 “水利工作先進(jìn)個人”、“水利系統(tǒng)優(yōu)秀共產(chǎn)黨員”等榮譽(yù)稱號。

      沙坡頭區(qū)九塘農(nóng)村飲水安全工程

      九塘農(nóng)村飲水安全工程于2009年3月1日開工建設(shè),12月25日竣工。工程新建機(jī)井1眼,配套潛水泵、控制柜各1臺(套),架設(shè)25KVA和50KVA變壓器各1臺,建水處理廠1處,曝氣氧化池1座,二氧化氯發(fā)生器1套,變頻加壓供水控制設(shè)備1套,架設(shè)高低壓線路0.96Km,鋪設(shè)各級管道513.64Km,建400m3清水池1座,廠房和泵房及管理房306.86m2,建各類閥井602座,配套過渠(溝、路)等建筑物33座。工程建成后移交中衛(wèi)市農(nóng)村人畜飲水管理站九塘供水站管理,現(xiàn)有工作人員4名,其中站長1名,職工3名。管理站實行自負(fù)盈虧、滾動發(fā)展的企業(yè)管理模式。

      在管理措施上,統(tǒng)一收費票據(jù),采取一戶一票,一戶一《手冊》,以村建臺帳,以戶設(shè)卡片,設(shè)立收費明白欄并及時公布。在配套設(shè)施上,采用分片、分級控制的辦法考核;在管理責(zé)任區(qū)設(shè)置分片計量表,考核管理責(zé)任人的區(qū)域供水量;農(nóng)戶實行“集中裝表,一戶一表”,嚴(yán)格計量收費。在收費方式上,由過去的走家入戶征收轉(zhuǎn)變?yōu)轭A(yù)約式定點、定時由用戶主動上繳。管理人員統(tǒng)一著裝,佩戴上崗證,劃分責(zé)任片區(qū),從農(nóng)戶用水、管網(wǎng)管護(hù)維修、抄表收費,一人負(fù)責(zé)到底。在故障排除上,堅持做到小修4小時內(nèi)完成,中修一個工作日內(nèi)完成,大修兩個工作日內(nèi)完成;設(shè)立了“用戶上訪記錄”“供水服務(wù)投訴記錄”;開通了“供水維修服務(wù)電話”和“供水監(jiān)督電話”;向用戶下發(fā)了“告用水戶的一封信”和《農(nóng)村飲水服務(wù)手冊》。

      經(jīng)市物價局核定工程供水水價2元/立方米,工程投入運(yùn)行以來,總供水量達(dá)12.32萬方,實際抄表水量11.21萬方,對口率91%,商品率90%以上,已累計收繳水費23.19萬元,收繳率達(dá)到99%以上。累計總支出21.33萬元,其中工資10.36萬元,社會保險3.77萬元,辦公費用2.26萬元,電費2.34萬元,維修費2.03萬元,三化建設(shè)1.08萬元。工程建成后,有效地解決了李嘴、鎮(zhèn)西等10個行政村6067戶24447人的飲水安全問題,改善了項目區(qū)群眾的生活條件和生活質(zhì)量,加快了受益區(qū)群眾致富的步伐,經(jīng)濟(jì)效益和社會效益十分明顯。

      中衛(wèi)市鎮(zhèn)羅鎮(zhèn)李嘴農(nóng)民用水協(xié)會

      李嘴農(nóng)民用水協(xié)會成立于2005年,轄13個用水小組,受益人口2732人,用水戶747戶。負(fù)責(zé)2215畝農(nóng)田灌溉,管理支、斗、農(nóng)渠156條;支、斗、農(nóng)溝52條;橋、閘等水工建筑物254處。協(xié)會經(jīng)過組建、規(guī)范、發(fā)展、提高四個階段后,健全了管理組織,理順了用水秩序,提高了服務(wù)水平,基本實現(xiàn)了“支斗渠管理責(zé)任落實,管好“最后一公里”,農(nóng)田用水保障,農(nóng)民水費負(fù)擔(dān)下降”的目標(biāo)。

      一、認(rèn)真組建,明確職責(zé)。協(xié)會組建由村民大會推薦群眾代表,經(jīng)群眾代表選舉產(chǎn)生3名執(zhí)委,執(zhí)委選舉會長。協(xié)會在民政部門注冊登記后,依據(jù)章程開展工作。協(xié)會實行協(xié)會+農(nóng)戶+承包人的管理模式,采取包用水量、包水費收繳、包渠道工程管理的管理責(zé)任制。支渠承包人由群眾推舉,村委會、協(xié)會審定,競爭上崗,人員工資從支斗渠返還水費中支付,不足部分由協(xié)會經(jīng)過“一事一議”按灌溉面積收取。

      二、健全制度,規(guī)范管理。制定了《工程管理制度》、《灌溉管理制度》等制度,將灌溉面積、水費收繳、水費返還資金、勞動積累工等建立臺賬,專人管理,嚴(yán)禁村隊勞務(wù)賬與水賬混記、折提,搭車收費。支出按照“村用、鎮(zhèn)管、縣監(jiān)督”的財務(wù)管理辦法審批使用,杜絕了亂收費和搭車收費現(xiàn)象。

      三、核實面積,確保公平。逐戶、逐田塊進(jìn)行面積核查,并登記造冊,繪成圖表,實行農(nóng)戶地畝動態(tài)化管理,實現(xiàn)了水費的公平、合理負(fù)擔(dān)。

      四、保障投入,改善設(shè)施。協(xié)會在村委會的配合下,通過“一事一議”按面積征收渠道清淤費,組織群眾進(jìn)行渠道清淤,確保了渠道輸水暢通。6年來,協(xié)會累計投入資金18萬元,使轄區(qū)支、斗、農(nóng)渠設(shè)施條件得到了有效的改善。

      五、狠抓服務(wù),保障灌溉。協(xié)會人員加強(qiáng)渠道巡護(hù)和水量調(diào)配,及時和水管單位聯(lián)系,推行“一把鍬”淌水,解決灌溉中存在的問題,確保作物適時灌溉。

      中衛(wèi)市沙坡頭區(qū)抗旱服務(wù)隊

      中衛(wèi)市沙坡頭區(qū)南部的環(huán)香山地區(qū)地處寧夏中部干旱帶,年降水量不足200毫米,蒸發(fā)量卻達(dá)2000毫米,共有6鎮(zhèn)(鄉(xiāng)),人口7.2萬人,屬全國最干旱的地區(qū)之一,抗旱任務(wù)十分繁重。

      1997年6月,中衛(wèi)縣抗旱服務(wù)隊成立,2004年因撤縣設(shè)市,原中衛(wèi)縣抗旱服務(wù)隊并入市防汛辦,2007年3月,中衛(wèi)市編制委員會對進(jìn)行重新認(rèn)定設(shè)置,將抗旱服務(wù)職能并入中衛(wèi)市防汛抗旱指揮部辦公室,核定人員編制5人,其中副高2人、工程師2人、工勤1人。主要承擔(dān)沙坡頭區(qū)的防汛抗旱減災(zāi)工作,同時指導(dǎo)海原縣及中寧縣開展防汛減災(zāi)和易旱地區(qū)抗旱自救工作。

      目前有物資儲備庫5座,抗旱車輛4輛,推土機(jī)1輛,拖拉機(jī)2輛,摩托車1輛?,F(xiàn)有臺式電腦2臺、筆記本電腦1臺,打印機(jī)1臺,數(shù)碼相機(jī)1臺,電視機(jī)1臺,傳真機(jī)1臺;有抗旱車輛4輛,推土機(jī)1輛,拖拉機(jī)2輛,摩托車1輛,單柴油機(jī)2臺,柴油機(jī)11臺,混流泵10臺,離心泵5臺,發(fā)電機(jī)1臺。

      針對嚴(yán)峻的旱情,自治區(qū)、市政府每年安排專項資金,由抗旱服務(wù)隊組織群眾開展抗旱自救活動,解決易旱地區(qū)群眾的生產(chǎn)生活用水。一是制定抗旱預(yù)案,每遇旱情市政府分級啟動抗旱預(yù)案,救助措施;二是建設(shè)高效節(jié)水補(bǔ)灌工程,通過工程措施為40萬畝硒砂瓜補(bǔ)水灌溉;三設(shè)立集中供水點,為受災(zāi)群眾無償提供拉水水源;四是免費送水到戶,為農(nóng)村學(xué)校、五保戶、孤寡老人等困難群眾解決飲水問題。確保了大災(zāi)之年56萬畝硒砂瓜的豐收和社會穩(wěn)定。

      第三篇:調(diào)研點情況簡介

      調(diào)研點情況簡介

      【xx縣岳陽鎮(zhèn)水觀村】xx鎮(zhèn)水觀村位于縣城北5公里319國道旁,是全國文明村、省級新農(nóng)村示范村,有村民小組16個,農(nóng)戶540戶,總?cè)丝?310人,村黨支部設(shè)黨小組4個,現(xiàn)有黨員54名。黨的群眾路線教育實踐活動啟動以來,村黨支部立足基層實際,圍繞反對“四風(fēng)”和解決群眾反映強(qiáng)烈的切身利益問題活動重點,創(chuàng)新設(shè)計載體、切實改進(jìn)作風(fēng),確保教育實踐活動出實招見實效。

      將活動開展到田間地頭。針對農(nóng)村實際,堅持把實踐活動平臺搭建在田間地頭,保證活動接地氣。通過邀請聯(lián)系領(lǐng)導(dǎo)專題輔導(dǎo)、先進(jìn)典型專題報告、集中培訓(xùn)、送學(xué)上門等形式,依托村級廣播、遠(yuǎn)程教育網(wǎng)絡(luò)等平臺,讓黨員一邊干農(nóng)活一邊學(xué)習(xí),使群眾路線深深扎根于人心。采取入戶走訪、實地察看、民情懇談、院壩交流等方式收集社情民意,了解群眾疾苦,排查矛盾糾紛,問需問計于民。建好三本臺賬,對搜集到的意見建議,按民生訴求、困難群眾和穩(wěn)定工作三個類別,及時建賬、定時曬賬、限時結(jié)賬,著力解決好群眾反映強(qiáng)烈的切身利益問題。將重心落腳到發(fā)展增收。注重突出實踐特色,以“五好干部怎么做”、“我為xx村建言獻(xiàn)策”等為主題開展大討論活動,進(jìn)一步明晰發(fā)展定位,優(yōu)化發(fā)展路徑,創(chuàng)新發(fā)展舉措。依托“魅力檸海”景區(qū),著力打造生態(tài)農(nóng)業(yè)、觀光旅游示范區(qū),大力發(fā)展“檸檬、蠶桑、旅游”三大產(chǎn)業(yè),引進(jìn)業(yè)主改良林木品種,新發(fā)展香椿、林下藥材等特色產(chǎn)業(yè),著力夯實群眾增收致富的產(chǎn)業(yè)支撐。2013年,全村人均純收入已達(dá)到10800元。將目標(biāo)定位到群眾

      采取以企建園、產(chǎn)園合一的方式,初步構(gòu)建起了分功能、分區(qū)域布局的以檸檬加工為主導(dǎo)的食品產(chǎn)業(yè)和醫(yī)藥、紡織、電子、機(jī)械、制鞋、物流“六大現(xiàn)代產(chǎn)業(yè)體系”。2013年,園區(qū)規(guī)模工業(yè)總產(chǎn)值實現(xiàn)218.6億元,同比增長20%,占全縣規(guī)模工業(yè)總產(chǎn)值69%;規(guī)模工業(yè)增加值達(dá)到56億元,同比增長17%;實現(xiàn)利稅35億元,同比增長21%?!捌唔梽?chuàng)新”推進(jìn)健康發(fā)展。創(chuàng)新發(fā)展理念,科學(xué)規(guī)劃引領(lǐng)發(fā)展,推動“工業(yè)一體化”向“產(chǎn)城一體化”轉(zhuǎn)變;創(chuàng)新發(fā)展產(chǎn)業(yè),優(yōu)化結(jié)構(gòu)聯(lián)動發(fā)展,推動“單一工業(yè)”向“

      二、三產(chǎn)業(yè)融合發(fā)展”轉(zhuǎn)變;創(chuàng)新招商方式,招大引強(qiáng)領(lǐng)跑發(fā)展,推動“招商引資”向“招商選資、招大引強(qiáng)”轉(zhuǎn)變;創(chuàng)新建園模式,產(chǎn)業(yè)成鏈配套發(fā)展,推動“政府建園”向“企業(yè)建園”轉(zhuǎn)變;創(chuàng)新推進(jìn)手法,拓寬空間跳躍發(fā)展,推動園區(qū)建設(shè)由“梯度式”推進(jìn)向“框架式”拉開、“跳躍式”發(fā)展轉(zhuǎn)變;創(chuàng)新安置模式,以人為本和諧發(fā)展,推動“劃地自建”向“小區(qū)集中安置”轉(zhuǎn)變;創(chuàng)新服務(wù)方式,優(yōu)質(zhì)高效助推發(fā)展,推動“一般化服務(wù)”向“主動化、全程式服務(wù)”轉(zhuǎn)變。

      【xx縣xx鎮(zhèn)】xx鎮(zhèn)位于xx縣城東部6公里,幅員面積48.6平方公里,全鎮(zhèn)轄10 個行政村、3個社區(qū),81個村(居)民小組,共有24個黨支部、753名黨員。2013年,全鎮(zhèn)實現(xiàn)地區(qū)生產(chǎn)總值(GDP)實現(xiàn)4.8億元,增長14.5%。黨的群眾路線教育實踐活動啟動以來,鎮(zhèn)黨委立足基層實際,順應(yīng)群眾期盼,“三突出三確?!蓖七M(jìn)活動扎實有序開展。

      突出動員部署,確保實踐活動深入人心。按照“早動員、早部署”工作要求,迅速召開黨委專題會議進(jìn)行研究部署,成立了

      均辦件量近20萬件,按時辦結(jié)率、現(xiàn)場辦結(jié)率、群眾評價滿意率均為100%。

      強(qiáng)學(xué)習(xí)、勤問癥,全面鋪開教育實踐活動。及時組織學(xué)xxx省委、市委精神和縣委部署要求,研究確定了中心開展活動的意見方案。依托“基層問癥、百姓聽音”等活動平臺,先后深入石羊、瑞云、龍臺等鄉(xiāng)鎮(zhèn)便民服務(wù)中心,廣泛聽取服務(wù)對象的意見,為改進(jìn)服務(wù)方式、提升服務(wù)水平奠定堅實基礎(chǔ)。創(chuàng)新抓好“自選動作”,深入開展“三學(xué)三比三創(chuàng)三評”服務(wù)質(zhì)量大比拼、“四進(jìn)四促”等活動,進(jìn)一步促進(jìn)窗口工作作風(fēng)的轉(zhuǎn)變,確?;顒尤〉脤嵭?。細(xì)舉措、優(yōu)服務(wù),深化拓展便民惠民舉措。秉承“只要企業(yè)定了干,一切手續(xù)我們辦”的服務(wù)理念,不斷優(yōu)化審批流程、創(chuàng)新服務(wù)方式。積極推進(jìn)制度流程上墻,清理規(guī)范行政審批和公共服務(wù)項目并進(jìn)行公示,方便群眾簡便快捷知曉審批流程。大力推進(jìn)“兩集中、兩到位”,開通綠色通道、實施并聯(lián)審批,力促部門行政審批職能向行政審批股集中、行政審批股向政務(wù)服務(wù)中心集中、行政審批權(quán)向窗口授權(quán)到位、行政審批項目向政務(wù)服務(wù)中心進(jìn)駐辦理到位,應(yīng)進(jìn)項目入駐率為100%。重創(chuàng)新、求實效,提高服務(wù)群眾能力水平。完善行政審批軟件系統(tǒng),開通電子政務(wù)服務(wù)網(wǎng)絡(luò),積極開展“網(wǎng)上咨詢、網(wǎng)上申請、網(wǎng)上下載、網(wǎng)上受理、網(wǎng)上預(yù)審”服務(wù)。圍繞“項目審批零停留、承諾時限零超限、服務(wù)群眾零距離”目標(biāo),創(chuàng)新推出延時、預(yù)約、上門、代辦及開通96196熱線等特色服務(wù),料不全指導(dǎo)辦,積極開展延時、預(yù)約、上門、一次性告知等特色服務(wù),受到辦事群眾廣泛好評。

      【xx縣地方稅務(wù)局】縣地稅局設(shè)有黨支部13個、黨小組33個,共有黨員190名。群眾路線教育實踐活動開展以來,局機(jī)關(guān)黨委緊扣活動主題,突出實踐特色,堅持開門開放,強(qiáng)力推進(jìn)活動扎實有序開展。

      開門開放接地氣。始終堅持群眾導(dǎo)向,扭住開展納稅人滿意度調(diào)查活動契機(jī),創(chuàng)新開展“六查六看”調(diào)研活動,全局80余名機(jī)關(guān)黨員干部深入全縣近100戶重點企業(yè)及基層群眾中,采取入企入戶走訪、民情懇談等方式,先后走訪群眾500余人次,召開座談會28場次,共征集到各類意見建議35條,切實增強(qiáng)了與征納對象的互動互通力度,拓寬了服務(wù)渠道。聚焦四風(fēng)照鏡子。始終堅持問題導(dǎo)向,突出領(lǐng)導(dǎo)示范引領(lǐng),局機(jī)關(guān)領(lǐng)導(dǎo)班子和全體黨員領(lǐng)導(dǎo)干部聚焦“四風(fēng)”問題,帶頭深入基層一線與廣大干部職工面對面交流、心貼心溝通,通過采取個別走訪、集體座談、問卷調(diào)查、組織評議等方式深入查找“四風(fēng)”方面存在的突出問題,力求問題找得準(zhǔn),根源挖得深?;顒又?,共發(fā)放意見征集表300余份,梳理匯總“四風(fēng)”問題意見建議34條。統(tǒng)籌推進(jìn)重實效。堅持將教育實踐活動與稅務(wù)征收相結(jié)合,做到系統(tǒng)謀劃、統(tǒng)籌推進(jìn)。緊抓“兩化互動、三化聯(lián)動”戰(zhàn)略部署,因勢利導(dǎo)務(wù)實開展“七在七做”爭創(chuàng)活動,引導(dǎo)全局黨員干部攻堅克難、勇于擔(dān)當(dāng),切實轉(zhuǎn)變工作作風(fēng),努力以實實在在的活動成效助推地方經(jīng)濟(jì)又好又快發(fā)展。截至目前,全縣已累計組

      眾辦事更加便利,切身感受到公平正義,實現(xiàn)司法為民服務(wù)理念新轉(zhuǎn)型、服務(wù)模式新跨越。以強(qiáng)化訴訟規(guī)范、優(yōu)化服務(wù)流程為舉措,制止“亂檢查、亂收費、亂罰款”不正風(fēng)。突出讓群眾“少跑一次路、少誤一份工、少等一分鐘”目標(biāo),嚴(yán)格執(zhí)行統(tǒng)一的工作流程和服務(wù)規(guī)范,實行便民快速立案制度。堅持流程上墻,將收費標(biāo)準(zhǔn)、訴訟流程等上墻。堅持快速立案,當(dāng)事人立案材料齊全,均在20分鐘內(nèi)辦完所有立案手續(xù)。堅持上門服務(wù),對行動不便的當(dāng)事人,提供電話預(yù)約立案和上門立案,努力為人民群眾提供熱情、文明、高效的訴訟服務(wù)。以延伸訴訟服務(wù)、提高服務(wù)質(zhì)量為載體,打造“溫馨調(diào)解室、黨員示范崗、巾幗示范崗、青年示范崗”示范點。突出保證群眾“話有地方說、事有地方辦、困難有人幫、問題有人管”宗旨,進(jìn)一步加強(qiáng)建設(shè)服務(wù)型黨組織力度。著力打造“溫馨調(diào)解室”,使訴訟服務(wù)中心真正兼具人民調(diào)解、行政調(diào)解以及司法確認(rèn)三大功能。設(shè)立“黨員示范崗”、“巾幗示范崗”、“青年示范崗”,確保為當(dāng)事人提供優(yōu)質(zhì)的訴訟服務(wù)。設(shè)置導(dǎo)訴臺,配備專人加強(qiáng)對當(dāng)事人的訴訟指導(dǎo)與幫助,強(qiáng)化訴訟權(quán)利義務(wù)、舉證責(zé)任、訴訟風(fēng)險等事項告知,引導(dǎo)當(dāng)事人理性選擇訴訟成本低、負(fù)面作用小的訴訟程序,全面提升司法服務(wù)的能力和水平。

      【xx縣中醫(yī)醫(yī)院】xx縣中醫(yī)院始建于1956年,是以中醫(yī)藥為特色的三級乙等綜合性醫(yī)院,現(xiàn)有職工589名,黨員140名。在黨的群眾路線教育實踐活動中,醫(yī)院緊緊圍繞“為民務(wù)實

      圖,開設(shè)免費公交車,開通網(wǎng)上預(yù)約掛號等有效措施,不斷優(yōu)化醫(yī)院服務(wù)流程。實施優(yōu)質(zhì)工程,強(qiáng)化配套設(shè)施建設(shè),投入3000萬元新購16排螺旋CT、進(jìn)口三維彩超等大型先進(jìn)診斷治療設(shè)備,建成全市最先進(jìn)的重癥監(jiān)護(hù)室和潔凈手術(shù)室,提升醫(yī)療服務(wù)質(zhì)量。實施免費工程,組織老中醫(yī)進(jìn)社區(qū)免費為久病、重病的居民定期檢查、門診用藥,打造“康復(fù)超市”,對貧困中風(fēng)癱瘓病人、先天性腦癱病兒全面實施免費康復(fù),多渠道為百姓健康提供服務(wù)。

      第四篇:delphi24點游戲

      第3章 “速算24”撲克游戲--單元、異常、邏輯

      3.1 “速算24”撲克游戲效果說明

      “速算24”是一個考察心算能力、有助于開發(fā)智力的撲克游戲。在給出4張撲克牌之后,要求應(yīng)用這些撲克牌數(shù)字做數(shù)學(xué)運(yùn)算,迅速構(gòu)造出一個數(shù)學(xué)表達(dá)式,得出結(jié)果24。這個游戲的關(guān)鍵在于迅速判斷用戶輸入的表達(dá)式是否正確,并做出相應(yīng)的反饋,告訴用戶是算對了還是算錯了。游戲的初始界面如圖3.1所示。

      圖3.1 游戲的初始界面

      當(dāng)用戶單擊“開始”按鈕時,系統(tǒng)開始發(fā)牌,隨機(jī)發(fā)出4張牌,如圖3.2所示為隨機(jī)開始的一局游戲,給出的4張紙牌分別為“9”,“8”,“9”,“2”。在文本框中輸入運(yùn)算表達(dá)式,比如,輸入“8*(2+(9-9))”,單擊“計算”按鈕,系統(tǒng)會出現(xiàn)提示框,顯示“您輸入的表達(dá)式的計算結(jié)果為16!”,告訴你該表達(dá)式的結(jié)果不是“24”,如圖3.3所示。單擊“確定”按鈕,再次在文本框中輸入表達(dá)式,比如“8*(2+(9/9))”,單擊“計算”按鈕,系統(tǒng)會出現(xiàn)提示框,顯示“您真行,我服了您!”,表明運(yùn)算正確,如圖3.4所示。

      圖3.2 系統(tǒng)隨機(jī)發(fā)4張紙牌

      圖3.3 運(yùn)算式不正確

      圖3.4 運(yùn)算式正確

      這個游戲具體的規(guī)則如下:

      (1)單擊“開始”按鈕,游戲開始,系統(tǒng)將隨機(jī)發(fā)牌。

      (2)請迅速在文本框中輸入運(yùn)算表達(dá)式,然后單擊“計算”按鈕。

      (3)這時系統(tǒng)會提示您的運(yùn)算是對了還是錯了,在彈出的對話框中單擊“OK”按鈕,再次輸入新的運(yùn)算表達(dá)式,重復(fù)上一步,直到您的運(yùn)算表達(dá)式結(jié)果正確,這時系統(tǒng)會恭喜您!

      (4)如果結(jié)果錯了還想繼續(xù)或者中途想計算另一局撲克牌,就單擊“重新開始”按鈕,得到新一局撲克牌進(jìn)行游戲。

      下面,我們開始循序漸進(jìn)地創(chuàng)建這個小游戲。在最開始,游戲的界面和效果都會非常簡單,在后面我們會逐漸地完善它。

      第3章 “速算24”撲克游戲--單元、異常、邏輯

      3.2 生成和建立程序(1)在程序中用到了Image組件,用于放置圖片。還用到了Timer組件,用于計算用戶操作時間。下面我們來生成游戲的基本框架。

      3.2.1 Image組件

      Image組件在Additional頁上,用來在窗口中顯示一幅圖片。它擁有如下幾個主要屬性: 1.Picture屬性

      可以在picture屬性中調(diào)入圖像文件。Delphi支持多種圖像格式,如位圖(.BMP)、圖標(biāo)(.ICO)、圖元(.WFM)、動畫光標(biāo)(.ANI)、JPEG圖片(.JPG、.JPEG)等。

      2.AutoSize屬性

      當(dāng)AutoSize為True時,Image組件將根據(jù)它所包含的圖像的大小來調(diào)整自身的大小;當(dāng)AutoSize為False時,不論圖像有多大,組件將保持設(shè)計時的大小。如果組件比圖像小,那么只有一部分圖像是可見的。

      3.Stretch屬性

      當(dāng)Stretch為True時,位圖圖像將根據(jù)組件的大小調(diào)整自身的大小,當(dāng)組件大小改變時,上述三種文件也做相應(yīng)變化。Stretch屬性對圖標(biāo)沒有作用。

      上述的AutoSize和Stretch屬性決定了圖像在窗口中的顯示尺寸。

      圖3.5演示的3個Image分別為:AutoSize為True,AutoSize為False,Stretch為True的情形??梢钥吹?,Image的原始尺寸比圖片寬,矮,在上面的屬性設(shè)置下,就會有不同的顯示效果。

      圖3.5 AutoSize和Stretch的設(shè)置 3.2.2 Timer組件

      在Delphi中,組件分可視組件和非可視組件??梢暯M件是指那些在運(yùn)行期間仍然能顯示的組件,例如Label,Button,Image組件等。非可視組件是指那些在程序界面設(shè)計期間可見,而在程序運(yùn)行時不可見的組件,例如在System頁上的Timer組件。

      Timer組件能夠有規(guī)律地觸發(fā)OnTimer事件,發(fā)送信息給應(yīng)用程序,它是編制應(yīng)用程序時最為重要的組件之一。

      1.Timer組件的屬性

      Enabled屬性表示Timer是打開還是關(guān)閉。用Interval屬性設(shè)置兩個OnTimer事件間的間隔,單位是毫秒。將間隔設(shè)置為0相當(dāng)于關(guān)閉計時器,Interval是Cardinal類型的,最大值可到4294967295,當(dāng)然程序中一般不會把Interval設(shè)成很大的值。2.Timer組件的使用

      Timer是獨立的對象,在啟動與Windows無關(guān)的邏輯和應(yīng)用事件時極其有用。可以模擬時鐘或計時器,可視地顯示經(jīng)過的時間;可以用作系統(tǒng)延時,Delphi提示信息出現(xiàn)只需在該區(qū)域停頓幾秒,就是Timer組件應(yīng)用的一個例子;可以檢查系統(tǒng)環(huán)境、事件,根據(jù)結(jié)果進(jìn)行響應(yīng);也可以在窗口中閃爍一段正文或圖像,提示某種操作或處理正在進(jìn)行等等。

      盡管Delphi的計時器每秒可以產(chǎn)生1000次激發(fā),在編程中還必須注意程序?qū)imer觸發(fā)的響應(yīng)。如果程序處理OnTimer事件的時間超過Interval的設(shè)定值,就可能錯過事件,因為當(dāng)下一次觸發(fā)到來時,系統(tǒng)正忙于處理上一事件,則這次觸發(fā)就會被忽略。同時要注意其他的Windows應(yīng)用程序是否會影響Timer的觸發(fā)。如果后臺正運(yùn)行著一個占用處理器的程序,就可能會導(dǎo)致Timer的觸發(fā)不準(zhǔn)確,從而使前臺程序運(yùn)行出現(xiàn)錯誤。

      這里要強(qiáng)調(diào)的是Timer組件是一個非可視組件,可以把它放置到窗體或者其他容器組件上的任何位置。3.實現(xiàn)游戲計時功能

      在本章的游戲中,我們加入一個Timer組件,實現(xiàn)游戲的計時功能。

      在窗體中加入一個Label組件,將此組件的Caption屬性設(shè)置為“使用時間”,然后從組件面板上選擇System頁中的Timer組件。

      在Unit1中加入Form1的一個私有成員SpendTime,記錄用戶計算所用的時間。代碼如下所示:

      private { Private declarations } SpendTime:Integer;在Form1的onCreate事件中加入如下代碼。將SpendTime設(shè)置為0,并將Timer1的Enabled屬性設(shè)置為False,使Timer1組件不能響應(yīng)OnTimer事件;并將Timer1的Interval屬性設(shè)置為1000,表示當(dāng)Timer1有效時,每間隔1000ms(即1秒)發(fā)生一次OnTimer事件:

      procedure TForm1.FormCreate(Sender: TObject);var i:integer;begin //初始化,設(shè)置數(shù)組RandomData的長度為4 //并將每個數(shù)組元素初始化為零

      setLength(RandomData,4);for i := 0 to 3 do RandomData[i]:=0;SpendTime:=0;Timer1.Enabled:=False;Timer1.Interval:=1000;end;然后在標(biāo)題為“開始”的“開始”按鈕的OnClick事件中,加入如下所示的代碼,將Timer1的Enabled屬性設(shè)置為True,使Timer1組件有效,即現(xiàn)在Timer1能響應(yīng)OnTimer事件,計時開始。并將SpendTime重新設(shè)置為0:

      Timer1.Enabled:=True;Timer1.Interval:=1000;SpendTime:=0;//將SpendTime重新設(shè)為0 再在“計算”按鈕的OnClick事件句柄中,增加下面的語句,使Timer1無效:

      Timer1.Enabled:=False;最后雙擊Timer1組件,創(chuàng)建Timer1的OnTimer事件句柄,在其中加入如下所示的代碼,將SpendTime加1,并設(shè)置Label5的Caption屬性:

      procedure TForm1.Timer1Timer(Sender: TObject);begin SpendTime:=SpendTime+1;Label5.Caption:='使用時間:'+IntToStr(SpendTime)+'秒';end;這樣,每隔1秒鐘,程序就刷新一次使用時間。

      3.2.3 設(shè)計初始界面

      按住Shift鍵,然后單擊組件面板中Additional頁中的Image組件,這時該組件邊緣出現(xiàn)藍(lán)色的邊框,并且凹陷下去,表示可以在窗體上連續(xù)加入幾個Image組件。選擇好Image組件后,在窗體的左上角單擊,加入1個Image組件,然后依次向右單擊鼠標(biāo)3次,再加入3個Image組件。最后再單擊組件面板中最左邊的箭頭。

      為了排列這4個Image組件,先利用Shift鍵將它們同時選上,然后右擊,選擇Align命令,在隨后出現(xiàn)的Alignment對話框中的Horizontal選項組中選擇Space equally,在Vertical選項組中選擇Tops,表示這4個組件頂端對齊,水平方向上間距相等。

      按照同樣的方法加入4個Label組件、3個Button組件和1個Edit組件。按照表3.1所示設(shè)置各個組件的屬性。

      表3.1 各個組件的屬性

      組件名 Form1 Label1 屬性名 Caption Caption AutoSize WordWrap Caption

      屬性值 速算24

      1.單擊“開始”按鈕,游戲開始,系統(tǒng)將發(fā)出4張撲克牌

      False False

      2.要求用戶利用撲克牌顯示的數(shù)字,通過加減乘除運(yùn)算,以最快的速度得出24(可以使用括號),JQKA和“王”算做1。然后在文本框中寫好表達(dá)式,接

      著單擊“計算”按鈕

      Label2

      Label3 AutoSize WordWrap Caption

      False True

      3.這時系統(tǒng)會計算輸入表達(dá)式的結(jié)果,告訴用戶是對還是錯了。在彈出的對話框中單擊“OK”按鈕,如果錯了可以再次輸入新的表達(dá)式,重復(fù)上一步。直

      到您的表達(dá)式正確,這時系統(tǒng)會恭喜算對了!

      Label4 AutoSize WordWrap Caption AutoSize Caption Caption Caption Text

      False True 在下面輸入數(shù)學(xué)表達(dá)式

      False 開始 計算 退出游戲 空

      Button1 Button2 Button3 Edit1

      現(xiàn)在同時選擇Label1,Label2和Label3,將它們左對齊,垂直方向等距離排列。將Button1,Button2和Button3左對齊,垂直方向等距離排列。

      下面放置4個Image組件,用于放置4張紙牌的圖片。

      先選擇Image1,然后切換到對象查看器中的屬性編輯器,選擇屬性選項頁中的Picture屬性,然后在Picture屬性值欄中雙擊,或單擊此屬性值旁邊的帶有省略號的按鈕,打開Picture Editor對話框,如圖3.6所示。然后單擊Load按鈕,彈出Load Picture對話框,在此對話框中選擇background.bmp文件。最后單擊OK按鈕,退出Picture Editor對話框。

      圖3.6 指定圖片

      使用同樣的方法,設(shè)定其他3個Image組件的Picture屬性。

      保存我們的新項目,運(yùn)行之后界面如圖3.7所示,與運(yùn)行時的界面圖3.1稍有不同。這里是設(shè)計時界面,只有界面沒有事件響應(yīng)。是程序創(chuàng)建過程中的一個步驟的檢驗。但是,這個程序還沒有什么具體的功能,為了讓游戲運(yùn)行起來,必須添加代碼,創(chuàng)建相應(yīng)的事件處理程序。

      第3章 “速算24”撲克游戲--單元、異常、邏輯

      ????生成和建立程序????

      ???????

      3.2.4 事件處理

      需要添加?個事件:第一個用于響應(yīng)單擊?開始?按鈕,在此事件中完成發(fā)牌,即隨機(jī)顯示圖片;第二個用于響應(yīng)單擊?計算?按鈕,解析用戶在文本框中輸入的表達(dá)式,計算表達(dá)式的結(jié)果,并判斷表達(dá)式的結(jié)果是否等于??;第三個用于響應(yīng)單擊?退出游戲?按鈕,退出游戲(程

      序)。?

      1.數(shù)據(jù)初始化

      創(chuàng)建窗體的????????事件處理程序,在這里進(jìn)行必要的初始化。?第一步先在Unit1中添加Form1的私有成員數(shù)組:

      private

      { Private declarations }

      RandomData:array of Integer;然后,在對象查看器中選中Form1,選中Event選項卡,在OnCreate一欄對應(yīng)的右邊的空白欄中雙擊,創(chuàng)建OnCreate函數(shù)。添加如下代碼。

      procedure TForm1.FormCreate(Sender: TObject);

      var

      i:integer;

      begin //初始化,設(shè)置數(shù)組RandomData的長度為4

      //并將每個數(shù)組元素初始化為零

      setLength(RandomData,4);

      for i := 0 to 3 do

      RandomData[i]:=0;

      end;這里使用一個for循環(huán)語句,i是循環(huán)變量,格式是:for循環(huán)變量:=初值to末值do循環(huán)體。你也可以借助Delphi的自動完成功能,在輸入for之后按下Ctrl+J鍵,生成如下代碼:

      procedure TForm1.FormCreate(Sender: TObject);

      begin

      for := to do

      begin end;

      end;在上述代碼中,程序首先利用setLength函數(shù)設(shè)定可變數(shù)組RandomData的數(shù)組長度為4,然后,將數(shù)組的每一個單元都設(shè)置為0。這樣,就完成了數(shù)組的數(shù)據(jù)初始化工作。

      2.“開始”按鈕的Click事件處理

      (?)功能?單擊?開始?按鈕時,系統(tǒng)就隨機(jī)地發(fā)出?張紙牌,顯示在?個?????組件中。?

      (?)代碼?首先,我們需要一個循環(huán)變量?,一個字符串變量存放隨機(jī)選取的圖片的文件名。?創(chuàng)建“開始”按鈕的OnClick事件處理程序,在begin前頭添加需要的變量,然后在此事件

      中加入如下所示的代碼。

      procedure TForm1.Button1Click(Sender: TObject);

      var

      i:integer;

      filename:String;

      begin

      Randomize;//初始化隨機(jī)數(shù)

      for i := 0 to 3 do

      begin RandomData[i]:=Random(13)+1;//產(chǎn)生一個1到13的隨機(jī)數(shù)

      filename:=IntToStr(RandomData[i])+'.bmp';//根據(jù)隨機(jī)數(shù),得到文件名

      //根據(jù)i的不同為不同的Image組件載入圖像文件

      case i of 0 : Image1.Picture.LoadFromFile(filename);1 : Image2.Picture.LoadFromFile(filename);2 : Image3.Picture.LoadFromFile(filename);3 : Image4.Picture.LoadFromFile(filename);

      end;

      edit1.Text:='';

      edit1.SetFocus;

      end;

      end;在Delphi內(nèi)部,隨機(jī)數(shù)的產(chǎn)生實際上也是在一套算法的控制之下,Randomize函數(shù)用于初始化產(chǎn)生隨機(jī)數(shù)的種子,保證兩次產(chǎn)生的隨機(jī)數(shù)不同,而Random(i:integer)則利用初始化過后的隨機(jī)數(shù)種子產(chǎn)生一個1~i之間的隨機(jī)數(shù)。這里i設(shè)定為13,以配合撲克牌的張數(shù)13。

      ???????????????????用來將一個整數(shù)轉(zhuǎn)換成一個字符串,和上一章中的??????????????????的功能恰好相反。?我們已經(jīng)預(yù)先準(zhǔn)備了位圖文件,它們都是???形式,文件名則是利用數(shù)字????命名。??????中特殊的字符串運(yùn)算符???將兩個字符串串聯(lián)起來,產(chǎn)生一個新的字符串,我們需要的位圖文件后綴是???,因此,在產(chǎn)生文件名的時候,在數(shù)字后面加上??????這個字符串。?????語句在上一章中已經(jīng)講過,單擊?開始?按鈕后,準(zhǔn)備接受用戶的輸入,然后利用????????方法,把焦點設(shè)置到?????上。????????是??????提供的方法之一,用于設(shè)置輸入

      焦點到某個指定的組件。?

      3.“計算”按鈕的OnClick事件

      雙擊“計算”按鈕,創(chuàng)建此組件的OnClick事件響應(yīng)句柄,然后在代碼編輯器中加入如下所

      示的代碼,用于計算用戶輸入的表達(dá)式。

      procedure TForm1.Button2Click(Sender: TObject);

      var

      result:integer;

      answer:String;

      begin

      result:=TotalCompute(Edit1.Text);

      if(result=24)then Application.MessageBox('您真行,我服了您!','對了',MB_OK)

      else

      begin answer:='您輸入的表達(dá)式的計算結(jié)果為'+IntToStr(Result)+'!';Application.MessageBox(PChar(answer),'錯了',MB_OK);

      end;

      end;這段程序根據(jù)自定義函數(shù)的計算結(jié)果判斷用戶的輸入正確與否,并且輸出相應(yīng)的結(jié)果以提示

      用戶。

      在語句“result:=TotalCompute(Edit1.Text)”中用到了一個自定義的函數(shù)TotalComp-ute,我們用它來計算用戶輸入的表達(dá)式?,F(xiàn)在我們還沒編寫這個函數(shù)的代碼,所以,目前這段代碼是無法運(yùn)行的。沒關(guān)系,可以先把它用“//”注釋掉,然后隨便給 result賦一個值,測試這個事件處理程序的其他部分是否運(yùn)行正常,例如:

      //result:=TotalCompute(Edit1.Text);

      result:=24;這樣,運(yùn)行后,單擊“計算”按鈕后的顯示如圖3.8所示。

      圖3.8 成功的提示信息

      我們用一個??????類型的??????變量存放出錯信息,但是???????函數(shù)的第一個參數(shù)要求是?????(????????????????字符指針)類型,因此,我們用一個強(qiáng)制類型轉(zhuǎn)換將??????轉(zhuǎn)換

      成?????。?4.“退出游戲”按鈕的OnClick事件

      雙擊“退出游戲”按鈕,創(chuàng)建此組件的OnClick事件處理程序,然后在代碼編輯器中加入如

      下所示的代碼,用于退出程序。

      procedure TForm1.Button3Click(Sender: TObject);

      begin

      Close;

      end;在上一章中我們提到可以用?????????????????????代替?????,但這里使用?????來結(jié)束程序的運(yùn)行。這樣,可以通過????????????事件來指定在什么條件下窗體可以關(guān)閉。

      第3章 “速算24”撲克游戲--單元、異常、邏輯

      ????生成和建立程序???????????5.OnCloseQuery事件

      當(dāng)調(diào)用?????方法來關(guān)閉窗體時,????????????事件發(fā)生。利用????????????事件來指定在什么條件下窗體可以關(guān)閉。????????????事件包含一布爾型的????????參量,可以用它來決定窗體是否關(guān)閉。????????的默認(rèn)值為????。?可以利用????????????事件來詢問用戶是否真的希望馬上關(guān)閉窗體。?我們在這里彈出一個對話框,代碼如下所示:

      procedure TForm1.FormCloseQuery(Sender: TObject;var CanClose: Boolean);begin if(MessageDlg('現(xiàn)在要退出游戲嗎?', mtConfirmation, [mbOk, mbCancel], 0)= mrOk)then canClose:=True else canClose:=False;end;MessageDlg是一種提示對話框,第一個參數(shù)是對話框詢問的訊息,是一個字符串;第二個參數(shù)則代表對話框的類型,mtConfirmation是一個TMsgDlgType的枚舉類型,表示這個對話框是個確認(rèn)對話框。TMsgDlgType類型如下所示:

      type TMsgDlgType =(mtWarning, mtError, mtInformation, mtConfirmation, mtCustom);以上定義的對話框類型分別表示:警告、錯誤、提示、確認(rèn)和自定義類型。

      第三個參數(shù)是TMsgDlgBtn類型的集合,這個集合包含了類型為TMsgDlgBtn的按鈕,TMsgDlgBtn的定義如下:

      type TMsgDlgBtn =(mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mnNoToAll, mbYesToAll, mbHelp);在我們的程序中,利用了一個集合[mbOK, mbCancle],表示在對話框中顯示兩個按鈕:OK和Cancel的組合。

      最后一個參數(shù)是用來描述幫助索引的長整型變量,用來獲取提示用戶的幫助信息,這里我們沒有任何幫助信息,先不管它。??????????函數(shù)和用戶交互,返回一個????類型的數(shù)字,??????預(yù)先定義了一套數(shù)字,用來直觀地表示對話框返回信息。如果用戶單擊了??按鈕,這個對話框返回????,效果如圖???所示。?

      圖3.9 關(guān)閉窗口時詢問用戶

      現(xiàn)在,我們已經(jīng)完成了程序的主體部分。??第3章 “速算24”撲克游戲--單元、異常、邏輯

      ????單元間的互相引用????????3.3.1 單元引用的概念

      在第?章關(guān)于單元的知識里,我們已經(jīng)知道??????可以定義不包含窗體的單元,它集中定義了程序中使用的函數(shù),這一節(jié)里,我們就要實現(xiàn)這樣的一個單元,用來實現(xiàn)上面提到的????????????函數(shù)。?我們可以在任何單元中編寫自己的函數(shù),當(dāng)然包括與窗體相連的單元??墒俏覀兂3P枰玫揭恍┏S玫暮瘮?shù),這時最好是創(chuàng)建一個不與窗體相連的獨立單元,用它來容納自己的函數(shù),這稱為獨立的單元文件。當(dāng)創(chuàng)建了不與窗體相連的獨立單元文件后,項目中的其他單元就能很容易地共享這些函數(shù),其他項目也可以很容易地調(diào)用這些函數(shù)了。?對于單元間的引用,要用到????語句。?3.3.2 uses語句

      ????語句告訴程序在最終的執(zhí)行代碼中需要用到哪些函數(shù)和過程。??????會自動把一些必須的單元包括進(jìn)來,例如???????,????????,????????等。對于我們自己編寫的單元,如果程序中使用了該單元的函數(shù)或代碼,也需要包括在????部分中。?????語句具有兩種類型:公有引用和私有引用。?在?????????部分包含的????語句代表的是本單元的公有引用,就是說,這部分的引用可以被其他引用本單元的單元繼承性地引用。在?????????部分的????語句應(yīng)包含在?????????部分中的代碼所需要的單元,去掉那些??????可以自動加入到程序中的單元。?在?????????部分包含的????語句代表的是本單元的私有引用,就是說,這部分的引用只能被本單元內(nèi)部使用。在??????????????部分的????語句應(yīng)只包含在??????????????部分中的代碼所需的單元的名字。?對于單元間的引用,要避免交叉引用。假設(shè)有兩個單元?和?,如果?出現(xiàn)在?的?????????部分的????語句中,那么單元?便不能出現(xiàn)在單元?的?????????的????語句中。因為這樣會產(chǎn)生對單元的循環(huán)訪問,編譯時會出現(xiàn)錯誤信息。?3.3.3 創(chuàng)建另一個單元

      創(chuàng)建一個不與窗體相連的單元文件的方法是,首先選擇主菜單的????命令,然后選擇???命令,此時??????彈出一個?????????對話框,如圖????所示。在此圖中選擇???選項卡中的????,然后單擊??按鈕。此時??????自動為我們創(chuàng)建一個名為?????的獨立單元文件,并顯示在代碼編輯器中,我們只需在此加入函數(shù)即可。?

      圖3.10 New Items對話框

      單元創(chuàng)建之后,就需要實現(xiàn)單元之間的互相引用。這里有兩種方法:?(1)直接在Unit1中寫入uses Unit2,代碼如下所示:

      var Form1: TForm1;implementation uses Unit2;(2)選擇主菜單的File | Use Unit命令,此時Delphi彈出Use Unit對話框,如圖3.11所示,在此窗口中列出當(dāng)前文件沒有連接的所有文件,只需選擇需要連接的文件即可。當(dāng)選擇了某一文件并單擊OK按鈕后,當(dāng)前文件就包含了對所選文件的引用。

      圖3.11 Use Unit對話框

      如果當(dāng)前文件已經(jīng)連接了當(dāng)前項目中所有其他文件,選擇????????命令后,就會彈出如圖????所示的信息窗口,告訴程序員當(dāng)前文件已經(jīng)連接了當(dāng)前項目中所有其他文件。?

      圖3.12 Information對話框

      此時再編譯,程序就沒有任何錯誤了。?現(xiàn)在我們已經(jīng)創(chuàng)建了?????,它將用作我們的數(shù)學(xué)函數(shù)定義單元。在開始定義這個單元之前,需要先了解一下關(guān)于??????的異常處理機(jī)制。?第3章 “速算24”撲克游戲--單元、異常、邏輯

      3.4 異 常 處 理

      3.4.1 異常處理的概念 在應(yīng)用程序開發(fā)中如何檢測、處理程序的運(yùn)行錯誤是一個很重要的問題。在 Delphi 的IDE(集成開發(fā)環(huán)境)中提供了一個完善的內(nèi)置調(diào)試器,可以發(fā)現(xiàn)大部分程序錯誤。但并不是所有的錯誤都可以被發(fā)現(xiàn),而且當(dāng)程序涉及到與外設(shè)的數(shù)據(jù)交換或操作外設(shè),如要求用戶輸入、讀寫磁盤等時,錯誤的發(fā)生是程序無法控制的,如輸入非法字符、磁盤不能讀寫等。這些情況不僅會導(dǎo)致應(yīng)用程序異常中止,而且可能引起系統(tǒng)的崩潰。針對這些問題,Delphi提供了一套強(qiáng)大的異常處理機(jī)制。巧妙地利用它,可以使程序更為強(qiáng)健,使用更為友好。

      Delphi異常處理機(jī)制建立在Protected Blocks(保護(hù)塊)的概念上。所謂保護(hù)塊是指用保留字try和end封裝的一段代碼。保護(hù)塊的作用是當(dāng)應(yīng)用程序發(fā)生錯誤時自動創(chuàng)建一個相應(yīng)的Exception(“異?!鳖悾3绦蚩梢圆东@并處理這個“異?!鳖?,以確保程序的正常結(jié)束以及資源的釋放和數(shù)據(jù)不受破壞。如果程序不進(jìn)行處理,則系統(tǒng)會自動提供一個消息框?!爱惓!鳖愂荄elphi異常處理機(jī)制的核心,也是Delphi異常處理的主要特色。Delphi提供的所有“異常”類都是類Exception的子類。用戶也可以從類Exception派生一個自定義的“異?!鳖?。

      3.4.2 資源保護(hù)方式

      回收分配的資源是確保程序健壯性的一個關(guān)鍵。但默認(rèn)情況下異常發(fā)生時程序會在出錯點自動退出當(dāng)前模塊,因此需要一種特殊的機(jī)制來確保即使在異常發(fā)生的情況下,釋放資源的語句仍能被執(zhí)行,而Delphi的異常處理正提供了這種機(jī)制。

      Delphi提供了一個保留字finally,用于實現(xiàn)資源的保護(hù)。

      {分配資源}

      try {資源使用情況} finally {釋放資源}

      end;try?finally?end就形成了一個資源保護(hù)塊。finally后面的語句在任何情況下(不論程序是否發(fā)生異常)都會執(zhí)行。

      在異常保護(hù)的情況下,當(dāng)異常發(fā)生時,系統(tǒng)會自動彈出一個消息框,在框中顯示異常的消息。退出當(dāng)前模塊后異常類自動清除。

      3.4.3 異常響應(yīng)方式

      異常響應(yīng)為開發(fā)者提供了一個按需進(jìn)行異常處理的機(jī)制。try?except?end形成了一個異常響應(yīng)保護(hù)塊。與finally不同的是:正常情況下except 后面的語句并不被執(zhí)行,而當(dāng)異常發(fā)生時程序自動跳到except處,進(jìn)入異常響應(yīng)處理模塊。當(dāng)異常被響應(yīng)后異常類自動清除。

      下面是異常響應(yīng)方式的一般代碼:

      try {程序正常功能} except on ESomething do {響應(yīng)特定異常} else {提供默認(rèn)響應(yīng)} end;保留字on?do用于判斷異常類型。必須注意的是:except后面的語句必須包含在某一個on?do模塊中,而不能單獨存在。這是又一個與finally不同的地方。

      3.4.4 提供默認(rèn)響應(yīng)

      在異常響應(yīng)模塊中,一般我們只對希望響應(yīng)的特定異常進(jìn)行處理。如果一個異常發(fā)生而響應(yīng)模塊并沒有包含對它的處理代碼,則退出當(dāng)前響應(yīng)模塊,異常類仍被保留。

      為了保證任何異常發(fā)生后都能在當(dāng)前響應(yīng)模塊中被清除,可以定義默認(rèn)響應(yīng):

      try {程序正常功能} except on ESomething do {響應(yīng)特定異常} else {提供默認(rèn)響應(yīng)} end;由于else可以響應(yīng)任何異常,包括我們一無所知的異常,因此在默認(rèn)響應(yīng)中最好只包括諸如顯示一個消息框之類的處理,而不要改變程序的運(yùn)行狀態(tài)或數(shù)據(jù)。

      第3章 “速算24”撲克游戲--單元、異常、邏輯

      3.5 數(shù)學(xué)邏輯單元(1)

      此游戲程序最關(guān)鍵的地方是如何將用戶輸入的字符串表達(dá)式解析成數(shù)學(xué)表達(dá)式。為了使程序結(jié)構(gòu)清晰明了,我們將此解析代碼和程序的主代碼分開,單獨編寫成一個單元。

      3.5.1 算法設(shè)計

      游戲的難點是如何將一字符串形式的表達(dá)式解析成計算機(jī)能計算的算術(shù)表達(dá)式。例如對于字符串“3^(4*(9+4))”,如何讓計算機(jī)解析、計算。

      我們的想法是按照數(shù)學(xué)四則運(yùn)算規(guī)則,先逐層進(jìn)入最里層的括號,然后在括號內(nèi)部計算乘方,接著進(jìn)行乘(除)法運(yùn)算,最后按順序進(jìn)行加(減)運(yùn)算,當(dāng)本層括號內(nèi)部計算完成后,返回結(jié)果,去掉括號內(nèi)部數(shù)據(jù),退出到下一級括號(如果有)內(nèi)進(jìn)行計算。

      這里面涉及的技術(shù)細(xì)節(jié)主要有下面幾點:

      (1)層層剝離括號,然后從最里層的括號開始計算。(2)對于每一個運(yùn)算符號,找到符號兩側(cè)的數(shù)字,形成一個計算式。

      (3)每一個子計算式完成后,運(yùn)算結(jié)果返回到原始數(shù)列中,作為子串的一部分,繼續(xù)進(jìn)行上述計算。

      3.5.2 字符串的相關(guān)函數(shù)

      在游戲中,用戶輸入的都是字符數(shù)據(jù),我們需要從這些字符中分析得到數(shù)字和運(yùn)算符號,因此要用到與字符串操作有關(guān)的函數(shù)。

      function Pos(sub , all:string):integer;這個函數(shù)含有兩個參數(shù):sub表示要查找的字符,all表示原字符串。函數(shù)在字符串a(chǎn)ll中尋找指定的字符sub的位置,如果字符串中不存在sub字符,則函數(shù)結(jié)果為0。

      function LastDelimiter(sub,all :string):integer 這個函數(shù)含有兩個參數(shù):sub表示要查找的字符,all表示原字符串。函數(shù)返回在字符串a(chǎn)ll中所有查找到的指定字符sub的最后一個的位置,如果字符串中不存在sub字符,則函數(shù)結(jié)果為0。

      function Copy(allstring:string;first,length:integer):string 這個函數(shù)的3個參數(shù)的含義分別是:allstring代表原來的字符串,first表示拷貝開始的位置,length表示要拷貝的子串長度。函數(shù)返回拷貝成功的子串。

      procedure Delete(str:string;ppos,length:integer)這個過程用于刪除字符串中的一段字符。參數(shù)str代表將要操作的字符串,ppos代表開始刪除的位置,length表示將要刪除多少個字符。function Length(S): Integer;Length函數(shù)返回字符串S的長度。

      function Trim(const S: string): string;overload;function Trim(const S: WideString): WideString;overload;Trim函數(shù)返回字符串S去掉前面和后面的空格后的字符串。

      下面的例子給出一個綜合利用字符串處理函數(shù)編寫的一個處理特定字符串的函數(shù),它的功能是:輸入一個字符串后,可以返回字符串中兩個單括號之間的子字符串,并去掉前面和后面帶著的空格:

      function GetMyStr(const S: string): string;begin Result:=Trim(Copy(S,Pos('<',S)+1,Pos('>',S)-Pos('<',S)-1));end;比如我們在程序中寫到GetMyStr(‘This is a test < Result to output > end of test’);,會得到字符串“Result to output”。

      3.5.3 算法的代碼編寫

      基于上述的考慮和知識基礎(chǔ),我們在聲明部分定義下列幾個主要函數(shù):

      (1)AnyLastPos函數(shù)定位最后一個算術(shù)運(yùn)算符的位置。

      function AnyLastPos(Str:String):integer;(2)AnyFirstPos函數(shù)定位最先一個算術(shù)運(yùn)算符的位置。

      function AnyFirstPos(Str:String):integer;(3)AnyFirstF函數(shù)判斷最先出現(xiàn)的符號是+號、-號、*號還是/號。

      function AnyFirstF(Str:String):Char;(4)SubCompute函數(shù)用于計算不帶()號的加、減、乘、除運(yùn)算。

      function SubCompute(Str:String):integer;(5)TotalCompute函數(shù)用于計算表達(dá)式的結(jié)果。

      function TotalCompute(Str:String):integer;1.尋找最后一個算術(shù)運(yùn)算符

      定義4個整數(shù)變量SubPos,PluPos,MulPos,DivPos,在給定的字符串中尋找+,-,*,/的最后位置,將這些位置存儲在上述的4個變量中,然后比較4個符號出現(xiàn)的位置,得到數(shù)值最大的運(yùn)算符;在返回的結(jié)果中,返回這個運(yùn)算符的位置。

      程序代碼如下所示:

      function AnyLastPos(Str:String):integer;var SubPos:integer;PluPos:integer;MulPos:integer;DivPos:integer;Pos:Integer;begin //定位字符串中最后一個運(yùn)算符的位置

      SubPos:=LastDelimiter('-',Str);PluPos:=LastDelimiter('+',Str);MulPos:=LastDelimiter('*',Str);DivPos:=LastDelimiter('/',Str);Pos:=SubPos;if(Pos

      分別在給定的字符串中尋找+,-,*,/第一次出現(xiàn)的位置,然后比較4個符號出現(xiàn)的位置,得到數(shù)值最小的運(yùn)算符。在返回的結(jié)果中,傳遞的是這個運(yùn)算符的位置。

      程序代碼如下所示:

      function AnyFirstPos(Str:String):integer;var SubPos:integer;PluPos:integer;MulPos:integer;DivPos:integer;ForPos:integer;FirstPos:integer;begin //定位字符串中最先一個運(yùn)算符的位置

      SubPos:=Pos('-',Str);PluPos:=Pos('+',Str);MulPos:=Pos('*',Str);DivPos:=Pos('/',Str);ForPos:=Pos('^',Str);FirstPos:=200;if(SubPos=0)then //如果沒有-號

      SubPos:=200;//將SubPos設(shè)置成一個不可能的值

      if(PluPos=0)then //如果沒有+號

      PluPos:=200;//將PluPos設(shè)置成一個不可能的值

      if(MulPos=0)then //如果沒有*號

      MulPos:=200;//將MulPos設(shè)置成一個不可能的值

      if(DivPos=0)then //如果沒有/號

      DivPos:=200;//將DivPos設(shè)置成一個不可能的值

      if(ForPos=0)then //如果沒有^號

      ForPos:=200;//將ForPos設(shè)置成一個不可能的值

      if(FirstPos>SubPos)then FirstPos:=SubPos;if(FirstPos>PluPos)then FirstPos:=PluPos;if(FirstPos>MulPos)then FirstPos:=MulPos;if(FirstPos>DivPos)then FirstPos:=DivPos;if(FirstPos>ForPos)then FirstPos:=ForPos;

      AnyFirstPos:=FirstPos;//結(jié)束函數(shù),返回位置

      end;第3章 “速算24”撲克游戲--單元、異常、邏輯

      3.5 數(shù)學(xué)邏輯單元(2)

      3.得到最先出現(xiàn)的運(yùn)算符類型

      這個函數(shù)的返回結(jié)果是Char類型,代表這是一個字符變量。實際上,它返回的是+、-、*、/ 這4個符號中最早出現(xiàn)的一個。

      程序分別尋找4個符號最早出現(xiàn)的位置,然后判斷最先出現(xiàn)的是哪一種符號,再根據(jù)符號類型返回代表運(yùn)算符的字符。

      在具體的實現(xiàn)過程中,因為我們要得到最先出現(xiàn)的運(yùn)算符,所以判斷的是每次尋找后各個運(yùn)算符的位置的最小值。如果不存在這個運(yùn)算符,則將代表這個運(yùn)算符位置的相應(yīng)變量設(shè)置為200。對于本程序來說,這是一個搜索過程中不可能達(dá)到的值,這樣就排除了這個位置的繼續(xù)比較的可能。

      程序代碼如下所示:

      function AnyFirstF(Str:String):Char;var SubPos:integer;PluPos:integer;MulPos:integer;DivPos:integer;Operator:char;tempPos:integer;begin SubPos:=Pos('-',Str);PluPos:=Pos('+',Str);MulPos:=Pos('*',Str);DivPos:=Pos('/',Str);

      if(SubPos=0)then //如果沒有-號

      SubPos:=200;//將SubPos設(shè)置成一個不可能的值

      if(PluPos=0)then //如果沒有+號

      PluPos:=200;//將PluPos設(shè)置成一個不可能的值

      if(MulPos=0)then //如果沒有*號

      MulPos:=200;//將MulPos設(shè)置成一個不可能的值

      if(DivPos=0)then //如果沒有/號

      DivPos:=200;//將DivPos設(shè)置成一個不可能的值

      Operator:='-';tempPos:=SubPos;if(tempPos>PluPos)then begin tempPos:=PluPos;Operator:='+';end;if(tempPos>MulPos)then begin tempPos:=MulPos;Operator:='*';end;if(tempPos>DivPos)then begin tempPos:=DivPos;Operator:='/';end;

      AnyFirstF:=Operator;//結(jié)束函數(shù),返回位置 end;4.計算不帶括號的運(yùn)算表達(dá)式

      做完上述工作后,我們可以開始進(jìn)行一些實際的運(yùn)算了。

      包括加、減、乘、除、乘方運(yùn)算的表達(dá)式的程序算法如下所示:

      (1)尋找乘方符號“^”,如果存在,則計算一次乘方,去掉計算過的部分,接著循環(huán)查找和計算子串的乘方。

      (2)尋找乘號“*”或者除號“/”,如果存在,則計算一次乘(除)法,去掉計算過的部分,接著循環(huán)計算子串的乘除法。

      (3)尋找加號“+”或者減號“-”,如果存在,則計算一次加(減)法,去掉計算過的部分,接著循環(huán)計算子串的加減法。

      上述算法是嚴(yán)格按照順序進(jìn)行的,它體現(xiàn)了數(shù)學(xué)運(yùn)算中的優(yōu)先關(guān)系,經(jīng)過上述的計算,子字符串被分解,計算完畢。

      無論是乘方、乘除法還是加減法,內(nèi)部實現(xiàn)的邏輯是基本一致的。下面,我們設(shè)定有一個運(yùn)算表達(dá)式:3+2^5/4。

      程序代碼如下所示:

      function SubCompute(Str:String):integer;var Middle:String;Mul2:String;Right:String;First:integer;tempStr:String;temp:integer;Left:String;Mul1:String;MulPos:Integer;DivPos:Integer;Fuhao:Char;begin Middle:='';Mul2:='';Right:='';

      //定位第一個^號位置,計算乘方

      First:=Pos('^',Str);While(First<>0)do //循環(huán)計算乘方

      begin tempStr:=Copy(Str,1,First-1);temp:=AnyLastPos(tempStr);Left:=Copy(Str,1,temp);Mul1:=Copy(str,temp+1,First-temp-1);tempStr:=Copy(str,First+1,Length(str)-First);temp:=AnyFirstPos(tempStr);if(temp=200)then begin Mul2:=tempStr;Right:='';end else begin Mul2 :=Copy(tempStr,1,temp-1);Right:=Copy(tempStr,temp,Length(tempStr)-temp+1);end;Middle:=FloatToStr(IntPower(StrToInt(Mul1),StrToInt(Mul2)));Str:=Left+Middle+Right;First:=Pos('^',Str);end;

      //定位第一個*號或/號的位置

      MulPos:=Pos('*',Str);DivPos:=Pos('/',Str);First:=MulPos;if(MulPos>DivPos)then First:=DivPos;if((DivPos=0)and(MulPos<>0))then begin First:=MulPos;DivPos:=2000;// 將除號所在位置設(shè)置成一個大于MulPos但又不可能的值

      end;if((DivPos<>0)and(MulPos=0))then begin First:=DivPos;MulPos:=2000;// 將乘號所在位置設(shè)置成一個大于DivPos但不可能的值

      end;while(First<>0)do //循環(huán)計算乘、除

      begin tempStr:=Copy(Str,1,First-1);temp:=AnyLastPos(tempStr);Left:=Copy(Str,1,temp);Mul1:=Copy(Str,temp+1,First-temp-1);tempStr:=Copy(Str,First+1,Length(Str)-First);temp:=AnyFirstPos(tempStr);if(temp=200)then begin Mul2:=tempStr;Right:='';end else begin Mul2 :=Copy(tempstr,1,temp-1);Right:=Copy(tempStr,temp,Length(tempStr)-temp+1);end;if(MulPos>DivPos)then Middle:=IntToStr(StrToInt(Mul1)div StrToInt(Mul2))else Middle:=IntToStr(StrToInt(Mul1)*StrToInt(Mul2));Str:=Left+Middle+Right;

      MulPos:=Pos('*',Str);DivPos:=Pos('/',Str);First:=MulPos;if(MulPos>DivPos)then First:=DivPos;

      if((DivPos=0)and(MulPos<>0))then begin First:=MulPos;DivPos:=2000;// 將除號所在位置設(shè)置成一個大于MulPos但又不可能的值

      end;if((DivPos<>0)and(MulPos=0))then begin First:=DivPos;MulPos:=2000;// 將乘號所在位置設(shè)置成一個大于DivPos但不可能的值

      end;end;//定位+、-號首先出現(xiàn)的位置

      First:=AnyFirstPos(Str);if(First=200)then //如果沒有+、-號,則可以直接返回結(jié)果

      begin SubCompute:=StrToInt(Str);exit;end;Fuhao:=AnyFirstF(Str);//確定首先出現(xiàn)的符號是+號還是-號

      while(First<>0)do begin //如果找到+號或-號

      tempStr:=Copy(Str,1,First-1);temp:=AnyLastPos(tempStr);Left:=Copy(Str,1,temp);Mul1:=Copy(Str,temp+1,First-temp-1);tempStr:=Copy(Str,First+1,Length(Str)-First);temp:=AnyFirstPos(tempStr);if(temp=200)then begin Mul2:=tempStr;Right:='';end else begin Mul2 :=Copy(tempStr,1,temp-1);Right :=Copy(tempStr,temp,Length(tempStr)-temp+1);end;if(Fuhao='+')then Middle:=IntToStr(StrToInt(Mul1)+StrToInt(Mul2))else Middle:=IntToStr(StrToInt(Mul1)-StrToInt(Mul2));Str:=Left+Middle+Right;First:=AnyFirstPos(Str);if(First=200)then break;Fuhao:=AnyFirstF(Str);end;

      SubCompute:=StrToInt(Middle);end;程序執(zhí)行過程如下所示:

      (1)定位字符串中第一個乘方符號“^”的位置First。這個式子中的First為4。

      (2)如果存在乘方符號,即First不等于0,則繼續(xù)進(jìn)行計算,否則退出循環(huán)。

      (3)進(jìn)入循環(huán)體內(nèi)部,得到“^”前面的子串tempStr(“3+2”),尋找tempStr中的最后一個運(yùn)算符temp(這里是“+”),則Temp和First之間的字符就是乘方符號的第一個參數(shù)(“2”)。

      (4)同樣的邏輯,得到“^”后面的子串tempStr(“5/4”),尋找tempStr中的第一個運(yùn)算符位置temp(“/”),則Temp和First之間的字符就是乘方符號的第二個參數(shù)(“5”)。

      (5)去掉乘方符號和兩個參數(shù),得到左側(cè)子串left(“3+”)和右側(cè)子串right(“/4”)。

      (6)利用這兩個參數(shù)和乘方符號,計算乘方,將結(jié)果返回,并插入在left和right之間,得到一次計算后的新字符串(“3+32/4”)。

      (7)判斷新串內(nèi)部是否包含“^”,如果包含,則返回到步驟(3),不包含則進(jìn)入下一種運(yùn)算。

      第3章 “速算24”撲克游戲--單元、異常、邏輯

      3.5 數(shù)學(xué)邏輯單元(3)5.計算整個表達(dá)式的值

      TotalCompute函數(shù)利用循環(huán),找到最內(nèi)層的一對括號,然后調(diào)用SubCompute函數(shù)處理這一對括號中的表達(dá)式。SubCompute函數(shù)處理的表達(dá)式中已經(jīng)沒有括號了,因此SubCompute只需處理乘方、加、減、乘、除,返回結(jié)果,形成新的字符串。

      當(dāng)整個字符串縮減至空值時,整個表達(dá)式計算完成。

      程序代碼如下所示:

      function TotalCompute(Str:String):integer;var First:integer;Last:integer;SubStr:String;LeftStr:String;Middle:String;Right:String;temp:integer;begin First:=LastDelimiter('(',Str);//定位最后一個(號位置 while(First<>0)do begin SubStr:=Copy(Str,First+1,Length(Str)-First);Last:= Pos(')',Str);//Last:=Last+First;//定位最后一個(號以后的最開始的)號位置

      LeftStr:=Copy(Str,1,First-1);//(號左邊的字符串

      Middle:=Copy(Str,First+1,Last-First-1);//()號中間的字符串

      Right:=Copy(Str,Last+1,Length(Str)-Last);//)號右邊的字符串

      temp:=SubCompute(Middle);//進(jìn)入下面的計算

      Middle:=IntToStr(temp);

      Str:=LeftStr+Middle+Right;First:=LastDelimiter('(',Str);end;

      Result:=SubCompute(Str);end;end.在程序中,“計算”按鈕的OnClick事件處理程序中調(diào)用TotalCompute函數(shù)。函數(shù)中使用了一些數(shù)學(xué)函數(shù)和定位字符串的函數(shù),這些函數(shù)Delphi已經(jīng)在相應(yīng)的系統(tǒng)單元中進(jìn)行了定義,我們需要把這些系統(tǒng)單元包括到文件里面:

      uses Sysutils,Math;將前面調(diào)用TotalCompute的注釋去掉,把代碼改回:

      procedure TForm1.Button2Click(Sender: TObject);var result:integer;answer:String;begin result:=TotalCompute(Edit1.Text);if(result=24)then Application.MessageBox('您真行,我服了您!','對了',MB_OK)else begin

      第五篇:c++24點游戲

      c++24點游戲

      #include “iostream” #include “string” using namespace std;

      //定義Stack類

      const maxsize=20;

      enum Error_code { success, overflow, underflow };

      template class Stack { public: Stack();

      bool empty()const;bool full()const;int size()const;void clear();

      Error_code top(T &item)const;Error_code pop();

      Error_code push(const T &item);private: int count;T entry[maxsize];};

      template Stack::Stack(){ count=0;}

      template

      bool Stack::empty()const { return count==0;}

      template

      bool Stack::full()const { return count==maxsize;}

      template int Stack::size()const { return count;}

      template void Stack::clear(){ count=0;}

      template

      Error_code Stack::top(T &item)const { if(empty())return underflow;item= entry[count-1];return success;}

      template

      Error_code Stack::pop(){ if(empty())return underflow;count--;return success;}

      template

      Error_code Stack::push(const T &item){ if(full())return overflow;entry[count++]=item;return success;}

      Stack sign;Stack num;

      int set;

      // 判斷程序中的異常,以便適時退出?//

      void process(char c)

      //計算兩個數(shù)的 +-* / 運(yùn)算// { int k=0;double a,b;sign.pop();

      if(num.top(b)==success){

      num.pop();

      if(num.top(a)==success){ num.pop();k=1;} } if(k){ switch(c){

      case '+': num.push(a+b);break;case '-': num.push(a-b);break;case '*': num.push(a*b);break;case '/': if(b==0){ set=4;num.push(-1);} else

      num.push(a/b);break;} }

      else {set=1;num.push(-1);} }

      void get_command(string &str){

      cout<<“n請輸入要進(jìn)行運(yùn)算的表達(dá)式,包括” +,-,*,/,=,(,)“和數(shù)字,”<

      <<“注意: 以數(shù)字開頭,等號結(jié)尾,中間括號要匹配.”<>str;}

      double do_command(const string &str){ string s=“";

      double outcome=-1;char c;

      for(int i=0;str[i]!='