




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 Java語言程序設(shè)計 課程設(shè)計題 目 聊天小程序 (socket編程+多線程)學(xué) 院 商學(xué)院 專 業(yè) 信息管理與信息系統(tǒng) 班 級 信息111 學(xué) 號 201152275118 學(xué)生姓名 張語軒 指導(dǎo)教師 余法紅 編寫日期 2013.12.25 目錄一、 需求分析3二、 系統(tǒng)概述3三、 系統(tǒng)運(yùn)行環(huán)境4四、 功能需求描述4五、 總體設(shè)計5六、 系統(tǒng)模塊結(jié)構(gòu)圖7七、 程序模塊設(shè)計(程序代碼設(shè)計與分析、運(yùn)行結(jié)果)8八、 設(shè)計體會23九、 參考文獻(xiàn)23一、 需求分析當(dāng)今主流的聊天工具有QQ,UC,MSN Messenger等,國內(nèi)最熱門的當(dāng)屬Q(mào)Q,騰訊QQ(OICQ)是由深圳市騰訊計算機(jī)系統(tǒng)公司開發(fā)的
2、,基于Internet的即時聊天工具。您可以使用QQ和好友用戶進(jìn)行交流,信息即時發(fā)送,即時回復(fù),收發(fā)及時、功能全面。此外QQ還具有BP機(jī)網(wǎng)上尋呼、聊天室、傳輸文件、語音郵件、手機(jī)短訊服務(wù)等功能,QQ不僅僅是虛擬的網(wǎng)絡(luò)尋呼機(jī),更可與傳統(tǒng)的無線尋呼網(wǎng)、GSM移動電話的短消息系統(tǒng)互聯(lián),目前QQ和全國多家尋呼臺、移動通信公司有業(yè)務(wù)合作。是國內(nèi)不可多得的中文網(wǎng)絡(luò)尋呼機(jī)。QQ支持顯示朋友在線信息、即時傳送信息、即時交談、即時發(fā)送文件和網(wǎng)址。QQ可以在Win95/98/NT/2000操作系統(tǒng)下運(yùn)行,是十分靈活的網(wǎng)絡(luò)尋呼工具。它會自動檢查您是否已聯(lián)網(wǎng),如果您的電腦已連入Internet,可以搜索網(wǎng)友、顯示在線
3、網(wǎng)友,可以根據(jù)QQ號、昵稱、姓名、email地址等關(guān)鍵詞來查找,找到后可加入到通訊錄中。當(dāng)您的通訊錄中的網(wǎng)友在線時,QQ中朋友的頭像就會顯示在線,根據(jù)提示就可以發(fā)送信息,如果對方登記了尋呼機(jī)或開通了GSM手機(jī)短消息,即使離線了,您也可及時將信息傳遞給您的好友。雖然以上這些軟件是免費(fèi)的,并且功能越來越強(qiáng)大。但是它們的唯一的不足就是必須要聯(lián)網(wǎng)或者下載到它們的服務(wù)端,要不然是沒法脫離Intenet使用的。為了能在一個沒有連接到Intenet的局域網(wǎng)使用聊天工具,那就必須要有服務(wù)器端。本系統(tǒng)就是包括服務(wù)器端與客戶端,可以在局域網(wǎng)聊天的一個工具。二、 系統(tǒng)概述我們實(shí)現(xiàn)的是局域網(wǎng)中的聊天功能,運(yùn)行服務(wù)程序
4、后,服務(wù)器創(chuàng)建成功,然后使服務(wù)器對某一個設(shè)定的端口處于監(jiān)聽狀態(tài),當(dāng)有客戶端請求建立連接時,服務(wù)器就可接受請求,建立連接!這樣服務(wù)器和客戶端就可相互發(fā)送消息,實(shí)現(xiàn)聊天功能! 系統(tǒng)的功能要求:A.服務(wù)器端主要功能如下:1.在特定端口上進(jìn)行偵聽,等待客戶端連接。2.用戶可以配置服務(wù)器端的偵聽端口,默認(rèn)端口為8888。3.向已經(jīng)連接到服務(wù)器端的用戶發(fā)送系統(tǒng)消息。4.統(tǒng)計在線人數(shù)。5.當(dāng)停止服務(wù)時,斷開所有的用戶連接。B.客戶端的主要功能如下:1.連接到已經(jīng)開啟聊天服務(wù)的服務(wù)器端。2.用戶可以配置要連接的服務(wù)器端的IP地址和端口號。3.用戶可以配置連接后顯示的用戶名。4.當(dāng)服務(wù)器端開啟的話,用戶可以隨時
5、登錄和注銷。5.用戶可以向所有人或某一個人發(fā)送消息。三、 系統(tǒng)運(yùn)行環(huán)境本程序基于java和Eclipse開發(fā)環(huán)境,可以在一般的裝有windows系統(tǒng)的主機(jī)上運(yùn)行。Eclipse是一個開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個項(xiàng)目組成,具體包括四個部分組成Eclipse Platform、JDT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),Eclipse Platform則是一個開放的可擴(kuò)展IDE,提供了一個通用的開發(fā)平臺。它提供
6、建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。四、 功能需求描述本系統(tǒng)針對局域網(wǎng)進(jìn)行聯(lián)機(jī)聊天。聊天室分為服務(wù)器端和客戶端兩部分,服務(wù)器端程序主要負(fù)責(zé)偵聽客戶端發(fā)來的信息,客戶端需要登陸到服務(wù)器端才可以實(shí)現(xiàn)正常的聊天功能。本系統(tǒng)主要實(shí)現(xiàn)如下功能:其界面主要采用了java.awt包,java.swing包以及java.util包等。程序?qū)崿F(xiàn)了聊天室的基本功能,其中有:1、啟動服務(wù)器。2、進(jìn)入客戶端界面。3、登錄聊天室。4、發(fā)送信息(實(shí)現(xiàn)按回車鍵發(fā)送消息)。5、關(guān)閉服務(wù)器。服務(wù)器: 在特定端口上進(jìn)行偵聽,等待客戶端連接。 用戶可以配置服務(wù)器端的IP地址,默認(rèn)IP地址為10.5.51.4 向已經(jīng)連接到服務(wù)
7、器端的用戶發(fā)送系統(tǒng)消息。 當(dāng)停止服務(wù)時,斷開所有的用戶連接。 系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。 一臺主機(jī)只能啟動一個服務(wù)器??蛻舳耍?連接到已經(jīng)開啟聊天服務(wù)的服務(wù)器端。 當(dāng)服務(wù)器端開啟后,用戶可以發(fā)表聊天信息。 用戶可以向所有人或某一個人發(fā)送消息。 系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。五、 總體設(shè)計聊天系統(tǒng)的設(shè)計跟普通網(wǎng)站設(shè)計有著許多不同的地方,普通網(wǎng)站設(shè)計所考慮的因素,例如,普通網(wǎng)站需要對布局進(jìn)入大量美化以及動畫設(shè)計等等,而聊天室只要提供滿足訪客雙方直接實(shí)時聊天即可。因此,在設(shè)計聊天系統(tǒng)的過程中,必須要考慮好以下幾個設(shè)計要點(diǎn):在Internet上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序
8、登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個面向連接的通信過程。因此,程序要在TCP/IP環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。1首先通過繼承JFrame類構(gòu)造服務(wù)器界面。2設(shè)計客戶端程序使其能夠完成正常的通信功能3設(shè)計偵聽程序,使其顯示登錄的ip地址端口號,以及用戶昵稱,通過偵聽按鈕可以調(diào)用客戶端程序,實(shí)現(xiàn)聊天功能。六、 系統(tǒng)模塊結(jié)構(gòu)圖主要功能框架如下圖所示:服務(wù)器客戶端A客戶端E客戶端D客戶端C客戶端B服務(wù)器連接服務(wù)器服務(wù)器監(jiān)聽上線通知發(fā)送消息退出下線通知用戶設(shè)置發(fā)送文件連接設(shè)置退出客戶端群 聊 私聊七、 程序模塊設(shè)計(程序代碼設(shè)計與分析、運(yùn)行結(jié)果)代碼:(1)Actio
9、nProcess.java package chat; import java.awt.event.ActionEvent; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import .*; import javax.swing.JOptionPane; public class ActionProcess implements Runnable private ChatClient client; String name=; String sendto
10、name=; String sendtoID; String filename=; String filepath=; public ActionProcess(ChatClient client) this.client=client; public void action(ActionEvent e)throws Exception if(e.getSource()=client.connection) try if(client.socket.isConnected() else String addr=JOptionPane.showInputDialog(請輸入服務(wù)器IP:); In
11、etAddress address=InetAddress.getByName(addr); InetSocketAddress socketAddress=new InetSocketAddress(address,5555); client.socket.connect(socketAddress); client.in=new DataInputStream(client.socket.getInputStream(); client.out=new DataOutputStream(client.socket.getOutputStream(); name=client.inputNa
12、me.getText(); client.out.writeUTF(姓名為+name+的朋友風(fēng)塵仆仆地上線了.); client.listen.setEnabled(true); client.filesend.setEnabled(true); client.sendtoall.setEnabled(true); client.sendtoone.setEnabled(true); client.emote.setEnabled(true); if(!(client.thread.isAlive() client.thread=new Thread(this); client.thread.
13、start(); catch(IOException ee) if(e.getSource()=client.listen) try name=client.inputName.getText(); client.out.writeUTF(姓名為+name+的朋友正在監(jiān)聽中.); filesendServer filesendserver=new filesendServer(); filesendserver.filereceive(); catch (Exception ee) ee.printStackTrace(); if(e.getSource()=client.filesend)
14、if(client.socket.isConnected() try filesendClient filesendclient=new filesendClient(); filesendclient.filesend(); client.out.writeUTF(成功發(fā)送文件!); catch (Exception ee) if(e.getSource()=client.exit) if(client.socket.isConnected() try name=client.inputName.getText(); client.out.writeUTF(姓名為+name+的朋友黯然下線了
15、.); client.out.flush(); client.out.close(); client.socket.close(); catch (IOException e1) e1.printStackTrace(); System.exit(0); String em=client.emote.getSelectedItem().toString(); if (em.equals(表情) em = ; else em += 著; if(e.getSource()=client.sendtoall) if(client.socket.isConnected() name=client.in
16、putName.getText(); String s=client.inputContent.getText(); if(s!=null) try client.out.writeUTF(name+em+對大家說:+s); client.out.flush(); client.inputContent.setText(); catch(IOException e1) if(e.getSource()=client.sendtoone) if(client.socket.isConnected() sendtoID=JOptionPane.showInputDialog(請輸入對方ID:);
17、sendtoname=JOptionPane.showInputDialog(請輸入對方姓名:); String s=client.inputContent.getText(); name=client.inputName.getText(); if(s!=null) try client.out.writeUTF(name+ 悄 悄 地 +em+ 對 +sendtoname+說:+s); client.out.flush(); client.inputContent.setText(); catch(IOException e1) public void run() String s=nul
18、l;while(true) try s=client.in.readUTF(); client.chatResult.append(n+s); catch(IOException e) client.chatResult.setText(與服務(wù)器斷開連接); try client.socket.close(); catch(Exception ep) break; (2)Clicent.javapackage chat; import java.awt.*; import java.io.*; import .*; import java.awt.event.*; import javax.s
19、wing.*; public class Client public static void main(String args) new ChatClient(); class ChatClient extends Frame implements ActionListener, Runnable private static final long serialVersionUID = -4149839042245330513L; public Button listen,connection,sendtoall,sendtoone,exit,filesend;public JComboBox
20、 emote; public TextField inputName,inputContent; public TextArea chatResult; public Socket socket=null; public DataInputStream in=null; public DataOutputStream out=null; public Thread thread; ChatClient() socket=new Socket(); Box box1=Box.createHorizontalBox(); listen=new Button(作為服務(wù)器監(jiān)聽); connection
21、=new Button(連接服務(wù)器); filesend=new Button(發(fā)送文件); exit=new Button(退出); sendtoall=new Button(群聊); sendtoone=new Button(私聊); listen.setEnabled(false); filesend.setEnabled(false); sendtoall.setEnabled(false); sendtoone.setEnabled(false); inputName=new TextField(6); inputName.setBackground(new Color(162,23
22、1,250); inputContent=new TextField(22); inputContent.setBackground(new Color(162,231,250); chatResult= new TextArea(, 17,20,TextArea.SCROLLBARS_VERTICAL_ONLY); chatResult.setBackground(new Color(162,231,250); JLabel jlname=new JLabel(輸入昵稱); box1.add(jlname); box1.add(inputName); box1.add(listen); bo
23、x1.add(connection); box1.add(filesend); box1.add(exit); Box box2=Box.createHorizontalBox(); emote = new JComboBox(); emote.setModel(new DefaultComboBoxModel(new String 表情, 微笑, 甜笑, 驚喜, 嘻嘻, 扮酷, 嘿嘿, 傻笑, 好奇, 媚眼, 鬼臉, 陶醉, 害羞, 生氣, 嚷嚷, 發(fā)怒, 傷心, 高明, 菜鳥, 問號, 狂笑, 大哭, 示愛, 呻吟, 想想 ); emote.setEnabled(false); JLabe
24、l jlintput = new JLabel(輸入聊天內(nèi)容); box2.add(jlintput); box2.add(inputContent); box2.add(emote); box2.add(sendtoall); box2.add(sendtoone); listen.addActionListener(this); connection.addActionListener(this); filesend.addActionListener(this); exit.addActionListener(this); sendtoall.addActionListener(this
25、); sendtoone.addActionListener(this); Box box3=Box.createHorizontalBox(); box3.add(chatResult); thread=new Thread(this); Box box0=Box.createVerticalBox(); box0.add(Box.createVerticalStrut(10); box0.add(box1); box0.add(Box.createVerticalStrut(10); box0.add(box3); box0.add(Box.createVerticalStrut(10);
26、 box0.add(box2); box0.add(Box.createVerticalStrut(10); add(box0); setBounds(10,30,500,400); setBackground(new Color(80,212,248); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); try socket.close(); catch (IOException e1) e1.
27、printStackTrace(); ); public void actionPerformed(ActionEvent e) ActionProcess actionProcess=new ActionProcess(this); try actionProcess.action(e); catch (Exception e1) e1.printStackTrace(); public void run() String s=null; while(true) try s=in.readUTF(); chatResult.append(n+s); catch(IOException e)
28、chatResult.setText(與服務(wù)器斷開連接); try socket.close(); catch(Exception ep) break; (3)ChatServer.javapackage chat; import .*; import java.io.*; import java.util.*; public class ChatServer public static void main(String args)throws Exception ServerSocket svSocket =null; Vector threads = new Vector(); try s
29、vSocket = new ServerSocket(5555); System.out.println (listening.); catch (Exception ex) System.out.println (Server create ServerSocket failed!); return; try int nid = 0; while(true) Socket socket = svSocket.accept(); System.out.println (accept a client); ServerThread st = new ServerThread(socket,thr
30、eads); st.setID(nid+); threads.add(st); new Thread(st).start(); for(int i=0;i threads.size();i+) ServerThread temp = (ServerThread)threads.elementAt(i); System.out.println (Listen again.); catch(Exception ex) System.out.println (server is down); class ServerThread implements Runnableprivate Vector t
31、hreads; private Socket socket = null; private DataInputStream in = null;private DataOutputStream out = null; private int nid; public ServerThread(Socket socket,Vector threads) this.socket = socket; this.threads = threads; try in = new DataInputStream(socket.getInputStream(); out = new DataOutputStre
32、am(socket.getOutputStream(); catch (Exception ex) public void run() System.out.println (Thread is running); try while(true) String receive = in.readUTF(); if(receive = null) return; if(receive.contains(黯然下線了) for(int i=0;i threads.size();i+) ServerThread st = (ServerThread)threads.elementAt(i);st.wr
33、ite(*+receive+*); else if(receive.contains(上線了) for(int i=0;i threads.size();i+) ServerThread st = (ServerThread)threads.elementAt(i);st.write(: +receive); else if(receive.contains(監(jiān)聽中) for(int i=0;i threads.size();i+) ServerThread st = (ServerThread)threads.elementAt(i); st.write(*+receive+* ); els
34、e if(receive.contains(說) if(receive.contains(大家) for(int i=0;i threads.size();i+) ServerThread st = (ServerThread)threads.elementAt(i); st.write(: +receive); else int temp=receive.indexOf(); String tempS=receive.substring(temp+1,temp1); int i=Integer.parseInt(tempS); ServerThread st = (ServerThread)
35、threads.elementAt(i);st.write(: +receive); st = (ServerThread)threads.elementAt(getID(); st.write(: +receive); else ServerThread st = (ServerThread)threads.elementAt(getID(); st.write(*+receive+*); catch(Exception ex) threads.removeElement(this); ex.printStackTrace(); try socket.close(); catch(Excep
36、tion ex) ex.printStackTrace(); public void write(String msg) synchronized(out) try out.writeUTF(msg); catch(Exception ex) public int getID() return this.nid; public void setID(int nid) this.nid = nid; (4)fliesendClient.javapackage chat; import java.io.BufferedReader; import java.io.File; import java
37、.io.FileInputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import .Socket; import javax.swing.JOptionPane; public class filesendClient public void filesend() throws Exception String sendtoIP=JOptionPane.showInputDialog(請輸入對方IP:); Socket socket = n
38、ew Socket(sendtoIP, 1234); BufferedReader br = new BufferedReader( new InputStreamReader(socket.getInputStream(); PrintStream ps = new PrintStream(socket.getOutputStream(); File file = getFile(); ps.println(file.getName(); ps.println(file.length(); String msg = br.readLine(); if(已存在.equals(msg) JOpt
39、ionPane.showMessageDialog(null,文件已存在,請不要重復(fù)上傳!); return; long finishLen = Long.parseLong(msg); FileInputStream fis = new FileInputStream(file); OutputStream out = socket.getOutputStream(); byte buffer = new byte1024; int len; fis.skip(finishLen); while(len = fis.read(buffer) != -1) out.write(buffer,
40、0, len); fis.close(); socket.close(); public File getFile() throws Exception File file=null; boolean flag=false; while(flag=false) String filepath=JOptionPane.showInputDialog(請輸入要上傳的路徑:); file = new File(filepath); if(!file.exists() JOptionPane.showMessageDialog(null,您輸入的路徑不存在,請重新輸入!); flag=false; e
41、lse if(file.isDirectory() JOptionPane.showMessageDialog(null,占不支持文件夾上傳!請輸入一個 文件路徑!); flag=false; else flag=true; return file; (5)filesendServer.java package chat; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStre
42、am; import java.io.InputStreamReader; import java.io.PrintStream; import .ServerSocket; import .Socket; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JOptionPane; public class filesendServer public void filereceive() throws Exception ServerSocket serverSocket = new Ser
43、verSocket(1234); JOptionPane.showMessageDialog(null,服務(wù)已啟動,綁定1234端口!); while(true) Socket socket = serverSocket.accept(); new fileServerThread(socket).start(); class fileServerThread extends Thread Socket socket; public fileServerThread(Socket socket) this.socket = socket; public void run() FileOutpu
44、tStream fos = null; try BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(); PrintStream ps = new PrintStream(socket.getOutputStream(); String fileName = br.readLine(); long fileLen = Long.parseLong(br.readLine(); File dir = new File(upload); dir.mkdir(); File file =
45、 new File(dir,fileName); if(file.exists() & file.length() = fileLen) ps.println(已存在); return; else ps.println(file.length(); String time = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss).format(new Date(); System.out.println(time + + (file.exists() ? 開始斷點(diǎn)續(xù)傳: : 開始上傳文件: ) + file.getName(); long start = Syst
46、em.currentTimeMillis(); InputStream in = socket.getInputStream(); fos = new FileOutputStream(file, true); byte buffer = new byte1024; int len; while(len = in.read(buffer) != -1) fos.write(buffer, 0, len); if(file.length() = fileLen) break; fos.close(); long end = System.currentTimeMillis(); time = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss).format(new Date(); System.out.println(time + + 上傳文件結(jié)束: + file.getName() + , 耗時: + (end - start) + 毫秒); ps.println(上傳成功); socket.close(); catch (IOException e) if(fos != null) try fos.cl
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度文化娛樂產(chǎn)業(yè)股權(quán)轉(zhuǎn)讓及代持合作協(xié)議
- 2025年教師實(shí)習(xí)合同協(xié)議樣本:數(shù)學(xué)與科學(xué)教育教師實(shí)習(xí)協(xié)議
- 2025遼寧大連長興控股集團(tuán)有限公司及所屬公司招聘9人筆試參考題庫附帶答案詳解
- 教學(xué)技術(shù)與藝術(shù)知到智慧樹章節(jié)測試課后答案2024年秋西南大學(xué)
- 健美操知到智慧樹章節(jié)測試課后答案2024年秋武漢學(xué)院
- 2025寧夏中匯化工有限公司招聘8人筆試參考題庫附帶答案詳解
- 2025中國建材集團(tuán)有限公司招聘14人筆試參考題庫附帶答案詳解
- 2024遼寧盤錦市政建設(shè)集團(tuán)社會招聘31人查看職位筆試參考題庫附帶答案詳解
- 2025年上半年六盤水六枝特區(qū)事業(yè)單位及招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年保山市消防救援支隊(duì)防火監(jiān)督科招聘消防文員4名易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年煙臺工程職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年上半年中煤科工集團(tuán)商業(yè)保理限公司招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年新人教版八年級下冊物理全冊教案
- 2025年南京機(jī)電職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 物業(yè)管理消防維保流程優(yōu)化建議
- 電力企業(yè)發(fā)電企業(yè)設(shè)備點(diǎn)檢定修培訓(xùn)教材
- 化學(xué)-浙江省首考2025年1月普通高等學(xué)校招生全國統(tǒng)一考試試題和答案
- 四川省成都市2024-2025學(xué)年高一上學(xué)期期末考試歷史試題(含答案)
- 2025年第六屆美麗中國國家版圖知識競賽題庫及答案
- 2025年湖北中煙工業(yè)限責(zé)任公司招聘筆試高頻重點(diǎn)提升(共500題)附帶答案詳解
- 9生物與非生物課件-四年級下冊科學(xué)人教鄂教版
評論
0/150
提交評論