華林會員登錄系統(tǒng) 會員登錄系統(tǒng)
《華林會員登錄系統(tǒng) 會員登錄系統(tǒng)》由會員分享,可在線閱讀,更多相關《華林會員登錄系統(tǒng) 會員登錄系統(tǒng)(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、華林會員登錄系統(tǒng) 會員登錄系統(tǒng) 華林會員登錄系統(tǒng) 會員登錄系統(tǒng) 重慶三峽學院驗證體系xx 題 目:會員注冊登錄系統(tǒng) 專 業(yè):計算科學與技術 年 級:x級 學 號:x06024129 作 者:唐承蘭 完成時間:x年5月 會員注冊登錄系統(tǒng) 目 錄 摘 要 ................................................................................ 2 1 設計主要任務.............................
2、............................................. 3 2 會員管理系統(tǒng)需求概述.................................................................. 3 2.1會員管理系統(tǒng)需求模型 ................................................................ 3 2.1.1功能描述 .......................................................................... 3 2.1
3、.2總體結(jié)構(gòu)圖 ....................................................................... 4 2.1.3數(shù)據(jù)字典的描述 .................................................................... 4 2.2 會員注冊登錄系統(tǒng)的數(shù)據(jù)流程圖........................................................ 5 3. 總體設計 .................................................
4、........................... 5 3.1 數(shù)據(jù)庫設計.......................................................................... 5 3.1.1數(shù)據(jù)庫設計概述 .................................................................... 5 3.1.2會員信息表結(jié)構(gòu)設計 ................................................................ 6 4.程序設計與編碼 ........
5、............................................................... 6 4.1開發(fā)平臺與工具 ...................................................................... 6 4.2程序設計 ............................................................................ 6 4.2.1登錄模塊程序設計 .................................................
6、................. 6 登錄模塊程序設計 ................................................................ 6 會員注冊功能模塊 ................................................................ 7 管理員登錄界面 .................................................................. 8 .1會員管理界面 ..........................................
7、........................ 9 普通會員登錄界面 ............................................................... 10 個人中心 ....................................................................... 10 4.2.1.6部分代碼展示 .................................................................. 11 5.1 工作成果.........................
8、.................................................. 25 5.2收獲體會 ........................................................................... 25 摘 要 隨著科學技術的進步,計算機行業(yè)的迅速發(fā)展,大大提高人們的工作效率。計算機信息處理系統(tǒng)的引進已徹底改變了許多系統(tǒng)的經(jīng)營管理 。 會員管理系統(tǒng)是管理機制中的重要組成部分,通過對會員管理系統(tǒng)的運行管理機制進行調(diào)查研究,開發(fā)了此系統(tǒng)。本系統(tǒng)中包含6個功能模塊:會員登錄,會員注冊,修改會員信息,刪除會員
9、信息,查詢會員信息。 本系統(tǒng)使有Jsp進行網(wǎng)頁界面的設計,本系統(tǒng)中通過JDBC驅(qū)動和數(shù)據(jù)庫進行無縫連接,后端的數(shù)據(jù)庫是Nagetive for Mysql,也是一個開源的數(shù)據(jù)庫系統(tǒng),該數(shù)據(jù)庫具有較高的完整性,一致性和安全性。 關鍵詞:會員管理;信息管理;Jsp;Nagetive for Mysql 1 設計主要任務 1.實現(xiàn)對會員的信息的查詢。 2.建立會員信息數(shù)據(jù)庫,方便管理人員對會員進行有效管理。 3.實現(xiàn)數(shù)據(jù)庫對新會員信息的添加。 4實現(xiàn)數(shù)據(jù)庫對新會員信息的修改。 5注銷退出會員注冊登錄系統(tǒng)。 2 會員管理系統(tǒng)需求概述 手工操作還十分落后,效率極低
10、,成本很大,以后的社會是信息的社會,信息只有快,準,精才能發(fā)揮其價值。所以機器代替人力是必然的歷史發(fā)展趨勢,只有領導的重視和支持才能從人工操作改為計算機的自動化系統(tǒng)。人工操作必將被計算機代替。 2.1會員管理系統(tǒng)需求模型 2.1.1功能描述 會員管理系統(tǒng)的主要任務是實現(xiàn)會員注冊、查詢和修改,從圖2.1可以看出會員管理系統(tǒng)要完成以下功能: 1. 登錄 會員進入該系統(tǒng)必須登錄,身份驗證正確了才可以進入該系統(tǒng)。如不是會員則必須注冊新會員才能登錄。 2.注冊 如果用戶沒有ID、密碼可以登錄,可以先注冊,注冊成功以后再由登錄頁面登錄。 3. 系統(tǒng)設置功能 每個會員登錄
11、后可查看所有會員信息,但是僅可修改個人信息以及密碼。 4.會員管理功能 對會員進行修改,刪除等操作,該功能只對管理員開放。 5.單個查詢功能 對會員的信息進行單個查詢。 2.1.2總體結(jié)構(gòu)圖 2.1.3數(shù)據(jù)字典的描述 會員信息表的數(shù)據(jù)字典的描述 卡片2: 卡片3: 2.2 會員注冊登錄系統(tǒng)的數(shù)據(jù)流程圖 3. 總體設計 3.1 數(shù)據(jù)庫設計 3.1.1數(shù)據(jù)庫設計概述 數(shù)據(jù)庫是整個系統(tǒng)的基石,數(shù)據(jù)庫的設計優(yōu)劣直接影響到整個系統(tǒng)的設計成敗,本節(jié)對數(shù)據(jù)庫的設計進行專門闡述。 數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術。十多年來數(shù)據(jù)庫管理系統(tǒng)已從專用的應用程序發(fā)
12、展成為通用的系統(tǒng)軟件。由于數(shù)據(jù)庫具有數(shù)據(jù)結(jié)構(gòu)化,最低冗余度,較高的程序與數(shù)據(jù)獨立性,易于擴充,易于編制應用程序等優(yōu)點,較大的信息系統(tǒng)都是建立在數(shù)據(jù)庫設計之上的。因此不僅大型計算機及中小型計算機,甚至微型機都配有數(shù)據(jù)庫管理系統(tǒng)[6]。 數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序為中心轉(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段。這樣既便于數(shù)據(jù)的集中管理,又有利于應用程序的研制和維護,提高了數(shù)據(jù)的利用性和相容性,提高了決策的可靠性。目前,數(shù)據(jù)庫已經(jīng)成為現(xiàn)代信息系統(tǒng)不可分割的重要組成部分。數(shù)據(jù)庫技術也是計算機領域中發(fā)展最快的技術之一。 數(shù)據(jù)庫設計是把現(xiàn)實世界的實體模型與需求轉(zhuǎn)換成數(shù)據(jù)庫的模型的過程,
13、它是建立數(shù)據(jù)庫應用系統(tǒng)的核心問題。數(shù)據(jù)庫及其應用的性能都建立在良好的數(shù)據(jù)庫設計的基礎之上,數(shù)據(jù)庫的數(shù)據(jù)是一切操作的基礎,如果數(shù)據(jù)庫設計不好,那么其它一切用于提高數(shù)據(jù) [5] 庫性能的方法收效都是有限的。數(shù)據(jù)庫設計的關鍵是如何使設計的數(shù)據(jù)庫能合理地存儲用戶的數(shù)據(jù),方便用戶進行數(shù)據(jù)處理[6]。 設計數(shù)據(jù)庫必須遵循一定的規(guī)則,在關系型數(shù)據(jù)庫中,這種規(guī)則就是范式,范式是符合某一種級別的關系模式的集合。一般人們設計數(shù)據(jù)庫遵循第三范式。即:數(shù)據(jù)庫表中不包含已在其他表中包含的非主關鍵字信息。采用范式減少了數(shù)據(jù)冗余,節(jié)約了存儲空間,同時加快了增、刪、改的速度。 [6] 3.1.2會員信息表
14、結(jié)構(gòu)設計 會員信息表的設計是為了管理員對會員進行管理,表的具體結(jié)構(gòu)設計如下 : 4.程序設計與編碼 4.1開發(fā)平臺與工具 表4.1 系統(tǒng)開發(fā)平臺和工具 工具名稱 JDK 1.6.0_20 MyEclipse MySQL 5.0 Tomcat 6.0 用途 Java 開發(fā)工具包 J2EE集成開發(fā)環(huán)境 小型關系數(shù)據(jù)庫管理系統(tǒng) Web應用服務器 4.2程序設計 4.2.1登錄模塊程序設計 登錄模塊程序設計 本模塊主要是用戶通過會員注冊登錄系統(tǒng)的登錄界面進入該系統(tǒng)。用戶輸入正確的用戶名和密碼,系統(tǒng)會根據(jù)用戶的身份進行相應權限劃分;如果登錄信息有錯誤,則
15、系統(tǒng)提示登入錯誤的信息,并且返回登錄界面重新輸入。如果沒有該系統(tǒng)的可用ID,可選擇下方的“新用戶注冊”進行注冊。會員管理系統(tǒng)的登錄主頁面如圖4.1所示。 圖4.1 會員注冊登錄系統(tǒng)登錄頁面 用戶在登錄頁面寫好用戶名和密碼,選擇登錄,登錄成功則跳轉(zhuǎn)到系統(tǒng)的首頁,否則提示錯誤信息(如上圖),點擊確定返回登錄界面。 會員注冊功能模塊 本模塊主要針對于第一次使用本系統(tǒng)的用戶開設。方便首次使用者擁有合法有效的登錄賬戶。界面如下: 輸入可用的用戶ID,進行注冊,其中電話號碼,身份證等有格式要求,如果輸入格式錯誤則彈出出錯提示: 為空類型的輸入提示(列舉,未全部截圖): 格式輸入
16、錯誤提示: 添加成功出現(xiàn)“添加信息成功”提示,點擊確定返回登錄界面進行登錄。如果ID重復則出現(xiàn)“添加信息失敗”提示: 管理員登錄界面 右上角顯示了本次登錄用戶的姓名,以方便用戶確認自己是否登錄錯誤,首頁界面為一個flash圖片展示頁面。具體如下: .1會員管理界面 會員信息一覽表——查看所有已存在用戶的基本信息: 會員編輯——管理員可以對系統(tǒng)注冊會員信息進行編輯,刪除操作。如圖: 修改——管理員可以對會員基本信息進行修改,修改成功則顯示“修改成功”提示,否則顯示“修改失敗”提示,點擊“確定”返回“用戶編輯”頁面。如圖: 刪除——刪除會員,操作界面不會再顯示,但是
17、在數(shù)據(jù)庫中仍然可以查看,方便數(shù)據(jù)管理。如果該用戶為管理員則不能顯示。具體如圖: 普通會員登錄界面 普通會員只有瀏覽會員信息的功能,界面同管理員瀏覽界面相同,在此不再展示。首頁只有左側(cè)管理界面不同: 個人中心 修改個人信息,修改對象為當前登錄用戶: 修改密碼: 退出系統(tǒng),點擊“確定”跳轉(zhuǎn)登錄頁面: 4.2.1.6部分代碼展示 數(shù)據(jù)庫連接: public class SQLConn { public static Connection getConn{ try { String sql = // 加載驅(qū)動 Class.forName(
18、} public static void closeConn(Connection conn) { if(conn!=null) { try { conn.close; } catch (Exception e) { e.printStackTrace;} } } public static void closePre(PreparedStatement pre) { if (pre!=null) { try { pre.close; } catch (Exception e) { e.printStackTrace; } } } public
19、 static void closeRes(ResultSet res) { if (res!=null) { try { res.close; } catch (Exception e) { e.printStackTrace;} } }} 接口: public interface UserInfoDAO { public void addUserInfo(UserInfo user) throws Exception; public void updateUserInfo(UserInfo user) throws Exception; publi
20、c void deleteInfo(int userId) throws Exception; public List getAllUserInfo(String sql) throws Exception; public UserInfo getUserInfo(int userId)throws Exception; } 方法: public class UserInfoDAOImpl implements UserInfoDAO { private Connection conn; public void addUserInfo(UserInfo use
21、r) throws Exception { String sql= } //實例 PreparedStatement pre=conn.prepareStatement(sql); pre.setInt(1, userId); //執(zhí)行sql int i=pre.executeUpdate; if (i getAllUserInfo(String sql) throws Exception { //實例 PreparedStatement pre=null; //結(jié)果集 ResultSet res=null; try
22、 { pre=conn.prepareStatement(sql); res=pre.executeQuery; List list=new ArrayList; while(res.next) { } UserInfo user=new UserInfo; user.setUserId(res.getInt( public UserInfo getUserInfo(int userId) throws Exception { PreparedStatement pre=null;
23、 ResultSet res=null; try { String sql= pre.setString(6, user.getGraSchool); pre.setString(7, user.getIdCard); pre.setInt(8, user.getPassWord); pre.setString(9, user.getUserSex); pre.setInt(10, user.getUserId); //執(zhí)行sql int i=pre.executeUpdate; if (ipublic void setCon
24、n(Connection conn) {this.conn = conn;}} 實體類: public class UserInfo { private Integer userId; private int roleId; private String userName; private String userSex; private int userAge; private String marriage; private Integer userTel; private String userAddr; private Stri
25、ng idCard; private int passWord; private int userState; public Integer getUserId {return userId;} public void setUserId(Integer userId) {this.userId = userId;} public String getUserName {return userName;} public void setUserName(String userName) {this.userName = userName;} public String getUserS
26、ex {turn userSex;} public void setUserSex(String userSex) {this.userSex = userSex;} public int getUserAge {return userAge;} public void setUserAge(int userAge) {this.userAge = userAge;} public String getMarriage {return marriage;} public void setMarriage(String marriage) {this.marriage = marriage;}
27、public Integer getUserTel {return userTel;} public void setUserTel(Integer userTel) {this.userTel = userTel;} public String getUserAddr {return userAddr;} public void setUserAddr(String userAddr) {this.userAddr = userAddr;} public String getGraSchool { return graSchool;} public void setGraSchool(Str
28、ing graSchool) {s.graSchool = graSchool;} public String getIdCard { return idCard;} public void setIdCard(String idCard) {this.idCard = idCard;} public int getPassWord { return passWord; } public void setPassWord(int passWord) { } public int getUserState {return userState;} public void setUserSta
29、te(int userState) { } public int getRoleId {return roleId;} public void setRoleId(int roleId) { this.roleId = roleId;}} this.userState = userState; this.passWord = passWord; ?。螅澹颍觯椋悖澹? public interface UserInfoService { } ?。螅澹颍觯椋悖逭{(diào)用: public class UserInfoServiceImpl implements UserInfoServi
30、ce{ //數(shù)據(jù)訪問實現(xiàn)類 UserInfoDAOImpl dao=new UserInfoDAOImpl; /** * 添加員工信息 */ public boolean addUser(UserInfo user) { } /** * 刪除員工信息 */ public boolean delUser(String userId) { Connection conn=null; try { Connection conn=null; try { conn=SQLConn.getConn; dao.setConn(conn); UserInf
31、o puser=dao.getUserInfo(user.getUserId); if(puser==null) { dao.addUserInfo(user); return true;} public boolean addUser(UserInfo user); public List getAllUser(UserInfo user); public boolean updateUser(UserInfo user); public boolean delUser(String userId); public UserInfo getUserInfo(Integer userId)
32、; } catch (Exception e) { e.printStackTrace;} SQLConn.closeConn(conn); return false; } //獲取數(shù)據(jù)庫連接 conn=SQLConn.getConn; //連接數(shù)據(jù)庫 dao.setConn(conn); dao.deleteInfo(Integer.parseInt(userId)); return true; } catch (Exception e) { e.printStackTrace; } return false; /** * 獲取多人信息 */ public List g
33、etAllUser(UserInfo user) { } /** * 修改員工信息 */ public boolean updateUser(UserInfo user) { Connection conn=null; try { //獲取數(shù)據(jù)庫連接 conn=SQLConn.getConn; //連接數(shù)據(jù)庫 dao.setConn(conn); UserInfo puser=dao.getUserInfo(user.getUserId); if (puser!=null) { puser.setUser
34、Name(user.getUserName); puser.setUserSex(user.getUserSex); puser.setUserAge(user.getUserAge); puser.setMarriage(user.getMarriage); puser.setUserTel(user.getUserTel); //獲取數(shù)據(jù)庫連接 Connection conn=SQLConn.getConn; dao.setConn(conn); try {String sql= } puser.setGraSchool(user.getGraSchool); puser.setPa
35、ssWord(user.getPassWord); puser.setIdCard(user.getIdCard); dao.updateUserInfo(puser); return true; } catch (Exception e) { e.printStackTrace; } SQLConn.closeConn(conn); return false;} /** * 獲取單個員工信息 */ public UserInfo getUserInfo(Integer userId) { Connection conn=null; try { //獲取數(shù)據(jù)庫連接
36、 conn=SQLConn.getConn; dao.setConn(conn); return dao.getUserInfo(userId); } catch (Exception e) { e.printStackTrace; } return null; } ?。螅澹颍觯欤澹簦? 登錄: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 中文 reques
37、t.setCharacterEncoding( int r=use.getRoleId; String m=use.getUserName; // 獲取session HttpSession a = request.getSession; a.setAttribute( 修改密碼: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 中文 request.setCharacterEncoding
38、( || ( {request.getRequestDispatcher( response);} else { UserInfo use = service.getUserInfo(Integer.parseInt(userId.trim)); int q = use.getPassWord; int r=use.getRoleId; String m=use.getUserName; // 獲取session HttpSession a = request.getSession; int pwd = 0; try { pwd = Integer.parseInt(pa
39、ssWord.trim); } catch (Exception e) { e.printStackTrace;} UserInfo user = new UserInfo; try {user.setUserId(Integer.parseInt(userId.trim)); } catch (Exception e) {System.out.println( user.setIdCard(idCard); user.setUserSex(userSex); System.out.println(userSex); user.setUserId(Integer.parseInt
40、(userId)); user.setUserAge(Integer.parseInt(userAge)); user.setUserTel(Integer.parseInt(userTel)); user.setPassWord(Integer.parseInt(passWord)); try { } catch (Exception e) { System.out.println( }} request.getRequestDispatcher( 注冊: public void doGet(HttpServletRequest request, HttpServletRespo
41、nse response) throws ServletException, IOException { //中文 request.setCharacterEncoding( user.setUserAddr(userAddr); try { user.setUserId(Integer.parseInt(userId)); user.setUserAge(Integer.parseInt(userAge)); user.setPassWord(Integer.parseInt(passWord)); user.setUserTel(Integer.parseInt(u
42、serTel)); } catch (Exception e) { System.out.println( 瀏覽: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding( request.getRequestDispatcher( public void doPost(HttpServletRequest request, HttpSe
43、rvletResponse response) throws ServletException, IOException { //中文 request.setCharacterEncoding( 會員信息修改: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //中文 request.setCharacterEncoding( if (mark
44、) { request.setAttribute( } } 刪除會員信息: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //中文 request.setCharacterEncoding( UserInfoService service=new UserInfoServiceImpl; String userId=request.getParameter( User
45、Info use = service.getUserInfo(Integer.parseInt(userId.trim)); int r=use.getRoleId; if(r==2){ request.setAttribute( }else{ boolean mark=service.delUser(userId); if (mark) { request.setAttribute( else {request.setAttribute( } request.getRequestDispatcher( 過濾器: package util.sqlco
46、nn; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletReq
47、uest; import javax.servlet.http.HttpSession; public class LoginFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain filter) throws IOException, ServletException { request.setCharacterEncoding( HttpServletRequest re=(HttpServletRequ
48、est)request; HttpSession session=re.getSession; }} if( if(re.getRequestURI.toString.indexOf( filter.doFilter(request,response); filter.doFilter(request,response); }else if(userId!=null !userId.equals( 5.結(jié)束語 5.1 工作成果 在MyEclipse開發(fā)環(huán)境下,以J2EE為平臺,運用JSP網(wǎng)絡編程語言和Struts框架和MySQL數(shù)據(jù)庫基本完成了會員管理系統(tǒng)的一
49、些基本內(nèi)容。系統(tǒng)基本上實現(xiàn)了預期的各項功能,整個系統(tǒng)也在經(jīng)過測試和不斷地改正之后能夠順利運行。該系統(tǒng)能夠?qū)崿F(xiàn):管理人員能夠?qū)崿F(xiàn)方便的對會員進行查詢,方便的進行會員信息情況查詢,便捷的對會員進行添加、修改、刪除等操作,對會員信息進行相關添加,修改等操作。 5.2收獲體會 經(jīng)過不斷學習和設計開發(fā)加上老師同學的幫助,終于完成了這次實訓“會員注冊登錄系統(tǒng)”的基本功能,在開發(fā)過程我們進一步學習了Java的基礎語法,和一些網(wǎng)頁設計美工方面的知識,以便使系統(tǒng)有更好的美觀性,在編寫過程中也規(guī)范了許多編碼習慣,數(shù)據(jù)庫設計階段我嘗試了幾個不同版本的數(shù)據(jù)庫,它們在配置操作上各有不同,又各有優(yōu)缺點,在它們的一些基本操作上也有了進一步提高。在配置開發(fā)工具過程中對Tomcat和MyEclipse的連接部署有了清晰地認識, 對開發(fā)Web程序的步驟框架頁有了總體性認識。 在整個系統(tǒng)開發(fā)的過程中,我學到了很多新的知識,以前學過的許多知識點在運用過程中也有了更為深入的分析,在這個過程中也體會到如何將書本知識轉(zhuǎn)化到實際應用中. 百度搜索“就愛閱讀”,專業(yè)資料,生活學習,盡在就愛閱讀網(wǎng)92,您的在線圖書館 1
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代文閱讀之小說人物形象課件
- 3第12課蘇東的艱難探索
- 《第二節(jié)--探究環(huán)境污染對生物的影響》課件-(同課異構(gòu))2022年課件
- 牛津譯林版七下英語7bunit1dreamhomesreading課件1
- 六年級語文《一個這樣的老師》教學課件
- 六年級安全教育-運動的自我監(jiān)控課件
- 五年級下冊數(shù)學優(yōu)秀教學課件《解決問題》人教新課標
- 27清澈的湖水 (2)
- 49稍復雜的分數(shù)乘法應用題練習
- 江蘇省高考物理二輪復習專題一力與物體的平衡課件
- 小松鼠找花生課件(教育精品)
- 22跨越海峽的生命橋 (2)
- 人力資源環(huán)境分析
- 《空氣》課件-(省優(yōu))2022年人教版化學課件-2
- 鐵路與城市軌道交通振動與噪聲