NTUE-CS102 板


LINE

人參,我覺得下份作業比較令人恐懼..吧 總而言之該來寫我自己覺得拖稿一個月的網頁小算盤hmm 雖然我也覺得拿jsp或php寫小算盤,從很多角度來看都亂詭異的感覺 只是說,要學習form的使用,還有基本語法等等 好像也沒其他正常點的東西可以寫的樣子 下頁正文 -- 姑且先不論詳細 在做之前..簡單分析一下小算盤有些什麼東西,實作有多少東西要注意 : 啊..是說這題目對win7使用者意外麻煩的是找不到目標程式參考_A_ 介面來看,大概是兩個區塊 顯示數值的一塊區域,跟底下各個按鈕兩塊 這邊應該不算明確的大問題,前者是個textarea,後者是群button 再來是後台,也就是運算這部分來看 這個"數值"分為兩個部分,一個是要顯示在畫面上的(我稱為前景) 另外一個是運算子之前,那一項不會顯示在螢幕上的(後景) 以及前次要求運算的運算子 以一個數學式為例,與顏色對照在執行上,分別會存在哪個變數就會是 1 + 2 = 3 操作流程也蠻單純的..點1 點+ 點2 點= 螢幕上就顯示3 這樣做得完... 我是覺得就拿80%,那個小數沒嚴苛要求防呆,所以是嚇人用的計分標準 -- 嗯..所以讓我們來從介面這部分看看.. html部分大原則還蠻單純的 一個textarea,然後大量的submit按鈕 這邊可以注意兩個點 一是所有的submit可以全部取為name相同,value不同 反正小算盤怎樣都是一次一個指令,這樣做會比較好取得進來的指令 可以統一用一套格式解決所有狀況 另外一個是排版這件事的話... 不要想太多,開個n*m表格就能處理掉了 不要想調整什麼東西,時間花在應該花的地方吧 此外,依據程式碼變數寫法部分,可以用hidden欄位做簡單保留值行為 反正小算盤沒有安全性需求(?) -- 看程式碼部分.. 簡單來看這兩份作業,其實就是判別使用者submit的按鍵是什麼 然後對照作處理、存進應該存的變數就好 首先是jsp字串處理比較複雜的要用equals這個函式處理 php只要單純$var == "text"就能解決,無腦的好幫手(?) 用前述1+2=3,這樣做code範例來說明,應該是足夠表現整個內容怎麼寫了.. 先做點基本前提的html部分 <form action="self.php" method="post"> <input type="submit" name="cmd" value="1"> <input type="submit" name="cmd" value="2"> <input type="submit" name="cmd" value="+"> <input type="submit" name="cmd" value="="> </form> -- 首先,取得值蠻多方法..php來說,我是習慣post就用$_POST['hash'];來取得 然後呢..小算盤可以分為運算子與數值兩種輸入 然後數值部分全都是同一套處理流程,所以其實可以這樣寫判斷 <?php $cmd = $_POST['cmd']; if ($cmd == "+"){ } else if ($cmd == "="){ } else{ } ?> else內就是數值、小數點等等的這樣 不做防呆的情況..數值都可以直接把輸入得到的$cmd接在字串最後 以下頁為例 -- 假設既有數值 102 不管下一個輸入是小數點,或其他數值 都表示會變成 102. 或 1023 在程式中,這都同樣能用 $fn = $fn.$cmd; 處理掉 所以else裏頭就只要另外注意 如果是一開始沒有值要先改為0 然後原本是0,要輸入進其他數字而非小數點時,要取代過去即可 : fn即指前景數 再來看($cmd == "+")的情況 因為在小算盤的功能裏頭,+-*/同時會先把前面的運算式做次處理 所以這裡要先檢查有沒有前一個運算子...這裡用的變數是$pastcmd 只要存在的話,就照$pastcmd所表示的運算子處理,存進$fn 若不存在,或處理完後,就把$fn存進$bg 再把這次抓取的$cmd這個運算子,存進$pastcmd 喔有點複雜...來看看這頁說明的code實際長相 -- <?php $cmd = $_POST['cmd']; $fn = $_POST['fn']; $bg = $_POST['bg']; $pastcmd = $_POST['pastcmd'] if ($cmd == "+"){ if ($pastcmd == "+") $fn = $fn + $bg; $bg = $fn; $fn = 0; $pastcmd = $cmd; } else if ($cmd == "="){ } else{ if ($fn!=0 || $cmd=="." ) $fn = $fn.$cmd; else $fn = $cmd; } ?> -- 好,所以因為有了 + 的部分 =也是差不多的方法,此外就是-*/也用差不多的方法就能解決 要記得,php會自動轉型...所以運算上可以用這麼懶(?)的方式計算 針對0. 這樣的字串,也會轉型成 0 來算 至於特殊功能的部分,google "php math" 查查函式,直接對$fn開下去就是 有時候我不太懂這些評分要求的實質意義在哪(?) 至於MR MC M+ M-...查一下運作模式 多用幾個變數就能處理了 -- 啊對,如果你們很有種的話可以putty上去伺服器,跑去隔壁的資料夾cat看code -- 所恐懼的,不是沒有知識的大眾  所憎恨的,不是深沉幽暗的人心 而是自以為是的思考之聲 而是自恃甚高的執法者 所毀滅的,不是溫馨和諧的世界 這是我最後的期許,沒有憤怒、沒有悔恨 而是自欺欺人的夢境 只剩下,渾沌的死亡呼吸                節自 新月神話-弒王者 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 119.14.21.184
1F:推 jerry771210:感謝 05/26 00:19
2F:→ game0416:是我要謝給成績的,哪有你謝的Q__Q 05/26 00:22
※ 編輯: game0416 來自: 119.14.21.184 (05/26 00:22)
3F:推 CaptainWill:有見地 05/26 00:24
4F:推 jerry771210:不負責任php教學:把"%"-->"?" , "var "-->"$" 05/26 00:35
5F:→ jerry771210:把所有的變數前面加上"$",".jsp"-->".php"就成了php 05/26 00:36
6F:推 SMUGEN:jsp版的如果寫乾淨清楚一點 php版的只要一下子就改好了 :D 05/26 00:39







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP