賀竑睿,周 兵,林 宏
(貴州師范學院 數學與大數據學院,貴州 貴陽 550018)
隨著互聯網、云計算的高速發展,記錄筆記并且保存筆記的問題已經成為人們學習與生活的剛需。紙質筆記無法隨身攜帶,導致人們經常忘記筆記內容。開發一套基于云端、隨時記錄和讀取的云筆記系統,顯得十分重要。云筆記作為一個新興的互聯網業務,盡管當前用戶數量還比較少,但是其便捷、隨時的優點使得其擁有巨大的市場潛力。隨著人們對工作效率的要求的不斷提升,云筆記業務將成為人們工作學習中的重要組成部分[1-6]。
系統的主要功能有:注冊用戶、創建筆記、查看筆記、修改筆記、刪除筆記。
云筆記平臺的使用者有普通用戶和平臺管理員。平臺首先需要注冊用戶基礎信息,以便登錄平臺時驗證。用戶可以登錄平臺,也可以退出平臺。若用戶選擇保存筆記,則表明該筆記可以存儲在服務器中。平臺管理員應當定期審查筆記是否違規。待平臺管理員審查完畢之后,違規的筆記被平臺管理員刪除。另外,用戶可以申訴筆記,由管理員二次審查,如果沒有違規,筆記恢復,用戶最終決定是否保留。
系統主要有兩類角色:平臺管理員、普通用戶。平臺管理員使用的用例有用戶信息管理、用戶筆記管理。業主使用的主要用例有注冊、登錄、保存筆記、修改筆記、刪除筆記,如圖1所示。

圖1 系統用例
用戶通過發出增刪查改的請求,對應的處理過程會通過與數據庫的存儲文件的交互完成對應的操作。管理員會對用戶的筆記進行審查,當然用戶可以申訴自己被判定違規的筆記。數據流如圖2所示。

圖2 數據流
本系統的總體功能主要是為了用戶可以快速地、實時地將所需要的筆記保存,并且便于查看。本設計確保用戶擁有個人私有空間,并且保證用戶信息的安全。每個環節的操作更加簡明。用戶在使用的過程中有良好的用戶使用體驗[7]。
用戶登錄系統后進入筆記管理子系統。如果用戶之前上傳過筆記,該系統會根據之前上傳的所有筆記的標題排列在標題欄中,方便用戶查看。用戶可以查看之前存儲的筆記,并且可以對其進行在線編輯[8],并管理筆記。也可以對之前保存的筆記進行刪除操作,刪除用戶不需要的筆記。用戶也可以在線新建筆記,筆記待用戶編輯完成后,點擊保存按鈕即可對新建的筆記進行保存。
系統支持同一個賬號多個操作系統同時登錄。刷新按鈕可以刷新筆記最后修改過的內容。
管理員可以進入此系統,對普通的用戶上傳的筆記進行管理,通過在線瀏覽用戶的筆記來判斷用戶是否違禁,如果有違禁的筆記可以對其進行刪除[9]。用戶遺忘密碼時,可以聯系管理員修改密碼。
Qt是一個能支持多種操作系統的開發框架,它使用C++語言開發,為使用者提供了C++圖形用戶界面庫。Qt通過對所支持的操作系統平臺的底層API的功能抽象統一,Qt使用了統一編程接口,忽略了各個操作系統的差異,但也為不同的操作系統提供特定的編程接口[10]。Qt的應用程序編程接口是直接建立在系統底層API之上,確保了程序的運行效率,這是其他庫所不及的。Qt可以做到不修改代碼,即可實現跨平臺應用的開發。用一套代碼在不同平臺編譯后,即可生成直接在該平臺運行的軟件。
筆記模塊包含系統的主要功能:創建筆記、筆記重命名、刪除筆記、修改筆記,如圖3所示。

圖3 用戶操作界面
創建筆記本:用戶輸入筆記名稱,在右側的編輯欄就可以書寫筆記的內容,點擊保存按鈕后,筆記將會以文件的形式保存于服務器端。
筆記重命名:查看筆記后直接對原標題進行修改即可對標題進行重命名。服務端會搜索到存儲筆記標題的booklist.txt文件,將其中需要修改的標題修改成修改過的標題,再將book文件夾中原來的標題名文件重命名為新的標題名字。
刪除筆記:先判斷用戶文件夾中的book文件夾中是否有該文章的標題,執行刪除語句,先將該筆記的內容清空,再將該筆記的標題從文本中去除,成功刪除筆記本。
本項目采用文件的方式存儲數據,文件存儲的優勢是移植數據方便,如圖4所示。

圖4 存儲實現
文件夾是存放整個系統數據的文件夾,用戶文件夾是用戶名命名的文件夾,booklist.txt文件是存入該用戶的筆記標題。book文件夾存放用戶筆記。noteserver user.txt文件存放所有用戶信息。
本文根據測試目的截取了PTGM模型測試環節的部分內容,通過測試力求客戶端軟件能夠實現多用戶同時登錄的基本功能。
在服務器端使用預先準備的測試程序,用3臺不同操作系統的PC機同時登錄,3臺PC機的系統分別為Windows10,MacOS Monterey12.2,Ubuntu 20.04,對登錄用戶、編寫筆記并保存等功能進行測試。每當用戶進行登錄、查看筆記、保存操作時,服務端的測試程序會按照操作順序在測試程序Debug輸出欄處打印出客戶端操作,以便確定每個用戶的操作是否被服務器正確接收并且執行相應的操作。
從上面對系統的功能測試結果表明,經過測試,每個功能都能被服務器正常讀取,操作都被處理,筆記的保存正常,并且運行速度也達到了預期。
該系統在Qt框架下基于C++語言,可部署在私有云平臺上,私密性更佳。云筆記項目可以在Windows,Linux,MacOS等主流平臺直接編譯和運行,達到了“一處編寫,多處編譯和運行”的目標,為進一步開發跨平臺的應用打下了堅實基礎。