[SYSU實訓] Agenda

項目簡介:

開發一個基於命令行的議程管理系統。系統需提供用戶登錄,新用戶註冊,已註冊用戶登陸後用戶可以註銷(delete)當前用戶賬戶,查詢(query)用戶名單,也可以添加(add)、刪除(delete)、查詢(query)系統中記錄的會議安排等管理功能。

在這個案例中,利用面向對象程序的設計和實現技術,按用戶需求對整個程序框架進行設計和實現,並逐步完成基本和擴展功能。通過此項目掌握在Linux環境下進行代碼編寫、程序調試和測試的基本知識,讓學生初步瞭解面向對象編程的過程、初步瞭解三層架構UML圖的含義,加強C++編程能力等技能。

 

階段任務簡介:

階段一: 實現三層架構中的數據訪問層,根據UML類圖實現Date 類,User 類,Meeting 類,Storage類的代碼,管理並持久化實體數據(用Json存儲數據)

階段二:實現三層架構中的業務邏輯層和UI訪問層,編寫AgendaService,AgendaUI部分的代碼,根據需求,實現應用程序功能邏輯設計,根據UML設計,實現人機交互編程,使用Makefile 編譯出可執行的測試


部分類圖:





難點:


1.  lambda函數

與普通函數最大的區別是,除了可以使用參數以外,Lambda函數還可以通過捕獲列表訪問一些上下文中的數據。


(1)橋樑作用,兩邊傳參。定義在邏輯層,調用在數據層(傳參數給邏輯層),捕獲UI層傳來的數據



(2)假設你設計了一個地址簿的類。現在你要提供函數查詢這個地址簿,可能根據姓名查詢,可能根據地址查詢,還有可能兩者結合。所以你應該提供一個接口,能方便地讓用戶自定義自己的查詢方式(在邏輯層自定義方式)。在這裏可以使用lambda函數來實現這個功能。


比如:邏輯層:





2. 三層架構

傳送門






項目源碼:https://github.com/cajet/SYSU_Agenda



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章