Java及Javaweb(jsp)实验

2025-02-01 版权声明 我要投稿

Java及Javaweb(jsp)实验(精选4篇)

Java及Javaweb(jsp)实验 篇1

一、实验目的1.熟悉流类库中各种常用流的使用方法。

2.能够使用流类实现基本的文件读写。

二、实验内容

1.编写程序,在控制台窗口提示输入两个整数,然后接收这两个整数,并输出它们的和。(要求:键盘输入通过流封装System.in获取,不要使用Scanner类)

import java.io.*;System.out.println(x);System.out.println(“y”);public class Num1 {n=in.readLine();public static void main(String []args)y=Integer.parseInt(n);{System.out.println(y);int x=0,y=0;}catch(IOException e)BufferedReader in=new BufferedReader({

newSystem.out.println(“error”);InputStreamReader(System.in));}

String n;int s=x+y;

try{System.out.println(s);System.out.println(“x”);}

n=in.readLine();}

x=Integer.parseInt(n);

2.设计学生类Student,属性:编号(整型);姓名(字符串),成绩(整型)。编写一个程序:要求:(1)输入3个学生的姓名和成绩,将其姓名和成绩保存到data.txt中;(2)然后从该文件中读取数据,求得这三个学生的平均成绩。

import java.io.*;DataOutputStream dout = newDataOutputStream(public class num2 {newpublic static void main(String[]args)FileOutputStream(“D:data.txt”));{String n;

BufferedReader in=new BufferedReader(for(int i=0;i<5;i++)new{

InputStreamReader(System.in));n=in.readLine();

int num=Integer.parseInt(n);try{String name=in.readLine();

n=in.readLine();int grade=Integer.parseInt(n);dout.writeBytes(num+“rn”);dout.writeBytes(name+“rn”);dout.writeBytes(grade+“rn”);}dout.close();}catch(IOException e1){int num=Integer.parseInt(n);

n=din.readLine();String name=n;n=din.readLine();int grade=Integer.parseInt(n);ave+=grade;}System.out.println(“平均成绩”+ave*1.0/5);System.out.println(“文件写入失败”);}try{DataInputStream din =new DataInputStream(new FileInputStream(“D:data.txt”));int ave=0;String n;for(int i=0;i<5;i++){n=din.readLine();

三、实验要求

完成程序设计并提交实验报告。

在“);失败”);} }

Java上机实验报告 篇2

一、实验目的与要求

1、掌握Java中类和接口的基本知识;

2、继承的基本知识;

3、集合的基本操作

二、实验内容 1.PIMCollection 类

创建一个可以管理PIMEntities实体的集合,该类实现了Collection接口,且必须实现了以下方法:(1).getNotes();返回PIMCollection中所有的PIMNote项,如果不包含PIMNote项,则返回一个空集合

(2).getTodos();返回集合PIMCollection中所有的PIMTodo项,如果不包含PIMTodo项,则返回一个空集合

(3).getAppointment();返回集合PIMCollection中所有的PIMAppointment项,如果不包含PIMAppointment项。则返回一个空集合(4).getContacts();返回结合PIMCollection中所有的PIMContact项,如果不包含PIMContact项,则返回一个空集合

(5).getItemsForDate(Date d);返回集合PIMCollection中所有与d匹配的PIMEntities,如果没有匹配d的项,则返回一个空集合

(只有PIMTodo和PIMAppointment项,因为PIMNote和PIMContact跟日期没有关系)。

2.TestPIMCollection类(自己的测试类)

向PIMCollection集合类中加入了一些PIMEntity实体类,并用PIMCollection类中实现的方法分别筛选出了其中的PIMNote、PIMTodo、PIMAppointment、PIMContact、符合指定日期d的集合并打印输出。

三、实验器材

计算机+windows操作系统+eclipse

四、实验步骤

1.程序源代码(压缩在文件夹里)2.编译执行程序 3.记录执行结果

五、实验结果

1.TestPIMCollection的测试代码:

2.程序的执行结果:

如图所示:程序分别输出了Todo、Note、Appointment、Contact、以及匹配指定日期的结合的结果。

六、实验小结

1、熟悉了Java集合的基本内容和操作,也包括了泛型的一些知识。

2、通过这个实验巩固了java的基础知识:类和接口的有关知识,继承的应用。

3、掌握了在eclipse下编译执行Java程序的知识。

4、通过几次的编程,熟悉了java的编程规则。

JAVA聊天室实验报告 篇3

班 级:学 号:姓 名:

****** ******** ***

目录:

一、实验目的.......................................................3

二、所需技术.......................................................3

三、需求分析.......................................................3

四、系统设计.......................................................4

1、服务器结构..................................................4

2、客户端结构..................................................4

五、实现细节.......................................................5

1、客户端细节...................................................5

2、服务器细节...................................................6

六、系统展示.......................................................7

七、实验小结.......................................................9

Rain153 WeChat 聊天室系统一、实验目的:

1、使用Java技术完成聊天室系统,深入学习使用Java语言。

2、使用Java 的多线程机制,深入理解Java多线程技术的应用。

3、使用GUI,对JFrame的深入学习。

4、使用网络编程,掌握基于TCP协议的Socket编程,了解Socket编程的协议约定,掌握简单应用协议的开发。

5、使用C/S架构,对网络编程有一定的了解。

二、所需技术

本系统要求使用java技术开发。所需知识包括java程序设计语言、swing基本GUI组件、多线程编程、socket编程、集成开发环境使用eclipse。系统采用两层C/S体系结构,C端负责通过GUI与客户交互,实现注册、登陆、收发信息、退出等功能; S端是聊天系统的服务器。

三、需求分析

开发一个类似QQ 的聊天室系统,即WeChat聊天系统。该系统应具有如下功能:

1、2、用户注册、登录 群聊;

3、私聊;

4、服务器发送系统消息;

5、服务器踢人;

6、保存日志;

7、保存聊天信息;

四、系统设计

1、服务器结构

启动服务器监听AppServer服务器控制监听窗体ServerFrameConnection处理所有用户请求

服务器端结构图示

2、客户端结构

启动客户端ChatClient用户登录窗体Login用户聊天主窗体ChatRoom时钟窗体ClockRegister用户注册窗体Windowclose用户窗体监听器

客户端结构图示

1、AppServer.java

为服务器端监听类,负责服务器的启动,包括启动监听端口、服务器监控界面。

2、ServerFrame.java 为服务器监控窗体,负责监控服务器运行状态。

3、Connection.java 为服务器连接处理的具体实现。

4、ChatClient.java 为客户端程序启动类,负责客户端的启动和退出。

5、Login.java 为客户端程序登录界面,负责用户帐号信息的验证与反馈。

6、Register.java 为客户端程序注册界面,负责用户帐号信息的注册验证与反馈。

7、ChatRoom.java 为客户端程序聊天室主界面,负责接收、发送聊天内容与服务器的Connection合作。

8、Windowclose 为ChatRoom.java的内部类,负责监听聊天室界面的操作,当用户退出时返回给服务器信息。

9、Clock.java 为客户端程序的一个小程序,实现的一个石英钟功能。(可选)

五、实现细节

概述:聊天室主要功能的实现:从界面输入登录信息,然后与服务器建立Socket连接(连接时应指定服务器的IP地址和端口号,而客户端socket的端口由本方操作系统从空闲端口中确定),服务器端的“倾听Socket”收到连接请求后,一般会接受连接请求,并生成一个服务端socket,专门负责与此客户端socket的通信。一旦连接请求成功,客户端将信息及请求通过本方socket的输出流发送给服务器端相应的socket,服务端则通过服务器端Socket的输入流接受客户端传输过来的信息及请求,分析是何请求,然后根据请求类型,进行相应的处理(如登录、转发信息等)。服务方也可以根据需要,通过socket的输出流发信息和请求给客户端(公告)。客户方和服务方都可以通过关闭本方的socket而结束一次通讯过程。为了实现多客户在线的请求,使用多线程机制来处理,对每一个客户端连接通讯,服务器端都有一个线程专门负责处理。

一)客户端细节

1、注册:

当选择注册时,Register界面等待用户输入注册信息,并将信息封装成Register_Customer类,然后通过建立在Socket的连接之上的对象输出流将用户注册信息发送给服务器端,服务器端将请求转发给Connection处理,Connection 在收到信息后将验证数据的完整性并在数据库中查找该用户名是否已经注册,然后将注册信息加入数据库,最后将注册结果返回给客户端。客户端显示注册结果。

2、登录:

当选择登录时,客户端由Login 界面等待用户输入登录信息后,封装成Customer对象类然后通过建立在Socket的连接之上的对象输出流将用户登录信息发送给服务器端,服务器端将请求转发给Connection处理,Connection 在收到信息后将验证数据的完整性并在对象型数据库中查找该用户名是否已经注册,然后将注册用户的信息与登录请求信息进行密码验证,在登录成功后将该用户添加到在线用户列表,最后将登录结果返回给客户端。若登录成功,客户端将启动聊天室主界面。

3、聊天 a、发送聊天信息:私聊功能需在在线列表中选中私聊聊天对象,并勾选私聊选项。群聊功能取消对私聊功能的勾选即可。当用户点击完发送按钮后,程序开始将当前用户名、聊天对象、聊天内容、表情和是否私聊进行封装,然后获取Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端。

b、接收聊天信息:用一个单独的接收线程实现,客户端必须随时接收服务器发来的消息,而读取消息的方法采用的是阻塞式方法,若在事件处理程序中读(占用的是事件处理线程)则会使程序在此后无法响应用户操作,所以需要生成一个单独的线程专门用于读取处理消息。而发送消息的方法则是将消息放入操作系统的发送缓冲区后就返回的,所以发送执行的相当快,可以在事件处理线程中直接调用。发送和接收可以同时进行。二)服务器端细节

1、注册:创建一个File文件类,载入“user.txt”,再用对象输入流ObjectInputStream包装File文件类,将存储在“user.txt”得向量对象Vector中载入内存中,现在系统中的向量就是对象型数据库,存储着每条用户信息对象。判断是否是第一个注册用户,判断用户名是否已经存在,判断用户名是否为系统关键字,用户名有效后 写入数据库,并给客户端返回信息,关闭Socket连接。

2、登录:去数据库读用户数据,打开用户数据库文件“user.txt”,将用户数据对象集载入内存,以供下面的程序使用。验证用户名是否存在,验证用户密码是否正确,验证用户是否已经登录,验证是否已经超过最大登录人数,如果以上验证全部正确,返回客户端信息,关闭Socket连接。

3、退出:接收退出信息,当用户退出时,客户端将会用基于Socket的对象输出流发给服务器退出对象,把用户从在线列表中删除,更新在线列表。

4、聊天:接收用户聊天信息,当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其转换为Message对象,返回聊天信息,然后系统从Message中提出消息类型,再根据类型将消息强制转化ChatMessage,调用ChatMeaage中方法,获取目的客户名称列表,根据目的地用户名从用户名、socket键值表中获取socket,再通过socket将Message转发到相应的用户。

六、系统展示

1、注册

客户端注册界面

2、登录

客户端登录界面

3、聊天界面

聊天界面

4、服务器界面

服务器管理界面

服务器用户信息管理界面

七、实验小结

本次实验是比较复杂的一个题目,采用C/S架构设计的聊天室,使用增量迭代方式开发,从初始的0.1版到最终的2.0正式版。通过本次实验,对C/S架构有了较深的认识,也对多线程编程、网络编程、GUI的认识更清晰。在项目中遇到很多问题,在解决问题的过程中,对Java也渐渐的熟悉,尤其是对各种异常的处理更是对自己的一种锻炼。在此次实验中应用了很多上课时未讲到的知识,自己查阅API,阅读JDK源码学习方法的使用让自己收获颇丰。由于这是一个人的项目,虽然在项目的实施上很自由,可到问题没有人讨论,耗费了很多精力,不过这也是提高自己的好方法。

Java语言程序设计实验报告1 篇4

学生姓名: 孙文琳

班级: 信息111

学号:201152275119 实验地点: 经管中心证券实验室

指导教师:赵利平实验日期:

2012.3.6

实验环境:Windows 2000+JDK1.6

1.实验目的(1)养成良好的编程风格;(2)掌握字符数据类型及其运算;

(3)熟悉从输入对话框获取输入和从控制台获取输入两种方法;(4)掌握布尔运算符;(5)掌握分支语句if和switch。

2.实验内容(1)在控制台下求两个实数的最大值:完成实验教材P22程序清单2-2;(2)

3.实验过程

报告撰写具体要求:上述实验内容要求写出源代码及运行结果。实验内容(1)://CompareTwoNumbersl.java

import java.util.Scanner;

public class CompareTwoNumbers1{

double number1,number2;

Scanner scanner;

public CompareTwoNumbers1(){

System.out.println(“请输入两个数字:”);

scanner=new Scanner(System.in);

number1=scanner.nextDouble();

number2=scanner.nextDouble();

System.out.println(“较大的数是:”+(number1>number2?number1:number2));

}

public static void main(String args[]){ CompareTwoNumbers1 ct=new CompareTwoNumbers1();System.exit(0);}

}

实验内容(2):

//DollarConvertor.java import java.util.Scanner;public class DollarConvertor{ public static void main(String args[]){ System.out.println(“请输入美元数:”);Scanner scanner=new Scanner(System.in);double i=scanner.nextDouble();double result=i*6.2875;System.out.println(“对应的人民币数:”+result);} }

实验内容(3): public class MultiplyList1{ public static void main(String args[]){ String output=“";for(int row=1;row<=9;row++){ for(int col=1;col<=row;col++)output+=col+”*“+row+”=“+(row*col)+” “;output+=”n";} System.out.println(output);System.exit(0);}}

4.实验总结

上一篇:古诗中咏雪诗句下一篇:四项制度是指