• 沒有找到結果。

心得

在文檔中 行動營養顧問 (頁 53-168)

第四章 結論

4.6 心得

這個的專題作起來有點趕,因為當初在找題目的時候猶豫了許久才 決定現在的專題題目,因此也浪費了不少的時間,在這次的專題中因 為時間有限而又必須完成一整個營養系統,對於我們來說可以算一項 很大的考驗,原因在於我們對於營養學的專業知識幾乎可以算是完全 不了解,從零開始十分的辛苦,在剛開始蒐集資料的時候花了許多的 時間去了解,不但去訪問了專業的營養師,尋求他的專業意見跟他諮 詢的流程,也特地去跟別校的營養系同學討論與尋求協助,而在這些 專業人士的幫助下,讓我們的系統能夠確切的符合使用者真正的需求 與專業性,也使得我們製作專題的過程能夠越來越順利。

對於我們來說,這次的專題可以說是我們大學四年以來第一次從無 到有的將一整個系統建構出來,從一開始最先的整個系統規格的分 析,再來的系統架構描繪、流程分析、實作撰寫程式等等一連串的步 驟,一直到最後的專題報告、操作手冊、維護手冊的撰寫,在深入的 實作了整個專題之後,讓我們了解到,建構一個系統不只是要有好的 撰寫程式能力,對於系統的規格、功能、架構如何去分析與設計,還 有對於使用手冊、維護手冊等文件該如何撰寫才能達到對使用者與維 護人員有所幫助,這些在建構一個系統時,也都是相當重要而不可忽 視的部分。同時,這次專題的製作也讓我們能夠有機會將以往在課堂 所學的許多基礎的理論與方法加以應用與發揮,也能藉此發現自己那 些方面的能力仍有所不足或有待加強的,及對於哪些事務需要更深入 的學習的。

透過這次的專題,不僅是讓我們對於如何去建構、設計與規劃一個 系統這樣的資訊專業能力有所增加,而且也讓我們對於團隊工作以及 人際溝通上有更深切的體認;在一個工作團隊中,如何適當且有效率 的將工作予以分配規劃;以及工作團隊中隊員與隊員之間的溝通討 論;還有跟其他領域的專業人士及使用者的交流資訊,以使得所建構 的系統能更貼切於使用者的需求,也更符合市場的需要;這些都是之 前在課堂上少有接觸的地方,而藉由這次專題給了我們一個成長與學 習的機會,相信這些的種種都是我們將來不論是投身產業界或是學術 界中,一個不可或缺而寶貴的經驗。

參考文獻

【1】 謝明哲、葉松鈴,“膳食療養學實驗”,台北醫學大學保健營 養學系,2001 年 3 月

【2】 章樂崎、殷梅津等,“實用膳食療養學”,匯華圖書出版有限 公司,2001 年 3 月

【3】 Neil Rbodes & Julie Mckeeban , “Palm OS Programming – The Developer’s Guide”, O’REILLY, 1999 年

【4】 Neil Rbodes & Julie Mckeeban , “Palm OS Programming – The Developer’s Guide 2nd Edition”, O’REILLY, 2002 年

【5】 Palm Inc., “Palm OS Companion”, Palm Inc., 2001 年

【6】 Palm Inc., “Palm OS Reference”, Palm Inc., 2001 年

【7】 陳永利譯,“Palm OS 程式設計大全”,旗標圖書,2001 年

【8】 位元文化,“Palm OS 程式設計:Code Warrior 入門進階”,

文魁資訊股份有限公司,2000 年

【9】 張致仁,“Palm OS 3.5 程式設計速成 第二版”,儒林圖書,

2001 年

【10】食品資訊網,

http://food.doh.gov.tw/

【11】許元、許丕中,“系統分析設計與製作”,松崗圖書,1997 年

附錄 A 安裝手冊

A.1 從 PC 端安裝行動營養顧問到 PDA

A.2 在電腦的模擬器上面安裝本軟體

A.1 從 PC 端安裝行動營養顧問到 PDA

步驟(一):

點選「開始」→「程式集」→「Palm Desktop」→「Palm Desktop」,

完成後將 Palm PDA 放置基座上,作這個動作後請確定基座連接線確 實與 PC 端的通訊埠之間有連接並正確,並且確定「HotSync Manager」

有常駐於工作列中,如果您對於這些動作還不是很確定的話,請參閱 購買 Palm 時所附的操作說明手冊,或是 Palm Desktop 中的求助說 明,或請相關人員協助。

步驟(二):

用滑鼠點選 Palm Desktop 中的 Install 按鈕,如圖 A1 標示的地方 點一下。

圖 A1 安裝步驟(一)

步驟(三):

接下來螢幕上會跳出一個「Install Tool」的視窗,用滑鼠在

「Add...」按鈕上面點一下。

圖 A2 安裝步驟(二)

步驟(四):

之後選擇光碟中所附的檔案,如果是安裝營養大師則選取圖 A3 中 的檔案,如果是安裝健康大師則選取圖 A4 的檔案,如果您對所要選擇 的檔案不清楚的話請聯絡相關人員求助。

圖 A3 安裝步驟(三-1)

圖 A4 安裝步驟(三-2)

步驟(五):

安裝完畢後就會出現所對應的 ICON,點選 ICON 則可以開始使用本軟 體。

圖 A5 參考畫面

A.2 在模擬器上面安裝本軟體

步驟(一):

先開啟模擬器,在模擬器的上面點選滑鼠右鍵,則會跑出下面的圖樣 選取 Install Application/Database 中的 Other。

圖 A6 安裝步驟(五)

步驟(二):

根據你所要安裝的軟體,選擇所要安裝的檔案,營養大師選取。

步驟(三):

所標示的檔案,健康大師則選取安裝步驟(四)所標示的檔案。

步驟(四):

最後 PDA 會出現像(圖 A5)的 ICON,然後就可以使用本 軟體。

前 言

附錄 B

健康大師維護手冊

B.0 前言

B.1 個人資料設定

B.1.1 個人資料設定子系統 B.2 健康日曆

B.2.1 健康日曆子系統 B.3 瘦身大作戰

B.3.1 瘦身大作戰子系統

B.0 前言

健康大師系統維護手冊其撰寫方式乃是依其功能加以區分章節段 落,每一章代表健康大師系統中的一項功能,而每一章中的內容中包 括了有 3 大部分,分別是:

(一)系統簡介:

將本章所代表的功能當作一子系統,然後就此子系統的目的與大略動 作做簡要的說明。包含有「目的說明」與「功能控制流程圖」兩小部 分。

(二)相關函式、資料庫說明:

此章功能所會用到的相關函式與資料庫,就其函式名稱、功能和資料 庫名稱、存放何類資料加以說明。包含「函式說明」、「資料庫說明」

兩部分。

(三)程式主要段落說明:

就此章功能的相關程式碼的一些主要段落,或是一些相關函式內部的 主要動作加以說明。

相關維護人員可依其需要與所需,經查閱手冊最前面的目錄,來得 知所欲得知之資訊的相關章節。

此外,因營養大師系統與健康大師系統某些功能雷同,例如食物代 換表查詢功能、生料營養素查詢功能、資料傳輸功能以及電子書功能 等等,故這些功能的維護部分在此處省略不提,相關維護人員請參考 營養大師系統維護手冊。

1.1 個人資料設定子系統

B.1 個人資料設定

B.1.1 個人資料設定模組

B.1.1 個 人 資 料 設 定 模 組 B.1.1.1 目 的 說 明

使用者使用此模組,將個人的基本資料寫入「個人基本資料庫」

中,供健康大師子系統其他相關功能部分使用,以及透過傳輸功能,

將病患個人資料建立於營養師所使用的營養大師子系統的「病患管理 資料庫」中。

B.1.1.2 控 制 流 程 圖 輸入個人基本資料

圖 14 個人基本資料設定模組控制流程圖

B.1.1.3 函 式 說 明

函 式 名 稱 功 能 說 明

SetFormHandleEvent 處理 Set 表單所發生的 Event SickFormHandleEvent 處理 Sick 表單所發生的 Event Check_sick

當使用者並非第一次進入疾病狀況設定功 能,Check_sick 便會去讀取使用者之前所設 定的疾病狀況,並顯示出來。

FarNewRecord 呼叫 NewRecord 函式將資料寫入指定的資料 庫。

B.1.1.4 資 料 庫 說 明

資 料 庫 名 稱 儲 存 資 料 說 明

Cus 存放使用者個人基本資料與疾病狀況 B.1.1.5 程 式 主 要 段 落 說 明

以下是對程式碼中一些重要部份做說明。

B.1.1.5.1

這邊純粹作抓取使用者輸入的資料的動作,並先將使用者輸入的 資料暫時放到 personal_set 這個變數裡,待使用者的疾病狀況也輸 入完成後,在一併放入「個人基本資料庫」中。

使用者 個人基本資料

GetTextHandle(FrmGetActiveForm(),SetIDField,a1); //抓取身分證字號 StrCopy(tmp3,a1);

StrCat(tmp3,"^"); //各欄位間以”^”符號為區隔

GetTextHandle(FrmGetActiveForm(),SetNameField,a2); //抓取姓名 StrCat(tmp3,a2);

StrCat(tmp3,"^");

StrCat(tmp3,personal_sex); //先將已抓取資料暫時放到 personal_set 中 StrCat(tmp3,"^");

GetTextHandle(FrmGetActiveForm(),SetHeightField,a3); //抓取身高 StrCat(tmp3,a3);

StrCat(tmp3,"^");

GetTextHandle(FrmGetActiveForm(),SetWeightField,a4); //抓取體重 StrCat(tmp3,a4);

StrCat(tmp3,"^");

StrIToA(tmp1,setage);

StrCat(tmp3,tmp1);

StrCat(tmp3,"^");

//抓取活動因素

tmp4=CtlGetLabel(FarGetObjectPtr(SetActivePopTrigger));

StrCat(tmp3,tmp4);

GetTextHandle(FrmGetActiveForm(),SetPhoneField,a5); //抓取電話 StrCat(tmp3,a5);

StrCat(tmp3,"^");

GetTextHandle(FrmGetActiveForm(),SetAddressField,a6); //抓取地址 StrCat(tmp3,a6);

StrCat(tmp3,"^");

StrCopy(personal_set,tmp3);

B.1.1.5.2 設 定 疾 病 狀 況 並 存 檔

當使用者勾選好自己的疾病狀況並按下存檔鈕後,程式便會先去判 斷使用者的輸入是否完全並且無誤,若檢查通過後,便將之寫入「個 人基本資料庫」並顯示存檔成功。

if(CtlGetValue(FarGetObjectPtr(SickSick8Checkbox))==1) //首先檢查其他 項目的Checkbox 是否有被勾選 {

GetTextHandle(FrmGetActiveForm(),SickOtherField,tmp); //若被勾選 了便去抓取其他項目的敘述欄位裡的資料 if(StrLen(tmp)==0) //若欄位是空白的,即使用者未填資料,便顯

{ 示視窗提醒使用者輸入不完全 FrmCustomAlert(1400, NULL, NULL, NULL);

}

else

if(CtlGetValue(FarGetObjectPtr(SickGoodCheckbox))==0&&CtlGetValue(FarGet ObjectPtr(SickSick1Checkbox))==0&&CtlGetValue(FarGetObjectPtr(SickSick2C heckbox))==0&&CtlGetValue(FarGetObjectPtr(SickSick3Checkbox))==0&&Ctl GetValue(FarGetObjectPtr(SickSick4Checkbox))==0&&CtlGetValue(FarGetObje ctPtr(SickSick5Checkbox))==0&&CtlGetValue(FarGetObjectPtr(SickSick6Check box))==0&&CtlGetValue(FarGetObjectPtr(SickSick7Checkbox))==0&&CtlGetV alue(FarGetObjectPtr(SickSick8Checkbox))==0&&CtlGetValue(FarGetObjectPtr(

SickSick9Checkbox))==0&&CtlGetValue(FarGetObjectPtr(SickSick10Checkbox)

)==0) //這邊是檢查若使用者所有 CheckBox 都沒勾選,則顯示視窗 { 告知使用者輸入不完全

FrmCustomAlert(1400, NULL, NULL, NULL);

}

StrCopy(p.info,personal_set);

CusWrite2 = DmOpenDatabase(0, DmFindDatabase(0, "Cus"), dmModeReadWrite);

if(if_empty==0) //檢查 Cus 資料庫,若是空的便直接寫入 {

FarNewRecord(CusWrite2,&p);

}

else if(if_empty==1) //若已有一筆資料存在,便將原本資料覆蓋掉 {

FarRemoveRecord(CusWrite2,0);

FarNewRecord(CusWrite2,&p);

}

DmCloseDatabase(CusWrite2);

FrmCustomAlert(1500, NULL, NULL, NULL); //顯示存檔成功視窗 FrmGotoForm(MainForm); //返回主畫面

}

B.2 健康日曆

B.2.1 健康日曆模組

B.2.1 健 康 日 曆 模 組

CalendarFormHandleEvent 處理 Calendar 表單所發生的 Event。

CalendarYearDraw 畫出萬年曆介面中年份的函式。

CalendarMonthDraw 畫出萬年曆介面中月份的函式。

FarCalendarDayDraw 呼叫 CalendarDayDraw 函式來畫出萬 年曆畫面中日期的函式。

CalendarDayDraw 畫出日期。

Check_record 用 來 檢 查 目 前 月 份 中 那 幾 天 已 經 資料記錄存在,並加以標記。

FarEraseNowMonth 呼 叫 EraseNowMonth 函 式 來 將 目 前選擇的月份機件反白。

EraseNowMonth 將目前選擇的月份機件反白。

FarEraseNowDays 呼 叫 EraseNowDays 來 將 目 前 在 螢

幕上所畫的日期號碼清除。

EraseNowDays 將目前在螢幕上所畫的日期號碼清 除。

DaysInMonth 決定目前使用者所選擇的月份應有天 數。

CheckDays

將這月中的每天的日期號碼放入 s 矩 陣中所對應到的位置,以便

CalendarDayDraw 函式在畫出日 期時讀取。

DrawFoodList 負責畫出顯示飲食紀錄清單的 List。

InitField 初始化輸入欄位。

DrawMenuList 劃出顯示可供選擇菜單之 List。

FoodNameClose 離開表單時將之前鎖定的記憶體釋放 掉。

NewrecordClose 離 開 表 單 時 將 之 前 鎖 定 的 記 憶 體 釋放掉。

SportrecordFormHandleEvent 負 責 處 理 Sportrecord 表單所發生 的事件。

DrawSportList 負責畫出顯示運動紀錄清單的 List。

SportrecordClose 離 開 表 單 時 將 之 前 鎖 定 的 記 憶 體 釋放掉。

BodyrecordFormHandleEvent 負 責 處 理 Bodyrecord 表 單 所 發 生 的事件。

LoadBodyrecord 將 資 料 庫 中 符 合 目 前 日 期 的 生 理 紀錄抓出並顯示在螢幕上。

CalculateFormHandleEvent 負責處理 Calculate 表單上所發生 的事件。

decide_day 將使用者所輸入的要做計算日期,

轉換成天數。

calc_sort

依 照 日 期 順 序 , 將 DayCal 資 料 庫 中符合日期條件的資料抓出,依序

放入 Index 矩陣中。

calc_draw 自 Index 中依序將資料讀出,將之 轉換,並畫出曲線圖。

DrawBitmap 畫出 Bitmap 圖。

FarDrawBitmap 呼叫 DrawBitmap 來畫出 Bitmap 圖 B.2.1.4 資 料 庫 說 明

資 料 庫 名 稱 儲 存 資 料 說 明

Dayily 用來存放使用者每日的飲食、運動

Dayily 用來存放使用者每日的飲食、運動

在文檔中 行動營養顧問 (頁 53-168)

相關文件