🙊作者簡介:擁有多年開發工作經驗,分享技術代碼幫助學生學習,獨立完成自己的項目或者畢業設計。
- 代碼可以私聊博主獲取。🌹
- 贈送計算機畢業設計600個選題excel文件,幫助大學選題。
- 贈送開題報告模板,幫助書寫開題報告。
作者完整代碼目錄供你選擇:
- 《Springboot網站項目》400套
- 《ssm網站項目》800套
- 《小程序項目》300套
- 《App項目》500套
- 《python網站項目》600套
?感興趣大家可以點點關注收藏,后續更新更多項目資料。?
項目演示
?




摘 ?要
隨著我國經濟迅速發展,人們對手機的需求越來越大,各種手機軟件也都在被廣泛應用,但是對于手機進行數據信息管理,對于手機的各種軟件也是備受用戶的喜愛,家庭記賬本小程序被用戶普遍使用,為方便用戶能夠可以隨時進行家庭記賬本小程序的數據信息管理,特開發了基于家庭記賬本小程序的管理系統。
家庭記賬本小程序的設計主要是對系統所要實現的功能進行詳細考慮,確定所要實現的功能后進行界面的設計,在這中間還要考慮如何可以更好的將功能及頁面進行很好的結合,方便用戶可以很容易明了的找到自己所需要的信息,還有系統平臺后期的可操作性,通過對信息內容的詳細了解進行技術的開發。
家庭記賬本小程序的開發利用現有的成熟技術參考,以源代碼為模板,分析功能調整與家庭記賬本小程序管理的實際需求相結合,討論了基于家庭記賬本小程序管理的使用。?
關鍵詞:家庭記賬本小程序;JAVA
第一章 緒 論
1.1選題背景
互聯網是人類的基本需求,特別是在現代社會,個人壓力增大,社會運作節奏高,隨著互聯網的快速發展,用戶的需求也越來越高,用戶也將越來越多依靠互聯網而不是自己獲取信息,使得各種軟件程序的開發得到了應用。
近年來,隨著我國經濟的不斷發展,平臺的管理制度越來越多。每個家庭記賬本小程序也都將通過計算機進行整體智能化操作,對于家庭記賬本小程序功能所牽扯的數據都是通過用戶進行家庭記賬本小程序等相關的數據信息內容、并且可以進行管理員服務端;首頁、個人中心、用戶管理,消費詳情管理、收入詳情管理、系統管理,用戶客戶端;首頁、消費詳情、收入詳情、我的等功能可以通過系統進行分配,傳統的管理方式信息已經無法滿足用戶的需求。為此開發了本家庭記賬本小程序?,為用戶提供一個基于家庭記賬本小程序,同時方便管理員對用戶信息處理等詳細信息進行操作。該系統滿足了用戶對家庭記賬本小程序信息獲取的需求,并且信息可以及時、準確、有效地進行查看并且系統化、標準化和有效的工作。
1.2研究現狀
隨著社會的發展和科學技術的進步,互聯網技術越來越受歡迎。網絡傳播的生活方式逐漸受到廣大人民群眾的喜愛。越來越多的互聯網愛好者開始在互聯網上滿足他們的基本需求,同時逐漸進入各個用戶的生活起居。互聯網具有許多優點,例如便利性,速度,高效率和低成本。因此,類似于家庭記賬本小程序,滿足用戶工作繁忙的需求,不僅是方便用戶隨時查看信息的途徑,而且還能提高管理效率。
本文首先以家庭記賬本小程序過程的基本問題作為研究對象。在開發系統之前,我們對現有狀況進行了詳細的調查和分析。最后,我們利用計算機技術開發了一套完整合適的家庭記賬本小程序。該系統的實現主要優勢是:該系統主要采用計算機技術開發,它方便快捷;系統可以通過管理員界面查看用戶的所有信息管理。
家庭記賬本小程序管理系統軟件是一款方便、快捷、實用的信息服務查詢軟件。隨著智能網絡在全球市場的不斷普及以及各種智能平臺的使用,系統的開發與人們的日常需求相關,作為中國主流智能的技術開發系統,自然需要這樣的軟件來滿足更多用戶的需求和體驗。
1.3研究內容
家庭記賬本小程序的開發及實現,所需要的工作內容:
(1)首先是確定選題,確定好所要做的系統,并對系統的背景及現在面臨的一些問題等進行系統的初步確認。
(2)系統確認完成后,結合系統開發的需求進行確認系統開發所使用的技術,本家庭記賬本小程序的開發使用JAVA技術,數據庫進行平臺的搭建開發,確認好使用的技術進行技術分析,所使用的技術是否可以完成家庭記賬本小程序的實現。
(3)確定好系統使用的技術,進行在線確認系統所劃分的用戶角色,并且根據用戶角色劃分確定所要設計的功能模塊,對于家庭記賬本小程序系統的設計主要劃分別為管理員和用戶角色,并所使用的功能模塊也相應不同,但是系統的數據庫實現的內容是交互的,用戶可以隨時根據自己的需求進行家庭記賬本小程序,對于系統工作人員可以根據自己的分管內容進行在線信息的處理及操作,管理員獲取到所有用戶的詳細數據信息,并根據需求進行第一時間處理解決。
(4)系統的功能模塊確認完成后進行程序及界面的設計,設計完成后,并且通過測試來判斷程序是否完善,對于系統測試,需要不同的用戶進行不同的內容編輯及提交,及使用不同的測試方式找出程序中存在的漏洞,并對程序出現的漏洞問題進行在線解決處理,如果測試系統沒有任何問題時,可以將系統上傳進行正式操作使用。
2.1微信開發者工具
微信開發者工具現在已經被小程序開發團隊開發運行,目前微信開發者工具任然在不斷的完善中,在開發小程序時經常要不斷的更新。可以使用微信掃碼登陸開發者工具,開發者工具將使用這個微信帳號的信息進行小程序的開發和調試。
機型選擇:小程序以智能手機的屏幕尺寸為設計標準,進行切圖。
預覽界面:寫好視圖布局后點擊編譯,用來刷新視圖界面。
控制臺:方便調試打印輸出信息。
上傳代碼:上傳到騰訊服務器,提交審核必經步驟。上傳代碼時可以填寫版本號和備注信息。
資源文件:一般可以在資源文件進行對應項目的文件目錄的斷點調試。
顯示遠程調試:手機端和PC端開發工具聯調對用戶而言是非常實用的。
本地數據存儲:顯示的是本地存儲的數據。
視圖調試:標組件以子父層級結構呈現,方便調試。
微信限制在2M 以內的代碼體積;開發中一般不校驗合法域名信息;小程序后臺要做配置服務器域名。
以上就是在開發過程中微信開發者工具常用到的功能,微信開發者工具也在不斷的完善。
2.2小程序框架以及目錄結構介紹
2.3 JAVA技術
Java主要采用CORBA技術和安全模型,可以在互聯網應用的數據保護。它還提供了對EJB(Enterprise JavaBeans)的全面支持,java servlet API,java (java server pages),和XML技術。
JAVA語言功能:
面向對象:面向對象是Java編程語言的標志之一,是一種軟件開發方法。最重要的是將所有東西變成對象,然后以某種方式編程。編程時,代碼和數據寫在每個對象上。 面向對象編程方法的出現使得人們在編程過程中的設計思考和操作變得非常簡單,同時也提高了程序的安全性。
跨平臺:Java流行的一個關鍵特性是它的跨平臺特性,這使得用Java編程變得容易。您可以用Java編寫程序并在其他地方運行它,而無需在編譯后更改它。
垃圾回收機制:用來將那些在程序不操作時無用的對象所占用的內存空間釋放掉,C ++最被人厭惡的就是因為其不能將在編程的過程中所占用的內存空間進行及時的釋放,導致隨著編程時間的變長所占用的內存空間越來越多。對于一些編程高手而言,他們會在剛開始編程的時候配置一塊內存地址放在堆棧上,然后在不需要的時候會對其進行釋放,而一些新手和菜鳥在很多的時候會忘記刪除這個內存地址,從而導致程序在運行的過程中會變得十分的不穩定,最終有可能會導致程序崩潰。所以很多C ++的高手在編寫程序時往往都會將刪除后的指針的值設置為NULL,然后在刪除之前確定一個指針的值是否為NULL。
2.4 ?Mysql數據庫
數據庫是系統開發過程中不可或缺的一部分。 在WEB應用方面,MySQL AB開發了一個具有很大優勢的MySQL關系數據庫管理系統。 MySQL可以將數據存儲在不同的表中,這非常靈活,并且還可以提高系統在實際應用中的速度。 數據庫訪問最常用于標準SQL語言,MySQL用于SQL語言,因此它具有高度兼容性。數據庫的操作是必不可少的,包括對數據庫表的增加、刪除、修改、查詢等功能。現如今,數據庫可以分為關系型數據庫和非關系型數據庫,Mysql屬于關系性數據庫,Mysql數據庫是一款小型的關系型數據庫,它以其自身特點:體積小、速度快、成本低等,Mysql數據庫是目前最受歡迎的開源數據庫。
在WEB應用技術中, Mysql數據庫支持不同的操作系統平臺,雖然在不同平臺下的安裝和配置都不相同,但是差別也不是很大,Mysql在Windows平臺下兩種安裝方式,二進制版和免安裝版。安裝完Mysql數據庫之后,需要啟動服務進程,相應的客戶端就可以連接數據庫,客戶端可通過命令行或者圖形界面工具登錄數據庫。
2.5 SSM框架
當今流行的“SSM組合框架”是Spring + SpringMVC + MyBatis的縮寫,受到很多的追捧,“組合SSM框架”是強強聯手、各司其職、協調互補的團隊精神。web項目的框架,通常更簡單的數據源。Spring屬于一個輕量級的反轉控制框架(IoC),但它也是一個面向表面的容器(AOP)。SpringMVC常常用于控制器的分類工作模式,與模型對象分開,程序對象的作用與自動取款機進行處理。這種解耦治療使整個系統的個性化變得更加容易。MyBatis是一個良好的可持續性框架,支持普通SQL查詢,同時允許對存儲過程的高級映射進行數據的優化處理。大型Java Web應用程序的由于開發成本太高,開發后難以維護和開發過程中一些難以解決的問題,而采用“SSM組合框架”,它允許建立業務層次結構,并為這個問題提供良好的解決方案。
第三章 系統分析
3.1需求分析
任何一個項目在開發研究前,都需要對研發系統本身的需求做一個認真的分析,市場的調研是不可忽視的,從實際場景中確定使用人員的功能需求,從而明確目標,對整個系統的開發有一個更加準確的定位,在這個章節,需要對系統的性能分析,業務流程分析,和數據等進行分析,家庭記賬本小程序的整體界面簡單,功能完善。
需求的可行性是分析和討論發達的系統能達到什么樣的要求。開發的系統平臺是否符合之前的要求。只有在預先評估系統的開發中,才能在系統開發和實施之前完成需求。如果您不具備開發一個功能不合格的系統的可行性,那就是開發失敗。開發系統是否有用,可以完成之前討論過的需求,以下分析了家庭記賬本小程序的實際需求。
系統設計需要從用戶和管理員的實際需求開始,以了解他們需要實施哪些功能以及他們可以包括哪些管理工作。
考慮到家庭記賬本小程序系統設計的特點,應滿足幾個要求:
(1)它可以通過網絡開展家庭記賬本小程序信息管理工作,促進對家庭記賬本小程序信息管理。
(2)學習方法變得更加多樣化,管理更加標準化;
(3)它提供了一個免費的渠道,以確保數據的實時有效溝通。
3.2可行性分析
3.2.1技術可行性:技術背景?????
家庭記賬本小程序采用了JAVA技術,開發了功能完備、使用簡單的前端應用程序,并建立、維護了一個數據完整、安全、穩定性強的后臺數據庫系統。
系統使用JAVA技術和Mysql數據庫作為設計工具,可簡單易行地學習操作。用戶角色之間的相結合開發一套家庭記賬本小程序是值得嘗試的,數據完整性和許多品質為數據的功能分配和管理提供了依據。它也是數據庫安全平臺的重要組成部分,是提高和增強數據安全性的重要手段。此外,為了提供更平滑,更智能和更有效的基本控制方法,定義了同時構建對安全計算環境的支持所需的步驟,并幫助維護安全性。因為在這兩種開發工具中,功能強大且免費且界面良好,所以家庭記賬本小程序在技術方面是可行的。
3.2.2經濟可行性
桌面家庭記賬本小程序管理的開發是由開發者自己開發,不需要購買其他軟件或者端口之類的,而且在家庭記賬本小程序管理的開發之前所做的市場調研及其他的家庭記賬本小程序,都是沒有任何費用的,通過開發者自己的努力,所有的工作的都是自己親力親為,在碰到自己比較難以解決的問題,大多是通過同學和指導老師的幫助進行相關信息的解決,所以對于家庭記賬本小程序的開發在經濟上是完全可行的,沒有任何費用支出的。
使用JAVA技術是比較成熟的技術,所以家庭記賬本小程序的開發在經濟上是沒有問題的。
3.2.3操作可行性:?
可操作性主要是對家庭記賬本小程序系統設計完成后,用戶的使用體驗度,對于管理員可以通過系統隨時管理相關的數據信息,并且對于管理員、用戶二個權限角色,都可以簡單明了的進入到自己的系統界面,通過界面導航菜單可以簡單明了地操作功能模塊,方便用戶信息需求和數據信息,對于系統的操作,不需要專業人員都可以直接進行功能模塊的操作管理,所以在系統的可操作性是完全可以的。本系統的操作使用的也是界面窗口進行登錄,所以操作人員只要會簡單的電腦操作就完全可以的。
3.3性能分析
對于性能分析,與傳統的管理方式相比,傳統的管理方式是使用人工通過用紙和筆進行數據信息的統計和管理,并且這種方式對于存儲和查找某一數據信息都比較麻煩,隨著計算機網絡的到來,這種傳統的方法很難適應當下社會的發展,不僅降低人們的辦事效率,而且還需要很多的人力和物力,對于使用的時間和所要花費的費用都是比較高的,為了降低成本費用,提高用戶的工作效率,進行開發一套基于計算機和網絡技術的家庭記賬本小程序。
家庭記賬本小程序的開發設計時一個獨立的系統,以流行數據庫進行數據的存儲開發,主要是為了實現家庭記賬本小程序的用戶角色及相對應的功能模塊,讓家庭記賬本小程序的管理不會存在管理差異、低效率,而是跟傳統的管理信息恰好相反,家庭記賬本小程序的實現可以節約資源,并且對于業務的處理速度也提高,速度快、效率高,功能性強大。
3.4系統操作流程
3.4.1用戶登錄流程
圖3-1登錄操作流程圖
3.4.2信息添加流程
對于家庭記賬本小程序,需要隨時添加所需要的數據信息,對于用戶添加信息,需要根據添加界面,根據選框的內容進行填寫所要添加的數據信息,信息輸入完成后判斷數據信息是否符合要求,符合要求則添加完成,用戶所添加的信息不符合要求,則需要返回到第一步,重新輸入數據信息,再進行判斷操作,如圖3-2所示。
圖3-2 信息添加流程圖
3.4.3信息刪除流程
不管是哪個用戶角色進入到不通的系統操作界面,都可以進行不同的信息內容的操作功能,對用系統數據信息的刪除,用戶一旦將信息刪除,那么該刪除的數據信息將無法恢復,所以用戶在對數據刪除事,一定判斷刪除的內容是否是確定要刪除的,確定無誤后選擇確定刪除操作,如圖3-3所示。
圖3-3?信息刪除流程圖
第四章 系統設計與實現
4.1系統架構設計
家庭記賬本小程序的系統項目的概述設計分析,主要內容有學習平臺的具體分析,進行數據庫的是設計,數據采用mysql數據庫,并且對于系統的設計采用比較人性化的操作設計,對于系統出現的錯誤信息可以及時做出處理及反饋。
基于家庭記賬本小程序的設計基于現有的安卓手機上運行,可以實現管理員服務端;首頁、個人中心、用戶管理,消費詳情管理、收入詳情管理、系統管理等功能。方便用戶客戶端;首頁、消費詳情、收入詳情、我的等詳細的了解及統計分析。根據系統功能需求建立的模塊關系圖如下圖:
圖4-1管理員功能模塊圖
圖4-2用戶功能模塊圖
4.2開發流程設計
家庭記賬本小程序的開發對管理模塊和系統使用的數據庫進行分析,編寫代開發,規劃和操作是構建信息管理應用程序的必要三步曲,它決定了系統是否能夠真正實現預設功能以及是否可以在成功設計后實施。在開發過程中,每個階段必須嚴格按照線性順序進行開發,并且在相應階段生成的每個工作都可以通過技術進行驗證和檢查。確保一個階段完成后是正確的,不會造成下一階段拖拽現象,使系統完成設計功能后得到保證。
從家庭記賬本小程序的成功開發經驗來看,上述方法效果最為明顯,最大程度地降低了系統開發的復雜性。如圖4-3所示。
圖4-3開發系統流程圖
4.3數據庫設計
數據庫是信息系統的基礎和核心。數據庫設計的好壞直接影響到信息系統開發的成敗。創建數據庫表首先確定實體的屬性和實體之間的關系。根據關系創建一個數據表。
4.3.1實體ER圖
數據庫是整個軟件編程中最重要的一個步驟,對于數據庫問題主要是判定數據庫的數量和結構公式的創建。展示系統使用的是Mysql進行對數據庫進行管理,進行保證數據的安全性、穩定性等。
概念模型的設計是為了抽象真實世界的信息,并對信息世界進行建模。它是數據庫設計的強大工具。數據庫概念模型設計可以通過E-R圖描述現實世界的概念模型。系統的E-R圖顯示了系統中實體之間的鏈接。而且Mysql數據庫是自我保護能力比較強的數據庫,下圖主要是對數據庫實體的E-R圖:
(1)??用戶管理E-R圖,如圖4-4所示:
圖4-4?用戶管理實體屬性圖
?(2)收入詳情管理E-R圖如圖4-5所示:
圖4-5收入詳情管理實體圖
這些功能可以充分滿足家庭記賬本小程序的需求。此系統功能較為全面如下圖系統功能結構如圖4-6所示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
圖4-6系統功能結構圖
4.3.2數據表
我們可以根據數據結構的詳細分析要求,我們根據輸入和輸出數據量的要求進行分析,確定什么表表,結構之間的關系,我們可以驗證,調整和完善,查詢和瀏覽過程,可以實現數據庫,以使用戶對數據和功能有更多要求。
基于系統使用的數據庫管理系統的特點,對數據庫的概念模型進行了轉換和構建。但是,這個系統只需要充分考慮家庭記賬本小程序的功能,而且組織比較清晰。
表名:shouruxiangqing
功能:收入詳情
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 標題 | ||
gongzishouru | longtext | 4294967295 | 工資收入 | ||
jiangjinshouru | bigint | 獎金收入 | |||
qita | bigint | 其他 | |||
zongshouru | varchar | 200 | 總收入 | ||
yonghuzhanghao | varchar | 200 | 用戶賬號 | ||
jiaose | varchar | 200 | 角色 | ||
dengjishijian | varchar | 200 | 登記時間 | ||
beizhu | varchar | 200 | 備注 | ||
fengmian | varchar | 200 | 封面 |
表名:config
功能:配置文件
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
name | varchar | 100 | 配置參數名稱 | ||
value | varchar | 100 | 配置參數值 |
表名:xiaofeixiangqing
功能:消費詳情
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 標題 | ||
shiwuxiaofei | varchar | 200 | 食物消費 | ||
gouwuxiaofei | varchar | 200 | 購物消費 | ||
jiaotongxiaofei | varchar | 200 | 交通消費 | ||
xuexixiaofei | longtext | 4294967295 | 學習消費 | ||
qitaxiaofei | 其他消費 | ||||
zongxiaofei | varchar | 200 | 總消費 | ||
yonghuzhanghao | varchar | 200 | 用戶賬號 | ||
jiaose | varchar | 200 | 角色 | ||
dengjishijian | varchar | 200 | 登記時間 | ||
fengmian | varchar | 200 | 封面 | ||
beizhu | varchar | 200 | 備注 |
表名:yonghu
功能:用戶
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
yonghuzhanghao | varchar | 200 | 用戶賬號 | ||
mima | date | 密碼 | |||
xingbie | longtext | 4294967295 | 性別 | ||
nianling | longtext | 4294967295 | 年齡 | ||
lianxidianhua | varchar | 200 | 聯系電話 | ||
dianziyouxiang | varchar | 200 | 電子郵箱 |
表名:users
功能:用戶表
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
username | varchar | 100 | 用戶名 | ||
password | varchar | 100 | 密碼 | ||
role | varchar | 100 | 角色 | 管理員 | |
addtime | timestamp | 新增時間 | CURRENT_TIMESTAMP |
表名:token
功能:token表
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
id | bigint | 主鍵 | ??主鍵 | ||
userid | bigint | 用戶id | |||
username | varchar | 100 | 用戶名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密碼 | ||
addtime | timestamp | 新增時間 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 過期時間 | CURRENT_TIMESTAMP |
第五章 系統實現
5.1用戶客戶端功能實現
用戶注冊通過注冊窗口,進行在線填寫自己的用戶賬號、密碼、聯系電話、電子郵箱等,信息編輯完成后核對信息無誤后進行選擇注冊,系統核對用戶所輸入的賬號信息是否準確,核對信息準確無誤后系統進入到操作界面。
用戶通過登錄進入到系統操作界面后,可以根據需求對首頁、消費詳情、收入詳情、我的等模塊進行管理維護操作。
如圖5-1所示。
圖5-1用戶注冊界面圖
用戶登錄通過賬號、密碼行頁面,進入到家庭記賬本小程序主界面,進入到操作界面,進行相對應操作,如圖5-2所示。
圖5-2用戶登錄界面圖
用戶在首頁頁面可以填寫首頁、消費詳情、收入詳情、我的等信息,進行提交操作,如圖5-3所示。
圖5-3首頁界面圖
用戶進入新聞資訊頁面可以填寫標題、內容等信息,進行查看操作,如圖5-4所示。
圖5-4新聞資訊界面圖
用戶進入消費詳情頁面可以填寫標題、食物消費、購物消費、交通消費、學習消費、其他消費、總消費、用戶賬號、角色、登記時間、封面等信息,進行提交操作,如圖5-5-所示。
圖5-5消費詳情界面圖
用戶進入收入詳情頁面可以填寫標題、工資收入、獎金收入、其他、總收入、用戶賬號、角色、登記時間、封面等信息,進行提交操作,如圖5-6-所示。
圖5-6收入詳情界面圖
用戶進入我的頁面可以填寫消費詳情、收入詳情等信息,進行提交操作,如圖5-7-所示。
圖5-7我的界面圖
5.2?管理員服務端功能實現
管理員通過家庭記賬本小程序進行確認,管理員進入到家庭記賬本小程序主界面,管理員進入到操作界面,通過登錄窗口進行在線填寫自己的用戶名和密碼、角色進行登錄,登錄成功后進入到系統操作界面進行相應信息的獲取,如圖5-8所示。
圖5-8管理員登錄主界面圖
管理員進入到界面,通過界面的任務大廳,登錄成功后進入到系統可以進行查看首頁、個人中心、用戶管理,消費詳情管理、收入詳情管理、系統管理等功能模塊,進行相對應操作,如圖5-9所示。
圖5-9管理員功能界面圖
管理員點擊個人信息進入頁面可以填寫用戶名等信息,進行詳情、修改、刪除操作,如圖5-10示。
管理員進入用戶管理界面,通過界面的任務大廳,登錄成功后進入到系統可以進行查看用戶賬號、密碼、性別、年齡、聯系電話、電子郵箱等信息,進行相對應操作,如圖5-11所示。
圖5-12用戶管理界面圖
管理員進入到消費詳情管理界面,通過界面的任務大廳,登錄成功后進入到系統可以查看標題、食物消費、購物消費、交通消費、學習消費、其他消費、總消費、用戶賬號、角色、登記時間、封面等信息,進行相對應操作,如圖5-13所示。
圖5-13消費詳情管理界面圖
管理員進入到收入詳情管理界面,通過界面的任務大廳,登錄成功后進入到系統可以查看標題、工資收入、獎金收入、其他、總收入、用戶賬號、角色、登記時間、封面等信息,進行相對應操作,如圖5-14所示。
圖5-14收入詳情管理界面圖
輪播圖;該頁面為輪播圖管理界面。管理員可以在此頁面進行首頁輪播圖的管理,通過新建操作可在輪播圖中加入新的圖片,還可以對以上傳的圖片進行修改操作,以及圖片的刪除操作,如圖5-15所示。
圖5-15輪播圖管理界面圖
管理員進入系統公告界面,通過界面的任務大廳,登錄成功后進入到系統可以查看標題、圖片等信息,進行相對應操作,如圖5-16所示。
圖5-16系統公告界面圖
第六章 ?系統的測試
6.1 測試目的
程序設計不能保證沒有錯誤,這是一個開發過程,在錯誤或錯誤的過程中難以避免,這是不可避免的,但我們不能使這些錯誤始終存在于系統中,錯誤可能會造成無法估量的后果 如系統崩潰,安全信息,系統無法正常啟動,導致安裝用戶手機屏幕等,為了避免這些問題,我們需要測試程序,并發現這些問題,并糾正它們 ,并使系統更長時間穩定成熟,本章的作用是發現這些問題,并對其進行修改,雖然耗時費力,但長期非常重要和必要 系統的開發。
軟件測試與開發過程是一樣的,都必須按照軟件工程的正規原理進行,遵守管理學理論。不過,目前國內的軟件測試已經積累了大量經驗和方法,步驟相對成熟,軟件測試的效率也越來越高。
家庭記賬本小程序的實現,對于系統中功能模塊的實現及操作都必須通過測試進行來評判系統是否可以準確的實現。在家庭記賬本小程序正式上傳使用之前必須做的一步就是系統測試,對于測試發現的錯誤及時修改處理,保證系統準確無誤的供給用戶使用。
6.2?測試方案設計
6.2.1 測試策略
1、功能測試
從用戶的角度來看,測試時不了解新開發軟件的內部結構,因此可以將系統與黑匣子進行比較,盲目輸入后可以查看系統給出的反饋。這種測試屬于黑盒測試,在測試中如果輸入錯誤信息系統會報錯。
2、性能測試
測試軟件程序的整體狀況(稱為性能測試)通常使用自動化測試工具來檢測系統的整體功能,在負載測試和壓力測試之間進行分配,在某些情況下,將這兩種情況結合起來。雖然壓力測試可以檢測到系統可以提供的最高級別的服務,但負載測試可以測試系統如何響應增加的負載。
6.2.2 測試分析
測試評估系統質量的方法不局限于系統編碼和過程,應該與軟件設計工作和歷史需求分析密切相關。
軟件測試應遵循以下原則:
(1)軟件測試應盡快進行,整個測試部分應在軟件開發和設計的整個過程中進行。如發現錯誤,立即處理,將大大減少軟件開發的時間,并提高軟件的質量。
(2)在軟件的各種測試中,測試過程中使用的計劃、報告等應妥善處理和存儲。其主要目的是為了便于以后系統的維護。
(3)軟件測試整個過程中的聚類現象應優先考慮。
(4)對于軟件測試,我們應該盡量不去和自己設計的系統進行參考,而是要測試對方的程序,以確保軟件測試結果的客觀性和公平性。
(5)整個測試計劃嚴格按照軟件測試的具體實施細則進行。
(6)對整個測試結果進行綜合檢查,盡量避免重復錯誤。
本家庭記賬本小程序滿足用戶的要求和需求,本家庭記賬本小程序的使用能夠有效的提高用戶的使用率。
6.3?測試結果
測試后得到的性能和用例,系統具有足夠的正確性、可靠性、穩定性,并且可以對輸入數據進行準確的點擊操作處理和響應測試用戶的體驗也得到了很好的反饋和響應時間。合理的范圍,可以兼容所有主流瀏覽器,設計所需的效果。
結 ?論
在這個設計中,我花了大量的時間去理解系統開發中使用的知識,經過這段時間的努力工作最終完成了系統設計。通過這一階段的學習,我發現了自己的不足,充分掌握了必要的應用技能,進一步的學習使我充實了自己的知識基礎,完成了這個艱巨的任務。當遇到問題時,我很及時的尋求老師的幫助,通過專業的網站和論壇來解決,他們的幫助讓我一步一步的成功克服了困難的問題。系統設計過程不容易,你需要不斷充實自己,有勇氣克服困難。系統開發的一些功能還不完善,需要繼續改善后,通過用戶體驗來修改設計完美的系統,讓用戶得到更好的體驗,我覺得很高興,因為這是我第一次通過自己的努力實現這個系統,但絕不是我的最后一個,在未來我將努力實現更多的優秀的系統。
在一些編程語言的系統實現中,對詞匯表不太熟悉,導致了開發的困難,但是我通過了合適的字典軟件來解決這個大問題。由此,我學會了自己的英語缺陷。在那之后,我不斷地提高自己的英語知識,這樣我就不會有任何未來的工作和生活。畢業設計過程我感覺很深刻,從一開始就不熟悉開發技術,一步一步的使用,接觸到文獻和信息,不難理解,系統是一次又一次的實現,系統本身對于在線學習是有用的。我從這個設計中獲益良多,論文的編寫需要有自己的意愿去實現一點,學習生活中所有的問題的勇氣,學習的過程就是學習的過程。畢業設計,我學會了將理論知識應用于實踐。讓我知道該怎么做,我們必須認真對待。勇于克服困難,相信未來,我會做得更好。
參考文獻
[1]耿祥義,張躍平.《java 實用教程》. 清華大學出版社,2019年5月
[2]Brown等.《java 編程指南(第二版)》. 電子工業出版社 ,2019年3月
[3]BruceEckel.《Java編程思想》. 機械工業出版社,2019年10月
[4]孫一林,彭波.《Java數據庫編程實例》. 清華大學出版社,2018年8月
[5]FLANAGAN.《Java技術手冊》. 中國電力出版社,2017年6月
[6] David L.Anderson.Managing ?Information Systems.清華大學出版社,2018:16
[7]孫衛琴,李洪成.《Tomcat 與 Java Web 開發技術詳解》.電子工業出版社,2019年6月
[8]孫涌.《現代軟件工程》.北京希望電子出版社,2019年8月
[9](美)額爾曼.(美)威多姆.數據庫系統基礎教程.清華大學出版社,2019:5
[10]飛思科技產品研發中心.《java 應用開發詳解》.電子工業出版社,2019年9月
[11] 張曉東. MySOL數據庫應用系統與實例[M].北京:人民郵電出版社,2018:179
[12] 王家華.軟件工程[M],沈陽:東北大學出版社,2018:46.
致 ?謝
家庭記賬本小程序的完成,如何實現的更好,其中付出的努力是很大的,這段時光將會終身難忘。
家庭記賬本小程序的設計可以順利完成,首先,我要感謝我的指導老師,他在我遇到設計問題時及時幫助了我,并在我對設計感到困惑時給了我充分的指導。在他的幫助下,我可以完成高質量的畢業設計。在家庭記賬本小程序的設計和開發中,指導老師提出了許多實用的意見和建議,并為我提供了大量相關的研究資料,使我對設計有了更深入的了解。只有在老師的指導下,才能在畢業設計中取得成功。在此,我要向指導老師表示深深的謝意。
在此,我還要感謝我的同學們,他們為我的設計提供了許多參考意見,并與我討論了設計中的問題,從而使我的設計一步一步走向成熟。 ?
核心代碼展示
/*** 公告通知* 后端接口* @author * @email * @date 2021-03-09 11:33:59*/
@RestController
@RequestMapping("/news")
public class NewsController {@Autowiredprivate NewsService newsService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( NewsEntity news){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); return R.ok().put("data", newsService.selectListView(ew));}/*** 查詢*/@RequestMapping("/query")public R query(NewsEntity news){EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); NewsView newsView = newsService.selectView(ew);return R.ok("查詢公告通知成功").put("data", newsView);}/*** 后端詳情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 前端詳情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody NewsEntity news, HttpServletRequest request){//ValidatorUtils.validateEntity(news);newsService.updateById(news);//全部更新return R.ok();}/*** 刪除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){newsService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = newsService.selectCount(wrapper);return R.ok().put("count", count);}}