聊天管理系統(tǒng)設(shè)計與實現(xiàn)_第1頁
聊天管理系統(tǒng)設(shè)計與實現(xiàn)_第2頁
聊天管理系統(tǒng)設(shè)計與實現(xiàn)_第3頁
聊天管理系統(tǒng)設(shè)計與實現(xiàn)_第4頁
聊天管理系統(tǒng)設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

客戶端用戶注冊用戶登錄分組管理客戶端用戶注冊用戶登錄分組管理好友管理查詢用戶即時通訊閑聊記錄圖3-3系統(tǒng)功能設(shè)計圖3.2.1用戶注冊模塊用戶須要正確填寫自己的用戶名、密碼、真實姓名、性別、特性簽名等信息,假如用戶名合法且未被占用,則可以注冊成功。用戶注冊如圖3-4所示。圖3-4用戶注冊流程圖3.2.2用戶登錄模塊用戶須要正確填寫自己的用戶名、密碼,假如驗證成功,則可以進入到JQQ即時通訊系統(tǒng)主面板,和在線好友進行即時通訊。用戶登錄如圖3-5所示。圖3-5用戶登錄流程圖3.2.3分組管理模塊分組管理模塊包括對分組的添加和刪除。添加分組過程中,分組不能為空并且不能有重復(fù)的分組。刪除分組過程中,只要選定要刪除的分組,即可刪除成功。分組管理如圖3-6所示。圖3-6分組管理流程圖3.2.4好友管理模塊好友管理模塊包括對好友的添加和刪除。添加好友過程中,好友不能為空,不能加自己為好友,要添加的好友必需存在并且不能有重復(fù)的好友。刪除好友過程中,只要選定所屬分組下的相應(yīng)好友,即可刪除成功。好友管理如圖3-7所示。圖3-7好友管理流程圖3.2.5查詢用戶模塊查詢用戶模塊列出了除了自己的全部用戶的基本信息包括是否在線,用戶可以依據(jù)須要加為好友并進行通訊,對于在線狀態(tài)的好友可以進行在線溝通。查詢用戶如圖3-8所示。圖3-8查詢用戶流程圖3.2.6即時通訊模塊即時通訊模塊是本系統(tǒng)最關(guān)鍵的環(huán)節(jié)和目的所在。用戶可以選擇分組中的在線好友進行即時通訊,并且當溝通完畢時自動保存閑聊記錄。即時通訊如圖3-9所示。圖3-9即時通訊流程圖3.2.7閑聊記錄模塊閑聊記錄模塊主要記錄了和相應(yīng)好友的全部閑聊內(nèi)容,可以便利的閱讀一些重要信息和談?wù)撛掝}等。3.4設(shè)計原則及一般要求參照各模塊的功能和具體的特點,我們設(shè)計的整個即時通訊系統(tǒng)應(yīng)達到以下目的:(1)穩(wěn)定性。整個系統(tǒng)應(yīng)能穩(wěn)定運行,硬件配置的局部變更不會影響整體的正常運行,其它系統(tǒng)的差錯不會導(dǎo)致即時通訊系統(tǒng)無法正確運作。(2)精確性。系用戶按操作要求操作產(chǎn)生的數(shù)據(jù)和數(shù)據(jù)庫產(chǎn)生的變更應(yīng)嚴格保持一樣,杜絕錯誤、異樣等狀況的出現(xiàn)。(3)平安性。全部數(shù)據(jù)定時備份,錯誤的出現(xiàn)由系統(tǒng)自動記錄備份文件,以備查驗,避開用戶誤操作而造成不必要的損失。(4)易運用性。即時通訊系統(tǒng)的界面和操作人員的交互性好,用Client/Server(客戶端/服務(wù)器)結(jié)構(gòu)。4系統(tǒng)設(shè)計4.1模塊設(shè)計功能模塊設(shè)計如表4-1所示:表4-1功能模塊設(shè)計表功能模塊用戶注冊模塊1.用戶注冊用戶登錄模塊1.用戶登錄分組管理模塊1.添加分組2.刪除分組好友管理模塊1.添加好友2.刪除好友查詢用戶模塊1.查詢用戶即時通訊模塊1.即時通訊閑聊記錄模塊1.查看閑聊記錄4.2即時通訊系統(tǒng)關(guān)系型數(shù)據(jù)庫的實現(xiàn)MicrosoftSQLServer2003是一個高性能的客戶端/服務(wù)器結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。SQLServer2003是為支持高容量的事務(wù)處理(比如在線訂購錄入、存貨書目、記賬或制造)以及數(shù)據(jù)倉庫和決策支持系統(tǒng)而設(shè)計的。它運行在MicrosoftWindowsNT4或MicrosoftWindows2000Server上—基于運用Intel處理器的網(wǎng)絡(luò)。也能夠為其他的Microsoft操作系統(tǒng)供應(yīng)許多客戶端工具和網(wǎng)絡(luò)接口。由于SQLServer的開放結(jié)構(gòu),其他系統(tǒng)也能和它交互操作。運用它可以完成事務(wù)處理、存儲和分析數(shù)據(jù)以及創(chuàng)建新的應(yīng)用程序。其中SQLServer的RDBMS負責維護數(shù)據(jù)庫中數(shù)據(jù)之間的關(guān)系,確保正確的存儲數(shù)據(jù)和不違反定義數(shù)據(jù)之間的規(guī)則,而且在系統(tǒng)發(fā)生錯誤時將全部數(shù)據(jù)復(fù)原到某個已知的、具備一樣性的檢查點上。SQLServer2003就是關(guān)系數(shù)據(jù)庫開發(fā)工具,數(shù)據(jù)庫能匯合各種信息以供查詢、存儲和檢索。SQLServer2003的優(yōu)點在于它能運用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有特殊重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞將干脆對應(yīng)用系統(tǒng)的效率以及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)存儲的效率,報填數(shù)據(jù)的完整和一樣。另外,合理的數(shù)據(jù)庫結(jié)構(gòu)將特殊有利于程序的實現(xiàn)。設(shè)計數(shù)據(jù)可系統(tǒng)是應(yīng)當首先充分了解用戶各個方面的要求,包括現(xiàn)有的以及將來可能增加的要求。4.2.1數(shù)據(jù)庫分析即時通訊系統(tǒng)需求包括對用戶信息、分組信息、好友信息等各方面信息的管理,這些信息都須要保存在數(shù)據(jù)庫中,因此須要建立一些相應(yīng)的表結(jié)構(gòu)來存儲這些相應(yīng)的數(shù)據(jù)。針對這些狀況,我們大致建立了以下若干表來存儲相應(yīng)的信息:表名:用戶表,分組表,好友表等。1)用戶表:包括的數(shù)據(jù)項有:用戶名、密碼、真實姓名、性別、特性簽名、是否在線等。2)分組表:包括的數(shù)據(jù)項有:分組名稱、用戶等。3)好友表:包括的數(shù)據(jù)項有:好友名稱、所在分組、用戶等。4.2.2數(shù)據(jù)庫概念設(shè)計依據(jù)前面的需求分析和概要設(shè)計規(guī)劃出本系統(tǒng)所運用的實體對象,分別為:用戶實體、分組實體、好友實體。下面將給出幾個關(guān)鍵實體的E-R圖。(1)用戶實體用戶實體包括用戶名、密碼、真實姓名、性別、個人簽名、是否在線、登錄IP、綁定端口等。其E-R圖如下所示。圖4-1用戶實體E-R圖(2)分組實體分組實體包括分組名稱、用戶等。其E-R圖如下所示。圖4-2分組實體E-R圖(3)好友實體好友實體包括好友名稱、所在分組,用戶等。其E-R圖如下所示。圖4-3好友實體E-R圖數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計依據(jù)上面所做的總結(jié),再參考系統(tǒng)的實際須要,表及邏輯結(jié)構(gòu)如下圖所示:1)用戶表users,如下所示。表4-2用戶表字段名數(shù)據(jù)類型字段說明備注usernameVarchar(20)用戶名主鍵passwordvarchar(20)密碼不允許為空namevarchar(50)真實姓名不允許為空sexvarchar(10)性別不允許為空signvarchar(512)特性簽名允許為空isonlineBit(1)是否在線不允許為空(默認0)loginIPvarchar(20)登錄IP允許為空bindportInt(4)綁定端口不允許為空(默認0)2)分組表groups,如下所示。表4-3分組表字段名數(shù)據(jù)類型字段說明備注g_namevarchar(50)分組名稱主鍵Owner_groupvarchar(50)用戶主鍵3)好友表friends,如下所示。表4-4好友表字段名數(shù)據(jù)類型字段說明備注friendvarchar(50)好友名稱主鍵group_invarchar(50)所在分組主鍵owner_friendvarchar(50)用戶主鍵5系統(tǒng)實現(xiàn)5.1注冊模塊假如用戶名不存在,則可以運用此用戶名,然后輸入用戶的密碼、真實姓名、性別特性簽名等成功注冊。注冊模塊如圖5-1所示。圖5-1用戶注冊圖主要代碼實現(xiàn)如下:publicintVerify(){//驗證用戶名是否存在 Stringusername=txtUserName.getText().trim(); UserItemui=newUserItem(); ui.setUsername(username); ProtocalproVerifyUser=newProtocal(ProtocalNumber.VERIFYUSER2,"",ui); SendPacketsp=newSendPacket(proVerifyUser); intresult=((Integer)sp.Send()).intValue(); returnresult;}publicvoidactionPerformed(ActionEvente){//用戶注冊 JButtonbtnSource=(JButton)e.getSource();if(btnSource==btnOK){ intres=Verify();if(res==0){ regUser=newUserItem(username,password,name,sex,sign,"",false,0); ProtocalproAddUser=newProtocal(ProtocalNumber.ADDUSER,"",regUser); SendPacketsp=newSendPacket(proAddUser); intresult=((Integer)sp.Send()).intValue(); if(result!=0){JOptionPane.showMessageDialog(this,"注冊成功,請登陸!","注冊用戶",JOptionPane.INFORMATION_MESSAGE); newfrmLogin(); }}}}}確認信息填寫無誤后,點擊注冊按鈕就可注冊成功,如圖5-2所示:圖5-2用戶注冊成功圖5.2登錄模塊本部分主要用于用戶的登錄,只有在注冊后才可以進入系統(tǒng),用戶登錄時將依據(jù)用戶名和密碼進行驗證,當輸入錯誤時會出現(xiàn)相應(yīng)的提示,當用戶名和密碼都正確時進入程序主界面,才能進行日常管理工作。該模塊的界面設(shè)計如圖5-3所示。圖5-3登錄界面假如登錄身份驗證成功,則進入主界面如圖5-4所示:圖5-4主界面假如用戶名或密碼錯誤則會提示,須要重新輸入。主要代碼實現(xiàn)如下:publicvoidactionPerformed(ActionEvente){ JButtonbtnSource=(JButton)e.getSource();if(btnSource==btnLogin){ intbindport=CommonData.GetBindPort(); StringloginIP=CommonData.GetLocalIP(); UserItemui=newUserItem(); ui.setUsername(username); ui.setPassword(password); ui.setBindport(bindport); ui.setLoginIP(loginIP); ProtocalproVerifyUser=newProtocal(ProtocalNumber.VERIFYUSER,"",ui); SendPacketsp=newSendPacket(proVerifyUser); intresult=((Integer)sp.Send()).intValue(); if(result!=0){ JOptionPane.showMessageDialog(this,"登錄成功!","用戶登錄", JOptionPane.INFORMATION_MESSAGE); this.dispose(); newFrmMain(ui.getUsername()); } else { JOptionPane.showMessageDialog(this,"用戶名或密碼錯誤!","用戶登錄", JOptionPane.INFORMATION_MESSAGE); this.txtUserName.setText(""); this.txtPassword.setText("");}}}5.3分組管理模塊添加分組主要功能是添加分組以便管理好友,如圖5-5所示。圖5-5添加分組界面主要代碼實現(xiàn)如下:publicvoidactionPerformed(ActionEvente){//添加分組 if(e.getSource()==jbok) { g_name=(String)text.getText().trim(); if(g_name.equals("")){JOptionPane.showMessageDialog(this,"分組名稱不能為空!","添加分組", JOptionPane.INFORMATION_MESSAGE); return;} gi=newGroupItem(); gi.setG_name(g_name); gi.setOwner_group(CommonData.currUser.getUsername());Protocalproaddgroup=newProtocal(ProtocalNumber.ADDGROUP,CommonData.currUser.getUsername(),gi); SendPacketsp=newSendPacket(proaddgroup); intresult=((Integer)sp.Send()).intValue(); if(result==1){ JOptionPane.showMessageDialog(this,"此分組已添加過!","添加分組", JOptionPane.INFORMATION_MESSAGE); text.setText(""); return; } if(result==0) {JOptionPane.showMessageDialog(this,"添加分組成功!","添加分組", JOptionPane.INFORMATION_MESSAGE); this.dispose(); }}}5.3.2刪除分組主要功能是刪除分組同時刪除分組下的全部好友。如圖5-6所示。圖5-6刪除分組界面主要代碼實現(xiàn)如下:publicvoidactionPerformed(ActionEvente){//刪除分組 if(e.getSource()==jbok) { try{ Stringg_name=choiceGroup.getSelectedItem().toString(); FriendItemfi=newFriendItem(); fi.setGroup_in(g_name); fi.setOwner_friend(CommonData.currUser.getUsername()); ProtocalproExit=newProtocal(ProtocalNumber.DELETEGROUP,CommonData.currUser.getUsername(),fi); SendPacketsp=newSendPacket(proExit); intresult=((Integer)sp.Send()).intValue(); if(result!=0){JOptionPane.showMessageDialog(this,"刪除分組成功!","刪除分組", JOptionPane.INFORMATION_MESSAGE); dispose(); } else { JOptionPane.showMessageDialog(this,"刪除分組失敗!","刪除分組", JOptionPane.INFORMATION_MESSAGE); }} catch(Exceptionee) {JOptionPane.showMessageDialog(this,"你的分組為空,無法刪除!","刪除分組", JOptionPane.INFORMATION_MESSAGE);}}}5.4好友管理模塊5.4.1添加好友主要功能是添加已存在的用戶為好友以便進行通訊,如圖5-7所示。圖5-7添加好友界面主要實現(xiàn)代碼如下:publicintVerify(){//驗證用戶是否存在 Stringusername=jt.getText().trim(); UserItemui=newUserItem(); ui.setUsername(username); ProtocalproVerifyUser=newProtocal(ProtocalNumber.VERIFYUSER2,"",ui); SendPacketsp=newSendPacket(proVerifyUser); intresult=((Integer)sp.Send()).intValue(); returnresult;}publicvoidactionPerformed(ActionEvente){//添加好友 if(e.getSource()==btnok){friend=(String)jt.getText().trim(); if(friend.equals("")){ JOptionPane.showMessageDialog(this,"好友名稱不能為空!","添加好友", JOptionPane.INFORMATION_MESSAGE); return; } if(friend.equals(CommonData.currUser.getUsername())){ JOptionPane.showMessageDialog(this,"你不能加自己為好友!","添加好友", JOptionPane.INFORMATION_MESSAGE); jt.setText(""); return; } intverify=Verify(); if(verify==0){ JOptionPane.showMessageDialog(this,"你要添加的好友不存在!","添加好友", JOptionPane.INFORMATION_MESSAGE); jt.setText(""); return; } else{ui=newUserItem(); ui.setUsername(friend); fi=newFriendItem(); fi.setFriend(ui); Stringg_name=(String)choice.getSelectedItem(); fi.setGroup_in(g_name); fi.setOwner_friend(CommonData.currUser.getUsername()); Protocalproaddfriend=newProtocal(ProtocalNumber.ADDFRIEND, CommonData.currUser.getUsername(),fi); SendPacketsp=newSendPacket(proaddfriend); intresult=((Integer)sp.Send()).intValue(); if(result==1){ JOptionPane.showMessageDialog(this,"此好友已添加過!","添加好友", JOptionPane.INFORMATION_MESSAGE); jt.setText(""); return; } if(result==0){ JOptionPane.showMessageDialog(this,"添加好友成功!","添加好友", JOptionPane.INFORMATION_MESSAGE); this.dispose(); }}}}5.4.2刪除好友主要功能是刪除相應(yīng)分組下的對應(yīng)好友,如圖5-8所示。圖5-8刪除好友界面主要實現(xiàn)代碼如下:publicvoidactionPerformed(ActionEvente){//刪除好友 if(e.getSource()==btnok){ try{ group=choiceGroup.getSelectedItem().toString(); friend=choiceFriend.getSelectedItem().toString(); FriendItemfi=newFriendItem(); fi.setOwner_friend(CommonData.currUser.getUsername()); fi.setGroup_in(group); UserItemui=newUserItem(); ui.setUsername(friend); fi.setFriend(ui); ProtocalproExit=newProtocal(ProtocalNumber.DELETEFRIEND, CommonData.currUser.getUsername(),fi); SendPacketsp=newSendPacket(proExit); intresult=((Integer)sp.Send()).intValue(); if(result!=0){ JOptionPane.showMessageDialog(this,"刪除好友成功!","刪除好友", JOptionPane.INFORMATION_MESSAGE); dispose(); }}catch(Exceptionee){JOptionPane.showMessageDialog(this,"你的分組或好友為空,無法刪除!","刪除好友",JOptionPane.INFORMATION_MESSAGE); }}}5.5查詢用戶模塊主要功能是查詢當前用戶外的全部用戶基本信息(包括是否在線),如圖5-9所示。圖5-9查詢用戶界面主要實現(xiàn)代碼為:publicVector<Object>Select(){//查詢用戶 ui=newUserItem(); ui.setUsername(CommonData.currUser.getUsername());ProtocalproVerifyUser=newProtocal(ProtocalNumber.SELECTUSER,CommonData.currUser.getUsername(),ui); SendPacketsp=newSendPacket(proVerifyUser); Vector<Object>vv=(Vector<Object>)sp.Send(); returnvv; }5.6即時通訊模塊主要功能是在線用戶之間的即時通訊,如圖5-10所示。圖5-10即時通訊界面主要實現(xiàn)代碼為:publicvoidactionPerformed(ActionEvente){//即時通訊 if(e.getSource()==jbsend){ try{ if(jt2.getText().equals("")){ JOptionPane.showMessageDialog(this,"發(fā)送內(nèi)容不能為空!","JQQ閑聊", JOptionPane.INFORMATION_MESSAGE); return; } UserItemui=newUserItem(); ui.setUsername(uiTarget.getUsername()); ProtocalproFindUser=newProtocal(ProtocalNumber.FINDUSER,"",ui); SendPacketsp=newSendPacket(proFindUser); uiTarget=(UserItem)sp.Send(); byteb[]=(CommonData.currUser.getUsername()+":"+jt2.getText()).trim().getBytes(); InetAddressaddress=InetAddress.getByName(uiTarget.getLoginIP());DatagramPacketdata_pack=newDatagramPacket(b,b.length,address,uiTarget.getBindport()); DatagramSocketmail_data=newDatagramSocket(); mail_data.send(data_pack); jt1.append(CommonData.currUser.getUsername()+"說:"+jt2.getText().trim()+"\n"); jt2.setText(""); } catch(Exceptionee){}}}5.7閑聊記錄模塊主要功能是查看和好友的全部閑聊內(nèi)容,如圖5-11所示。圖5-11閑聊記錄界面主要實現(xiàn)代碼為:publicvoidrecord(){//記錄閑聊內(nèi)容try{ if(jt1.getText().equals("")==false){ Calendarcalendar=Calendar.getInstance(); calendar.setTime(newDate()); Stringyear=String.valueOf(calendar.get(Calendar.YEAR)); Stringmonth=String.valueOf(calendar.get(Calendar.MONDAY)+1); Stringday=String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)); Stringhour=String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)); Stringminute=String.valueOf(calendar.get(Calendar.MINUTE)); Stringsecond=String.valueOf(calendar.get(Calendar.SECOND)); Stringaa=year+"-"+month+"-"+day+""+hour+":"+minute+":"+second; Stringmm=jt1.getText().trim()+"\n"+aa +"\n\n"; bytebb[]=mm.getBytes(); Stringcuruser=CommonData.currUser.getUsername();FileOutputStreamfw=newFileOutputStream("record\\"+curuser+"和"+uiTarget.getUsername()+".txt",true); fw.write(bb); fw.close(); }} catch(Exceptioneee){ }}publicvoiddisplay(){//顯示閑聊記錄 try{ Stringcuruser=CommonData.currUser.getUsername(); FileInputStreamrf=newFileInputStream("record\\"+curuser+""+uiTarget.getUsername()+".txt"); bytebb[]=newbyte[9437184]; while(rf.read(bb)!=-1) {Stringmessage=newString(bb); record.setText(message.trim()); } rf.close(); } catch(Exceptioneee){}}6測試報告6.1測試基本要求6.1.1內(nèi)容檢查1.檢查整個頁面的布局,檢查是否完整;2.檢查有無被覆蓋的文字或其他顯示對象;3.檢查有無超出邊界范圍的控件;4.通讀頁面上全部文字,檢查有無錯字、漏字、拼法錯誤;5.在須要大量重復(fù)測試的頁面,布局、顯示方面只須要測一次;6.1.2易用性測試1.所運用的語言是否明白易懂;2.叮囑、提示、信息是否具有協(xié)調(diào)的含義;3.用戶是否總是可以知道系統(tǒng)當前的狀態(tài);4.操作是否便利;5.輸入域上必填的域是否有特殊的提示;6.當輸入錯誤時是否清楚地表示出錯誤的信息等一切認為可以不便利運用而可進一步改進的地方。6.1.3功能檢查對每個功能,要求測試以下方面:1.檢查輸入域,包括有效輸入和無效輸入;2.選擇不同的設(shè)置;3.檢查功能是否正的確現(xiàn);4.檢查輸出是否正常;5.檢查全部功能/業(yè)務(wù)流程。6.1.4容錯性測試容錯性測試和功能測試的一部分,可以檢查系統(tǒng)對合法輸入的處理實力,即檢查在正常狀況下功能是否能夠?qū)崿F(xiàn),即為功能測試。檢查系統(tǒng)對非法輸入的處理實力,即檢查在非正常狀況下系統(tǒng)是否能夠正確地處理,即為容錯性測試。其主要檢查:1.用戶輸入出錯時系統(tǒng)是否能夠識別。2.系統(tǒng)是否能夠處理所發(fā)生的錯誤而不會使功能失效。3.系統(tǒng)是否能夠給用戶以提示,說明發(fā)生的錯誤。6.2測試用例方法舉例6.2.1功能測試確保系統(tǒng)能正常運行,如數(shù)據(jù)輸入、處理、檢索是否正確,以及業(yè)務(wù)規(guī)則的實施是否恰當。即對交互的內(nèi)容進行分析,以此來核實應(yīng)用程序及其內(nèi)部進程,這是目前的測試重點。利用有效的和無效的數(shù)據(jù)來執(zhí)行各個用例流,以核實以下內(nèi)容:a.有效數(shù)據(jù)時得到預(yù)期的結(jié)果。b.用無效數(shù)據(jù)時顯示相應(yīng)的錯誤消息或警告消息。主要還是測試系統(tǒng)的各個功能能否實現(xiàn),系統(tǒng)功能測試如表6

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論