




已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
JavaWeb 課程設(shè)計 題目:客戶信息管理系統(tǒng) 專 業(yè):計算機(jī)科學(xué)與技術(shù) 年 級:計0913 學(xué) 號:200925501348 作 者:劉丹鳳 指導(dǎo)老師:賀秉庚 完成時間:2012年6月17日 目錄JavaWeb 課程設(shè)計1題目:客戶信息管理系統(tǒng)1一課程設(shè)計目的4二課程設(shè)計內(nèi)容與目標(biāo)5三、 系統(tǒng)設(shè)計61、 系統(tǒng)特點62、 功能設(shè)計63、 用戶界面草圖74、 頁面遷移圖95、 頁面功能設(shè)計9四、 數(shù)據(jù)庫設(shè)計101、數(shù)據(jù)庫表102、數(shù)據(jù)庫操作圖12五、 功能模塊的詳細(xì)設(shè)計131、程序目錄結(jié)構(gòu)圖13 2、數(shù)據(jù)庫訪問模塊133、 共通Servlet的處理154、 登錄模塊225、 頁面導(dǎo)航設(shè)計245、 客戶資料維護(hù)模塊266、 客戶來電信息模塊337、 客戶回訪信息模塊358、 客戶重要信息提示模塊36六、 對本系統(tǒng)開發(fā)的思考總結(jié)39七、 對軟件開發(fā)方法的體會39八、 自主創(chuàng)新聲明40九、致謝40一課程設(shè)計目的課程設(shè)計是一項重要的實踐性教學(xué)環(huán)節(jié),在教師的指導(dǎo)下,以學(xué)生為中心,充分調(diào)動學(xué)生的積極性和能動性,重視學(xué)生自學(xué)能力的培養(yǎng)。Java Web 數(shù)據(jù)庫系統(tǒng)應(yīng)用開發(fā)與實例是為教育技術(shù)學(xué)本科專業(yè)開設(shè)的專業(yè)選修課程,課程的主要目標(biāo)是要求學(xué)生掌握基本的Web應(yīng)用程序開發(fā)和設(shè)計的流程及相關(guān)的技術(shù)技能。本課程在講解相關(guān)理論知識的基礎(chǔ)上,按照一定的組織原則和現(xiàn)有實驗條件安排了一定數(shù)量的實驗,通過這些實驗使學(xué)生初步掌握開發(fā)和設(shè)計Web數(shù)據(jù)庫系統(tǒng)的基本方法和基本技能。然而由于這些實驗是分時分批按一定的技術(shù)種類和實驗?zāi)康膶嵤┑?,固然可以有目的地?xùn)練和培養(yǎng)學(xué)生某個方面技能,但明顯的不連續(xù)性使學(xué)生不能從整體上把握如何系統(tǒng)地開發(fā)和設(shè)計一個完整Web數(shù)據(jù)庫系統(tǒng)應(yīng)用程序。通過本課程設(shè)計可以較好地解決這個問題。通過本課程設(shè)計可以使學(xué)生充分認(rèn)識開發(fā)和設(shè)計Web應(yīng)用程序的的重要性和復(fù)雜性,充分了解Web應(yīng)用程序的設(shè)計和開發(fā)的基本過程,掌握常用的Web開發(fā)技術(shù),充分把握各項技術(shù)的特點和應(yīng)用領(lǐng)域以及各項技術(shù)之間的相互關(guān)系,進(jìn)一步體會各項技術(shù)在Web應(yīng)用程序中地位和作用從而對各種技術(shù)有比較清醒的認(rèn)識,在此基礎(chǔ)上習(xí)得Web開發(fā)技術(shù)平臺的選擇能力。二課程設(shè)計內(nèi)容與目標(biāo)課題名稱:客戶信息管理系統(tǒng) 設(shè)計目標(biāo):本系統(tǒng)模擬企業(yè)對于客戶信息的管理,操作人員可以添加、修改客戶信息,針對客戶來電進(jìn)行記錄,并對客戶的重要信息進(jìn)行提醒,等等。設(shè)計方法:jsp、mysql動態(tài)網(wǎng)頁制作工具配合相關(guān)技術(shù)(如HTML、CSS、JavaScript、xml等)設(shè)計要求:利用Web應(yīng)用程序的客戶端開發(fā)技術(shù)(包括Jsp、HTML、CSS、JavaScript、HTML、XML、MySql等)設(shè)計一個符合要求的Java Web數(shù)據(jù)庫應(yīng)用系統(tǒng),并實現(xiàn)用戶交互功能的設(shè)計,達(dá)到Java Web應(yīng)用程序可用性和易用性目標(biāo)。開發(fā)模式:MVC模式。MVC模式的目的就是實現(xiàn)Web系統(tǒng)的職能分工。 Model層實現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通常可以用JavaBean或EJB來實現(xiàn)。 View層用于與用戶的交互,通常用JSP來實現(xiàn)。 Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。開發(fā)工具:windows7,eclispe,jdk1.7,tomcat7.0、mysql5.53、 系統(tǒng)設(shè)計1、 系統(tǒng)特點 本系統(tǒng)嘗試從一些簡單的層面對于企業(yè)客戶信息的管理進(jìn)行一種探索,針對企業(yè)和客戶的交流行為進(jìn)行系統(tǒng)化管理,力求做到客戶信息的準(zhǔn)確、快捷和可追溯性。本系統(tǒng)包括3個主要層面,客戶信息維護(hù)、客戶來電記錄和客戶回訪記錄。2、 功能設(shè)計4個模塊(1)客戶資料信息維護(hù)模塊 客戶信息輸入、修改和刪除。(2)客戶來電信息模塊 來電信息添加和來電信息查詢。(3)客戶回訪信息模塊 回訪信息添加和回訪信息查詢。(4)客戶重要信息提示模塊用例圖UseCase3、 用戶界面草圖登錄草圖導(dǎo)航頁面草圖其它功能見后面操作效果圖4、 頁面遷移圖從頁面遷移圖中可以看出,本系統(tǒng)的頁面遷移基本上發(fā)生在模塊內(nèi)部,整體比較簡單而清晰5、 頁面功能設(shè)計所有頁面的pageId和對應(yīng)頁面的Jsp文件名及所對應(yīng)的功能4、 數(shù)據(jù)庫設(shè)計1、數(shù)據(jù)庫表(1)用戶表user(2)客戶信息表Customer(3)客戶來電表 IncomeCall(4)客戶回訪表 FeedBackCall2、數(shù)據(jù)庫操作圖5、 功能模塊的詳細(xì)設(shè)計1、程序目錄結(jié)構(gòu)圖2、數(shù)據(jù)庫訪問模塊 數(shù)據(jù)庫的設(shè)計是需要針對每個模塊而不是每個頁面進(jìn)行設(shè)置數(shù)據(jù)庫模塊,所有的數(shù)據(jù)訪問類DUser、DIncome、Dcustomer、DFeedback、DRemind從同一個父類Dcommom繼承,該父類提供了一個方法getDBConnection來獲取數(shù)據(jù)庫的鏈接。DCommon代碼public class DCommon public Connection getDBConnection( ) /嘗試連接數(shù)據(jù)庫 try /載入MySQL的JDBC驅(qū)動類 Class.forName(CommonConst.DB_DRIVER_CLASSNAME); Connectionconn=DriverManager.getConnection ( CommonConst.DB_CONN_STRING );/獲得數(shù)據(jù)庫連接 return conn; catch(Exception ex) ex.printStackTrace(); return null; 3、 共通Servlet的處理 本系統(tǒng)中一旦代碼出現(xiàn)了異常,將直接向上拋出,一直拋到共通類Servlet進(jìn)行處理。 在共通Servlet中發(fā)現(xiàn)異常,將頁面跳轉(zhuǎn)到錯誤處理頁面,并把錯誤信息在頁面上顯示出來,同時提供一個往登錄頁面遷移的鏈接。 對應(yīng)的共通Servlet的相關(guān)代碼如下:public class CommonServlet extends HttpServlet /保存各頁面Id對應(yīng)的action類的對象 private Hashtable hPageHandler = new Hashtable(); /配置文件的存放位置 private JXPathContext configContext = null; public void init() /取得配置文件,并獲得其中的dom元素 String filePath = getInitParameter(configXML); String fileRealPath = getServletContext().getRealPath(filePath); /嘗試建立配置文件的DOM try org.jdom.input.SAXBuilder builder = new SAXBuilder(); org.jdom.Document pDoc = builder.build(fileRealPath ); configContext = JXPathContext.newContext(pDoc); GlobalObjectProvider.init( configContext ); catch(Exception e) System.out.println(Servlet初始化失?。?; /初始化共通類以獲取頁面信息 CommonConst.init(); /每一種動作第一次執(zhí)行的時候,初始化對應(yīng)的類 public void doPost ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException /設(shè)置提交表單的中文編碼 request.setCharacterEncoding(GBK); HttpSession mySession = request.getSession(true); /得到用戶輸入信息 String sPageId = request.getParameter(pageId); String sActionId = request.getParameter(actionId); if ( sPageId = null | sPageId.equals() | sActionId = null | sActionId.equals() ) /非法進(jìn)入頁面,跳轉(zhuǎn)到首頁 mySession.invalidate(); response.sendRedirect(./login.jsp); return; /如果非法進(jìn)入頁面(登錄頁面除外) if ( !sPageId.equals(S001) & mySession.getAttribute(loginUser) = null ) /非法進(jìn)入頁面,跳轉(zhuǎn)到首頁 mySession.invalidate(); response.sendRedirect(./login.jsp); return; try /根據(jù)pageId獲得處理對象,如果沒有則創(chuàng)建一個對象 Object oActionObject = hPageHandler.get( sPageId ); if ( oActionObject = null ) /根據(jù)配置文件創(chuàng)建一個新對象 String sClassName = (String)configContext.getValue( ch08-config/pageid=+sPageId+/className); oActionObject = Class.forName( sClassName ).newInstance(); hPageHandler.put( sPageId, oActionObject); /取得方法名 String sMethodName = (String)configContext.getValue( ch08-config/pageid=+sPageId+/actionid=+sActionId+/methodName); /生成對應(yīng)的參數(shù),并調(diào)用對應(yīng)對象的對應(yīng)方法 /inputData是根據(jù)傳入的參數(shù)做成的 Hashtable inputData = new Hashtable(); Enumeration params = request.getParameterNames(); while( params.hasMoreElements() String sParaName = (String)params.nextElement(); inputData.put( sParaName, request.getParameter(sParaName) ); /outputData是下一個頁面的值域,在此只是被初始化 Hashtable outputData = new Hashtable(); /生成參數(shù)列表 Class paraType = Class.forName(java.util.Hashtable), Class.forName(java.util.Hashtable), Class.forName(javax.servlet.http.HttpSession) ; Object paraObj = inputData, outputData, mySession ; /生成Method對象 Method invokeMethod = oActionObject.getClass().getMethod( sMethodName, paraType ); /調(diào)用方法 invokeMethod.invoke( oActionObject, paraObj ); /根據(jù)outputData的結(jié)果決定下一個頁面 String sNextPageId = (String)outputData.get(pageId); String sRealPagePath = (String)configContext.getValue( ch08-config/pageid=+sNextPageId+/path); /設(shè)置下一個頁面的值域 mySession.setAttribute( sNextPageId, outputData ); response.sendRedirect( sRealPagePath ); return; catch(Exception e) /頁面處理出錯,跳轉(zhuǎn)到錯誤處理頁面 e.printStackTrace(); Hashtable outputData = new Hashtable(); outputData.put( exception, e ); /設(shè)置錯誤頁面的值域 mySession.setAttribute( CommonConst.VIEWID_ERROR, outputData ); response.sendRedirect(./error.jsp); return; public void doGet ( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException doPost( request, response ); 錯誤頁面:4、 登錄模塊由于本系統(tǒng)用戶角色只有一種,不存在跳轉(zhuǎn)到不同頁面的問題,處理相對簡單一些,如果用戶登錄成功,則將用戶信息放到session中,并將頁面跳轉(zhuǎn)到導(dǎo)航頁面。(1)登錄頁面控制模塊ALogin相關(guān)代碼如下:public class ALogin public void doLogin ( Hashtable inputData, Hashtable outputData, HttpSession mySession ) throws Exception /獲取輸入信息 String sUsername = (String)inputData.get(username); String sPassword = (String)inputData.get(password); /校驗用戶輸入信息 LUser lUser = (LUser)GlobalObjectProvider.getLogicService(CommonConst.LOGIC_KEY_USER); /如果對應(yīng)的類沒有的話,報錯并返回login頁面 if ( lUser = null ) throw new Exception(發(fā)生了內(nèi)部錯誤,請聯(lián)系技術(shù)人員! ); /獲取用戶信息 User userInfo = lUser.getUserInfo( sUsername, sPassword ); if ( userInfo = null ) outputData.put( pageId, CommonConst.VIEWID_LOGIN ); outputData.put( errMsg, 用戶名密碼檢查失?。≌堉匦螺斎?。 ); outputData.put( username, sUsername ); return; else outputData.put( pageId, CommonConst.VIEWID_MENU); /往session中設(shè)置用戶信息 mySession.setAttribute( loginUser, userInfo ); return; (2) 登錄效果圖5、 頁面導(dǎo)航設(shè)計(1)頁面位置信息和頁面的pageid息息相關(guān),考慮用一個全局變量來存這個信息,然后通過在共通文件中來訪問這個全局變量來獲取對應(yīng)頁面的名稱。為了達(dá)到這個目的設(shè)置一個成員變量pageinfo和對應(yīng)的設(shè)置方法init(),對應(yīng)代碼如下: public static Hashtable pageInfos = new Hashtable(); /數(shù)據(jù)庫相關(guān)常量 public static String DB_DRIVER_CLASSNAME = com.mysql.jdbc.Driver; public static String DB_CONN_STRING = jdbc:mysql:/localhost/ch08?user=root&password=123; /初始化 public static void init() pageInfos.put(S002,目錄頁面); pageInfos.put(S110,客戶資料 客戶資料錄入頁面); pageInfos.put(S120,客戶資料 客戶資料修改一覽頁面); pageInfos.put(S121,客戶資料 客戶資料修改詳細(xì)頁面); pageInfos.put(S130,客戶資料 客戶資料刪除頁面); pageInfos.put(S210,客戶來電 快速反應(yīng)條件輸入頁面); pageInfos.put(S211,客戶來電 快速反應(yīng)結(jié)果一覽頁面); pageInfos.put(S220,客戶來電 客戶來電信息添加頁面); pageInfos.put(S230,客戶來電 客戶來電信息查找頁面); pageInfos.put(S231,客戶來電 客戶來電信息一覽頁面); pageInfos.put(S232,客戶來電 客戶來電信息詳細(xì)頁面); pageInfos.put(S310,客戶回訪 客戶回訪信息添加頁面); pageInfos.put(S320,客戶回訪 客戶回訪信息查找頁面); pageInfos.put(S321,客戶回訪 客戶回訪信息一覽頁面); pageInfos.put(S322,客戶回訪 客戶回訪信息詳細(xì)頁面); pageInfos.put(S410,客戶重要信息提醒頁面); /獲得頁面信息 public static String getPageInfo( String sPageId ) return (String)pageInfos.get(sPageId); (2) 頁面外觀設(shè)計 為四個模塊設(shè)計不同顏色風(fēng)格的CSS代碼.tr_head1 color: black; background-color:#aaccaa;.tr_content1 color: black; background-color:#eeffee; cursor:hand;.tr_head2 color: black; background-color:#ccaaaa;.tr_content2 color: black; background-color:#ffeeee; cursor:hand;.tr_head3 color: black; background-color:#aaaacc;.tr_content3 color: black; background-color:#eeeeff; cursor:hand;.tr_head4 color: black; background-color:#ccccaa;.tr_content4 color: black; background-color:#ffffee; cursor:hand;(3) 導(dǎo)航頁效果圖5、 客戶資料維護(hù)模塊(1) 客戶資料錄入 單擊導(dǎo)航頁面鏈接進(jìn)入客戶資料錄入頁面。注意兩個方面:一是頁面對應(yīng)的顯示元素和輸入元素的顏色和當(dāng)前模塊的顏色想吻合,而是在用戶輸入信息并單擊“登錄”按鈕時,將客戶信息登入數(shù)據(jù)庫,然后頁面直接轉(zhuǎn)入修改一覽。頁面控制類ACustomerAdd:public class ACustomerAdd /追加一個客戶 public void doRegister( Hashtable inputData, Hashtable outputData, HttpSession mySession ) throws Exception /首先獲得要追加的客戶詳細(xì)信息 String sRealname = (String)inputData.get(realname); String sSex = (String)inputData.get(sex); String sBirthday = (String)inputData.get(birthday); String sPhone = (String)inputData.get(phone); String sCellphone = (String)inputData.get(cellphone); String sAddress = (String)inputData.get(address); String sStartDate = (String)inputData.get(startDate); String sMemo = (String)inputData.get(memo); /生成一個Customer對象以調(diào)用 Customer customer = new Customer(); customer.setRealname( sRealname ); customer.setSex( sSex ); customer.setBirthday( sBirthday ); customer.setPhone( sPhone ); customer.setCellphone( sCellphone ); customer.setAddress( sAddress ); customer.setStartDate( sStartDate ); customer.setMemo( sMemo ); /調(diào)用對應(yīng)的logic類 LCustomer lCustomer = (LCustomer)GlobalObjectProvider.getLogicService(CommonConst.LOGIC_KEY_CUSTOMER); /添加對應(yīng)的記錄 lCustomer.addCustomer( customer ); /然后重新檢索,并將頁面遷移到一覽頁面 Vector vCustomers = lCustomer.getAllCustomer(); outputData.put( pageId, CommonConst.VIEWID_CUSTOMER_LIST); /往值域中設(shè)置當(dāng)前位置信息 mySession.setAttribute(customers, vCustomers ); outputData.put( pageIndex, new Integer(0) ); return; 效果圖:(2) 客戶資料修改public class ACustomerModify /修改一個客戶信息 public void doRegister( Hashtable inputData, Hashtable outputData, HttpSession mySession ) throws Exception /首先獲得要修改的客戶詳細(xì)信息 String sCustomerId = (String)inputData.get(customerId); String sRealname = (String)inputData.get(realname); String sSex = (String)inputData.get(sex); String sBirthday = (String)inputData.get(birthday); String sPhone = (String)inputData.get(phone); String sCellphone = (String)inputData.get(cellphone); String sAddress = (String)inputData.get(address); String sStartDate = (String)inputData.get(startDate); String sMemo = (String)inputData.get(memo); /生成一個Customer對象以調(diào)用 Customer customer = new Customer(); customer.setCustomerId( sCustomerId ); customer.setRealname( sRealname ); customer.setSex( sSex ); customer.setBirthday( sBirthday ); customer.setPhone( sPhone ); customer.setCellphone( sCellphone ); customer.setAddress( sAddress ); customer.setStartDate( sStartDate ); customer.setMemo( sMemo ); /調(diào)用對應(yīng)的logic類 LCustomer lCustomer = (LCustomer)GlobalObjectProvider.getLogicService(CommonConst.LOGIC_KEY_CUSTOMER); /添加對應(yīng)的記錄 lCustomer.modifyCustomer( customer ); /然后重新檢索,并將頁面遷移到一覽頁面 Vector vCustomers = lCustomer.getAllCustomer(); outputData.put( pageId, CommonConst.VIEWID_CUSTOMER_LIST); /往值域中設(shè)置當(dāng)前位置信息 mySession.setAttribute(customers, vCustomers ); outputData.put( pageIndex, new Integer(0) ); return; (3) 客戶資料刪除public class ACustomerDelete /到首頁 public void doFirst( Hashtable inputData, Hashtable outputData, HttpSession mySession ) throws Exception /首頁的index一定為0 outputData.put( pageId, CommonConst.VIEWID_CUSTOMER_DELETE); /往值域中設(shè)置當(dāng)前位置信息 outputData.put( pageIndex, new Integer(0) ); return; /到末頁 public void doLast( Hashtable inputData, Hashtable outputData, HttpSession mySession ) throws Exception /首先獲得全部客戶信息,并計算出最后一頁的位置 Vector allCustomers = (Vector)mySession.getAttribute(customers); int iMax = allCustomers.size(); int iMaxPage = (int)Math.ceil(double)iMax/20); int iIndex = (iMaxPage-1)*20; /首頁的index一定為0 outputData.put( pageId, CommonConst.VIEWID_CUSTOMER_DELETE); /往值域中設(shè)置當(dāng)前位置信息 outputData.put( pageIndex, new Integer(iIndex) ); return; /到前頁 public void doPrev( Hashtable inputData, Hashtable outputData, HttpSession mySession ) throws Exception /首先獲得當(dāng)前頁 String sCurPage = (String)inputData.get(curPage); int iCurPage = (new Integer(sCurPage).intValue(); int iIndex = (iCurPage-2)*20; outputData.put( pageId, CommonConst.VIEWID_CUSTOMER_DELETE); /往值域中設(shè)置當(dāng)前位置信息 outputData.put( pageIndex, new Integer(iIndex) ); return; /到次頁 public void doNext( Hashtable inputData, Hashtable outputData, HttpSession mySession ) throws Exception /首先獲得當(dāng)前頁 String sCurPage = (String)inputData.get(curPage); int iCurPage = (new Integer(sCurPage).intValue(); int iIndex = iCurPage*20; outputData.put( pageId, CommonConst.VIEWID_CUSTOMER_DELETE); /往值域中設(shè)置當(dāng)前位置信息 outputData.put( pageIndex, new Integer(iIndex) ); return; /到首頁 public void doSpec( Hashtable inputData, Hashtable outputData, HttpSession mySession ) throws Exception /首先獲得指定頁碼 String sSpecPage = (String)inputData.get(spec); /獲得全部客戶信息,并計算出最后一頁的位置 Vector allCustomers = (Vector)mySession.getAttribute(customers); int iMax = allCustomers.size(); int iMaxPage = (int)Math.ceil(double)iMax/20); int iSpec = (new Integer(sSpecPage).intValue(); /如果指定頁大于全部頁碼,則跳轉(zhuǎn)到第一頁 if ( iSpec iMaxPag
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 桶裝油管理管理制度
- 實驗室安全管理制度
- 城市高血壓管理制度
- 戲曲廳使用管理制度
- 大學(xué)項目組管理制度
- 學(xué)校舞蹈室管理制度
- 第四章籃球運球轉(zhuǎn)身課件-人教版初中體育與健康九年級全一冊
- Unit3Careersandskills詞塊課件-高中英語牛津譯林版(2020)選擇性
- 2025年中國3C產(chǎn)品項目創(chuàng)業(yè)計劃書
- 勵磁系統(tǒng)事故典型案例分析
- 牛頓-拉夫遜潮流計算的程序設(shè)計
- 工藝工程師職業(yè)生涯規(guī)劃及目標(biāo)
- 市政工程施工安全臺帳范本12本(含內(nèi)容)
- 同聲傳譯考試大綱
- 初中英語2023年中考專題訓(xùn)練任務(wù)型閱讀-判斷正誤篇
- 2022年江西南昌高新技術(shù)產(chǎn)業(yè)開發(fā)區(qū)人民檢察院聘用制檢察輔助人員招聘考試真題
- 小學(xué)安全隱患排查表
- 測控電路課程設(shè)計報告-信號采集調(diào)理電路的設(shè)計【完整版】
- 銀行業(yè)法律法規(guī)與綜合能力經(jīng)濟(jì)基礎(chǔ)知識課
- 套管開窗側(cè)鉆技術(shù)
- 2023-2024學(xué)年山西省長治市小學(xué)語文五年級期末模考題詳細(xì)參考答案解析
評論
0/150
提交評論