成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

項目總結(jié):游船管理系統(tǒng)

james / 3062人閱讀

摘要:項目總結(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

相關(guān)文章

  • Java3y文章目錄導(dǎo)航

    摘要:前言由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號:Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...

    KevinYan 評論0 收藏0
  • 移動商城項目總結(jié)

    摘要:有必要建一個資源服務(wù)器存放靜態(tài)資源。一些用戶級別的數(shù)據(jù)輕量可以考慮存儲在中。存儲的是值,可以通過來對和對象之間的轉(zhuǎn)換如果我們的數(shù)據(jù)是在后臺傳過去或者轉(zhuǎn)換而成的,在前臺上并沒有做什么改變的話。 移動商城項目總結(jié) 移動商城項目是我第二個做得比較大的項目,該項目系統(tǒng)來源于傳智Java168期,十天的視頻課程(想要視頻的同學(xué)關(guān)注我的公眾號就可以直接獲取了) 通過這次的項目又再次開闊了我的視野,...

    BlackHole1 評論0 收藏0
  • 新疆智營銷項目總結(jié)

    摘要:需要對本項目做一個總結(jié),提醒自己,記得這些問題??偨Y(jié)自己在這個項目犯得錯以及踩的坑,自己在今后的項目將會注意以下事項了解項目整體需求和結(jié)構(gòu),知道哪些組件會公用。 新疆智營銷項目是我來到亞信的第一個項目,項目初期需求分析沒有參加,接到設(shè)計圖直接寫,沒來得及系統(tǒng)的了解整個項目的結(jié)構(gòu),表格組件定下來之后,表單form的輸入項打算讓郭山專職負責(zé),后來情況發(fā)生變化導(dǎo)致表單一塊前后三個人參與,沒有...

    monw3c 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<