【網站項目】314學生二手書籍交易平臺

🙊作者簡介:擁有多年開發工作經驗,分享技術代碼幫助學生學習,獨立完成自己的項目或者畢業設計。

  1. 代碼可以私聊博主獲取。🌹
  2. 贈送計算機畢業設計600個選題excel文件,幫助大學選題。
  3. 贈送開題報告模板,幫助書寫開題報告。

作者完整代碼目錄供你選擇:

  1. 《Springboot網站項目》400套
  2. 《ssm網站項目》800套
  3. 《小程序項目》300套
  4. 《App項目》500套
  5. 《python網站項目》600套

?感興趣大家可以點點關注收藏,后續更新更多項目資料。?

項目演示(需要演示視頻可以私信我)

摘要

隨著信息互聯網購物的飛速發展,一般企業都去創建屬于自己的管理系統。本文介紹了學生二手書籍交易平臺的開發全過程。通過分析企業對于學生二手書籍交易平臺的需求,創建了一個計算機管理學生二手書籍交易平臺的方案。文章介紹了學生二手書籍交易平臺的系統分析部分,包括可行性分析等,系統設計部分主要介紹了系統功能設計和數據庫設計。

本學生二手書籍交易平臺功能有個人中心,用戶管理,賣家管理,書籍分類管理,書籍信息管理,留言板管理,管理員管理,系統管理等。因而具有一定的實用性。

本站是一個B/S模式系統,采用SSM框架作為開發技術,MYSQL數據庫設計開發,充分保證系統的穩定性。系統具有界面清晰、操作簡單,功能齊全的特點,使得學生二手書籍交易平臺管理工作系統化、規范化。

關鍵詞:學生二手書籍交易平臺;SSM框架;MYSQL數據庫

1系統概述

1.1 研究背景

如今互聯網高速發展,網絡遍布全球,通過互聯網發布的消息能快而方便的傳播到世界每個角落,并且互聯網上能傳播的信息也很廣,比如文字、圖片、聲音、視頻等。從而,這種種好處使得互聯網成了信息傳播的主要途徑,社會上各種各樣的信息都想盡辦法通過互聯網進行傳播,互聯網對社會產生的影響越來越大。

隨著計算機技術的發展以及計算機網絡的逐漸普及,互聯網成為人們查找信息的重要場所,二十一世紀是信息的時代,所以信息的交換和信息流通顯得特別重要。因此,開發合適的學生二手書籍交易平臺成為企業必然要走的一步棋。開發合適的學生二手書籍交易平臺,可以方便管理人員對學生二手書籍交易平臺的管理,提高信息管理工作效率及查詢效率,有利于更好的為員工用戶提供服務。

1.2研究目的

隨著互聯網技術的快速發展,網絡時代的到來,網絡信息也將會改變當今社會。各行各業在日常企業經營管理等方面也在慢慢的向規范化和網絡化趨勢匯合。學生二手書籍交易平臺的信息化程度體現在將互聯網與信息技術應用于經營與管理,以現代化工具代替傳統手工作業。無疑,使用網絡信息化管理使信息管理更先進、更高效、更科學,信息交流更迅速。

企業如果還用之前的人工記賬形式的管理,已經很落伍了,這樣會導致了效率低下。而且,時間一長的話,積累下來的數據信息不容易保存,對于查詢、更新還有維護會帶來不少問題。對于數據交接也存在很大的隱患。如果采用電子化的存儲方式就會帶來很大的改善,而且給員工用戶的查詢帶來了很大便利,因此設計一個學生二手書籍交易平臺刻不容緩,能夠提高企業在信息技術方面的展示水平。

1.3系統設計思想

一個成功的網站應明確建設網站的目的,確定網站的功能,確定網站規模、投入費用,進行必要的市場分析等。只有詳細的策劃,才能避免在網站建設中出現的很多問題,使網站建設能順利進行。同時,一個大型的計算機網站系統,必須有一個正確的設計指導思想,通過合理選擇數據結構、網絡結構、操作系統以及開發環境,構成一個完善的網絡體系結構,才能充分發揮計算機信息管理的優勢。根據現實生活中網民的實際需求,本系統的設計按照下述原則進行。

  1. 有效性:實際上這里的有效性包括兩個方面的意思:有用性和可用性。有用性是指站點潛在的能滿足員工用戶需求的功能,而可用性是指能夠通過站點的操作實現特定的目標。可以看出一個站點如果不能恰當運行或設計得非常槽糕就不是一個好站點。可用站點的效益應該非常高,并易于學習,在實現員工用戶目標時令人滿意而不出錯。
  2. 高可靠性:一個實用的網站同時必須是可靠的,本設計通過合理而先進的網絡設計以及軟、硬件的優化選型,可保證網站的可靠性與容錯性。
  3. 高安全性:在設計中,將充分利用網絡軟、硬件提供的各種安全措施,既可以保證員工用戶共享資源,充分考慮系統及數據資源的容災、備份、恢復的要求。為系統提供強大的數據庫備份工具。可以保證關鍵數據的安全性。操作權限級,設置不同的角色確保每一步的操作權限,可以由管理員進行設置。
  4. 先進性:采用目前國際上最先進的開發技術,使用JSP開發技術,MYSQL作為網站后臺數據庫。采用這些技術降低了以后的系統運營成本,提高了系統的穩定性和易維護性。
  5. 采用標準技術:本網站的所有設計遵循國際上現行的標準進行,以提高系統的開放性。
  6. 外觀和技術平衡:系統采用Web風格的界面設計,界面友好、美觀,使用方便,易學易用。網站設計的關鍵問題是外觀和技術的平衡。外現不好的網站令人厭煩,站點可以運行很好,但卻不能帶動員工用戶積極性,相反,如果外觀非常有表現力,但技術有限,員工用戶則會感到非常失望。在外觀與技術之間需要確定一個清晰而連續的關系,即外觀與站點的意圖相關,對不同類型的網站處理方法不同。

2相關技術

2.1?MYSQL數據庫

MySQL是一個真正的多員工用戶、多線程SQL數據庫服務器。 是基于SQL的客戶/服務器模式的關系數據庫管理系統,它的有點有有功能強大、使用簡單、管理方便、安全可靠性高、運行速度快、多線程、跨平臺性、完全網絡化、穩定性等,非常適用于Web站點或者其他應用軟件的數據庫后端的開發工作。此外,員工用戶可利用許多語言編寫訪問MySQL數據庫的程序。作為開放源代碼運動的產物之一,MySQL關系數據庫管理系統越來越受到人們的青睞,應用范圍也越來越廣。速度和易用性使MySQL特別適用于Web站點或應用軟件的數據庫后端的開發工作。

MYSQL數據庫具有以下特點:

1、C和C ++中使用和測試,以確保源代碼的編譯器的便攜性和靈活性。

2、支持多種操作系統AIX的,FreeBSD下,HP-UX,Linux和Mac OS中,Novell公司的Netware,OpenBSD系統,OS/2裹時,Solaris,Windows等。

3、提供了用于不同的編程語言的API。編程語言,如C,, C ++,Python和Java的,的Perl,PHP,埃菲爾鐵塔,Ruby和Tcl的。

4、以及使用的CPU資源來支持多線程。

5、算法優化查詢SQL,切實提高搜索速度。

6、網絡上的客戶端和服務器可以用來編程任何獨立的編程環境,也有中國,GB2312,BIG5,日文寫作,一般基金,用于支持多國語言,并且可以嵌入在數據表和其他軟件shift_jis訪問柱可以用作的名稱。

7、TCP / IP,ODBC和JDBC數據庫,并提供連接到其他。

8、管理工具的管理,控制和優化數據庫的操作。

9、可以數以千萬計的記錄在一個大的數據庫。

2.2?B/S結構

B/S架構是一種基于互聯網系統的軟件系統開發架構,是現如今在軟件系統開發中采用非常大量的一種軟件系統結構。現如今B/S架構已經被大量使用,打破了C/S結構的結構,給基于網絡結構的軟件系統提供了良好的支持。B/S架構伴隨著計算機網絡技術發展而逐步的發展和更新。伴隨著互聯網的進一步發展,就要求大多數的管理系統要求不僅僅可以在一臺電腦上使用,同時可以在接入互聯網的其他電腦也可以使用對系統進行操作和使用。在這樣的背景下基于B/S架構的軟件系統設計方法得到了越來越大量的使用,基礎部分也在不斷的更新。

B/S架構是利用操作系統中的瀏覽器來進行使用的,不是一種窗體軟件系統,不需要在使用系統的電腦上進行安裝。B/S架構的運行方式是在遠程的服務器上把開發的軟件系統部署在遠程的服務器上,在部署好軟件系統之后就可以實現在任何接入互聯網的電腦上訪問部署好的軟件系統。B/S架構給使用管理系統的員工用戶帶來極大的便利。

在三層體系結構的B/S(Browser/Server,瀏覽器/服務器結構)系統中,員工用戶可以通過瀏覽器向分布在網絡上的眾多服務器發出請求。B/S系統極大地簡化了客戶機的工作量,客戶機上只需要安裝、配置少量的客戶端運行軟件即可,服務器將擔負大量的工作,對數據庫的訪問以及應用程序的執行都將由服務器來完成。

B/S架構的不斷成熟,主要使用WWW瀏覽器技術,結合多種瀏覽器腳本語言,用通用瀏覽器需要實現原本復雜的專有軟件來實現的強大功能,并節約了開發成本,是一種新的軟件架構。B/S系統包括:表示邏輯層,控制邏輯層,數據展現層,三層是相對獨立又相互關聯。

2.3?SSM框架簡介

SSM框架,是Spring+Spring MVC+MyBatis的縮寫,這個是繼SSH之后,目前比較主流的Java EE企業級框架,適用于搭建各種大型的企業級應用系統。

1.Spring簡介

Spring是一個開源框架,Spring是于2003年興起的一個輕量級的Java開發框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。

A.控制反轉(IOC)是什么呢?

IOC:控制反轉也叫依賴注入。利用了工廠模式將對象交給容器管理,你只需要在spring配置文件總配置相應的bean,以及設置相關的屬性,讓spring容器來生成類的實例對象以及管理對象。在spring容器啟動的時候,spring會把你在配置文件中配置的bean都初始化好,然后在你需要調用的時候,就把它已經初始化好的那些bean分配給你需要調用這些bean的類(假設這個類名是A),分配的方法就是調用A的setter方法來注入,而不需要你在A里面new這些bean了。

B.面向切面(AOP)又是什么呢?

首先,需要說明的一點,AOP只是Spring的特性,它就像OOP一樣是一種編程思想,并不是某一種技術,AOP可以說是對OOP的補充和完善。OOP引入封裝、繼承和多態性等概念來建立一種對象層次結構,用以模擬公共行為的一個集合。當我們需要為分散的對象引入公共行為的時候,OOP則顯得無能為力。也就是說,OOP允許你定義從上到下的關系,但并不適合定義從左到右的關系。例如日志功能。日志代碼往往水平地散布在所有對象層次中,而與它所散布到的對象的核心功能毫無關系。在OOP設計中,它導致了大量代碼的重復,而不利于各個模塊的重用。將程序中的交叉業務邏輯(比如安全,日志,事務等),封裝成一個切面,然后注入到目標對象(具體業務邏輯)中去。

實現AOP的技術,主要分為兩大類:一是采用動態代理技術,利用截取消息的方式,對該消息進行裝飾,以取代原有對象行為的執行;二是采用靜態織入的方式,引入特定的語法創建“方面”,從而使得編譯器可以在編譯期間織入有關“方面”的代碼。

2.Spring MVC簡介

Spring MVC屬于Spring Framework的后續產品,已經融合在Spring Web Flow里面,它原生支持的Spring特性,讓開發變得非常簡單規范。Spring MVC分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。

3.MyBatis簡介

MyBatis本是apache的一個開源項目iBatis,2010年這個項目由apache software foundation遷移到了google code,并且改名為MyBatis。MyBatis是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plain Old Java Objects,普通的Java對象)映射成數據庫中的記錄。可以這么理解,MyBatis是一個用來幫你管理數據增刪改查的框架。

3系統分析

3.1可行性分析

通過對本學生二手書籍交易平臺實行的目的初步調查和分析,提出可行性方案并對其一一進行論證。我們在這里主要從技術可行性、經濟可行性、操作可行性等方面進行分析。

3.1.1技術可行性

本學生二手書籍交易平臺采用JAVA作為開發語言,Spring Boot框架,是基于WEB平臺的B/S架構系統。

(1)Java提供了穩定的性能、優秀的升級性、更快速的開發、更簡便的管理、全新的語言以及服務。整個系統幫員工用戶做了大部分不重要的瑣碎的工作。

(2)基于B/S模式的系統的開發已發展日趨成熟。

(3)眾所周知,Java是面向對象的開發語言。程序開發員可以在Eclipse平臺上面方便的使用一些已知的解決方案。 ???

因此,學生二手書籍交易平臺在開發技術上具有很高可行性,且開發人員掌握了一定的開發技術,所以此系統的開發技術具有可行性。

3.1.2經濟可行性

本學生二手書籍交易平臺采用的軟件都是開源的,這樣能夠削減很多的精力和資源,降低開發成本。同時對計算機的配置要求也極低,即使是淘汰下來的計算機也能夠滿足需要,因此,本系統在經濟上是完全具有可行性的,所以在經濟上是十分可行的。

3.1.3操作可行性

本學生二手書籍交易平臺的界面簡單易操作,員工用戶只要平時有在用過電腦,都能進行訪問和操作。本系統具有易操作、易管理、交互性好的特點,在操作上是非常簡單的,因此在操作上具有很高的可行性。

綜上所述,此系統開發目標已明確,在技術、經濟和操作方面都具有很高的可行性,并且投入少、功能完善、管理方便,因此系統的開發是完全可行的。

3.2系統性能分析

3.2.1 系統安全性

此學生二手書籍交易平臺要嚴格控制管理權限,具體要求如下:

(1)要想對學生二手書籍交易平臺進行管理,首先要依靠員工用戶名和密碼在系統中登陸,無權限的員工用戶不可以通過任何方式登錄系統和對系統的任何信息和數據進行查看,這樣可以保證系統的安全可靠性和準確性。

(2)在具體實現中對不同的權限進行設定,不同權限的員工用戶在系統中登陸后,不可以越級操作。

3.2.2 數據完整性

(1)所有記錄信息要保持全面,信息記錄內容不可以是空。

(2)各種數據間相互聯系要保持正確。

(3)相同數據在不同記錄中要保持一致。

3.3系統界面分析

目前,界面設計已經成為對軟件質量進行評價的一條關鍵指標,一個好的員工用戶界面可以使員工用戶使用系統的信心和興趣增加,從而使工作效率提高,JSP技術是將JAVA語言作為腳本語言的,JSP網頁給整個服務器端的JAVA庫單元提供了一個接口用來服務HTTP的應用程序。創建動態頁面比較方便。客戶界面是指軟件系統與員工用戶交互的接口,往往涵蓋輸出、輸入、人機對話的界面格式等。

1.輸出設計

輸出是由電腦對輸入的基本信息進行解決,生成高質量的有效信息,并使之具有一定的格式,提供給管理者使用,這是輸出設計的主要責任和目標。

系統開發的過程與實施過程相反,并不是從輸入設計到輸出設計,而是從輸出設計到輸入設計。這是由于輸出表格與使用者直接相聯系,設計的目的應當是確保使用者可以很方便的使用輸出表格,并且可以將各部門的有用信息及時的反映出來。輸出設計的準繩是既要整體琢磨不同管理層的所有需要,又要簡潔,不要提供給員工用戶不需要的信息。

2.輸入設計

輸入數據的收集和錄入是比較麻煩的,需要非常多的人力和一定設備,而且經常出錯。一旦輸入系統的數據不正確,那么處理后的輸出就會擴大這些錯誤,因此輸入的數據的準確性對整個系統的性能起著決定性意義。

輸入設計有以下幾點原則:

1)輸入量應盡量保持在能夠滿足處理要求的最低限度。輸入量越少,錯誤率就會越少,數據的準備時間也越少。

2)應盡可能的使輸入的準備以及輸入的過程進行時比較方便,這樣使錯誤的發生率降低。

3)應盡量早檢查輸入數據(盡量接近原數據發生點),以便使錯誤更正比較及時。

4)輸入數據盡早地記錄成其處理所需的形式,以防止數據由一種介質轉移到另一種介質時需要轉錄而可能發生的錯誤。

3.4系統流程和邏輯

圖3-3登錄流程圖

圖3-4修改密碼流程圖

4系統概要設計

4.1概述

本系統采用B/S結構(Browser/Server,瀏覽器/服務器結構)和基于Web服務兩種模式,是一個適用于Internet環境下的模型結構。只要員工用戶能連上Internet,便可以在任何時間、任何地點使用。系統工作原理圖如圖4-1所示:

圖4-1系統工作原理圖

4.2系統結構

本系統是基于B/S架構的網站系統,設計的功能結構圖如下圖所示:

圖4-2功能結構圖

4.3.數據庫設計

4.3.1數據庫實體

概念設計的目標是設計出反映某個組織部門信息需求的數據庫系統概念模式,數據庫系統的概念模式獨立于數據庫系統的邏輯結構、獨立于數據庫管理系統(DBMS)、獨立于計算機系統。

概念模式的設計方法是在需求分析的基礎上,用概念數據模型(例如E-R模型)表示數據及數據之間的相互聯系,設計出反映員工用戶信息需求和處理需求的數據庫系統概念模式。概念設計的目標是準確描述應用領域的信息模式,支持員工用戶的各種應用,這樣既容易轉換為數據庫系統邏輯模式,又容易為員工用戶理解。數據庫系統概念模式是面向現實世界的數據模型,不能直接用于數據庫系統的實現。在此階段,員工用戶可以參與和評價數據庫系統的設計,從而有利于保證數據庫系統的設計與員工用戶的需求相吻合。在概念模式的設計中,E-R模型法是最常見的設計方法。本系統的E-R圖如下圖所示:

  1. 賣家信息的實體屬性圖如下:

圖4.12 賣家信息實體屬性圖

(2)留言板實體屬性圖如圖4.13所示:

圖4.13???留言板實體屬性圖

(3)書籍分類實體屬性圖如圖4.14所示:

圖4.14?書籍分類實體屬性圖

4.3.2數據庫設計表

學生二手書籍交易平臺需要后臺數據庫,下面介紹數據庫中的各個表的詳細信息:

表4.1 地址

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

addtime

timestamp

CURRENT_TIMESTAMP

創建時間

userid

bigint(20)

用戶id

address

varchar(200)

地址

name

varchar(200)

收貨人

phone

varchar(200)

電話

isdefault

varchar(200)

是否默認地址[是/否]

表4.2 購物車表

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

addtime

timestamp

CURRENT_TIMESTAMP

創建時間

tablename

varchar(200)

shujixinxi

商品表名

userid

bigint(20)

用戶id

goodid

bigint(20)

商品id

goodname

varchar(200)

NULL

商品名稱

picture

varchar(200)

NULL

圖片

buynumber

int(11)

購買數量

price

float

NULL

單價

discountprice

float

NULL

會員價

maijiazhanghao

varchar(200)

NULL

商戶名稱

表4.3 賣家

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

addtime

timestamp

CURRENT_TIMESTAMP

創建時間

maijiazhanghao

varchar(200)

賣家賬號

mima

varchar(200)

密碼

maijiaxingming

varchar(200)

賣家姓名

touxiang

varchar(200)

NULL

頭像

xingbie

varchar(200)

NULL

性別

nianling

varchar(200)

NULL

年齡

lianxidianhua

varchar(200)

NULL

聯系電話

money

float

0

余額

表4.4 留言板

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

addtime

timestamp

CURRENT_TIMESTAMP

創建時間

userid

bigint(20)

留言人id

username

varchar(200)

NULL

用戶名

content

longtext

留言內容

reply

longtext

NULL

回復內容

表4.5 訂單

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

addtime

timestamp

CURRENT_TIMESTAMP

創建時間

orderid

varchar(200)

訂單編號

tablename

varchar(200)

shujixinxi

商品表名

userid

bigint(20)

用戶id

goodid

bigint(20)

商品id

goodname

varchar(200)

NULL

商品名稱

picture

varchar(200)

NULL

商品圖片

buynumber

int(11)

購買數量

price

float

0

價格/積分

discountprice

float

0

折扣價格

total

float

0

總價格/總積分

discounttotal

float

0

折扣總價格

type

int(11)

1

支付類型

status

varchar(200)

NULL

狀態

address

varchar(200)

NULL

地址

tel

varchar(200)

NULL

電話

consignee

varchar(200)

NULL

收貨人

maijiazhanghao

varchar(200)

NULL

商戶名稱

表4.6 書籍分類

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

addtime

timestamp

CURRENT_TIMESTAMP

創建時間

shujifenlei

varchar(200)

NULL

書籍分類

表4.7 書籍信息

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

addtime

timestamp

CURRENT_TIMESTAMP

創建時間

shujimingcheng

varchar(200)

NULL

書籍名稱

tupian

varchar(200)

NULL

圖片

shujifenlei

varchar(200)

NULL

書籍分類

zuozhe

varchar(200)

NULL

作者

chubanshe

varchar(200)

NULL

出版社

shujixiangqing

longtext

NULL

書籍詳情

maijiazhanghao

varchar(200)

NULL

賣家賬號

maijiaxingming

varchar(200)

NULL

賣家姓名

clicktime

datetime

NULL

最近點擊時間

clicknum

int(11)

0

點擊次數

price

float

價格

表4.8 收藏表

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

addtime

timestamp

CURRENT_TIMESTAMP

創建時間

userid

bigint(20)

用戶id

refid

bigint(20)

NULL

收藏id

tablename

varchar(200)

NULL

表名

name

varchar(200)

收藏名稱

picture

varchar(200)

收藏圖片

表4.9 管理員信息表

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

username

varchar(100)

用戶名

password

varchar(100)

密碼

role

varchar(100)

管理員

角色

addtime

timestamp

CURRENT_TIMESTAMP

新增時間

表4.10 用戶

字段

類型

默認

注釋

id?(主鍵)

bigint(20)

主鍵

addtime

timestamp

CURRENT_TIMESTAMP

創建時間

yonghuming

varchar(200)

用戶名

mima

varchar(200)

密碼

yonghuxingming

varchar(200)

用戶姓名

touxiang

varchar(200)

NULL

頭像

xingbie

varchar(200)

NULL

性別

nianling

varchar(200)

NULL

年齡

shoujihaoma

varchar(200)

NULL

手機號碼

money

float

0

余額

5系統詳細實現

5.1?留言反饋管理

學生用戶可以發布留言反饋。具體界面的展示如圖5.1所示。

圖5.1?留言反饋管理界面

5.2?我的訂單管理

用戶登錄可以在個人中心查看我的訂單信息。具體界面如圖5.2所示。

圖5.2?我的訂單管理界面

5.3?訂單發貨

賣家可以在已支付訂單里面進行發貨操作。界面如下圖所示:

圖5.4?訂單發貨界面

5.4 我的收藏

員工用戶登錄后,在我的收藏管理里面可以對我的收藏信息進行查看和刪除操作。界面如下圖所示:

圖5.4 我的收藏界面

5.5 書籍分類管理

管理員可以對書籍分類進行添加修改刪除操作。界面如下圖所示

圖5.5 書籍分類管理界面

5.6 留言板管理

管理員可以對用戶留言信息進行回復和刪除操作。界面如下圖所示:

圖5.6 留言板管理界

6系統測試

6.1概念和意義

測試的定義:程序測試是為了發現錯誤而執行程序的過程。測試(Testing)的任務與目的可以描述為:

目的:發現程序的錯誤;

任務:通過在計算機上執行程序,暴露程序中潛在的錯誤。

另一個預測是相關的術語叫糾錯(Debugging)。它的目的與任務可以規定為:

目的:定位和糾正錯誤;

任務:消除軟件故障,保證程序的可靠運行。測試與糾錯的關系,可以用圖6-1的數據流圖來說明。圖中表明,每一次測試都要準備好若干必要的測試數據,與被測試程序一道送入計算機執行。通常把一次程序執行需要的測試數據,稱為一個“測試用例(Test Case)。每一個測試用例產生一個相應的“測試結果”。如果它與“期望結果”不想符合,便說明程序中存在錯誤,需要用糾錯來改正。

圖6.1測試與糾錯信息流程

6.2特性

(1)挑剔性

測試是為了證明程序有錯,而不是證明程序無錯。因此,對于被測程序就是要“純毛求疵”,就是要“雞蛋里挑骨頭”。

(2)復雜性

測試儀程序則比較容易,這其實是一個誤區。設計測試用力是一項需要細致和高度技巧的高能工作,稍有不慎就會顧此失彼,發生不應用得數樓。

(3)不徹底性

實際測試都是不徹底的,當然不能夠保證測試后的程序不存在遺漏的錯誤。

(4)經濟性

通場這種測試稱為“選擇測試(Selective Testing)”。為了降低測試成本,選擇測試用力是應注意遵守“經濟性”的原則。

6.3重要性

軟件測試在軟件生命周期中占據重要的地位,在傳統的瀑布模型中,軟件測試學僅處于運行維護階段之前,是軟件產品交付員工用戶使用之前保證軟件質量的重要手段。近來,軟件工程界趨向于一種新的觀點,即認為軟件生命周期每一階段中都應包含測試,從而檢驗本階段的成果是否接近預期的目標,盡可能早的發現錯誤并加以修正,如果不在早期階段進行測試,錯誤的延時擴散常常會導致最后成品測試的巨大困難。

6.4測試方法

首先我們來說界面測試,界面測試是為了使程序在不同的的操作平臺上能夠運行界面,并且能夠保持原來的風格。我把完整程序拷貝到Windows 7環境下,似的程序運行正常,運行界面上的字體圖片等設置都能夠保持得非常好。不出現字體變形等情況!

其次進行功能測試。該系統測試采用的是單元測試,集成測試,完善性測試等多種方式進行測試。

經過測試,所有功能都能得以實現,沒有任何變形。至此,在功能的測試上也已經比較圓滿的完成了。

由于經驗不足,寫代碼時出現了一些考慮不周的系統缺陷,寫代碼的時候會出現與設想不一致,比如說代碼不規范導致接口與接口之間出現問題,功能與客戶的要求不符合,這樣導致產品不能過關,無法交付。所以產品在上線前必須反復測試,經過反復測試,修改,再測試,再修改,產品才能夠不斷完善。在整個系統測試中,根據需求文檔和設計文檔,逐一對功能進行檢測并寫好測試用例,有效避免殘片缺陷,因為產品出現缺陷不僅影響功能,而且可以導致數據的不準確,導致產品質量的降低,經過測試,才能使得產品的穩定性和成熟度得到極大的提升,產品質量也才有保證。

6.5?功能測試

功能測試主要包括五項內容:適用性、準確性、可操作性、依從性、安全性。

本系統功能測試如表6.1所示:

表6.1 ?系統功能測試

測試內容

測試結果

適用性

準確性

可操作性

依從性

安全性

6.6可用性測試

可用性測試用于檢測系統的可操作性、可理解性、可學習性等方面內容。具體測試方面如表6.2所示。

表6.2 系統可用性測試

測試項

測試人員的評價

窗口移動、大小改變、關閉等操作是否正常

操作模塊是否友好

模塊、提示內容等文字描述是否正確

模塊布局是否協調、合理

模塊的狀態是否正確(對選中項能否發生對應切換)

鼠標、鍵盤操作是否支持

所需數據項是否正確顯示

操作流程是否合理

是否提供幫助信息

6.7性能測試

性能測試主要通過模擬系統運行環境,測試系統性能是否符合客戶需求。性能測試的重要技術指標就是:系統運行速度、網絡響應時間和支持并發節點數。

1)系統運行速度:通過在不同計算機上試運行本系統,沒有發現有任何遲滯、停頓現象。

2)網絡響應時間:網絡響應時間主要包括網絡最小響應時間、平均響應時間、最大響應時間三個參數。經過測試,在網絡運營良好狀態下,NBA局域網內響應時間三參數為:1/2/6s,NBA外網響應時間三參數為3/7/12s,符合客戶需求,屬于員工用戶心理可承受范圍。

3)支持并發節點數:經過模擬環境測試,本系統在并發節點達46個時,網絡運營速度會發生較大波動,延遲時間10秒左右,符合客戶需求。

6.8測試分析

本網站設計時借鑒了國內外優秀網站的優點,從界面到系統設計都保證了員工用戶能夠方便操作。系統的主要特點和優點歸納如下:

(1)本系統用的移置性和針對性都比較高,因為針對性高可以提供更好的服務而移置性可以在多個系統上運行,更給客戶帶來了極大的方便。

(2)該完整內容全面,管理方便可以及時的全面的處理各種錯誤,異常,這樣避免了很多因員工用戶的馬虎操作而出現的失誤,其操作方便,員工用戶界面友好,能夠上網的人都可以很好的進行操作。

6.9測試結果分析

經過對上述測試結果分析,本系統符合員工用戶需求。所有基本功能點實現,操作簡單,操作流程簡單合理,產品運行性能良好,是一款值得推廣的學生二手書籍交易平臺。

結論

在這次畢業設計中遇到的最困難的方面就是在數據庫方面的知識,在剛開始進行畢業設計的時候感覺十分困難,根本不知道該從何處下手,但不斷的堅持,設計最終被完成。無論多么的困難,只要能夠堅持下來,善于去找到好的材料來研究,在研究中充分利用資源,沒有困難是不會被成功解決的。

在開發系統的過程中,本人運用到Spring Boot技術和平時學習中所了解的一些技術,通過實現這些技術,大大提高了整個系統的性能。在論文中這些技術都做了比較詳細的介紹。本系統還存在很多缺點和不完善的地方,例如有些細節上做的還不夠完善,有些功能模塊還需要加強。在今后的日子里,能夠對這些不足進行改善。

通過這次最終的畢業設計,平時所學到的知識不僅融合了,而且獲得了許多計算機知識。在整個設計過程中明白了許多東西,也培養獨立工作能力,樹立信心,對自己能力的工作能力,我相信以后會學習和工作生活中有至關重要的作用。同時也大大提高了手的能力,使其難以充分體會探索的樂趣和成功的創作過程,設計過程中汲取的東西,是一筆寶貴的財富。

回顧過去做畢業設計的整個過程,充滿了付出和收獲,但是當你看到成果的時候的感覺,是一種難以用言語表達的喜悅之感這些在畢業設計過程中學習到的東西將會使我終身受益!

最后,感謝指導老師的關心和指導,在我畢業設計的整個過程中,他給與了我很多的幫助和講解,在導師的幫助下我的畢業設計才能如此順利的完成。

致謝語

經過幾個多月的不斷學習,我的畢業設計終于如期完成。此次畢業設計是對我們日常所學計算機理論知識的一次綜合性評測,也是將理論應用到實踐的一項考察。

首先我要感謝此次指導我的老師,是他的及時糾正我在設計當中出現的問題,使得我的設計高質量完成。指導老師在我本次學生二手書籍交易平臺的開發過程中,為程序、框架的設計、代碼等方面以及論文設計提供了很多寶貴的意見,并且為我推薦了許多相關的資料,他的指導和建議使我受益匪淺,通過老師的耐心輔導和指點,我的論文順利完成,在此,我表示深刻的感謝。

我也要感謝幫助過我的同學們,和我一起探討論文的不足,給我的設計提出寶貴的建議,在這次設計中他們的幫助使得我的設計更加完善更加具體。

最后,我也要感謝學校為我們提供了一個良好的學校環境。祝愿學校的領導教師以及和我一起奮斗的同學們工作順利,事業有成,也要祝愿學校的前景更加輝煌。

參考文獻

[1]付昕. 基于B/S模式倉庫管理系統的實現[J].山東省農業管理干部學院學報, 2010, 27(4):166-168

[2] 雷文華, 薛小文. MATLAB和Servlet在網絡數據處理中的應用[J]. 電子測試, 2010, (11):81-86.

[3] 黃艷峰. 在Java語言中實施“案例教學”的研究與探索[J]. 電腦知識與技術, 2010, 6(5):1148-1149

[4] 王玉英. 基于JSP的MySQL數據庫訪問技術[J]. 現代計算機:專業版, 2010, 19(14):63-66

[5] 趙鋼. JSP Servlet+EJB的Web模式應用研究[J]. 電子設計工程, 2013, 21(13):47-49

[6] David L.Anderson.Managing ?Information Systems.清華大學出版社,2002:16

[7] 王家華.軟件工程[M],沈陽:東北大學出版社,2011:46

[8] 張孝祥,徐明華.軟件開發課堂.清華大學出版社,2009:55

[9] 崔洋.MySQL數據庫應用從入門到精通.中國鐵道出版社,2013:27

[10] 王珊,薩師煊.數據庫系統概論.高等教育出版社, 2006:16

[11] 崔洋.MySQL數據庫應用從入門到精通.中國鐵道出版社,2013:27

[12] 王珊,薩師煊.數據庫系統概論.高等教育出版社, 2006:16

[13] 張海潘.軟件工程導論.清華大學出版社,2008:86

[14] 黃艷峰. 在Java語言中實施“案例教學”的研究與探索[J]. 電腦知識與技術, 2010, 6(5):1148-1149

[15] 王玉英. 基于JSP的MySQL數據庫訪問技術[J]. 現代計算機:專業版, 2010, 19(14):63-66

核心代碼展示

/*** 公告通知* 后端接口* @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);}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713809.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713809.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713809.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于游戲公司組織架構的小討論

過完年剛剛上班沒幾天&#xff0c;就有一件比較搞笑的事情&#xff0c;可以和大家分享一下。 ??某一天我們在公司的會議室開會&#xff0c;發現有非常多蚊子&#xff0c;于是找行政問能不能找專業人士來滅蚊。行政的答復是&#xff0c;專業滅蚊是有固定時間的&#xff0c;還要…

JVM相關面試題(2024大廠高頻面試題系列)

一、JVM的組成 1、JVM由哪些部分組成&#xff0c;運行流程是什么&#xff1f; 回答&#xff1a;在JVM中共有四大部分&#xff0c;分別是Class Loader&#xff08;類加載器&#xff09;、Runtime Data Area&#xff08;運行時數據區&#xff0c;內存分區&#xff09;、Execut…

MyBatis的補充用法

說明&#xff1a;之前介紹過MyBatis的用法&#xff0c;像 用注解和Mapper.xml操作數據庫、在Mapper.xml里寫動態SQL。最近在一次用MyBatis批量更新數據庫對象的場景中&#xff0c;意識到對MyBatis的一些標簽用法不太熟悉&#xff0c;所以去 MyBatis官網 看了一些文檔&#xff0…

php httpfs鏈接hdfs

一.代碼&#xff08;有bug&#xff09; GitHub - michaelbutler/php-WebHDFS: A PHP client for WebHDFS 二.調用代碼 1.代碼1.代碼 require_once(../webhdfs/src/org/apache/hadoop/WebHDFS.php);require_once(../webhdfs/src/org/apache/hadoop/tools/Curl.php); require_o…

什么是人才儲備?如何做人才儲備?

很多小伙伴都會有企業面試被拒的情況&#xff0c;然后HR會告訴你&#xff0c;雖然沒有錄用你&#xff0c;但是你進入了他們的人才儲備庫&#xff0c;那么這個儲備庫有什么作用和特點呢&#xff1f;我們如何應用人才測評系統完善人才儲備庫呢&#xff1f; 人才儲備一般有以下三…

Python打發無聊時光:12.用PyQt實現簡易的心電起搏器界面

第一步&#xff1a;裝PyQt庫 pip install PyQt5 第二步&#xff1a;復制代碼 import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QPushButton, QVBoxLayout,QWidget, QLabel, QProgressBar, QSlider, QLineEdit, QHBoxLayout) from PyQt5.QtCore import …

軟件分層(數據結構/軟件邏輯上分層+舉例),相連節點的概念+如何相連,為什么是層狀結構(軟件分層,網絡協議分層+梳理協議順序),協議分層(打電話例子)

目錄 軟件分層 介紹 舉例 類的繼承 虛擬文件系統 線程接口封裝 虛擬地址空間 總結 為什么是層狀的 軟件分層 網絡協議 原因 梳理協議順序 相連節點 協議分層 引入 示例 實際上 邏輯上 制定出協議 軟件分層 介紹 通過將軟件系統劃分為不同的層次,每一層都有…

uniApp 調整小程序 單個/全部界面橫屏展示效果

我們打開uni項目 小程序端運行 默認是豎著的一個效果 我們打開項目的 pages.json 給需要橫屏的界面 的 style 屬性 加上 "mp-weixin": {"pageOrientation": "landscape" }界面就橫屏了 如果是要所有界面都橫屏的話 就直接在pages.json 的 gl…

Ps:海綿工具

海綿工具 Sponge Tool可用于調整圖像中特定區域的飽和度&#xff0c;常用于增加或減少顏色的飽和度。 快捷鍵&#xff1a;O 在特別的灰度圖像上&#xff0c;則可用于調整對比度&#xff0c;這可以開發出更多的創意技巧。 ◆ ◆ ◆ 常用操作方法與技巧 1、海綿工具主要用于調整…

源碼解析篇 | YOLOv8官方源碼項目目錄結構解析

前言&#xff1a;Hello大家好&#xff0c;我是小哥談。YOLOv8是一種目標檢測算法&#xff0c;它是YOLO&#xff08;You Only Look Once&#xff09;系列算法的第8個版本。YOLOv8相比于之前的版本&#xff0c;在檢測精度和速度上都有所提升&#xff0c;它在各種場景下都表現出色…

Git源碼管理

參考視頻&#xff1a;16-git的日志以及版本管理_嗶哩嗶哩_bilibili 參考博客&#xff1a;Git && Docker 學習筆記-CSDN博客 目錄 簡介 個人操作初始化 初始化git目錄 查看生成的git目錄文件 配置git工作目錄的用戶信息 查看工作區的狀態&#xff0c;生成文件的…

【JS】生成N位隨機數

作用 用于郵箱驗證碼 碼 ramNum.js /*** 生成N位隨機數字* param {Number} l 默認&#xff1a;6&#xff0c;默認生成6位隨機數字* returns 返回N位隨機數字*/ const ramNum (l 6) > {let num for (let i 0; i < l; i) {const n Math.random()const str String(n…

C++面試干貨---帶你梳理常考的面試題(一)

顧得泉&#xff1a;個人主頁 個人專欄&#xff1a;《Linux操作系統》 《C從入門到精通》 《LeedCode刷題》 鍵盤敲爛&#xff0c;年薪百萬&#xff01; 1.C和C的區別 1.語法和特性&#xff1a;C是一種過程式編程語言&#xff0c;而C是一種面向對象編程語言。C在C的基礎上增加…

Java智慧云HIS醫院信息化系統源碼 更具靈活性、擴展性

目錄 什么是云HIS 趨勢與轉變 HIS上云后有哪些好處 解決方案 云HIS組成 1、門診掛號 2、住院管理 3、電子病歷 4、藥物管理 5、統計報表 6、綜合維護 7、運營運維 什么是云HIS 云HIS是一種基于云計算技術的醫院信息管理系統。云HIS可以幫助醫院管理各類醫院信息&a…

CIE-Alevel-Physics分類真題下載(更新中)

鏈接真題歸類年份https://www.savemyexams.com/https://gceguide.com/papershttps://pastpapers.papacambridge.com/https://rocketrevise.comhttps://www.exam-mate.com/markhint.inhttps://xtremepape.rs/threads/as-and-a-level-physics-topical-pastpapers-upto-2015-with-…

Java Linux基本命令面試題

Java Linux基本命令面試題 前言1、查看文件內容有哪些命令可以使用&#xff1f;2、終端是哪個文件夾下的哪個文件&#xff1f;黑洞文件是哪個文件夾下的哪個命令&#xff1f;3、用什么命令對一個文件的內容進行統計&#xff1f;(行號、單詞數、字節數)4、怎么使一個命令在后臺運…

每日OJ題_分治歸并②_力扣LCR 170. 交易逆序對的總數

目錄 力扣LCR 170. 交易逆序對的總數 解析代碼1 解析代碼2 力扣LCR 170. 交易逆序對的總數 LCR 170. 交易逆序對的總數 難度 困難 在股票交易中&#xff0c;如果前一天的股價高于后一天的股價&#xff0c;則可以認為存在一個「交易逆序對」。請設計一個程序&#xff0c;輸…

Linux系統中安裝redis+redis后臺啟動+常見相關配置

1、下載Redis Redis官網&#xff1a;https://redis.io/ 歷史版本&#xff1a; http://download.redis.io/releases 2、連接Linux&#xff08;或者VMwear&#xff09; 我們安裝的是linux版本的redis 打開xftp我們需要先將我們的Redis上傳到服務器上 解壓到這里 解壓的指令 …

創建型模式之建造者模式

一、概述 1、建造者模式&#xff1a;將一個復雜對象的構建和它的表示分離&#xff0c;使得同樣的構建過程可以創建不同的表示 2、將客戶端與包含多個部件的復雜對象的創建過程分離&#xff0c;客戶端無須知道復雜對象的內部組成部分與裝配方式&#xff0c;只需要知道所需建造…

Spring MVC源碼中設計模式——適配器模式

適配器模式介紹 適配器模式&#xff08;Adapter Pattern&#xff09;是作為兩個不兼容的接口之間的橋梁。這種類型的設計模式屬于結構型模式&#xff0c;它結合了兩個獨立接口的功能。 應用場景&#xff1a; 1、系統需要使用現有的類&#xff0c;而此類的接口不符合系統的需要…