当前位置:文档之家› JAVA聊天程序的设计代码与报告

JAVA聊天程序的设计代码与报告

JAVA聊天程序的设计代码与报告
JAVA聊天程序的设计代码与报告

一.系统需求分析

网络聊天室通常直称聊天室,是一种人们可以在线交谈的网络论坛,在同一聊天室的人们通过广播消息进行实时交谈。

在当今信息时代,越来越多的聊天工具被应用,java语言是当今流行的网络编程语言,它具有面向对象,与平台无关,安全,多线程等特点。使用java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的的,嵌入式设备进行应用程序的开发。面向对象的开发是当今世界最流行的开发方法,它不仅具有更贴近自然地语义,而且有利于软件的维护和继承,锻炼我们熟练地应用面向对象的思想和设计方法解决实际问题的能力。

本程序正是用java语言实现了简单聊天功能。它是图形界面,线程,流与文件系统等技术的综合应用。其界面主要采用了java.awt包,java.swing包等。

二.系统总体设计

1.对性能的规定

由于本软件知识一个聊天程序,程序只提供用户之间的聊天功能,故对网络传输数据要求不是很高,只要正常的传输速度就可以了。

2数据管理

IP地址(IP),端口(Port)

3.开发环境

本软件采用Java语言编写,Java语言是一种跨平台的编程语言,所以本软件对操作系统没有特别的要求。而网络传输方面采用TCP/IP网络传输协议或者是RMI。

4.设计概要

(1)本软件客户端与用户共用一段程序。客户端编译运行后,在窗口选择----侦听。用户编译运行后,在窗口选择----连接。

(2)本软件实现的功能有

1)允许服务器侦听客户端,客户端连接到服务器

2)允许服务区与客户端之间进行聊天;

3)允许服务器与客户端更改背景颜色;

4) 允许服务器与客户端更改字体颜色;

5)服务器与客户端时,会显示容发送时间;

6)允许服务器与客户端用鼠标点击“发送”,按ENTER键均可发送容7)允许服务器与客户端用鼠标点击关闭时关闭聊天窗口

三.系统详细设计

1.代码功能描述

(1)程序中引入的包:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import https://www.doczj.com/doc/0914322886.html,.*;

import java.io.*;

(2)代码中自定义的类:

类名:chatHouse

继承的类:JFrame

实现的接口:ActionListener, Runnable

作用:构造服务器界面以及客户端界面。

定义的对象: TextArea ta;

JTextField ip;

JTextField port;

JButton btn_server;

JButton btn_client;

JButton btn_backGroundCol;

JButton btn_fontCol;

JTextField send_text;

JButton btn_send;

JButton btn_close;

JLabel pic;

Socket skt;

构造方法:public chatHouse()

主要成员方法:public void run()

public void actionPerformed(ActionEvent e)

public void doServer()

public void doSend()

2.源代码[chatHouse.java]

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import https://www.doczj.com/doc/0914322886.html,.*;

import java.io.*;

import java.util.*;

public class chatHouse extends JFrame implements ActionListener, Runnable

{

private TextArea ta;

private JTextField ip;

private JTextField port;

private JButton btn_server;

private JButton btn_client;

private JButton btn_backGroundCol;

private JButton btn_fontCol;

private JTextField send_text;

private JButton btn_send;

private JButton btn_close;

private JLabel pic;

private Socket skt;

public void run()

{

try{

BufferedReader br = new BufferedReader(new InputStreamReader(skt.getInputStream()));

while(true){

String s = br.readLine(); // 从网络读

if(s==null) break;

ta.append(s + "\n");

}

}

catch(Exception e){

e.printStackTrace();

}

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==btn_server){

doServer();

}

if(e.getSource()==btn_client){

doClient();

}

if(e.getSource()==btn_send){

doSend();

}

}

public void doServer()

{

try{

ServerSocket server = new

ServerSocket(Integer.parseInt(port.getText()));

skt = server.accept();

ta.append("连接成功!\n");

new Thread(this).start();

}

catch(Exception e){

ta.append("服务器启动失败!\n");

}

}

public void doClient()

{

try{

skt = new Socket(ip.getText(), Integer.parseInt(port.getText()));

ta.append("连接成功!\n");

new Thread(this).start();

}

catch(Exception e){

ta.append("连接失败!\n");

}

}

public void doSend()

{

Calendar c=Calendar.getInstance();

int y=c.get(c.YEAR);

int M=c.get(c.MONTH)+1;

int d=c.get(c.DAY_OF_MONTH);

int h=c.get(c.HOUR_OF_DAY);

int mm=c.get(c.MINUTE);

int ss=c.get(c.SECOND);

try{

PrintWriter pw = new PrintWriter(skt.getOutputStream());

String s = send_text.getText();

if(s==null) return;

ta.append(y+"-"+M+"-"+d+" "+h+":"+mm+":"+ss+"\n");

ta.append(s+"\n");

pw.println(y+"-"+M+"-"+d+" "+h+":"+mm+":"+ss);

pw.println(s);

pw.flush();

send_text.setText("");

}

catch(Exception e){

ta.append("发送失败!\n");

}

}

public chatHouse()

{

super("聊天室");

this.setBounds(100,100,550,430);

Container cc = this.getContentPane();

JPanel p1 = new JPanel();

cc.add(p1, BorderLayout.NORTH);

JPanel p2 = new JPanel();

cc.add(p2,BorderLayout.CENTER);

JPanel p3 = new JPanel();

cc.add(p3,BorderLayout.SOUTH);

pic=new JLabel(new ImageIcon("12.gif"));

cc.add(pic,BorderLayout.EAST);

p1.add(new JLabel("IP: "));

ip = new JTextField("127.0.0.1", 10);

p1.add(ip);

p1.add(new JLabel("Port: "));

port = new JTextField("7777", 4);

p1.add(port);

btn_server = new JButton("侦听");

p1.add(btn_server);

btn_client = new JButton("连接");

p1.add(btn_client);

btn_backGroundCol =new JButton("背景色");

p1.add(btn_backGroundCol);

btn_fontCol =new JButton("字体颜色");

p1.add(btn_fontCol);

p2.setLayout(new BorderLayout())

ta = new TextArea();

p2.add(ta, BorderLayout.CENTER);

send_text = new JTextField("Hello.");

p2.add(send_text, BorderLayout.SOUTH);

btn_send = new JButton("发送");

p3.add(btn_send, BorderLayout.WEST);

btn_close =new JButton("关闭");

p3.add(btn_close, BorderLayout.CENTER);

//---------------------------------------"关闭"按钮监听器 btn_close.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

System.exit(100);

}

});

//--------------------------------------- 背景变色监听

btn_backGroundCol.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){

JColorChooser chooser4=new JColorChooser();

Color color=chooser4.showDialog(null,"背景颜",Color.yellow); ta.setBackground(color);

}

});

//---------------------------------------字体变色监听

btn_fontCol.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

JColorChooser chooser4=new JColorChooser();

Color color=chooser4.showDialog(null,"字体颜色",Color.black); send_text.setForeground(color);

ta.setForeground(color);

}

});

//---------------------------------------按ENTER键可发送监听btn_server.addActionListener(this);

btn_client.addActionListener(this);

btn_send.addActionListener(this);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

send_text.addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

if(e.getKeyCode()==KeyEvent.VK_ENTER)

doSend();

}

});

}

public static void main(String[] args)

{

new chatHouse().setVisible(true);

}

}

import java.util.*;

3.程序测试

编译运行程序后,先选择对方IP,选择同样的Port。服务器先侦听,客户端再连接。连接成功,窗口会显示“连接成功!”字样。接下来就可以聊天了。

(1) 服务器与客户端聊天。

(2)服务器与客户端聊天。服务器将背景颜色设为粉红,字体颜色设为蓝色。客户端将背景颜色设为蓝色,字体颜色设为红色。

四.小结

1.通过本次课程设计,使得自己懂得理论和实践相结合起来,从理论中得出结论,才能真正掌握这门技术,也提高了自己独立思考的能力,在设计的过程中,可以自己解决。真正体会到要将一门知识学的更深入,必须加强实践,多练习,才能发现问题所在。

2..本程序实现的功能还比较简单不够完善,从中,我知道了自己的不足之处,决心增长自己的知识,设计更加好的程序,实现各种更加复杂的功能,如:传输文件,图片。以及登陆界面,昵称等。

3.总的来说,这次实训对我很有帮助。让我学会了的不只是设计JAVA聊天室,更让我学会主动学习,而不是被动接收。这样才能更好的运用自己所学到的知识。

另:附该代码所用到的图片 12.gif

(完整版)Java程序设计实验报告

Java 程序设计实验报告

实验一 JDK开发环境和结构化程序设计 实验学时:2 实验类型:综合性 一、实验目的 1.熟悉JDK开发环境。 2.熟悉UltraEdit/NotePad等编辑器编写、编译、运行Java程序。 3.掌握Java Application的程序结构和开发过程。 4.掌握Eclipse工具的使用。 5.结构化程序设计 二、实验内容 1.JDK开发环境 (1)J2sdk开发环境安装。假设JDK的安装路径为C:\JDK; (2)设置环境变量PATH和CLASSPATH(如果在autoexec.bat中没有进行设置)。如 SET PATH=C:\JDK\BIN;%PATH% SET CLASSPATH=.; %CLASSPATH%;d:\test_java (自己的工作目录) 2.UltraEdit/Notepad编辑器 练习使用Ultraedit/Notepad创建Java源程序的方法。

3.掌握Java Application程序开发过程 (1)编辑源程序,如下程序: import java.io.*; public class HelloWorld1{ public static void main(String arg[]){ System.out.println("Hello World!"); } } (2)保存文件,(注意大小写)。可将文件保存在“D:\test_java\”目录中,注意文件名为HelloWorld1.java。 (3)进入命令行(MS-DOS)方式,设定当前目录为“D:\test_java\”,运行Java 编译器: D:\test_java>javac HelloWorld1.java (4)如果输出错误信息,则根据错误信息提示的错误所在行返回EditPlus编辑器进行修改。常见错误是类名与文件名不一致、当前目录中没有所需源程序、标点符号全角等。 如果没有输出任何信息或者出现“deprecation”警告,则认为编译成功,此时会在当前目录中生成HelloWorld1.class文件。 (5)利用Java解释器运行这个Java Application程序,并查看运行结果。 D:\test_java>java HelloWorld1 4.Eclipse开发环境的使用 练习使用Eclipse实现第3步中Java HelloWorld程序的方法。

基于java socket的聊天室项目文档

北京邮电大学软件学院 2010-2011 学年第 1学期实训项目文档 (每个项目小组一份) 课程名称:全日制研究生实训 项目名称:通信软件实训 项目完成人: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 姓名:学号: 指导教师: 日期:2011年1月21日

基于java socket的聊天室实现 一 . 实训项目目的和要求(说明通过本项目希望达到的目的和要求) 目的:熟练掌握socket编程原理,并用java socket实现聊天室 要求:实现p2p和聊天室功能 二 . 实训项目开发环境(说明本项目需要的环境) 开发工具:Eclipse SDK Version: 3.5.2 和NetBeans 6.9.1 版本 系统:win7 三 . 实训项目内容(说明本项目的内容,如:问题分析、设计方案、算法、设计图等) 1.问题分析 网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台 主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协 议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一 地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的 或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要 关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务 器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。 客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运 行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户, 同时自己继续监听服务端口,使后来的客户也能及时得到服务。 两类传输协议:TCP;UDP。TCP是Tranfer Control Protocol的简称, 是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个 顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建 立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或 接收操作。

04747java语言程序设计(一)20120年01月试卷

全国2012年1月高等教育自学考试 Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共l0分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下面供选字符序列中,不属于 ...Java语言关键字的是( ) A.inner B.throw C.false D.throws 2.表达式“-1>>>1”的十进制值是( ) A.-2 B.231-1 C.-(231-1) D.232-1 3.Java语言中,在类定义时用final关键字修饰,是指这个类( ) A.子类必须实现父类未实现的方法 B.没有具体实现代码 C.必须要有实例 D.不能被继承 4.表达式"java程序设计".1ength()的值是( ) A. 0 B.12 C. 8 D.13 5.以下关于BorderLayout布局的叙述中,不正确 ...的是( ) A.把容器内的空间划分成5个区域 B.加入组件应该指明要放入的区域 C.是框架窗口的默认布局 D.一个位置可直接放多个组件 6.利用文件对话框打开或保存文件,在打开文件对话框之前,可用FileFilter类设置筛选条件,其所用的两个方法是( ) A.accept()和getSelectedFile() B.accept()和getDescription() C.accept()和setDescription() D.setDescription()和getDescription() 7.设已经有Graphics2D对象g2d,RoundRectangle2D对象rRect,绘制对象rRect的代码是( ) A.g2d.draw(rRect) B.g2d.drawRoundRect(rRect) C.rRect.draw() D.rRect.drawRoundRect() 8.以下关于线程互斥和同步的叙述中,正确的是( ) A.临界段是线程互斥使用资源的程序段 B.临界段能使线程使用其它线程的资源 浙04747# Java语言程序设计(一)试卷第1页(共12页)

JAVA局域网聊天系统源代码

这是我自己做的简单聊天系统客户端 package LiaoTianSys; import java.awt.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import https://www.doczj.com/doc/0914322886.html,.Socket; import https://www.doczj.com/doc/0914322886.html,.UnknownHostException; public class ConversationFrame extends JFrame { JScrollPane jsp; JTextField jtf; static JTextArea jta; //JTextArea jat1,jta2; JButton enter=new JButton("发送"); JButton jb=new JButton("聊天室好友"); JButton jb2=new JButton("进入聊天室"); JButton jb3=new JButton("刷新在线人员列表"); JPanel jp,jp1,jp3,jp4; DefaultListModel listmodel = new DefaultListModel(); //static String[] NAME=new String[10]; String n[]={"f"}; JList list=new JList(listmodel); JLabel time=new JLabel("当前系统时间:"); JLabel showtime=new JLabel("显示时间"); JLabel jl=new JLabel("输聊天信息"); JLabel nicheng=new JLabel("昵称"); JTextField NCshuru=new JTextField(10); static DataOutputStream dos; static DataInputStream dis; //final LoginFrame lf; Socket socket; public ConversationFrame() { Container con=getContentPane(); con.setLayout(new BorderLayout()); jp=new JPanel(); setSize(700,600); setLocation(100,100); jta=new JTextArea(); jta.setEditable(false);

Java程序设计实验报告分析

学生实验报告 (理工类) 课程名称: JAVA程序设计专业班级: 13电子信息工程(2)学生学号: 1305102056 学生姓名:许伟铭 所属院部:软件工程学院指导教师:王倩倩 20 15 ——20 16 学年第 2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:JAVA编程基础实验学时: 4 同组学生姓名:————实验地点: 1514/A203 实验日期: 2016.04.08 实验成绩: 批改教师:王倩倩批改时间:

一、实验目的和要求 (1)熟练掌握JDK1.7及Eclipse Kepler Service Release 1(下简称Eclipse)编写调试Java应用程序及Java小程序的方法; (2)熟练掌握Java应用程序的结构; (3)了解Java语言的特点,基本语句、运算符及表达式的使用方法; (4)熟练掌握常见数据类型的使用; (5)熟练掌握if-else、switch、while、do-while、for、continue、break、return 语句的使用方法; (6)熟练掌握数组和字符串的使用; (7)调试程序要记录调试过程中出现的问题及解决办法; (8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (9)做完实验后给出本实验的实验报告。 二、实验仪器和设备 奔腾以上计算机,Windows 操作系统,装有JDK1.7和Eclipse软件。 三、实验过程 (1)分别使用JDK命令行和Eclipse编译运行Java应用程序。记录操作过程。 Java应用程序参考如下: 思考:1. 适当添加注释信息,通过javadoc生成注释文档; 2. 为主方法传递参数“Hello world”字符串,并输出; 3. 压缩生成".jar"文件。 (2)分别使用JDK命令行和Eclipse编译Java Applet,并建立HTML文档运行该Applet。 记录操作过程。 Java小应用程序参考如下:

JAVA代码编写一简单网络聊天程序

要求:聊天室服务器、聊天室客户端;客户端之间可以聊天。 因为我是初级选手,想借此程序分析学习java,所以代码最好多一点注释... 分数有限,望大家不吝赐教!!问题补充: 需要图形用户界面哦,最好用swing组件 服务器端:采用多线程,可以向客户广播:当前聊天室人数,客户名称列表,客户进入离开提示; 客户端:可以设定昵称,性别,客户间可以私聊 服务器端: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import https://www.doczj.com/doc/0914322886.html,.*; public class Server extends JFrame implements ActionListener{ JPanel contentPane; JLabel jLabel2 = new JLabel(); JTextField jTextField2 = new JTextField("4700"); JButton jButton1 = new JButton(); JLabel jLabel3 = new JLabel(); JTextField jTextField3 = new JTextField(); JButton jButton2 = new JButton(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(); ServerSocket server = null; Socket socket = null;BufferedReader instr =null;PrintWriter os=null ; //Construct the frame public Server() { jbInit(); } class MyThread extends Thread{//该线程负责接受数据 public void run(){ try{ while(true){ this.sleep(100); instr= new BufferedReader(new InputStreamReader(socket.getInputStream())); if(instr.ready()){ //检查是否有数据 jTextArea1.append("客户端: "+instr.readLine()+"\n"); } } }catch(Exception ex){} }

Java语言程序设计课后习题答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。 2.什么是面向对象的程序设计方法它有那些基本特征 答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 它的特征:抽象,封装,继承,多态。 3(无用) 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用 答:类成员的访问控制符有 public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). Private(保护的):类中限定为private的成员只能被这个类本身 访问,在类外不可见。 proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点答:构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有);(3)构造方法通常被声明为公有的(public); (4)构造方法可以有任意多个参数; (5)构造方法的主要作用是完成对象的初始化工作; (6)构造方法不能在程序中显式的调用; (7)在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。 9如果在类声明中声明了构造方法,系统是否还提供默认的构造方法 答: 用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。 10:声明Patient类表示在门诊室中的病人。此类对象应包括name(astring)\sex(achar)、age(an integer)、weight(a float0、allergies(a boolean). 声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子: Atient april=new Patient(); (“zhangli”) (‘f’);; (330; ; (true); 那么:”+()); ”+()); ”+()); (“weught: ”+());\ ”+()); 声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。 答: public class Patient { private String name; private char sex; private int age; private float weight; private boolean allergies; public void setname(String a) { name=a; } public void setsex(char b) { sex=b; }

JAVAWEB程序设计报告模板

南京晓庄学院《JAVA WEB程序设计》 课程报告 题目: 学生信息管理系统 姓名: 沈莉莉 学号: 13131320 班级: 13计算机转本1班 完成时间2016年6月23号 成绩:

数学与信息技术学院

目录 1.系统需求分析 (1) 2.相关技术与原理介绍 (1) 3.系统分析与设计 (2) 3.1 系统功能分析 (2) 3.2 系统结构分析 (2) 3.3 数据库设计 (3) 4.系统实现 (4) 4.1 登录模块实现 (4) 4.2 教师模块实现 (6) 4.3 成绩模块实现 (7) 4.4 学生模块实现 (8) 5.总结与体会 (11) 5.1 工作总结 (11) 5.2 改进设想 (11)

1.系统需求分析 (对系统的功能需求进行分析) 在本次的实验中主要用到了Eclipse、Mysql、Tomcat等软件。用JSP和JAVABEAN 编写代码,编写完的低吗主要用来实现教师、学生、成绩以及课程的查询、修改、删除等操作。 2.相关技术与原理介绍 (对Tomcat、MySQL、JSP、JDBC、JAVABEAN等技术进行简要介绍) 2.1、Tomcat简介 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问童虎不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,当一台机器上配置好Apache服务器,可利用它响应HTML(标通用标记语言下的一个应用)页面访问的请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你圆形tomcat时,它实际上是作为一个与Apache独立的进程单独运行。 2.2、MySQL的简介 MySQL是一个小型关系数据库管理系统,它的主要特性如下: (1)支持多线程,充分利用CPU资源。 (2)一共TCP/IP、ODBC和JDBC等多种数据库连接途径。 (3)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。 2.3、JSP的简介 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 2.4、JDBC的简介 JDBC 扩展了Java 的功能。例如,用Java 和JDBC API 可以发布含有applet 的网页,而该applet 使用的信息可能来自远程数据库。企业也可以用JDBC 通过Intranet 将所有职员连到

Java源代码___聊天室

Java 聊 天 室 制作人:_____杨永生_____ 制作时间:2012.9.26 目录 1本文简介 (2) 2聊天室截图与说明 (2) 2.1用Java编译: (2) 2.2服务器登录界面 (2) 2.3服务器窗口 (2) 2.4客服端登录界面 (3) 2.5客服端窗口 (3) 3服务器端 (6) 3.1MyServer()方法 (6) 3.2Login()方法 (10) 3.3Time()方法 (13) 4客户端 (14) 4.1MyClient()方法 (14) 4.2Login()方法 (18) 4.3Time()方法 (20)

1 本文简介 这是一个简单的Java聊天室,仅提供给一些刚学Java的学生做实验,本文也是仅供参考. 本文代码都有注释,希望读者能读懂代码,本实验内部还有一些错误,比如只能一条一条的发信息,不能连发,希望能解决本问题的朋友能给我发信息,我的QQ号就是百度号! 2 聊天室截图与说明 2.1 用Java编译: 本代码有七个类,放在六个java文件中,类名在下方希望读者自己观看, 2.2 服务器登录界面 要先运行服务器端的程序 用户名:y 密码:1 用户名密码可以自己设定点击确定可以登录,2秒后到服务端界面 2.3 服务器窗口

聊天室的IP为本机的网络虚拟IP,在任何电脑上都能用,端口应设置在1024以后, 2.4 客服端登录界面 和服务器端的登录一样 2.5 客服端窗口

当登录上后客服端就显示已经连接了,此时服务器端的窗口如下

由于本程序设计的不是很完整,具体的聊天要先从客服端开始: 在客服端输入一条聊天内容后按确定,在服务器端就可以收到信息,之后客户端不能输入了,要等待服务器端来信息后才能继续输入信息. 想要结束聊天,直接可以关闭窗口,也可以输入’bye’后断开聊天

JAVA语言程序设计报告

JAVA语言程序课程设计设计题目:实验室设备管理系统

实验室设备管理系统 第一章问题定义 (1) 第二章可行性研究 (1) 2.1 系统建设目标 (1) 2.2 可行性分析 (1) 第三章系统的需求分析 (2) 3.1 实验室设备管理系统的需求陈述 (2) 3.2 使用结构化方法进行系统分析 (2) 3.3 对系统进行面向对象分析 (3) 第四章系统的概要设计 (5) 4.1 系统体系结构图 (5) 4.2 数据库设计 (5) 第五章系统的详细设计及其实现 (8) 5.1主模块 (8) 5.2 用户综合管理模块 (11) 第六章系统测试 (14)

第一章问题定义 每学年要对实验室设备使用情况进行统计、更新,其中: (1)对于已彻底损坏的作报废处理,同时详细记录有关信息。 (2)对于有严重问题(故障)的要即使修理,并记录修理日期、设备名、修理厂家、修理费、责任人等。 (3)对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容。 (4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段(某日期之前)查询。 系统目标与范围说明书 项目名称:实验室设备管理系统。 问题:目前系统式手工操作,费时费力,效率低下。 项目目标:建立一个高效率、自动化操作实验室设备管理的计算机系统。 项目规模:开发成本应该不超过5万元。 初步设想:用学校现有的物力和人力资源开发该系统。 可行性研究:为了全面分析该系统开发的可能性,建议进行大约2周的可行性研究。 可行性研究成本不超过5000元。 第二章可行性研究 2.1 系统建设目标 在对系统初步调查的基础上就可以提出项目的开发目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。 随着高校规模的扩大,实验室及仓库的增多,人工管理实验设备已变得过于低效,为了解决这一问题,高校实验室设备管理系统将实现设备管理的自动化。 实验室设备管理系统将贯穿于设备从购进到报废的整个流程的管理过程,帮助管理员高效地管理整个高校的所有设备,并给上级领导提供一个审核监督管理的平台,提供整个实验室管理的效率,使总体管理水平上升到一个新的高度。 本系统能减少很多不必要的资源,消除了以前用冗余的纸张式管理,大节省了学校能源。 2.2 可行性分析 可行性分析是任何一个大型工程正式投入力量之前必须进行的一项工作。这对于保证资源的合理利用、避免浪费是一个十分重要的,也是项目一旦开始以后能顺利进行的必要保证。当系统的开发目标确定后,就可以从以下三方面对能否实现新系统目标进行可行性分析: 1. 技术可行性 技术可行性是指:根据现有的技术条件,能否达到所提出的要求;所需要的物理资源是否具备,能否得到。 针对于本系统,本系统属于一个普通的MIS系统。在其组织关系上也未存在的很大的复杂性、繁琐性及不确定性,而且整个系统的技术构成上来看,它还是属于一个简单的数据库应用类的系统。其基本操作还是对存在数据库进行添加、删除、查找、编辑等。所以就单纯的数据库应用来看,暂不存在太大的技术问题。并且本系统的开发我利用access作为本系统的数据库,把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。使用eclipse作为系统开发的开发环境,它作为一种现代的编程语言,提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。因此,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,它在技术上是可行的。 2. 经济可行性 经济可行性分析要估计项目的成本和效益,分析项目经济上是否合理,并将费用与效益进行比较,看是否有利。 首先,实验室设备管理系统地实现的硬件支持只是一台简单的计算机,如今的性能

java简单聊天小程序

网络编程java简单聊天小程序[下次修改成多线程的,这个必须等待对方输入结束,有机会修改成可视化窗口] By 刘汪洋 写入正确的ip地址即可正常用当然目前只停留在命令行界面 还没有写成可视化窗口界面 运行时请带上参数 如java TransServer 张三 Java TransClient 李四 ( 和刘正南在局域网试验的截图成功 这是修改后的 加上了姓名! ) (修改前的截图)

代码: 客户端: package com.baidu.chat; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import https://www.doczj.com/doc/0914322886.html,.Socket; import https://www.doczj.com/doc/0914322886.html,.UnknownHostException; // 简单聊天小程序客户端 public class TransClient { public static void main(String[] args)

{ if(args[0]==null) args[0] = "他"; startClient(args[0]); } private static void startClient(String name) { Socket sk = null; BufferedReader bufr = null; try { sk = new Socket("127.0.0.1",10000);// 1 创建 socket服务 bufr = new BufferedReader(new InputStreamReader(System.in));// 2 获取录入键盘 PrintWriter out = new PrintWriter(sk.getOutputStream(),true);// 3 获取输出流true表示自动刷新 BufferedReader bufIn = new BufferedReader(new InputStreamReader(sk.getInputStream()));// 4 获取输入流 // 5 发送获取 String text_send = ""; String text_get = ""; String ServerName = ""; System.out.print("聊天已开启..."+"\r\n"+"我说:");

《Java语言程序设计基础教程》习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章Java程序设计概述 1.9 练习思考题 1、Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

java版基于UDP协议网上聊天程序课程设计

湖南工业大学 课程设计 资料袋 计算机与通信学院学院(系、部)2013 ~ 2014 学年第 1 学期课程名称网络协议分析指导教师李建设职称副教授 学生姓名专业班级网络工程学号 题目基于UDP协议网上聊天程序 成绩起止日期2013 年11 月25 日~2013 年12 月13 日 目录清单

5 6 课程设计任务书 2013 —2014学年第1 学期 学院(系、部)计算机与通信学院专业网络工程班级102 课程名称:网络工程学生姓名: 设计题目:基于UDP协议网上聊天程序指导教师:李建设 完成期限:自2013 年11 月25 日至2013 年12 月13 日共 3 周 容 及 任 务 一、设计内容 实现一个基于UDP协议的简单的聊天程序,包括服务器和客户端。 1.支持多人聊天。 2.客户端具有图形化用户界面。 二、设计任务 课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。 三、设计要求 1.按功能要求开发系统,能正确运行。程序代码书写规范,有充足的注释。 2.课程设计所使用的编程语言任选,但建议使用C或C++; 3.绿色软件:程序运行不需安装,避免写系统和注册表; 进 度 安 排 起止日期工作内容 2013-11-25~2013-11-3 选题 2013-12-1~2013-12-3 系统分析和设计; 2013-12-4~2013-12-8 熟悉软件开发工具、编码系统、系统测试 2013-12-9~2013-12-13 撰写并提交课程设计说明书(含电子文档)、源程序等。

Java程序的设计实验报告

信息科学与工程学院 课程设计 题目:图书管理系统 姓名:晓雨颖 学号: 201312140115 201312140120 班级: 13级本科四班物联网 课程: Java程序设计 任课教师梦琳 2014年12月20日

课程设计任务书及成绩评定

目录 1前言 (3) 1.1设计目的 (4) 1.2设计任务 (4) 1.3运行环境 (4) 2总体设计 (5) 2.1设计原理............................................. 错误!未定义书签。3详细设计实现.. (5) 3.1 代码 (5) 3.2 登陆后事件处理 (12) 4心得体会................................................ 错误!未定义书签。

1前言 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发容和软硬件环境等因素来选择一种合适的开发 工具。

基于JAVA局域网聊天程序设计与实现(附源代码)

局域网聊天课程设计 摘要 随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。 即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。 对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。事实上可以认为它是若干不同技术以及流行趋势相结合的产物。以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。P2P计算正是这种分散工作趋势的结果。其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。 关键词:局域网聊天 P2P java

Abstract With the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent. Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce. The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need. Keywords:LAN chat P2P java

《Java程序设计》课程设计报告 (1)

河南工程学院计算机学院课程设计报告书 学号:201312211115 姓名:陈晏猛 学院:计算机学院 专业班级:软件工程1341 专业课程:Java程序设计指导教师:汪伟 2014 年12 月27 日

目录 第1章计算器的设计与实现 (1) 1.1设计目的..................... ..... ... (2) 1.2系统实现思路...................... ... (3) 1.3系统详细设计.............. ..... . (4) 1.4系统调试运行................ ..... .. (7) 第2章2048的设计与实现 (1) 1.1设计目的..................... ..... ... (2) 1.2系统实现思路...................... ... (3) 1.3系统详细设计.............. ..... . (4) 1.4系统调试运行................ ..... .. (7) 第3章课程设计体会 (8) 参考文献................. .... .... (9) 附录................... .... .... .... . (10)

第1章计算器的设计与实现 1.1 设计目的 本课程设计的目的就是通过一次集中的强化训练,使学生能巩固自己的学识,补充未学的但有必要的内容。进行课程设计的目的在于加深对程序设计基础中理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计的能力。同时,在程序设计方法及上机操作方面受到比较系统严格的训练,培养软件工作所需要的动手能力。 (1)使学生更深入的理解和掌握课程中有关基本概念,程序设计的思想和方法。 (2)培养学生综合运用所学知识独立完成课题的能力。 (3)培养学生勇于探索,严谨推理,实事求是,有错必改,用实践来验证理论,全方位考虑问题等科学技术人员应具有的素质。 (4)提高学生对工作认真负责,一丝不苟,对同学团结友爱,协作攻关的基本素质。 (5)培养学生从资料文献,科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 (6)对学生掌握知识的深度,运用理论去处理问题的能力,实验能力,课程设计的能力,书面及口头表达能力进行考核。

相关主题
文本预览
相关文档 最新文档