摘要:項目總結(jié)游船管理系統(tǒng)這個學(xué)期有一門課,叫軟件工程。這里先亮出第一個項目。需求某公園有一個游船碼頭,負責(zé)人希望開發(fā)一游船管理系統(tǒng)。要求如下當(dāng)游客租船時,管理員輸入表示租船周期開始當(dāng)游客還船時,管理員輸入表示租船周期結(jié)束。
項目總結(jié):游船管理系統(tǒng)
http://blog.percymong.com/201...
這個學(xué)期有一門課,叫軟件工程。老師說,這個學(xué)期有四個項目,可以使用 any language(帥氣,正好可以拿來練 js)。這里先亮出第一個項目。
需求某公園有一個游船碼頭,負責(zé)人希望開發(fā)一游船管理系統(tǒng)。要求如下:當(dāng)游客租船時,管理員輸入 S 表示租船周期開始;當(dāng)游客還船時,管理員輸入 E 表示租船周期結(jié)束。
一天結(jié)束后,要求打印租船次數(shù)和平均租船時間
輸出一天中的最長租用時間
將報告分上午和下午輸出
當(dāng)通信線路出問題時,刪除一切不完整租船信息
只要你學(xué)過 C/C++,看到輸入 S 和輸入 E,總會情不自禁地想起那個黑黑的窗口,沒錯,就是控制端程序的那個窗口。
但是老師不是說了,可以使用任何語言嘛!
真巧,最近正好發(fā)現(xiàn)了 node-webkit,可以用前端三把斧(HTML、CSS、JavaScript)來開發(fā)桌面應(yīng)用嘍,那就來試試唄!
程序語言與環(huán)境語言: HTML、CSS、JavaScript
編輯器: Sublime Text 3
運行環(huán)境: node-webkit
打包工具: Inno Setup Compiler
源代碼與應(yīng)用我已經(jīng)將源代碼寄存到了 GitHub 上面了,鏈接在這里!
應(yīng)用文件放在了度盤里:點這里。
優(yōu)化添加身份驗證信息(姓名:2到4個漢字;身份證號:18位數(shù)字;租船編號:boat+編號)
將主界面與詳細租船信息界面分離
打開程序時,檢測文件中的有效數(shù)據(jù),讀取并顯示在頁面上(使用nodejs的fs模塊)
還船時,將完整數(shù)據(jù)存入文件(租船結(jié)束的稱之為完整數(shù)據(jù))
添加歡迎界面,關(guān)閉頁面提醒(使用了一個JavaScript庫:PleaseWait.js)
加入價格,租船結(jié)束后顯示賬單
將船的總量和租船價格只在全局變量中進行定義,方便更改船的數(shù)量
管理員可通過更改 config.json 文件,從而更改船的數(shù)量以及租船價格(本來準(zhǔn)備為應(yīng)用添加一個設(shè)置菜單來實現(xiàn)這個功能,后來為了美觀,放棄了這個決定)
表單優(yōu)化,不再使用alert提示錯誤信息,使用css偽元素顯示錯誤信息
禁用鼠標(biāo)右鍵和 F12
阻止外部文件拖拽進窗口
記錄可重用代碼/* 禁用鼠標(biāo)右鍵、F12 *************************************************/ document.addEventListener("contextmenu", function(e) { e.preventDefault(); }); window.addEventListener("keydown", function(e) { if (e.keyCode == 123) { e.preventDefault(); } }); /* 阻止文件拖拽進窗口 ***************************************************/ window.addEventListener("dragover", function(e) { e.preventDefault(); e.dataTransfer.dropEffect = "none"; }); window.addEventListener("drop", function(e) { e.preventDefault(); }); /* 一些 nodejs 路徑 ****************************************************/ var fs = require("fs"); var path = require("path"); // 獲取當(dāng)前exe文件所在的路徑 var execPath = process.execPath; // 獲取當(dāng)前exe文件所在的目錄 var execDirPath = path.dirname(execDirPath);總結(jié)
尋找應(yīng)用中的相似性,以便重用代碼。
不管做什么東西,提前的設(shè)計是非常有必要的,不能瞎頭瞎腦就開始寫代碼,不然你的代碼的重用性就大打折扣了。
不要惹惱你的用戶,這也是我為什么對表單報錯進行了優(yōu)化,要是之前,每次報錯都要 alert 一次,好煩的。
最后,引用張鑫旭大神說過的一句話:通過技術(shù)彌補設(shè)計缺陷是很傻逼的。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/80673.html
摘要:前言由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號:Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...
摘要:有必要建一個資源服務(wù)器存放靜態(tài)資源。一些用戶級別的數(shù)據(jù)輕量可以考慮存儲在中。存儲的是值,可以通過來對和對象之間的轉(zhuǎn)換如果我們的數(shù)據(jù)是在后臺傳過去或者轉(zhuǎn)換而成的,在前臺上并沒有做什么改變的話。 移動商城項目總結(jié) 移動商城項目是我第二個做得比較大的項目,該項目系統(tǒng)來源于傳智Java168期,十天的視頻課程(想要視頻的同學(xué)關(guān)注我的公眾號就可以直接獲取了) 通過這次的項目又再次開闊了我的視野,...
摘要:需要對本項目做一個總結(jié),提醒自己,記得這些問題??偨Y(jié)自己在這個項目犯得錯以及踩的坑,自己在今后的項目將會注意以下事項了解項目整體需求和結(jié)構(gòu),知道哪些組件會公用。 新疆智營銷項目是我來到亞信的第一個項目,項目初期需求分析沒有參加,接到設(shè)計圖直接寫,沒來得及系統(tǒng)的了解整個項目的結(jié)構(gòu),表格組件定下來之后,表單form的輸入項打算讓郭山專職負責(zé),后來情況發(fā)生變化導(dǎo)致表單一塊前后三個人參與,沒有...
閱讀 1830·2021-11-23 09:51
閱讀 950·2021-10-08 10:05
閱讀 3434·2021-09-26 09:55
閱讀 1045·2021-09-22 15:21
閱讀 1635·2021-09-09 09:33
閱讀 1274·2019-08-30 15:56
閱讀 1287·2019-08-30 15:55
閱讀 971·2019-08-30 13:19