版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java聊天室系統(tǒng)程序設(shè)計實驗報告完成時間:*完成時間:*目:*院(系):*年級專業(yè):*學生姓名:*指導老師:*開始時間:*完成時間:*第一部分:課程設(shè)計總述課程設(shè)計目的:1. 學會Java程序開發(fā)的環(huán)境搭建與配置,并在實際運用中學習和掌握Java 程序開發(fā)的全過程。2. 進一步熟悉掌握 Java 程序設(shè)計語言的基礎(chǔ)內(nèi)容,如用戶圖形界面設(shè)計、 Java 多線程編程、 Applet 程序的設(shè)計、 文件和網(wǎng)絡輸入輸出流編程、 Java 數(shù)據(jù)庫編程等。3. 通過親自動手寫程序,一方面拓展知識面,一方面鍛煉調(diào)試能力。 課程設(shè)計總體要求:1. 問題的描述與程序?qū)⒁獙崿F(xiàn)的具體功能。2. 程序功能實現(xiàn)的具體
2、設(shè)計思路或框架,并檢查流程設(shè)計。3. 代碼實現(xiàn)。4. 程序測試(如程序代碼、功能測試、可靠性測試和效率測試等) 。5. 設(shè)計小結(jié)(包括) 課程設(shè)計題目:目標本軟件是一個實用聊天程序。項目要實現(xiàn)以下目標:1)允許用戶注冊;2)允許注冊用戶登錄聊天室;3)登錄用戶之間進行聊天文件傳輸;4)用戶可以更改背景音樂; 用戶信息的保存本軟件只是一個聊天室程序,所以用戶只要打開程序就可以登錄。本軟件使 用文本文件或者數(shù)據(jù)庫來保存用戶數(shù)據(jù)。需求分析 對功能的規(guī)定第1 頁 共69 頁11.系統(tǒng)的用例圖(對注冊用戶)2用戶注冊過程開始接受服務器ipd地址顯示注冊窗口接受用戶名和密碼 等用戶信息判斷用戶是否 - 有
3、效noyes顯示聊天室主界面將用戶信息寫入服務器端的文件結(jié)束第2頁共69頁23用戶登錄過程開始V接受服務器ipd地址顯示用戶登錄窗口接受用戶名和密碼.yes*二 顯示聊天室主界面對性能的規(guī)定由于本軟件只是一個聊天室程序,程序只是提供用戶之間的聊天和文件傳輸, 故對網(wǎng)絡傳輸數(shù)據(jù)要求不是很高,只要正常的傳輸速度就可以了。需要管理的數(shù)據(jù)用戶的信息如下:用戶名,密碼,頭像,電子郵件,地址。4開發(fā)環(huán)境本軟件米用Java語言編寫,Java語言是一種跨平臺的編程語言,所以本軟件 對操作系統(tǒng)沒有特別的要求。而網(wǎng)絡傳輸方面采用TCP/IP網(wǎng)絡傳輸協(xié)議或者是RMI。總體設(shè)計思路系統(tǒng)主要包含兩個 java文件,Se
4、rver.java 和UserLogin.java 圖形界面主要通過orgnetbea nslibawtextra目錄下的兩個類:AbsoluteConstraints.class禾口 AbsoluteLayout.class來控制。啟動系統(tǒng)通過依次點擊批處理文件:1.bat,2.batServer.java 中包含:class UseroeriaLi宀 三=1言息p-blic class Server expends JFrarr.e.其中Server類又包括如下類和方法:putlic Server ()建立server=vrz-d 二m匸CcrEFunmutm ( ip-folic sta
5、tic vcid mairargs )/主函數(shù)(*class vcid st.art.Mer.-ItemAct-zrrr.ei Alllzevt 1啟動事件21c. 5z 乙二E二二:-二二::二二二二三二二二亡 土壬e vcd 3tcpHeLtirActaGnF*fcrrrdevti磚止事件営蘭二琴色匕蘭-13 if上點tlmnu二匸芟己亡t =色蘭蘭亡嚴比色,二二=丄匕二三己匕二 旦獷匕:打公告事牛prn.vare void警吉事牛v/errLMer_i11er_.c11 亡亡二亡。二ir=:zl (二二匸二二二三丁巳二匸鎧人事泮prv=Ge void ah itMe nu I * eir
6、Ac匸丄二匸己rfc二直己已(盍匚匸二口珥三審住二匸 evt) 關(guān)于事件fprivate 暫口二日 helcHeZtirAct.ionPerfozir.ed (二匚匸二二二壬汀已二匸 eve 1 /Wat事守 pri/aLe 7O2.d elp?LJkCticr.Fsrf ermsd (AEi;rver:匸 svu)匸工二互七m vezd 三x二匸三工nr (;:二二:!二:.-三一丘二二三-”匸:i門退出事耳UserLogin .java 包括: clas5 CJser iir.plemencs Serializable F/甲士 這.邑愆Jz_ = 33 ILlecall皀二g匸二三垃二e
7、x二皀匸吐s 三x二三匸匸二二二定文異M矣p-jbl二u class UserLzcn exerLtls JFrame 聯(lián)接服務器棗口類/其中UserLogin類又包括如下類和方法:pLiblLC j3=r7_ogri i iptlic static voidI) 主函數(shù)I4prizace void r StronXexsAcrLor.F亡二蘭uzrr亡亂(益二匸二二 n三寸亡兀匸 eve 下一步茨鈕事半privace void exitF口i:rr (亠岀巧也* ai舛匸仝y亡兀匸*口二::曰二訶三亡鳥匸 evt)退出按鈕事件clasB UerLccr.LnlJz.r.dzw xt7razc
8、=二mr二二匸昌 B二二二互匕二皂登錄窗口ITTprizace vcid imcCorr.pc*enc3() , T7t +2l1SI而UserLoginWindow類又包含如下事件和方法:第2頁共69頁6P erlis Userlcgz-Wz-ndow ()privi-ce void iritCoirjpcncnts ()韻-半豐丁二己乂void(L*t le*ct?iXaiEf r.z lencthFasaord)thrzws ZlleaLLergthExcepticr:private veld fouTLDOExiDicuinrFerforir.ed (Aotior.Ever:t evu
9、) 取消按鋰事伴privit-s void Ccfoo3cxU3rXair*rirctLcrErferrr.d (*vt) /庫戶名下拉列恚事件private void exz-Fcmi (WindowEvent evr;) .;H總巳尊鈕事牛public void ru() public void fafelLC vcid Updir.g () 列手J言皂public V2d Sy33erXe33age( i . V妥三一壬藥il言童pfclis vcd Hessaje () 除受.天 1言.導Pjitlic vcid FileHessace () .-貝半乓迂:上湼zli33 IcrJiO
10、tcrlst&ner z_KpL=ir.=ntz 二二二二二二二二三二丘二注珊申請事件 class EnterActz_Qiil2_Bterr 二il君二廿-乞二匸呂 Ast.Lzr.L2_st-= =r . 宣、擊申愴事= class ExitAcuicnListeer in:plen,ents ActioLi5e*er d三*肖事扌 -class EEg二m二乞工 xt.eds rair z.iEElmens 負匚七二匸11;二二m二亡二亡二注冊向?qū)Т翱陬恈lass cJiacroair exueds JFrarr.e 壬天室主界回詵 claas mmiu 乞x二乞二Um CFrame u
11、rpleiEents AcionLs匸已已工尸工匸丘広二二m匸皀n己工音樂箕窗口 claas Sc-r.dlcader excenda Tradsli53 3cndl3t ex*ed.3 j a、rm -二二二二.三互三二匕日1?二皀 cl=53 option extends JFrair.e . 羅工T采弓二privite void ir.itCaTr,paent5 () 齊庚 2迢牛竟或系統(tǒng)為 C/S模式。首先根據(jù)功能模塊將系統(tǒng)分為兩部分:服務端(Server )和客戶端(UserLogin )。然后構(gòu)造可以序列化的User類,這是本系統(tǒng)的對象。根據(jù)需求功能細分類和方法。建立文件和網(wǎng)絡的傳
12、輸通信。實現(xiàn)聊天室的基本功能具體設(shè)計 代碼:/server.javaimport javax.swi ng.*;import java.awt.*; import java.awt.eve nt.*;import java .n et.*;import java.io.*; import java.util.*;/用戶信息第2頁共69頁8class User implements SerializableString UserName;String UserPassword;String UserHeadPhoto;String UserEmail;String UserAge;String
13、SinkName;String FileName;byte FileData;String Message;String Command;Vector vectorUserList;public class Server extends JFramestatic Vector vectorStreamToUser=new Vector(1,1); static Vector vectorUserList=new Vector(1,1); private ServerSocket serverSocket;private JMenuItem aboutMenuItem;private JMenu
14、 commandMenu;private JMenu fileMenu;private JMenu helpMenu;private JMenuItem helpMenuItem;private JLabel jLabel1;private JLabel jLabel2;private JLabel jLabel3;private JLabel jLabel4;private JLabel jLabel5;private JList jList1;private JPanel jPanel1;private JScrollPane jScrollPane1;private JMenuItem
15、warnMenuItem;private JMenuItem kickMenuItem;private JMenuBar menuBar;private JMenuItem msgMenuItem;private JMenuItem startMenuItem;private JMenuItem stopMenuItem;/ 右鍵事件菜單private static JPopupMenu menu;private String BlackList;/ 建立 server 框架 public Server()initComponents();private void initComponents
16、() jPanel1 = new JPanel(); jLabel2 = new JLabel(); jLabel3 = new JLabel(); jLabel4 = new JLabel();jLabel5 = new JLabel();jScrollPane1 = new JScrollPane();jList1 = new JList(); jLabel1 = new JLabel();menuBar = new JMenuBar();fileMenu = new JMenu(); startMenuItem = new JMenuItem(); stopMenuItem = new
17、JMenuItem();commandMenu = new JMenu(); warnMenuItem = new JMenuItem(); kickMenuItem = new JMenuItem(); msgMenuItem = new JMenuItem();helpMenu = new JMenu(); helpMenuItem = new JMenuItem(); aboutMenuItem = new JMenuItem();getContentPane().setLayout(new beans.lib.awtextra.AbsoluteLayout();setTitle(Dao
18、Dao2009 服務器端 ); setResizable(false);/ 用戶不能手動調(diào)整列寬度。addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent evt) exitForm(evt););jPanel1.setLayout(new beans.lib.awtextra.AbsoluteLayout();try/ 建立 InetAddress 對象InetAddress intel=InetAddress.getLocalHost();String SerName=intel.getHost
19、Name();String SerIp=intel.getHostAddress();jLabel2.setText( 服務器名 :+SerName); / 顯示服務器端主機名 jLabel3.setText( 服務器 IP:+SerIp); / 顯示服務器端 IP catch(UnknownHostException e2)System.out.println( 發(fā)生錯誤 !);jLabel2.setForeground(new Color(255,0,0); jLabel2.setFont(new Font( 宋體 , 0, 14); jPanel1.add(jLabel2, new be
20、ans.lib.awtextra.AbsoluteConstraints(20,10, -1, -1);jLabel3.setForeground(new Color(255, 0, 0); jLabel3.setFont(new Font(宋體 , 0, 14);jPanel1.add(jLabel3,new beans.lib.awtextra.AbsoluteConstraints(20,30, -1, -1);jLabel4.setText( 服務器狀態(tài) : 未啟動 ); jLabel4.setForeground(new Color(255, 255, 0); jLabel4.set
21、Font(new Font(宋體 , 0, 14);jPanel1.add(jLabel4,new beans.lib.awtextra.AbsoluteConstraints(20,240, -1, -1);jLabel5.setText( 共有 :0 個客戶在線 ); jLabel5.setForeground(new Color(255, 255, 51); jLabel5.setFont(new Font(宋體 , 0, 14);jPanel1.add(jLabel5,new beans.lib.awtextra.AbsoluteConstraints(250,240, -1, -1)
22、;menu = new JPopupMenu(); / 右鍵事件菜單JMenuItem Admonition= new JMenuItem( 警告 );Admonition.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)用戶認int state=JOptionPane.showOptionDialog(null, 確 實 要 警 告 +BlackList+ 嗎 ? , 確 ,JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESS
23、AGE,null,null,null);if(state=JOptionPane.OK_OPTION)warnMenuItemActionPerformed(e););JMenuItem Delete = new JMenuItem(刪除 );Delete.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)int state=JOptionPane.showOptionDialog(null, 確 實 要 刪 除 用 戶 +BlackList+ 嗎 ? , 確 認 ,JOptionPa
24、ne.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,null,null,null);if(state=JOptionPane.OK_OPTION)kickMenuItemActionPerformed(e););menu.add(Admonition);menu.add(Delete);jList1.setModel(new AbstractListModel() String strings = ;public int getSize() return strings.length; public Object getElementAt(int
25、i) return stringsi; );jList1.setFont(new Font(Dialog,Font.BOLD | Font.ITALIC, 16); jList1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);jList1.addMouseListener(new MouseAdapter()public void mousePressed(MouseEvent evt)if (evt.getClickCount()=1)BlackList=(String)jList1.getSelectedValue();publ
26、ic void mouseReleased(MouseEvent evt)if (evt.isPopupTrigger()menu.show(evt.getComponent(), evt.getX(), evt.getY(););jScrollPane1.setViewportView(jList1);jPanel1.add(jScrollPane1, new beans.lib.awtextra.AbsoluteConstraints(20, 45, 362, 190);jLabel1.setIcon(new ImageIcon(imgServer.jpg);jPanel1.add(jLa
27、bel1, new beans.lib.awtextra.AbsoluteConstraints(0, -10, -1, -1);newgetContentPane().add(jPanel1, beans.lib.awtextra.AbsoluteConstraints(0, 0, 400, 270);menuBar.setBorder(null);menuBar.setBackground(new Color(0, 0, 0); fileMenu.setForeground(new Color(255, 255, 255); fileMenu.setText( 文件 );fileMenu.
28、setBackground(new Color(0, 0, 0); fileMenu.setFont(new Font(宋體 , 0, 14);startMenuItem.setForeground(new Color(255, 255, 255); startMenuItem.setFont(new Font(宋體 , 0, 14);startMenuItem.setText( 啟動 ); startMenuItem.setBackground(new Color(0, 0, 0); startMenuItem.setBorder(null);startMenuItem.addActionL
29、istener(new ActionListener() public void actionPerformed(ActionEvent evt) startMenuItemActionPerformed(evt););fileMenu.add(startMenuItem);stopMenuItem.setForeground(new Color(255, 255, 255); stopMenuItem.setFont(new Font(宋體 , 0, 14);stopMenuItem.setText( 結(jié)束 ); stopMenuItem.setBackground(new Color(0,
30、 0, 0); stopMenuItem.setBorder(null);stopMenuItem.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) stopMenuItemActionPerformed(evt););fileMenu.add(stopMenuItem);menuBar.add(fileMenu);commandMenu.setForeground(new Color(255, 255, 255); commandMenu.setText( 命令 );comm
31、andMenu.setBackground(new Color(0, 0, 0); commandMenu.setFont(new Font( 宋體 , 0, 14);msgMenuItem.setForeground(new Color(255, 255, 255); msgMenuItem.setFont(new Font( 宋體 , 0, 14); msgMenuItem.setText( 公告 );msgMenuItem.setBackground(new Color(0, 0, 0); msgMenuItem.setBorder(null);msgMenuItem.addAction
32、Listener(new ActionListener() public void actionPerformed(ActionEvent evt) msgMenuItemActionPerformed(evt););commandMenu.add(msgMenuItem);warnMenuItem.setForeground(new Color(255, 255, 255); warnMenuItem.setFont(new Font(宋體 , 0, 14);warnMenuItem.setText(警告 );warnMenuItem.setBackground(new Color(0, 0
33、, 0); warnMenuItem.setBorder(null);warnMenuItem.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) warnMenuItemActionPerformed(evt););commandMenu.add(warnMenuItem);kickMenuItem.setForeground(new Color(255, 255, 255); kickMenuItem.setFont(new Font(宋體 , 0, 14);kickMenu
34、Item.setText(踢人 );kickMenuItem.setBackground(new Color(0, 0, 0); kickMenuItem.setBorder(null);kickMenuItem.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) kickMenuItemActionPerformed(evt););commandMenu.add(kickMenuItem);menuBar.add(commandMenu);helpMenu.setForegro
35、und(new Color(255, 255, 255); helpMenu.setText(幫助 );helpMenu.setBackground(new Color(0, 0, 0); helpMenu.setFont(new Font(宋體 , 0, 14);helpMenu.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) helpMenuActionPerformed(evt););helpMenuItem.setForeground(new Color(255, 2
36、55, 255); helpMenuItem.setFont(new Font(宋體 , 0, 14);helpMenuItem.setText( 幫助主題 ); helpMenuItem.setBackground(new Color(0, 0, 0); helpMenuItem.setBorder(null); helpMenuItem.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) helpMenuItemActionPerformed(evt););helpMenu.
37、add(helpMenuItem);aboutMenuItem.setForeground(new Color(255, 255, 255); aboutMenuItem.setFont(new Font( 宋體 , 0, 14); aboutMenuItem.setText( 關(guān)于 );aboutMenuItem.setBackground(new Color(0, 0, 0); aboutMenuItem.setBorder(null);aboutMenuItem.addActionListener(new ActionListener() public void actionPerfor
38、med(ActionEvent evt) aboutMenuItemActionPerformed(evt););helpMenu.add(aboutMenuItem);menuBar.add(helpMenu);setJMenuBar(menuBar);pack();public static void main(String args) / 主函數(shù)new Server().show();class connection extends Threadprivate User fromUserMessage=new User();private User toUserMessage=new U
39、ser();private Socket netUser;private ObjectInputStream streamFromUser;private ObjectOutputStream streamToUser;private boolean existName,existPassword;private String onlineNumber=Immovability;/判斷在線人數(shù)的變化public connection(Socket UserSocket)netUser=UserSocket;newnewtry streamFromUser = ObjectInputStream
40、(netUser.getInputStream();streamToUser = ObjectOutputStream(netUser.getOutputStream(); catch(IOException e)try netUser.close();catch(IOException e1)System.out.print(Unable to set up stream+e1); return; this.start();public boolean validateName(String name)boolean validate;String recode,message;Random
41、AccessFile logfile; FileInputStream fsread;InputStreamReader inputread;BufferedReader bfread; validate=false;tryfsread=new FileInputStream(User.txt); inputread=new InputStreamReader(fsread);bfread=new BufferedReader(inputread); while(recode=bfread.readLine() != null)/ 驗證用戶信息 StringTokenizer st = new
42、 StringTokenizer(recode,:); while (st.hasMoreTokens() message=st.nextToken(); if(message.equals(name) validate=true; break;break; catch(FileNotFoundException e)System.out.println(The specified file does not exist); catch(IOException e)System.out.println(Error performing IO Operation);return validate
43、;public boolean validatePassword(String password)boolean validate;String recode,message; RandomAccessFile logfile;FileInputStream fsread;InputStreamReader inputread; BufferedReader bfread;validate=false;tryfsread=new FileInputStream(User.txt); inputread=new InputStreamReader(fsread);bfread=new Buffe
44、redReader(inputread); while(recode=bfread.readLine() != null)/驗證用戶信息StringTokenizer st = new StringTokenizer(recode,:); while (st.hasMoreTokens()message=st.nextToken(); message=st.nextToken();if(message.equals(password) validate=true; break;break; catch(FileNotFoundException e)System.out.println(The
45、 specified file does not exist); catch(IOException e)System.out.println(Error performing IO Operation);return validate;public void run()tryfor(;)String ButtonMessage; fromUserMessage=(User)streamFromUser.readObject();/ 讀 用 戶信息ButtonMessage=fromUserMessage.Command; / 讀按 鈕信息existName=validateName(from
46、UserMessage.UserName); / 驗 證 用戶名existPassword=validatePassword(fromUserMessage.UserPassword);/ 驗證用戶密碼if(ButtonMessage.equals(Login)Login();if(ButtonMessage.equals(Enter)Enter();if(ButtonMessage.equals(Leave)Leave();if(!onlineNumber.equals(Immovability) Updating(fromUserMessage.UserName); if(ButtonMe
47、ssage.equals(PublicChat) | ButtonMessage.equals(PrivateChat)Message();if(ButtonMessage.equals(Request) | ButtonMessage.equals(FileCopy) toSinkMessage();if(ButtonMessage.equals(Agree) | ButtonMessage.equals(Refuse) | ButtonMessage.equals(Succeed) toUserMessage(); catch(IOException e) catch(ClassNotFo
48、undException e) trystreamFromUser.close(); streamToUser.close();netUser.close();catch(IOException e)public void Login()/ 注冊請求處理tryif(existName) toUserMessage.Command=Repeat; streamToUser.writeObject(User)toUserMessage); / 返回操作 信息streamToUser.flush();else / 加入新用戶信息 RandomAccessFile UserObj=new Random
49、AccessFile(User.txt,rw);UserObj.seek(UserObj.length();UserObj.writeBytes(fromUserMessage.UserName+:+fromUserMessage.UserPassword+fromUserMessage.UserHeadPhoto+:+fromUserMessage.UserEmail+:+fromUserMess age.UserAge+n);onlineNumber=add;toUserMessage.Command=Login; toUserMessage.UserName=fromUserMessag
50、e.UserName; toUserMessage.Message= 系 統(tǒng) 消 息 : 大 家 歡 迎+fromUserMessage.UserName+加入我們的 DaoDao聊天室! ! +n;Server.vectorUserList.addElement(fromUserMessage.UserName);/加入用戶到用戶在線列表toUserMessage.vectorUserList=Server.vectorUserList;streamToUser.writeObject(User)toUserMessage);/返回 用戶在線列表和操作信息streamToUser.flush
51、(); Server.vectorStreamToUser.addElement(streamToUser);/存儲該對象的輸出流jLabel5.setText( 共 有 :+Server.vectorUserList.size()+個客戶在線 );/ 服務器刷新jList1.setListData(Server.vectorUserList);catch(IOException e)public void Enter()/ 登陸請求處理tryif(existName & existPassword)onlineNumber=add;toUserMessage.Command=Enter;to
52、UserMessage.UserName=fromUserMessage.UserName;toUserMessage.Message= 系 統(tǒng) 消 息 : 大 家 歡 迎 +fromUserMessage.UserName+ 加入我們的歡樂聊天室! ! +n;Server.vectorUserList.addElement(fromUserMessage.UserName);/ 加入用戶到用戶在 線列表toUserMessage.vectorUserList=Server.vectorUserList;streamToUser.writeObject(User)toUserMessage);
53、/ 返回 用戶 在線列表和操作信息streamToUser.flush();Server.vectorStreamToUser.addElement(streamToUser);/存儲該對象的輸出流jLabel5.setText( 共 有 :+Server.vectorUserList.size()+ 個 客戶在線 );/ 服務器刷新jList1.setListData(Server.vectorUserList);elsetoUserMessage.Command=Error;streamToUser.writeObject(User)toUserMessage);/ 返回 操作 信息streamToUser.flush();catch(IOException e)public void Leave()/ 離開請求處理S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療器械總經(jīng)理聘用協(xié)議
- 大型展覽館裝修工程民建施工合同
- 建筑材料供應招投標信譽承諾
- 信貸業(yè)務合規(guī)管理辦法
- 水閘給水工程安裝協(xié)議
- 機場廣告牌施工合同范本
- 體育場館墊資施工合同
- 屋面綠化施工援助合同
- 車站電力安裝施工合同
- 動物園道路硬化施工合同
- 高考評價體系測試試題及答案《中國高考評價體系》《中國高考評價體系說明》(可復制)
- 跳繩 單元作業(yè)設(shè)計
- 數(shù)據(jù)庫學生成績管理系統(tǒng)ER圖
- 裝在套子里的人省賽一等獎
- 糧食產(chǎn)后服務體系建設(shè)項目總結(jié)分析報告
- 愛天使圈降低針刺傷發(fā)生率課件
- 麻山藥栽培管理技術(shù)課件
- 小學英語外研版三起點五年級上冊-Module-1-單元整體教學設(shè)計
- 消化內(nèi)科常用藥物介紹-課件
- qc提高隧洞初期支護鋼拱架安裝合格率
- 哈工程實驗報告封皮
評論
0/150
提交評論