




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
....2各功能模塊的實現5.2.1數據庫連接模塊(.KeHuiBookShop.DB)設計數據庫連接模塊的思想是面向對象的封裝思想。把數據庫的連接操作封裝到DB類中,使在編寫業務邏輯是不用重復的編寫連接數據庫的語句塊,極大的減少了代碼編寫數量,減少了我開發的時間,并保證了連接的正確性,似的維護數據庫連接的靈活性增強。DB類中實現了創建Connection連接方法獲得與數據庫的有效連接。創建SQL語句載體Statement方法。創建PreparedStatement的方法PreparedStatement語句能更有效地實現對數據庫記錄的添加、刪除、修改操作。創建查詢結果集ResultSet的方法結果集中包含了查詢數據庫所得到的所有數據記錄。創建關閉Connection,Statement,ResultSet的方法。對數據庫的所有操作完成之后必須將于數據庫相連的Connecion對象關閉以釋放系統所占的資源。5.2.2設計模式的應用設計完成數據庫連接模塊之后考慮怎樣更好的設計其他業務邏輯模塊,怎樣更好的提高業務邏輯模塊的靈活性,可移植性。業務邏輯DAO封裝。的數據庫使用的MySQL,如果隨著的發展將會使用多種數據庫測試時便要修改MySQL數據庫的代碼給維護帶來的很大不便。使用DAO模式設計了DAO接口編寫MySQL實現的數據庫操作實現了DAO接口使用多數據庫測試時只需要編寫不同的DAO實現便可,提高了靈活性。publicinterfaceDao{};publicclassMySqlDaoimplementsDao{};單例模式在JSP頁面中處理數據時調用業務邏輯方法處理,此時構造一個該模塊業務邏輯的管理類manager統一管理此模塊中的所有業務邏輯的調用。在每次調用業務邏輯時需要構造一個管理員類的實例,頻繁的調用邏輯方法都要創建單獨的管理員極大的浪費系統的資源。為了節省資源使用單例模式,只構造一次管理對象。也便如現實中的工廠,只有一個管理員,而不是每次進出工廠都要找一個管理員,如果管理員存在便不在聘請。publicclassManager{privatestaticManagermanager=null;publicstaticManagergetInstance(){ if(manager==null){ manager=newManager(); } returnmanager;}}模塊的類設計設計模塊的具體功能時首先應先設計承載這些功能的類,各功能模塊都應包含實體類,業務邏輯類兩部分。實體類依據設計的數據庫的邏輯結構編寫,包含了數據成員對應各自的數據庫表的列,并提供對個數據成員的getset方法。業務邏輯類部主要包含實現個功能的業務邏輯方法。該系統使用三層類的結構,即管理類Manager,DAO類,數據庫實現類。5.2.3用戶模塊用戶模塊分為會員注冊并登錄并在我的中管理自己的信息和管理員在后臺管理會員信息兩部分。用戶進入后可以注冊為會員,會員可以訂購圖書并享受折扣待遇。會員登錄后可以在我的賬戶中管理自己的個人信息,包括修改查看個人基本信息,查看訂單信息,查看消費信息。圖5-2首頁頁面會員注冊登錄設計圖5-3注冊頁面 電子商城系統離不開用戶與之間的交互,用戶注冊和登錄十分重要。該系統對用戶注冊和登錄功能進行詳細設計。 會員注冊時在注冊頁面編輯個人信息,通過信息表單提交個人信息到服務器審核。檢查用戶提交的信息是否為空,用戶提交的信息不能為空。會員注冊用戶名不能與以往已經注冊的用戶名重復,否則無法區分。在提交信息到數據庫時對此進行了檢查限制。通過調用UserManager.getInstance().checkUsername().檢查會員名是否已經存在。 審核通過便成功注冊為會員。將信息添加到數據庫中保存。在業務類中提供了addUser()方法添加數據。因為向數據庫添加數據方面小異所以以添加用戶為例詳細介紹向數據庫添加數據的方法。publicvoidaddUser(Useruser){ Connectionconn=DB.getConnection();//使用編寫好的DB類創建與數據庫的連接 Stringsql="insertintouservalues(null,?,?,?,?,?,?,?,?,?)";//編寫sql語句該sql語句使用PreparedStatement的格式 PreparedStatementpsta=DB.prepareStatement(conn,sql); try{ conn.setAutoCommit(false);//為了更安全的提交數據將數據庫的事務提交改為手動提交 psta.setString(1,user.getUsername()); psta.setString(2,user.getPassword()); psta.setString(3,user.getUsernumber()); psta.setString(4,user.getPhone()); psta.setString(5,user.getEmail()); psta.setString(6,user.getAddress()); psta.setTimestamp(7,newTimestamp(user.getRdate().getTime())); psta.setDouble(8,0.0); psta.setInt(9,0); psta.executeUpdate();//利用PreparedStatement對數據庫修改(添加數據) connmit();//將所做的修改的事務提交 }catch(SQLExceptione){ e.printStackTrace(); }finally{ try{ conn.setAutoCommit(true);//將自動提交值改為默認值 }catch(SQLExceptione){ e.printStackTrace(); } DB.close(psta); DB.close(conn);//關閉連接數據庫的資源 } }會員注冊后每次只需登錄便可在購物。會員在首頁登錄表單填寫相應的信息登錄。服務器驗證信息正確則返回首頁顯示用戶成功登錄,并把用戶登錄信息添加進session中統一管理。如果信息錯誤則返回注冊頁面請會員重新登錄。 利用session在服務器中統一管理會員的登錄信息更能保證用戶登錄的安全。后臺會員管理設計該系統實現的后臺會員管理主要是獲取所有會員的信息使用表格將會員信息顯示在網頁上。該管理系統實現了會員信息類表的排序和分頁。 利用排序方式和頁面參數獲取會員列表分別使用了數據庫的排序操作和分頁操作技術。圖5-4用戶列表頁面5.2.4類別模塊 通過設計類別模塊能夠更方便的管理圖書目錄,消費者在選購圖書的時候能夠更方便的按類別尋找自己喜愛的圖書,所以類別的設計很重要。能夠更好的引導消費者選購也能夠更好的幫助管理者管理圖書。 類別管理同樣使用了實體類家三層業務邏輯類的方法。系統中設計了兩級類別,第一級類別為主類別,第二級為某主類別小細分的子類別。在數據庫表項中使用grade字段記錄類別的等級。并使用cno字段類別的排序。Cno值使用了四位數字,前兩位為第一級類別使用,后兩位為第二級類別使用,即每一級都可添加一百種不同的類別。Cno更好的輔助了類別管理是遞歸的實現。在展示類別列表時按照cno排序即可實現遞歸的功能,依次展示主類別和旗下子類別。o值計算在添加類別是需要添加類別的cno值,因為cno值應為系統自動添加所以在業務邏輯中重點編寫了計算cno值的方法。 首先查詢同級兄弟類別中cno的最大值,如果同級兄弟類別中還有沒記錄的,重頭開始編寫該級別的cno(0000)。如果同級兄弟類別中已經有了其他記錄,則要跟在其他記錄cno值后面編寫。publicintgetCno(Connectionconn,Categoryc){ Statementsta=DB.createStatement(conn); Stringsql="selectmax(cno)fromcategorywherepid="+c.getPid(); //查詢兄弟類別中的cno最大值使用 Stringgetpno="selectofromcategorywhereid="+c.getPid(); //查詢父親類別的cno值使用 ResultSetrs=DB.getResultSet(sta,sql); into=-1; try{ rs.next(); intmaxcno=rs.getInt(1); intaddno=(int)Math.pow(100,2-c.getGrade()); if(maxcno==0){ //說明同級兄弟類別中還有沒記錄所以尚且沒有cno數據重頭開始編寫該級別的cno(0000) if(c.getPid()==0){ //說明了要添加的該類別屬于第一級圍該從百位數開始加(第一條記錄cno值:0100) cno=addno; }else{ //說明該類別不是第一級那么應該從個位數開始加 ResultSetpnors=DB.getResultSet(sta,getpno); pnors.next(); intpno=pnors.getInt(1); cno=pno+addno; DB.close(pnors); } }else{ //說明同級兄弟類別中已經有了其他記錄則要跟在其他記錄cno值后面編寫 cno=maxcno+addno; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.close(rs); DB.close(sta); } returno; }類別的增刪改查管理員可以對類別進行添加,修改,刪除,查看操作對類別進行管理。 類別的添加,修改仍舊使用了表單添加信息提交到服務器然后添加進數據庫的方法。值得注意的是不同等級的類別操作的方式不一樣。二級類別只能在第一級父親類別下面添加,所以當添加第二類別是需要傳遞父親類別的id作為參數,如果沒有則顯示錯誤信息要求指定父親類別。 類別列表查看時在類表中應該有維護類表方法的連接。比如添加子類別,修改類別,刪除類別等,同樣使用用戶模塊中的列表技術。 類別的刪除使用刪除數據庫表記錄的操作。在商品管理中同樣有刪除的功能,小異,所以在這里詳細介紹類別的刪除。publicvoiddeleteCategory(intid){ Connectionconn=DB.getConnection(); Stringsql="deletefromcategorywhereid=?"; //通過id的條件刪除相應的記錄 PreparedStatementpsta=DB.prepareStatement(conn,sql); try{ conn.setAutoCommit(false); psta.setInt(1,id); psta.executeUpdate(); connmit(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ try{ conn.setAutoCommit(true); }catch(SQLExceptione){ e.printStackTrace(); } DB.close(psta); DB.close(conn); } }值得注意的是:要刪除第一級類別時,如果第一級類別下有第二級類別存在則不允許刪除。通過編寫testDelete()方法測試是否允許刪除,在JSP頁面中調用,如果不允許那么在類別類表頁面中則不能顯示刪除選項。publicbooleantestDelete(intid){ Connectionconn=DB.getConnection(); Statementsta=DB.createStatement(conn); Stringsql1="select*fromcategorywhereid="+id; //查詢類別 Stringsql2="select*fromcategorywherepid="+id; //查詢id下面的所有的子類別 ResultSetrs1=DB.getResultSet(sta,sql1); booleandelete=true; try{ rs1.next(); if(rs1.getInt("grade")==1){ //如果該類別為第一級類別那么則要測試其下有沒有子類別 ResultSetrs2=DB.getResultSet(sta,sql2); if(rs2.next()){ delete=false; //一級類別下面有子類別所以設置delete值為false并返回告知不能刪除} DB.close(rs2); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ DB.close(rs1); DB.close(sta); DB.close(conn); } returndelete; }圖5-5圖書類別頁面圖5-6添加類別頁面類別的前臺展示后臺管理員將類別展示之后需要在前臺頁面展示出來以供用戶瀏覽使用,同樣使用向業務邏輯傳遞集合參數的方法,從數據庫中取出數據放入集合categorylist中然后返回。在前臺頁面圖書列表的區塊中使用集合Iterator循環的技術從圖書表中獲取圖書列表放在<ul><li></li></ul>中展示。 注意的是當通過ul列表將類別依次顯示出來并設置主類別和子類別的不同的class值,并在css設置時顯示效果不同,增強用戶的瀏覽效果性,提高的美觀性。5.2.5圖書模塊后臺圖書管理的基本操作后臺圖書管理可以添加圖書,修改圖書信息,刪除圖書記錄。在添加圖書時需要傳遞一個類別的id參數,在某類別下添加圖書,如果沒有參數則顯示錯誤信息必須要在某類下添加圖書。圖書的信息包含了基本信息和詳細信息。方便管理員有選擇的添加圖書的相關信息。對于沒有必要添加圖書詳細信息的記錄則不添加。圖5-7圖書列表頁面前臺圖書的展示首頁中設計了熱賣圖書的展示區塊,最新圖書的展示區塊,促銷最快的展示區塊。使用按銷售額,上架時間,折扣排序從數據庫中獲取數據存放在傳遞的集合參數中。然后從集合中取出數據展示出來。三個區塊的設計大致一樣。 用戶可以從類別表中選擇類表,點擊進入該類別下的圖書展示網頁productshow.jsp進行瀏覽。在該JSP網頁中獲得用戶點擊的categoryid,作為參數傳遞給業務邏輯類處理通過categoryid查詢屬于該類別的所有圖書展示。圖書記錄取出通過HTML中UL列表技術依次展示。在網頁中同樣實現了分頁和排序的技術。圖5-8圖書展示頁面5.2.6購物車模塊購物車臨時存儲用戶的購物信息,用戶可以隨時增加商品,修改數量和刪除商品。購物車的數據存儲主要依賴sessiion來實現。購物車的創建本系統創建了購物車的實體類Cart和購物車物品的實體類CartItem來模擬購物車。在購物車實體類中設置了數據成員CartItem的集合與對該集合的get,set方法。在CartItem中編寫了Cart實體的引用作為數據成員。將整個圖書的信息封裝到了購物車中。在用戶的實體類編寫了Cart的引用將購物車的所有信息封裝到了所屬的用戶之中。用戶在網頁中點擊圖書時將圖書的id傳遞到buy.jsp中并在網頁中過去該id的圖書信息封裝到圖書對象中。然后將圖書對象添加進CartItem網頁中實現將圖書記錄添加進購物車。如果用戶沒有選購圖書則session中用戶對象中cart對象為空,如果用戶選購了圖書當再次選購圖書時不能重新構建購物車而是使用原有的購物車繼續添加。購物車的管理用戶點擊購買圖書之后,圖書記錄存放在購物車之中。用戶可以隨時修改購物車中的信息,包括刪除圖書,增加圖書的記錄。在系統中編寫add方法和delete方法分別實現對購物的管理。重點設計add方法和delete方法,使得無論什么時候購物車中圖書的對象都是唯一的,利用購物車的count屬性記錄一樣圖書對象的數量。如果購物車中已經存在一樣的圖書則只修改購圖書的數量即可。購物車的顯示設計購物車顯示模塊應當能夠使消費者清楚自己已經訂購的圖書種類,圖書的數量,每一種圖書的價格,以與將要下訂單的總價格,并提供更改購物車的連接接口使得消費者更方便的管理自己訂購的圖書,放心的消費。購物車模塊與訂單模塊都應當有訂購圖書名稱,價格,總價格的顯示。圖5-9購物車頁面5.2.7訂單模塊訂單模塊是整個系統功能最后的也是最關鍵的模塊,因為只有用戶正確的提交了訂單才能保證用戶的合法消費權益,才能根據用戶的訂單發送圖書。正確設計訂單模塊才能根據消費者的消費正確更新消費者等級信息,提高消費者的優惠享受。正確設計訂單模塊才能使管理員清楚圖書的銷售進度與庫存數最新狀態。所以訂單的設計尤為關鍵。整個訂單模塊可分為用戶確認提交訂單部分,用戶在我的中查看訂單信息部分,管理員管理訂單并更改訂單信息發貨部分,用戶提交訂單之后用戶消費等級信息的修改與圖書記錄銷售額和庫存的修改部分。在訂單提交時首先要檢測用戶是否在登陸狀態,只有用戶在登陸狀態時才能提交訂單。在訂單頁面中顯示消費者的聯系方式和送貨地址。消費者可在訂單頁面再次修改自己的和送貨地址作為本次訂購的聯系方式。在訂單頁面中仍舊顯示購物車中圖書,可供消費者再次查看并確定,否則可返回修改購物車,當消費者驗證完所有信息后可點擊提交訂單。訂購圖書正確送到消費者手中之后,管理員應該更新訂單成功狀態以使與時改變用戶的消費記錄和等級,改變系統此圖書的銷售數量。創建訂單跟購物車相似訂單同樣有訂單實體類和訂單項實體類兩個,在訂單類SalesOrder中有數據成員訂單項的集合salesitemlist可以承載訂單項SalesItem類的實例。按照數據庫相應表結構來確定各類都具有自己的其他數據成員。在用戶的實體類中添加訂單類的引用,將訂單對象放入session管理,調用業務邏輯處理添加進數據庫。用戶提交訂單用戶從購物車頁面點擊結算連接到訂單頁面sale.jsp調用buy方法把購物車里的信息構造成為訂單對象。publicvoidbuy(Useruser){ SalesOrderso=newSalesOrder();//構造訂單類對象 so.setUser(user);//編寫訂單屬于那個用戶在訂單類中編寫了用戶的引用 so.setOdate(newDate()); so.setStatus(0);//訂單狀態為0表示訂單尚未處理 for(Iteratori=user.getCart().getCartitems().iterator();i.hasNext();){//從購物車中取出圖書記錄 CartItemci=(CartItem)i.next(); SalesItemsi=newSalesItem(); si.setProduct(ci.getP()); si.setCount(ci.getCount());//將從購物車中取出的圖書添加進訂單項之中 doubleprice=(//定義變量price表示圖書的單價price的只根據圖書的市場價格與會員等級對應的圖書折扣的乘積并乘以圖書的數量計算而得,因為在購物車模塊展示功能中已經介紹這里沒有編寫。); si.setUnitprice(price);//將price值設為訂單中圖書的訂購單價 so.getSalesitemlist().add(si);//把訂單項添加如訂單的訂單項集合中 user.setSo(so);//將訂單對加入user對象放入session中管理也被插入數據庫存儲。 } }在該頁面通過表單顯示用戶的和地址信息是用戶可以在此頁面再次訂購的圖書要送達的地址和聯系。此頁面重新能顯示購物車中的圖書使用戶做最后的確認。用戶點擊提交訂單連接到saleconfirm.jsp頁面調用業務邏輯把session保存的訂單添加進數據庫中保存。Stringphone=request.getParameter("phone"); Stringaddress=request.getParameter("address");//從上個頁面獲取用戶修改的訂單的信息和地址 SalesOrderso=user.getSo(); so.setPhone(phone); so.setAddress(address);//將修改的參數信息添加進session中的訂單對象中。SalesManager.getInstance().sale(so);//調用撒了方法將訂單對象數據添加進數據庫sale()方法為一般的數據添加操作。后臺訂單管理后臺訂單管理包括了訂單查詢和訂單狀態修改兩部分。該系統中設置了訂單查詢的三層方法調用,訂單對象中用戶的引用,有訂單項的集合,需要調用方法獲得user對象和包含了訂單項的訂單集合。在訂單項中有圖書類對象的引用,要調用方法獲得該訂單項的圖書對象。當訂購圖書成功送達之后管理員需要處理訂單的狀態,訂單狀態應為成功。在訂單展示頁面salesorderlist.jsp中有用戶查詢訂單的表單,該表單通過管理員輸入訂單來查詢要處理的表單,快捷方便,而不用從繁雜的訂單表中苦苦尋找。搜索到要處理的表單后點擊處理連接即可將表單的狀態改為成功,于此同時將改變用戶的消費信息包括改變用戶的消費金額總值和用戶的等級。圖5-10訂單展示頁面用戶查看訂單用戶在登錄之后可以在我的中查看自己的訂單,使用常用的通過傳遞集合參數和id查詢的方法,使用while循環方式在我的頁面中顯示出來并顯示訂單的狀態。圖5-11用戶訂單頁面系統測試與難點分析6.1系統運行環境的搭建6.1.1JAVA虛擬機的安裝本系統采用的是基于java的jsp技術,所以java虛擬環境即java虛擬機是必須要安裝的。JDK(JavaDevelopmentKit)是一切java應用程序的基礎,可以說所有的java應用程序是構建在這個之上的。它是一組API,也可以說是一些javaClass。目前已經正式發布的最新版本是JDK1.5。Windows下,直接運行.exe文件,安裝到一個目錄,如C:/jdk1.5,安裝完成后就是環境變量的設置。->高級->環境變量->在“系統變量”>“新建”->在變量名中輸入:JAVA_HOME,變量值中輸入:C:/jdk1.5同樣再新建一個變量名CLASSPATH,變量值:C:\jdk1.5;C:\jdk1.5\lib\dt.jar;C:\jdk1.5\lib\tools.jar;還需要在Path變量值后面添加一個值:C:\jdk1.5\bin。至此JAVA環境安裝成功。我們可以在命令行中敲入命令java如果顯示java幫助,則證明環境設置成功。6.1.2Tomcat環境搭建安裝TOMCAT,直接使用默認安裝就可以了,假如我們將其安裝在C:\Tomcat6.0,打開Tomcat5.5文件中的bin文件,雙擊其中的運行程序start.bat,顯示serverstart,服務器正常啟動,此時在瀏覽器上敲入本地測試地址:localhost:8888如果出現Tomcat頁面則證明Tomcat安裝成功,而且正常啟動。到這里,系統運行所需要的基本運行環境已經安裝完成。6.2系統程序的安裝和加載6.2.1文件的拷貝我們可以將整個系統文件夾KeHuiBookShop拷貝到Tomcat的默認根目錄下,一般路徑為:C:\Tomcat5.5\webapps\。6.2.2數據庫的連接安裝MySQL數據庫,將SQL文件夾中的邏輯結構源文件拖入數據庫運行窗口運行創建數據庫。6.2.3系統的性能分析網上書店系統的性質決定了它的服務端工作負荷比較大,這就要求服務端的硬件配置要盡可能的高,主要是存,而且操作系統也要盡可能的穩定。基于java的系統一般來說網絡安全性比較好,但并不能說就一定安全,尤其在windows操作系統下,由于windows的漏洞比較多,系統裝配在windows下并不是最佳的選擇,如果有條件,建議可將系統裝配在unix操作系統下,提高系統的抗侵入能力。系統的核心數據庫,隨著數據的不斷增多,必然會產生冗余,導致系統運行效率降低,建議管理員定期備份和清理冗余數據,以保證系統的正常高效運行。6.3系統中所存在的問題因為是第一次做這么完整的系統,所以碰到的問題也很多,除了一些基本的語法之外,感覺還是一些考慮問題的思維方式不太得當,比如我的這個網上書店系統,我感覺難度比較大的還是購物車這個模塊比較的難設計。主要問題是當用戶完成選購,點擊去收銀臺結算時,系統沒有實現判斷商品庫中的這些商品數量是否大于用戶所選數量的問題。第二個問題是用戶在注冊過程中,一些關鍵字段的命名規則存在著比較大的缺陷,沒有具體實現,規則表達式處理的信息格式限制。結論電子商務已被轟轟烈烈地推到了我們面前,人類社會以進入電子商務時代,這是社會發展的必然,我們別無選擇。如何面對電子商務時代,如何適應數字化生存并積極參與電子商務時代的社會競爭,是涉與到我們每個人,每個企業,每個部門與國家生存與發展的重大問題。為此,我們必須積極的態度面對這一機遇和挑戰,研究電子商務,探討電子商務的涵,運作模式以與他所涵蓋的關鍵技術等。在論文撰寫過程中,通過查閱研究大量的文獻,分析相關領域的特色的服務容并結合有關實踐,論文對以下幾個方面的容進行了深入而細致的研究。1.電子商務的基礎理論研究從幾個不同的角度對電子商務的概念加以探討,通過對比分析尋求其中的共性;回顧了電子商務的發展歷程,對電子商務的類型進行了歸納;研究了電子商務的特點,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 今年貴州省高考語文作文題
- 教學工作參考總結高二語文教學工作參考總結
- 1-1數字信號與數字電路概述
- 黑龍江省牡丹江市名校協作體2024-2025學年高二下學期3月月考數學試題【含答案】
- 山東現代學院《井巷施工技術》2023-2024學年第二學期期末試卷
- 江蘇省揚州市梅嶺市級名校2024-2025學年下學期初三期末檢測試題考試物理試題含解析
- 溫州肯恩大學《寫作訓練(Ⅱ)》2023-2024學年第二學期期末試卷
- 四川省鄰水實驗學校2025屆高三下學期適應性月考(一)語文試題含解析
- 邢臺應用技術職業學院《數字空間形態設計》2023-2024學年第一學期期末試卷
- 濟源職業技術學院《品牌衍生品設計》2023-2024學年第二學期期末試卷
- ISO 45003-2021職業健康安全管理-工作中的心理健康安全-社會心理風險管理指南(中文版)
- 惡性腫瘤的常見癥狀及早期信號
- 三年級語文 寫通知(全國一等獎)
- 2020電網技術改造工程概算定額第五冊調試工程
- 起重機機械金屬結構
- 自然教育課程的追尋與實踐
- 諾如病毒診斷和治療
- 《無人機攝影測量》考試復習題庫(含答案)
- 職業健康與環境保護的重要性
- 前置胎盤的教學查房課件
- 結構主義詩學
評論
0/150
提交評論