任務描述:用戶登錄與注冊是大多數軟件都擁有的一個模塊。請編寫一個控制台程序,實現用戶的登錄與注冊功能,並且用戶能夠修改自己信息。
【需求分析】由於本程序是一個演示程序,用戶的信息我們做簡化處理,僅包括:用戶名、密碼和EMAIL。
1.系統功能分析
分析一個系統或一個模塊,我們首先需要了解系統需要實現哪些功能,通常可采用用例圖來描述分析結果。對於本任務,用例圖為:
對於每個用例,可以使用用例描述表來詳細闡述用例內容。用戶登錄注冊模塊的三個用例描述表如下:
(1)登錄用例描述表
(2)修改個人信息用例:
(3)用戶注冊用例
2.識別類
通過用例圖知道了系統具有應具有哪些功能,接着需要從用例圖分析中識別出系統應該具有哪些主要的類。
1)很顯然,用戶模塊主要完成對用戶的管理,每個“用戶”是一個對象,應該是將“用戶“作為系統的一個類,
name:用戶名
password:用戶密碼
email:用戶郵箱
introduce():自我介紹,也就是在控制台下輸出用戶名和email
2)程序運行,需要顯示各種與用戶交互的信息,我們可以用一個“界面”對象來完成所有與用戶操作相關的交互過程,包括顯示主菜單,提示用戶輸入信息,顯示操作結果信息等。
mainUI():顯示主界面
modifyUI():顯示修改個人信息的界面
registerUI():顯示用戶注冊的界面
3)用戶在登錄時填寫登錄名、密碼,或者在注冊時填寫個人信息,或者在修改個人信息時填寫各項信息,然后將信息提交給一個專門負責處理用戶信息的對象(UserService對象),讓此對象完成用戶驗證、用戶注冊、用戶信息修改任務。此對象接受一個User對象作為參數,然后去訪問數據庫或文件,完成數據的讀寫操作。這跟實際生活的情況類似,我們進入某家公司或大樓,都需要提交自己的信息,然后由門衛或保安負責對我們的信息進行處理,最后告訴我們是能進去還是不能進去。我們這里設計的UserService對象也是這個思路。
login(User usr):登錄驗證方法,參數是User對象(也可以是用戶名和密碼),驗證通過返回true,否則返回false。
logout(String name):將指定用戶(用戶名為name)從登錄狀態置為非登錄狀態。本項目任務中簡單處理,直接輸出“退出登錄”一行提示信息即可。
register(User usr):將傳入的新用戶usr寫到數據文件中去。返回true表示增加成功,返回false表示失敗。
modifyInfo(User usr):修改用戶信息。修改用戶名為usr.name的用戶所有信息。返回true表示修改成功,返回false表示修改失敗。