阿摩線上測驗 登入

申論題資訊

試卷:104年 - 104年高等三級暨普通考普通_資訊處理#28869
科目:程式設計
年份:104年
排序:0

申論題內容

一、請舉例說明⑴輸入方式限制⑵數值資料檢查⑶執行時期例外處理⑷資料存取權限控 制等四種程式設計技巧,如何防止使用者輸入的資料,或程式執行過程產生的資料, 發生資料值錯誤、不合理現象、執行錯誤程式中斷、或未符合資料限制等狀況。 (20 分)

詳解 (共 2 筆)

詳解 提供者:moerstw
以下用C++概念去解說 (1)(2) 輸入方式通常是輸入英文或者數字,又或者字數限制,中文也有只是比較少數,都用字串處理即可。 舉例:輸入一串整數,且介於0~100之間 string input; //宣告字串 while (cin >> input != NULL) { // 輸入不為空字串 bool pass = true; // 只要沒通過就改為false for (int i = 0; i < sizeof(input); i++) { // 檢查是否有英文字母 if(input.at(i) < "0" || input.at(i) > "9") { cout << "超過範圍,請重新輸入" << endl; pass = false; break; } } if (pass == false) continue; // 沒過 重輸入 // 為一數字 簡查是否為0~100; if (atoi(input) < 0 || atoi(input) > 100) continue; //沒過 break; // 都過了 跳出回圈 } (3) 利用try 跟 catch 去預防error產生 try ( int a = divide / input; // 除以input } catch { cout << "input 為 0" << endl; } (4) 權限控制要有一個數字記錄身份,例如管理者是0(最大),使用者是1,訪客是2。 如此只有一開始用if 去決定此登入者是否有權限讀這筆資料。
詳解 提供者:hchungw
這四種程式設計技巧是開發安全、穩定且可靠的應用程式的重要基礎。以下分別對這些技巧進行說明,並提供如何使用它們來防止數據相關錯誤的例子。
1. 輸入方式限制
說明: 透過限制使用者可以輸入的數據類型或格式來防止無效或惡意數據的輸入。
例子: 如果一個網頁表單要求用戶輸入生日,那麼表單應只接受符合特定日期格式(例如 YYYY-MM-DD)的輸入。前端可以使用 HTML5 的 <input type="date"> 來實現,後端在接收數據時也應該再次驗證數據的格式。
2. 數值資料檢查
說明: 在處理數據之前,檢查它是否在合理的範圍內或是否符合預期的條件。
例子: 如果一個函數用於計算一個人的年齡,那麼這個函數應該確保傳入的年份是合理的(比如,不能是未來的年份,也不能是太遠的過去,如1800年之前)。
3. 執行時期例外處理
說明: 在程式碼中加入對可能出現的錯誤情況的處理,以避免程式因為未處理的錯誤而中斷執行。
例子: 在從資料庫讀取資料時,可能會遇到資料庫連接失敗的情況。這時,應該透過 try-catch 語句來捕捉這個例外,並提供一個友好的錯誤訊息給用戶,同時記錄錯誤細節以供後續分析。
4. 資料存取權限控制
說明: 確保只有有權限的用戶才能訪問、修改或刪除敏感數據。
例子: 在一個部落格系統中,只有文章的作者或者有管理員權限的用戶才能編輯或刪除該文章。這可以透過在後端進行身份驗證和授權檢查來實現,例如,檢查當前登錄的用戶是否有修改特定文章的權限。
透過這些技巧的應用,開發者可以在很大程度上減少由於無效輸入或不當數據處理引起的錯誤,提升應用程序的穩定性和安全性。