Java大作业设计报告
Java课程大作业俄罗斯方块作业报告[1]
游戏流程图:
进入游戏界面 点击按钮“开始” ,游戏开 始 蛇开始随机出现 键盘操作: “左移” “右移” “旋转” “加速”
到达顶端
单击 “开始” 游戏 继续
游戏结束
游戏面板
点击“开始”Leabharlann 戏开始如图:按“”控制蛇的方向如下图:
方块不能继续下落时游戏结束,出现“Game over” ,如图:
作业结果(学生填写) : 程序设计思路(300字以上,可附流程图或类图)
俄罗斯方块游戏设计与实现,主要分为以下二个模块:游戏主界面模块和游戏控制 模块。 在此只实现游戏的游戏主界面模块、游戏控制模块。并且只是实现移动速度、重新 开始等功能。 游戏主界面模块: 游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形 区域界面、游戏速度控制、重新开始游戏、速度等级以及当前分数。从很大程度上 决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。 游戏控制模块: 这个模块是游戏的中心环节,主要完成控制游戏的速度、重新开始等功能。为 了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。设计所开发的 是基于 Java 的一个俄罗斯方块游戏软件,主要实现游戏的速度控制。分为: 游戏 主界面模块、游戏控制模块以二个模块。 性能: 本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程 中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。
Java 程序设计 课程作业报告 作业:俄罗斯方块游戏
姓名 程序得分 90% 作业目的: 掌握基本的图形程序设计方法 掌握Java事件处理程序编写方法 掌握编写基于TCP或UDP协议的网络通讯程序 掌握Java的流、文件、多线程等编程技术 郭阳 作业报告 得分 10% 学号 1143730212 实验总分 100%
java结课大作业 实验报告
班级:数学与应用数学01班姓名:姚其禹学号:41008040110学生管理系统用java语言设计一个基于GUI界面的单机版学生管理系统,实现学生基本信息的录入,查询,修改,删除,同时可以对学生所在学院,专业,班级信息进行添加,查询,修改,删除。
本系统是通过java+Mysql实现的。
●设计内容:用java语言设计一个基于GUI界面的单机版学生管理系统,实现学生基本信息的录入,查询,修改,删除,同时可以对学生所在学院,专业,班级信息进行添加,查询,修改,删除。
●设计要求:1.界面要求:必须先要有一个登录用的用户信息表,包含“用户名和密码”两项信息。
2.功能要求:系统里必须包括学生信息录入、修改、删除、查询等功能,还有学院信息录入、修改、删除、查询,专业信息录入,修改、删除、查询,班级信息录入、修改、删除、查询。
输入时学院代码用下拉框选择,必须是学院信息表里存在的学院名称,保存到数据库中时存学院的代码。
输入专业代码和学院代码用下拉框选择,必须是专业信息和学院信息表里存在的专业名称和学院名称,保存到数据库中时分别存专业和学院的代码。
输入班级、专业和学院用下拉框选择,必须是班级专业信息和学院信息表里存在的专业名称和学院名称,保存到数据库中时分别存班级、专业和学院代码。
●设计目标:使用JDBC驱动程序将前台浏览器与后台数据库(本系统用的是Mysql)结合位为一体。
利用Mysql语句接口来调用数据库,以存取或更新数据库中的数据,实现学生信息录入、修改、删除、查询,还有学院信息录入、修改、删除、查询,专业信息录入,修改、删除、查询,班级信息录入、修改、删除、查询功能。
类,类的方法及类的作用表类的名称类的方法类的作用LoginFrame.java public LoginFrame() 创建一个登入界面,用public void acitonperformed() 户需输入正确的用户名和密码public static void main() Frm_Main.javapublic Frm_Main()创建学生信息表,可以注册,查询,删除,修改学生的信息 public void conDB()public void acitonperformed() public static void main() FacultyFrame.javapublic FacultyFrame ()创建学生学院信息表,可以添加,查询,删除,修改学院信息 public void conDB()public void acitonperformed() SpecialtyFrame.jav apublic SpecialtyFrame ()创建学生专业信息表,可以添加,查询,删除,修改学院信息 public void conDB()public void acitonperformed() ClassFrame.java public ClassFrame()创建学生班级信息表,可以添加,查询,删除,修改班级信息public void conDB()public void acitonperformed() jtree.javapublic void valueChanged() 对该系统的相关说明jtree()数据库设计 1. 创建登入表: CREATE TABLE `admin` (`username` varchar(20) NOT NULL,`pwd` varchar(20) CHARACTER SET latin1 DEFAULT NULL, PRIMARY KEY (`username`) )表2-2 Admin 表2. 创建学生信息表:CREATE TABLE `student` ( `xueid` char(20) NOT NULL,`name` char(20) DEFAULT NULL,`sex` char(4) DEFAULT NULL,`nation` char(4) DEFAULT NULL,`ID` char(2) DEFAULT NULL,`C_ID` char(8) DEFAULT NULL,`S_ID` char(10) DEFAULT NULL,`age` char(8) DEFAULT NULL,`mail` char(20) DEFAULT NULL,`telp` char(11) DEFAULT NULL,PRIMARY KEY (`xueid`))student表3.创建学院信息表CREATE TABLE `faculty` (`ID` char(2) NOT NULL,`NAME` char(30) DEFAULT NULL,PRIMARY KEY (`ID`)表2-4 faculty表4.创建专业信息表CREATE TABLE `specialty` (`S_ID` char(10) NOT NULL,`S_NAME` char(30) DEFAULT NULL,`ID` char(2) DEFAULT NULL,PRIMARY KEY (`S_ID`))specialty表5.创建班级信息表CREATE TABLE `grade` (`C_ID` char(8) NOT NULL,`C_NAME` char(30) DEFAULT NULL, `C_DATE` char(10) DEFAULT NULL, `S_ID` char(10) DEFAULT NULL, `ID` char(2) DEFAULT NULL,PRIMARY KEY (`C_ID`))grade表6.数据库中各表之间的关系各表之间关系图源代码分析1.系统主要的类:登入窗口的类:public class LoginFrame extends JFrame主类:public class Frm_Main implements ActionListener班级信息类:public class ClassFrame implements ActionListener学员信息类:public class FacultyFrame implements ActionListener帮助文档类:public class jtree implements TreeSelectionListener专业信息类:public class SpecialtyFrame implements ActionListener2. 主要方法分析:设置文本框的位置和文本框的大小:S_NAMEL.setLocation(20,110);S_NAMEL.setSize(150,20);c.add(S_NAMEL);S_NAMET.setLocation(90,110);S_NAMET.setSize(200,20);c.add(S_NAMET);处理异常类及方法try{Class.forName("com.mysql.jdbc.Driver");conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=r oot&password=111111");Statement stmt = (Statement)conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CON CUR_UPDATABLE);ResultSet rss1 = null;String sql="select * from faculty ";rs = stmt.executeQuery(sql);while (rs.next()){f.addItem(rs.getString("NAME"));}rs.close();}catch(ClassNotFoundException e){System.err.println(e);}catch(SQLException e){System.err.println(e);}处理监听事件的方法:public void actionPerformed(ActionEvent e)主函数的运行:public static void main(String[] args)连接数据库相关语句:Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(URL, user, pswd);stmt = conn.createStatement();组件的声明:public JMenuBar menuBar;public JMenu mainMenu1;public JMenu mainMenu2;public JMenu mainMenu3;public JFrame frame;public Container c;public JMenuBar menuBar;JButton toolBarButton[] = new JButton[8];public JToolBar toolBar;Object ID=new String();String S_ID = new String();String S_NAME = new String();Connection con;ResultSet rs;Statement st;public JLabel S_IDL = new JLabel("专业代码:");public JLabel IDL = new JLabel("学院名称:");public JLabel S_NAMEL = new JLabel("专业名称:");public JTextField S_IDT = new JTextField();private JComboBox f = new JComboBox();public JTextField S_NAMET = new JTextField();该程序是一个图形界面的学生信息管理系统,使用人员能快捷简单地进行操作。
《JAVA程序设计》大作业报告模板
华北科技学院计算机系课程综合作业实验报告课程名称JAVA程序设计实验学期2010 至2011 学年第 1 学期学生所在系部计算机年级08级专业班级信管B082学生姓名学号************ 任课教师实验成绩计算机系制《JAVA程序设计》课程综合作业实验报告学生的学号,可以更新这条记录中的数据;“查询记录”,输入要查询学生学号可以查询这个学生的所有信息;选择分数信息中的“各科最高低分”菜单,可以查询所有学科中的最高分和最低分;“总分平均分”显示所有学生的总分和平均分。
3.主要代码本程序使用Java中基于SWING的图形设计,用到java中的java.awt.*内的包,控件的布局用到java.swing.border.*包,事件处理用到java.awt.event.*,连接数据库用到java.sql 登录界面主要代图1public class denglu{public static void main(String args[]){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){ //11System.out.println(""+e);}new WindowBox("登录窗口"); //调用方法}}class WindowBox extends JDialog implements ActionListener{//声明Box baseBox,boxV1,boxV2,boxV3;JButton button1,button2;}}}如果出现用户名密码错误则会出现提示信息对话框图2通过调用Datawin类中的内容可以进入到主界面声明菜单中的显示、添加、删除、修改、查询、最高低分以及总分平均分菜单项和类,能过给菜单添加事件监听事件图3public void actionPerformed(ActionEvent e){if(e.getSource()==itemshow)show.setVisible(true);else if(e.getSource()==itemadd)add.setVisible(true);else if(e.getSource()==itemupdata)updata.setVisible(true);a[k][0]=rs.getString(1);a[k][1]=rs.getString(2);a[k][2]=rs.getString(3);a[k][3]=rs.getString(4);a[k][4]=rs.getString(5);a[k][5]=rs.getString(6);k++;}con.close();}catch(SQLException ee){System.out.println(ee);} //处理异常table=new JTable(a,name);getContentPane().removeAll(); //采用BorderLayout布局add(showRecord,BorderLayout.NORTH);add(new JScrollPane(table),BorderLayout.CENTER);validate();}图4构造增加类,声明组件,定义一个表名Object name[]={"学号","姓名","年龄","性别","系别","班级"};和定义一个表单Object a[][]=new Object[1][6];然后给按钮组件增加以下监听事件,通过对表单中输入数据进而增加到数据库中public void actionPerformed(ActionEvent e)//处理事件图5图6构造删除类,声明组件,在文本框中输入信息,进而可以删除数据库中相应的记录给文本框和按钮增加以下事件public void actionPerformed(ActionEvent e){if(e.getSource()==inputNumber){try{num=inputNumber.getText().trim();con=DriverManager.getConnection("jdbc:odbc:hello","","");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM 学生信息 WHERExueid='"+num+"'");boolean boo=rs.next();if(boo==false){JOptionPane.showMessageDialog(this,"学号不存在",table.repaint();//重打印表con.close();}catch(SQLException ee){JOptionPane.showMessageDialog(this,"更新失败"+ee,"失败",JOptionPane.ERROR_MESSAGE);}}//if图7构造查询方法查询这个窗体整体彩盒式布局,首先声明类和方法设计窗体的外观,给相应的组件添加事件利用SQL语句查询数据库中的信息 rs=sql.executeQuery("SELECT * FROM 学生信息WHERE xueid='"+num+"'");如果输入学号数据库中不存在提示信息“学号不存在”,否则利用table.repaint();方法将数据库中的信息输入到窗体中的table中public void actionPerformed(ActionEvent e)//处理事件{try//连接数据原 hello{num=inputNumber.getText().trim();con=DriverManager.getConnection("jdbc:odbc:hello","","");图8构造最高最低分类首先定义两个静态变量m,n;将数据库中的信息利用查询的方法显示在数字 int b[][]中,con=DriverManager.getConnection("jdbc:odbc:hello","","");sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);//只读形式rs=sql.executeQuery("SELECT * FROM 分数信息");st();利用如下方法求得语文成绩的最高分和最低分for(k=0;k<lastNumber;k++){if(m<b[k][0]){m=b[k][0];}if(n>b[k][0]){n=b[k][0];}}a[0][1]=m;a[1][1]=n;同理可以求得其它几科成绩的最高分和最低分然后,将object a[][]中的信息显示有窗体中图9构造总分平均分方法首先将数据库中的信息显示在利用SQL查询方法显示有两个数据中object a[][]和int b[][]中利用如下方法将求得总分和平均分try{con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=sql.executeQuery("SELECT * FROM 分数信息");st();int lastNumber=rs.getRow();b=new int[lastNumber][4];a=new Object[lastNumber][8];int k=0;rs.beforeFirst();while(rs.next()){a[k][0]=rs.getString(1);a[k][1]=rs.getString(2);a[k][2]=rs.getByte(3);b[k][0]=rs.getByte(3);a[k][3]=rs.getByte(4);b[k][1]=rs.getByte(4);a[k][4]=rs.getByte(5);b[k][2]=rs.getByte(5);a[k][5]=rs.getByte(6);b[k][3]=rs.getByte(6);a[k][6]=b[k][0]+b[k][1]+b[k][2]+b[k][3];a[k][7]=(b[k][0]+b[k][1]+b[k][2]+b[k][3])/4;k++;}con.close();}catch(SQLException ee){System.out.println(ee);}图10四、实验结果及分析程序运行中的报告分析1、在登陆时如果输入不正确的用户和密码会提示用户名或密码错误,因为通过getText()方法无法获得正确的字符串从而提示错误2、在进行数据库相应操作时,如果无法正确连接数据库则会提示不存在所需的数据资源,可能原因是没有正确连接到数据源,即可能数据源名称不正确,或者在数据库中不存在相应的表,或者可能SQL语法错误在进行相应的查询的删除操作时,如果不存在输入的学号会提示用户,“学号学号不存在”,因为不在数据库不无法在相应的字段下找到相匹配的字符串。
java程序设计大作业报告
Java程序设计大作业报告1. 引言本报告是关于Java程序设计大作业的报告,旨在总结和描述本次大作业的设计和实现过程。
本次大作业的主题是设计一个学生成绩管理系统。
2. 需求分析在开始设计和实现学生成绩管理系统之前,首先需要明确系统的需求。
本次大作业的学生成绩管理系统需要包含以下功能: - 学生信息管理:包括学生的基本信息和成绩信息。
- 成绩录入和查询:教师能够录入学生的成绩,并能够查询和修改学生的成绩信息。
- 成绩统计和分析:系统能够对学生的成绩进行统计和分析,例如计算平均分、最高分、最低分等。
3. 系统设计根据需求分析的结果,我们可以开始进行系统设计。
以下是学生成绩管理系统的设计步骤:3.1 类设计首先,我们需要定义学生类(Student)和成绩类(Grade)来管理学生和成绩信息。
学生类包含学生的基本信息,如学号、姓名、性别等,成绩类包含学生的各科成绩信息。
此外,我们还需要设计一个教师类(Teacher),用于录入和查询学生的成绩信息。
3.2 数据结构设计在设计学生成绩管理系统时,我们需要选择适合的数据结构来存储和管理学生和成绩信息。
例如,可以使用数组、链表或哈希表等数据结构来存储学生和成绩信息,根据具体需求进行选择。
3.3 用户界面设计学生成绩管理系统需要有一个用户友好的界面,方便教师进行操作。
可以使用图形界面(GUI)或命令行界面(CLI)来实现用户界面。
4. 系统实现在完成系统设计后,我们可以开始实现学生成绩管理系统。
4.1 学生类实现首先,我们需要实现学生类。
学生类应该包含学生的基本信息和成绩信息的操作方法,例如获取学生的基本信息、添加和修改成绩等。
4.2 成绩类实现接下来,我们需要实现成绩类。
成绩类应该包含学生的各科成绩信息,并提供计算平均分、最高分、最低分等操作方法。
4.3 教师类实现然后,我们需要实现教师类。
教师类应该包含录入和查询学生成绩的操作方法,例如录入学生成绩、查询学生成绩等。
JAVA程序设计大作业报告
过程:
1、课程设计目的 2、课程设计题目描述与要求 3、课程设计报考内容 4、输出结果 5、实验总结
1、课程设计目的
用面向对象语言JAVA完成计算 器的设计和实施。通过课程设计掌 握面向对象编程技术,常用库类的 使用和应用系统的开发过程。
2、课程设计题目描述与要求
(1)完成窗口的关闭 按钮的功能; (2)完成清空键 功能;(即清空文本框中的内容) (3)完成数字按钮的功能;(即文本框显示对应数字) (4)完成基本的“+”,“-”,“*”,“/”四则运算;
3、课程设计报告内容
3.1 课程设计思路 设计的程序能完成计算器的基本功能 例如四则运算 3.2 设计过程 本次设计一个简易的计算器的界面,该计算器运行 程序后的界面如下图所示 该计算机包括了加减乘除四则运算 操作建议
3.3实验源代码
在设计这个程序的开始,我们首先设计这个计算器的 界面,我用比较简单的方法,运用GridLayout(4,5)来实 现简单的排版。然后把我需要的几个按键都依次的输入s("CE"))
{
display.setText("0"); start=true; flag=true; command="=";
} else if(start&&flag) { if(command.equals("-")) { display.setText(command); start=false; } else if((command.equals("1/x")||command.equals("sqrt"))&&flag) calculate(Double.parseDouble(display.getText()),command); else if(flag) lastCommand=command; } else { if(command.equals("Backspace")&&flag) { String s=display.getText(); char[] s1=s.toCharArray(); if(s.length()>=2) { String s2=new String(s1,0,s.length()-1); display.setText(s2); } else { display.setText("0"); start=true; } } else if(flag) { calculate(Double.parseDouble(display.getText()),command); lastCommand=command; start=true; } } } }
Java程序设计大作业实验报告
目录一、前言 (2)二、需求分析 (3)三、系统总体设计 (3)3.1系统总体设计系统思路 (3)3.2数据库设计 (4)3.2.1 login1表的设计和数据 (4)3.2.2 student表的设计和数据 (5)3.2.3 course表的设计和数据 (5)3.2.4 score表的设计和数据 (6)3.3系统功能模块设计 (6)四、系统详细设计 (7)4.1登录模块 (7)4.2 学生模块 (7)4.3 教师模块 (8)4.4 管理员模块 (8)五、系统测试及运行结果 (9)5.1 主界面 (9)5.2 学生管理中心界面 (9)5.3 教师管理中心界面 (10)5.4 管理员管理中心界面 (10)5.5 查询课表界面 (11)5.6 查询成绩界面 (11)5.7 查询教学情况界面 (11)5.8 查询所有学生成绩界面 (12)5.9 学生信息管理界面 (12)5.10 学生成绩管理界面 (13)5.11 用户管理界面 (13)六、实验总结 (14)七、参考文献 (14)一、前言随着计算机在人们生活中的普及和网络时代的来临,对信息的要求日益增加,学生信息管理业务受到了较为强烈的冲击,传统的手工管理方式传统的手工管理方式已不能适应现在的信息化社会。
如何利用现有的先进计算机技术来解决学生信息管理成为当下的一个重要问题,学生信息管理系统是典型的信息管理系统,其开发主要就是针对前台的页面展示以及后台数据的管理。
对于前者,要求应用程序功能完备,易于使用,界面简单;而对于后者,则要求数据库具有一致性、完整性,并能够依据前台的操作来对应操作后台数据库达到一定的安全性。
本学生信息管理系统主要采用的纯JAVA代码实现图形界面系统的开发,以及数据库知识进行数据的查询,删除,插入和更新。
本系统主要分为三个部分:学生模块、教师模块、管理员模块。
其中学生模块实现的功能:查询课表信息和查询成绩。
教师模块实现的功能:查询课表信息、查询教学情况和查询所有学生的各科成绩。
Java终极大作业报告
Java语言程序设计展示报告学院专业组长信息组员信息1组员信息2组员信息3指导教师日期年月日目录第一章选题概述 (1)第二章完成情况 (2)第三章成果展示 (3)一、登陆注册界面展示 (3)1、效果截图 (3)2、核心代码 (4)二、客户端界面展示 (5)1、效果截图 (8)2、核心代码 (8)三、服务端界面展示 (4)1、效果截图 (3)2、核心代码 (3)四、数据库直连和文件线程 (10)第四章总结与感受 (12)第一章选题概述在一学期的Java课程学习之后,我们对Java语言有了一定的认识与了解。
在此基础上我们选择了题目一作为本组的目标,题目的相关要求如下(初期拟完成目标):设计编程实现桌面文档共享与管理系统(100%)实现以下功能--1.能够实现文件的下载与上传(客户端与服务器端)2.能够通过安全认证与别人分享文档3.能形成“圈子”,对朋友或这陌生人设置不同的安全级别4.能够共享桌面与聊天5.必须用数据库存储信息6.必须用extends 和implements 关键字7.必须用this关键字8.必须用图形用户界面9.界面设计与功能不限,充分发挥题目一比较有挑战性,题目中的要求几乎涉及到了我们学过的所有知识,除此之外还需要我们课外学习一些课堂额外的知识,比如数据库的创建于连接。
由组长XXX1负责整合所学内容与指挥,组员查阅资料并编写程序,再和组长讨论并完成各自的模块设计。
我们设计了如下的流程图:图1-1 流程图第二章完成情况经过将近一个月左右的编程设计,我们实现的桌面文档共享与管理系统(90%)实现了以下功能--1.能够实现文件的上传(客户端与服务器端)2.能够通过安全认证与别人分享文档3.能形成“圈子”,对朋友或这陌生人设置不同的安全级别4.能够聊天并截取屏幕信息5.采用了数据库存储信息6.采用了extends 和implements 关键字7.采用了this关键字8.采用了图形用户界面程序的编程设计图2-1 类成果展示图其中jp.java功能为截图;khd.java功能为建立客户端;sc.java 功能为文件上传线程;zc.java功能为实现用户登录;Main功能为总体调用;fwq.java功能为建立服务端;User.java功能为实现与数据库的连接(直连)。
Java大作业报告
课程:Java程序设计与应用开发题目:登录系统与钟表实现班级:XXXXXXXXXX学号:XXXXXXXX姓名:XXXX日期:XXXXX一、大作业目的用面向对象语言JA V A完成登录系统和钟表的分析、设计和实施。
通过课程设计掌握面向对象编程技术、GUI编程、常用类库的使用和应用系统的开发过程。
二、大作业题目描述和要求1.题目设计简单的登录系统和钟表界面,掌握Java编程中的多媒体应用。
2.要求(1)登录系统是java编程中比较基础的,设计一个登录对话框,通过输入正确的用户名和密码来进入系统,系统是一个带有菜单栏的记事本程序,通过点击菜单栏上的按钮来实现相应的功能。
(2) 通过设计一个钟表程序进一步掌握java在多媒体方面的应用。
3. 开发环境Eclipce + JDK1.4.2三、系统分析1.对于登录系统,首先应该对登录界面进行设计,该对话框中包括两个标签,一个文本输入框,一个密码输入框和两个按钮,这些GUI组件被添加到一个使用了网络袋布局的面板panel中,面板panel又被添加到Text_Login的内容窗格。
设计该系统的初步思路就是首先需要定义图像生成器的界面窗口,其次就是往每个按钮上添加触发事件监听器(如ActionListener、MouseListener、MouseMotionListener),然而在实际操作的过程中,新的问题不断出现,不过最后依依解决了。
对于记事本程序中的菜单栏的实现,菜单也是一种常用的GUI组件,菜单是一种层次结构,最顶层是菜单栏,在菜单栏中可以添加若干个菜单,每个菜单又可以添加若刚菜单选项,子菜单。
当单击一个菜单选项时,会生成一个动作事件,为菜单选项添加事件侦听器就可以侦听起动作事件。
2.对于Java的多媒体应用之钟表实现,程序在窗口上显示一个表盘,时刻度和分刻度为3D样式的,分别为黑灰色和灰色时针分针秒针随着时间在走动,间隔1s。
时针和分针的样式设计为略显锥形,秒针为简单的直线形。
Java_期末大作业报告
申请:优良中及
Java 期末大作业报告
专业班级:
学号姓名:
第一部分作业选题
作业内容:
作业题目自定,并详细说明项目的功能需求。
程序要有明确的功能,调试通过并能正常运行。
程序至少要包含以下知识点:
–GUI 图形界面
程序代码在150 行以上。
作业要求:
1、规划出实现这个项目所需要的类;
2、根据设计要求作出类图及类相应的关系;
3、编写代码实现设计。
我的选题:
为了满足作业要求,我进行了如下设计:此部分写你要做一个什么东西。
第二部分程序介绍
编程工具:
设计基本方法:
类的设计:
编程中的难点:
此部分要设计要求作出类图及类相应的关系,要有相应的图示。
第三部分最终产品介绍
此部分介绍你所做软件的使用方法。
第四部分参考文献
此部分写你所参考的资料,包括书籍,期刊,网址,请不要少于五个。
第五部分关键代码
此部分请将你的代码打印于此
被选题目:
1、计算器的设计,可仿照操作系统自带的计算器
2、记事本,可仿照操作系统自带的计算器
3、某小学期末成绩管理系统
4、小游戏,比如五子棋等
5、也可自选题目
Note:如果某个题目选的人较多,那么此题目中得优的人数不超过一定比例。
java语言程序设计期末考查大作业报告 3-4
《Java语言程序设计》大作业报告2019-2020学年第一学期班级:--------自己填--------学号:--------自己填--------姓名:--------自己填--------1、设计题目⑴假设车库有3个车位(可以用boolean [ ]数组来表示车库)可以停车,使用多线程模拟多个用户开车离开、停车入库的过程。
注意:车位有车时不能停车。
⑵编写一个菜单程序,要求菜单的结构如下:文件------打开------关闭系统管理------用户管理------新增用户------删除用户------退出系统要求:对退出系统添加事件、并加入快捷键CTRL+E;对新增用户添加事件、并加入快捷键CTRL+A;当点击新增用户菜单,出现一个对话框,对话框中有两个文本框(用户名和密码),同时出现两个按钮(确定和取消)。
确定按钮要有事件功能,且将输入的用户名和密码存入到一个文件中。
取消按钮事件负责完成关闭对话框功能。
2、程序设计思路(要求分步骤写清设计思路,并画出类的UML图)2.1作业32.1.1主要模块划分Park类:里面私有属性parting为车位数量初始化为3个,成员方法into (),也就是停车方法,调用该方法车位减一。
成员方法out(),调用该方法代表车子离开,车位加一。
OutThread类:继承Thread类,重写run方法,并且调用out()方法IntoThread类:继承Thread类,重写run方法,并且调用into()方法Test类:测试类,用来测试,启动OutThread类和IntoThread类线程进行测试。
2.1.2类图2.2作业42.2.1主要模块划分addActionListener:监听事件,主要用于实现鼠标事件,完成页面的打开,关闭,调用文件流;JMenuItem :菜单下拉框列表,让页面的交互性更强,提升用户体验;KeyStroke:快捷键的加入,同JMenuItem 一样,是为了提高用户的体验;2.2.2类图Jframe 类2.2.3 流程图3、 运行结果分析(截图每个关键运行点界面)菜单页面完成添加添加失败关闭窗口取消添加打开添加用户页面作业3:第一次测试,在测试类里面启动IntoThread类的线程和OutThread线程循环调用两个线程,发现只有有车位时,其他车子才能停进去作业4:运行Main函数,run us 得到一个窗口基本菜单列表展示点击新增用户,弹出添加新用户页面(默认文字为请输入新用户名):点击取消或者按ctrl+E,关闭当前窗口,并返回到窗口页面;按照要求填好用户信息,点击确认,则提示添加成功:此时打开指定文档jfram.txt则可以查看到输入的用户名和密码:4、设计中遇到的问题,解决途径及思路,经验总结。
(完整word版)java大作业报告模板
郑州轻工业学院《Java程序设计》作业报告姓名(学号)许超(5413060401XX)专业班级信管13-01指导教师黄永丽完成时间 2015 年 7月 1日成绩一、设计目的及任务要求设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。
要求如下:(1)具有简单的录入,查询和修改功能。
(2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;(3)使用集合类来保存存储数据。
(也可用文件来保存,也可以用数据库)(4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。
实现使用:前台窗口使用GUI编程创建图形界面,对图形界面的窗口和按钮进行事件监听,对于学生信息的录入,在GUI界面上输入学生信息,将相应的学生信息,保存到集合或者文件中。
查询根据查询条件如学号把相应的学生信息找到在图形用户界面上显示出来。
而修改功能是先查询在把修改后的信息保存。
二、系统功能分析与设计设计的学生个人信息管理系统,此系统能够实现学生信息录入,查找修改的功能,要有信息录入保存就必须有储存数据的地方,在这里我选择用文件来设计学生信息储存,学生信息查找功能需要按学号查找,学生信息修改要先查找到需要修改的学生信息然后修改。
系统体系设计如下三、数据分析与设计在我的学生信息管理系统中,用文件来保存学生信息,定义文件并把文件放在和程序同一个文件夹下放进去数个原始数据,然后在程序中进行录入、查询和修改。
定义代码如下:File file=new File("studentData.txt");file.createNewFile();文件如下:四、设计思路(相关类介绍,以及类之间的关系图)1.相关类介绍○1JFrameDemo类是本系统的主类,是程序的主要功能实现类,它继承自JFrame类。
○2b6.addActionListener(new ActionListener() {})类是JFrameDemo 的内部类,实现按钮b6的监听功能。
JAVA-课程设计(大作业)报告
课程设计(大作业)报告课程名称:面向对象程序设计课程设计设计题目:设计一个记事本院系:信息技术学院班级:设计者:学号:指导教师:设计时间:信息技术学院昆明学院课程设计(大作业)任务书简单记事本程序的设计目录一.题目分析 (5)1.1需求分析 (5)1.2功能要求设计 (5)二.总体设计 (5)2.1设计思路 (5)2.2运行界面 (6)2.3模块说明图 (6)2.4主流程图 (7)2.5 UML图 (7)2.6程序相关说明 (8)三.运行环境 (8)四.详细设计与分析 (8)4.1.初始化组件 (8)4.2.构建菜单栏及其下拉菜单 (8)4.3.“文件”菜单的事件监听 (9)4.5.异常处理 (10)五.调试分析 (12)六.总结 (13)七.参考文献 (14)附录(源代码) (14)一.题目分析1.1需求分析现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。
功能也是应有尽有,有的能改变字体,有的能改变文字颜色。
但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。
仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。
本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。
该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。
该程序主要用到了Java swing和事件监听等。
1.2功能要求设计设计一个记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找替换等功能,可扩展功能。
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:5)菜单中有“文件”,“编辑”,“关于”三个主菜单。
JAVA大作业报告
JAVA大作业报告√课题2 □课题3课题代号(单选)□课题1 □课题名称:通用源代码编辑器√3人□4人小组成员人数(单选)□1人□2人□小组成员名单(学号和姓名):(1)学号 B0904 姓名(2)学号___ ____ 姓名(3)学号姓名课题实现采用的工具(如为其他,请填写具体工具名称)√Eclipse □JDK命令行□其他______________□NetBeans□课题实现采用的操作系统(如为其他,请填写操作系统名称)√Windows □Unix □ Linux □其他______________ MicroSoft □课题完成时间:___________________2011.6.21________________对应提交的电子文档打包文件名称(准确填写):________________B09040119_B09040121_B09040220.zip===================以下部分为教师填写区,请勿填写==================评阅编号:()-()成绩评定:软件运行______软件基本功能_______软件提高功能______ 软件部分成绩________文档结构______文档理论___________文档撰写__________ 文档部分成绩________ 总成绩____________备注____________________________________________________________________一、需求分析课题要求:基本要求:设计用于软件开发时编写源代码的编辑器,可以完成文本方式的源程序的文件打开,编辑和文件保存操作。
提高要求:实现对包括Java语言在内的编程语言集合(如Java, C,C++,ASM等)的关键词语法加亮功能;实现剪贴板的功能;实现搜索定位关键字段的功能;实现搜索替换关键字段的功能;实现二进制文件的打开以及编辑功能(一般用16进制方式进行)。
Java大作业实验报告
XX大学2012-2013学年第2学期《JAVA面向对象程序设计》课程大作业报告课题名称:Java斗地主纸牌游戏小组成员人数5人小组成员名单(学号和姓名):自己:班级学号____姓名_______其他组员:课题实现采用的工具___eclipse(jdk 1.7.01)________课题完成时间:__2013/05/20____________________________对应提交的电子文档打包文件名称(准确填写):____斗地主.rar_________________________________一.大作业目的通过对斗地主纸牌游戏的程序设计,能更加深入了解面向对象的编程思想。
也对JA V A 这门语言能了解更多,能够正确并较为熟练的运用java进行图像化编程和使用java中的ui 控件。
二.题目与要求斗地主,基本上要有抢地主,出牌,托管功能,整个打牌过程尽量快速简介,尽量不出,规则参照QQ斗地主。
开发过程分工:1.首先列出程序所包含的功能,给出相应所需要的类包(规则;牌类)。
2.设计主窗体布局及菜单栏()登入窗口()。
3.设计抢地主事件及游戏过程中出牌时间的控制()4.设计电脑发牌()电脑判断并出牌()电脑代出()5.添加背景音乐及游戏主题环境的设计()6.包中各个类的整理及程序调试()7.程序中错误的修改以及对于程序的改进()代码编写:详见斗地主.rar(已发至gude@)四:希望达到的效果、1.将其他同学负责的部分添加到同一个工程下,并实现运行。
首先是将不同的文件导入到同一个包中,因为这份斗地主是参考一份网上下载的斗地主源码,所以每个人都是对相应的java代码文件进行相应的编译,所以工程的整体性没有大的问题。
只是不同的人设置了不同的变量名造成了系统的报错,在统一了变量名之后解决了这个问题。
2.设定游戏的主题环境原本的决定是参照传统的纸牌类游戏的界面进行设计,在窗口界面设计好之后我觉得传统的纸牌背景只是桌布背景过于呆板无趣,所以决定网上寻找合适的背景图做为背景。
Java大作业报告
Java大作业报告课程名称:Java2面向对象程序设计设计题目:淘金者的游戏一、实验目的1、加深对Java相关语法以及程序编写的认识与理解。
2、更好地熟悉JDK和J2ME。
3、初步建立自我开发Java程序的意识和概念,增强进一步学习Java的兴趣。
二、摘要说明对于初学者而言,这是一个比较大的程序,极具挑战性。
它是由八个子程序(Ghost/GhostCanvas/GhostMIDlet/Man/Monster/Prop/svPoint/TollGate)和一个图片文件(res)组成。
由于临近期末,时间紧张,所以我只挑选了其中的一个主程序的主要部分来研究。
因为我想Java程序的学习重在精,不在多。
这一点还请老师见谅。
这是一个“淘金者”的游戏。
原先我从网上下载来的是一个“抓鬼”游戏。
我觉得这个主题太恐怖,所以就想给它换个主题。
最后,我通过一些方法把游戏界面换成了“淘金”。
三、主程序主要代码的分步详述1)游戏状态的设置int status=0; //主菜单被选中项 0-百宝箱显示 1-主菜单 2-游戏中 3-重新开始 4-分数排行 5-游戏帮助 6-退出游戏int g_status=0; //游戏状态int p_status=0; //子状态int s_status=0; //子状态下的状态int sta=0;//下一个状态int g_sta=0;int p_sta=0;int i_status=0;//装载状态public static boolean playPause=false;// boolean是关键字,其缺省值是false2)主面布相关boolean conti; //游戏运行标志Random random=new Random();//产生随机数public static svPoint svp=null;//svPoint是另一个class的名称,用于控制得分的记录与保存boolean keyPre=false;//是否有键按下3)游戏相关//--------------------主菜单-------------------------public Image menuImg=null;public String[]menuSelPng={"/res/m0.png","/res/m1.png","/res/m2.png","/res/m3.png","/res/m4.png"};public Image[] menuSelImg=new Image[5];//m0,m1,m2,m3,m4,这五张图片分别是“游戏开始”“重新游戏”“分数排行”“游戏帮助”“退出游戏”//--------------------游戏中-------------------------public Image panelImg=null;static boolean g_pause=false; //游戏暂停标志public static Man man=null; //Man是另一个class的名称,用于控制小人的走路、中招、淘到金子等状态public static Vector mons=null;//Monster是另一个class的名称,用于控制牛头、马面、夜叉、僵尸这四种怪物的移动方向以及范围public static Prop prop=null; //Prop是另一个class的名称,用于控制游戏中溜冰鞋、面罩、蜡烛、蔓藤、鼠夹、鬼火这些道具的出现时间与位置public Image gameOverImg=null;public static int gateTime=1000;//本关关卡时间public String[]gateNumPng={"/res/n0.png","/res/n1.png","/res/n2.png","/res/n3.png","/res/n4.png","/ res/n5.png","/res/n6.png","/res/n7.png","/res/n8.png","/res/n9.png"};public Image[] gateNumImg=new Image[10];//这10张图片分别是0-9的数字,用来表示所闯的关数public Image gateImg=null;int t_gate=0;int t_point=0;int showWinTime=0;Image winImg=null;Image congImg=null;//--------------------帮助文字-----------------------String[] helpMe=null;//===================================================int i,j;GhostCanvas() {super(false);setFullScreenMode(true);//设置全屏模式init();start();}public void start() {Thread t=new Thread(this);//多线程t.start();}public static int rate=200;//每帧播放时间为1/10秒public static long startTime=0;//记录开始游戏经过的时间4)根据当前状态时的按键调整游戏状态(用了多个switch语句,嵌套)private void control() {int keystate=getKeyStates();switch(status) {//主菜单被选中项 0-百宝箱显示 1-主菜单 2-游戏中 3-重新开始 4-分数排行 5-游戏帮助 6-退出游戏case 0://百宝动画status=1;g_status=0;break;case 1://主菜单switch(g_status){ //游戏状态case 0:menuInit();//菜单初始化g_status=1;p_status=0; //子状态break;case 1://菜单选择界面if (v_GameCode==Canvas.UP && keyPre){// 游戏操作Canvas类的up属性p_status--;//子状态if (p_status<0){p_status=4;}} else if (v_GameCode==Canvas.DOWN && keyPre){p_status++;if (p_status>4){p_status=0;}}if (v_GameCode==Canvas.FIRE && keyPre){unMenu();switch(p_status){case 0://开始游戏status=2;g_status=0;case 1://重新开始status=3;break;case 2://分数排行status=4;g_status=0;break;case 3://游戏帮助status=5;g_status=0;break;case 4://退出游戏exit();status=-1;break;}}break;}break;case 2: //游戏画面switch(g_status){ //游戏状态case 0://载入游戏gameInit(10);g_status=4;p_status=0;break;case 1://载入本关startGate();g_pause=false;if (i_status>10){g_status=3;i_status=0;}break;case 3://游戏中if(v_keyCode==-7 && keyPre) {endGate();unGame();status=1;g_status=0;p_status=0;} else if(v_keyCode==-6 && keyPre) {} else{int s_status=isEndGate();if (s_status!=0){if (s_status==1){//淘到所有的金子if (t_gate==17){//通关man.point=man.point+(TollGate.curTollGate+1)*1000; //基本分man.point=man.point+GhostCanvas.gateTime/1000*100; //提前完成的分数t_point=Man.point;t_gate=TollGate.curTollGate;g_sta=6;p_sta=0;g_status=-3;p_status=0;} else{//过关man.point=man.point+(TollGate.curTollGate+1)*1000; //基本分man.point=man.point+GhostCanvas.gateTime/1000*100; //提前完成的分数TollGate.curTollGate++;g_sta=4;p_sta=0;endGate();g_status=-3;p_status=0;}} else if(s_status==2 || s_status==3){//时间到或被怪物碰到t_point=Man.point;t_gate=TollGate.curTollGate;g_status=5;p_status=0;}}case -3://胜利switch(p_status){case 0:showWinTime=0;if (winImg==null){winImg=Image.createImage("/res/win.png");//显示胜利的图片 }catch(Exception e){}}p_status=1;break;case 1:showWinTime+=rate;if (showWinTime>1500){p_status=2;}break;case 2:winImg=null;g_status=g_sta;p_status=p_sta;}break;case 4://过关画面操作switch(p_status){case 0://gateImgInit(TollGate.curTollGate+1);p_status=1;break;case 1://if(keyPre){UnGateImg();g_status=1;}break;}break;case 5://GameOverswitch(p_status){case 0:endGate();unGame();if (gameOverImg==null){try{gameOverImg=Image.createImage("/res/gameover.png"); }catch(Exception e){}}p_status=1;case 1:if(keyPre){congImg=null;p_status=2;}break;case 2:if (t_point>Man.MaxPoint){svp.inputing=true;GhostMIDlet.mainMIDlet.disp.setCurrent(svp.frm); }p_status=3;break;case 3:if (!svp.inputing && keyPre){gameOverImg=null;status=1;g_status=0;p_status=0;}break;}break;case 6://通关switch(p_status){case 0://装载通关画面endGate();unGame();if (congImg==null){try{congImg=Image.createImage("/res/cong.png"); }catch(Exception e){}}p_status=1;break;case 1:if (keyPre){p_status=2;}break;case 2:if (t_point>Man.MaxPoint){svp.inputing=true;GhostMIDlet.mainMIDlet.disp.setCurrent(svp.frm); }p_status=3;break;case 3:if (!svp.inputing){status=1;g_status=0;p_status=0;}break;}break;}break;case 3://重新开始svp.readTollGate();TollGate.curTollGate=svp.gate;Man.point=0;gameInit(TollGate.curTollGate);status=2;g_status=4;p_status=0;break;case 4://分数排行switch(g_status){case 0://装载排行榜if (svp.isExistRs("point")){svp.getPointList();}g_status=1;break;case 1://显示排行榜if (keyPre){status=1;g_status=0;}break;}break;case 5://游戏帮助switch(g_status){case 0://装载帮助文字helpMe=new String[]{"1.在游戏规定的关卡中淘到所有的金子"," 就可以获得胜利。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java程序设计》大作业设
计报告
设计名称多人聊天室
组员姓名
学生班级
设计时间 2013.12.15
设计成绩
一、问题描述及设计思路
设计多人聊天程序,能进行多人实时聊天,其中服务器为PC端,客户端为安卓端。
在服务器上,不断监听来自客户端的接入请求,对于接入的客户端加入线程池,同时为之开启独立线程,等待从该客户端发来的信息,再转发给其他客户端。
在客户端上,首先布局简单的安卓界面,开启客户端并且登录后,设置button 按钮监听想服务器发送信息请求,同时开启独立线程接收来自服务器的信息(即来自其他客户端的信息)。
二、详细设计过程
服务器开发
1.首先,导入了我们完成服务器端所要完成的各种类:
能,辅助以GUI界面进行美化。
2.在Server类里面的私有成员函数里,有以下定义:
程运行做准备,
同时创建了一个广义的ArrayList<Socket>vector,用来存放客户端的套接字。
创建了两个file类的文件,分别用于记录客户端的链接信息和保存客户端的聊天记录。
一个独立的线程,互不干扰。
接下来则是采用GUI组件进行简单的界面设计,在try-catch块里完成主要功能。
首先,采用ServerSocket serverSocket = new ServerSocket(port);建立套接字,一旦建立成功,则在服务器端的界面上会出现创建的日期信息。
又使用Socket socket = serverSocket.accept();连接客户端,采用while语句不断监听客户端连接,收到请求后,则在服务器端显示客户端的信息,如连接到服务器的时间,客户端的主机名称和IP地址,这些信息会被写进txt文本进行保存。
mExecutorService.execute(new Thread
(newHandleAClient(socket)));则是向线程池中添加线程,这里使用了一个内部类HandleAClient用于处理服务器和单独一个客户端之间的问题。
请看下面的继续解析。
4.采用一个内部类HandAClient完成一个客户端和服务器之前互相传输信息的
将信息发送到其他的客户端。
首先,用br获取流对象,再用msg保存读到的信息,同时在里面还定义了另外一个函数sendToClient(),用于把信息发送给客户端,在发送信息是,服务端还要进行判断,通过ArrayList类对象Vector,里面每一个元素为客户端的socket,进行判断:如果获取到的某个信息是来源于客户端A,则发送时客户端A暂时关闭,把A的信息发送到其他的所有客户端,这样会避免在客户端上自己发出的信息显示两次的问题。
同时,服务端把客户端的信息保存为记录文本txt文件。
客户端开发
开发步骤:
1.新建一个android应用程序
2.在布局文件中添加两个button控件标签,和两个文本框,并未其设置属性和值
3.在Activity中,声明控件变量并根据id获得控件对象
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_talk);
buttonIn = (Button) findViewById(R.id.buttonIn);
buttonSend = (Button) findViewById(R.id.buttonSend);
//show the messages
text01 = (EditText) findViewById(R.id.text01);
//input the message
text02 = (EditText) findViewById(R.id.text02);
4.以匿名内部类方式监听button
// the button of login
buttonIn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
// con nect to server
s = new Socket(IP, PORT);
//inputStream includes in br
br = new BufferedReader(new InputStreamReader(s
.getInputStream()));
//os is the outputStream
os = s.getOutputStream();
} catch (Exception e) {
// handle exception
Log.e(DEBUG_TAG, e.toString());
}
}
});
//the button of send
buttonSend.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
// get the information from the text02
String str = text02.getText().toString();
//show the information on text01
text01.setText(str);
os.write((str + "\n").getBytes("utf-8"));
} catch (Exception e) {
// handle exception
Log.e(DEBUG_TAG, e.toString());
}
}
});
5.登陆后,开启线程监听来自服务器的信息
private Runnable myRunnable = new Runnable() {
public void run() {
//monitor the information from the server continually
while (true) {
try {
if ((message = br.readLine()) != null) {
message += "\n";
mHandler.sendMessage(mHandler.obtainMessage());
}
} catch (Exception e) {
Log.e(DEBUG_TAG, e.toString());
}
}
}
};
开启异步处理函数:
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
try {
//show the information from the server
text01.append(message);
} catch (Exception e) {
Log.e(DEBUG_TAG, e.toString());
}
}
};
三、结论及体会
此次大作业,是我们团队对新知识应用很好的一次的尝试。
此次我们团队四人分成两组,分别写服务器和客户端。
期间,我们一共敲出三份代码。
首先单客户端通信的软件,这个程序难度比较小。
另外还敲了比较复杂的安卓UDP通信程序,有用户名自定义跟头像选择,但是因为在安卓Activity间用intent转换时没有找出其中的bug,所以暂时性放弃那份代码。
这份代码是第三份相对第二份来说比较简单。
通过此次合作,让我们团队深刻地了解到,对于多而泛的知识学习,我们更应该强调合作精神,分工细化,这样能更有效地进行学习,因此我们也专门成立android学习小组。
四、附录(图表、关键代码)
服务器界面:
一旦服务器端运行,那么在服务器上就会显示这次服务器运行时的准确时间。
一旦连接到客户端,就会在服务器的界面上不断显示信息。
具体请看客户端代码报告。
客户端界面:
客户端登录:
客户端发送消息:
其他客户端接入。