java设计报告
java语言程序设计实验报告

java语言程序设计实验报告篇一:Java实验八报告《Java语言程序设计》实验报告学生姓名:郭倩班级:信息112学号:201152275208实验地点:经管实验中心证券实验室指导教师:赵利平实验日期:实验环境:Windows 2000+JDK1.61. 实验目的(1)理解子类派生的概念(2)学习创建子类对象(3)掌握方法覆盖的使用2.实验内容(1)设计三个类:完成实验教材P52页程序清单4-2;(2)通过编制一个程序来加深对嵌套类、内部类和局部类的理解:完成实验教材P56页程序清单4-3;2. 实验过程报告撰写具体要求:上述实验内容要求写出源代码及运行结果。
实验内容(1)://Polymorphism.abstract class Student{final static int CourseNo=3;String name;String type;int[] courses;String courseGrade;public Student(String name){=name;courses=new int[CourseNo];courseGrade=null;}public abstract void calculateGrade();public String getName(){return name;}public String getType(){return type;}public String getCourseGrade(){return courseGrade;}public int getCourseScore(int courseNumber){return courses[courseNumber];}public void setName(String name){=name;}public void setType(String type){this.type=type;}public void setCourseScore(int courseNumber,int courseScore){this.courses[courseNumber]=courseScore;}}class Undergraduate extends Student{public Undergraduate(String name){super(name);type="本科生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=80&&average<100) coursegrade="优秀" else="" average="">=70&&average<80) coursegrade="良好" else="" average="">=60&&average<70) coursegrade="一般" else="" average="">=50&&average<60) courseGrade="及格";else courseGrade="不及格";}}class Postgraduate extends Student{public Postgraduate(String name){super(name);type="研究生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=90&&average<100) coursegrade="优秀" else="" average="">=80&&average<90) coursegrade="良好"else="" average="">=70&&average<80) coursegrade="一般" else="" average="">=60&&average<70) courseGrade="及格";else courseGrade="不及格";}}public class Polymorphism{public static void main(String[] args){Student[] students=new Student[5];students[0]=new Undergraduate("陈建平");students[1]=new Undergraduate("鲁向东");students[2]=new Postgraduate("匡晓华");students[3]=new Undergraduate("周丽娜");students[4]=new Postgraduate("梁欣欣");for(int i=0;i<5;i++){students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for(int i=0;i<5;i++){students[i].calculateGrade();}System.out.println("姓名"+" 类型"+" 成绩");}}System.out.println("-------------------------"); for(int i=0;i<5;i++){ System.out.println(students[i].getName()+" "+students[i].getType()+" "+students[i].getCourseGrade()); }(1) 都有(2) Student[] students=new Student[5];(3) Student是抽象的,不能用new操作符创建抽象类的实例。
java课程设计报告【范本模板】

南京晓庄学院《JAVA程序设计》课程设计报告题目: ATM系统的设计与实现姓名:黄强学号:14131609班级: 14计算机转本2班指导教师:徐家喜完成时间成绩:信息工程学院2017年6月目录1摘要 (1)1.1系统开发背景 (1)1。
2系统开发的目的和意义 (2)1。
3完成的主要工作 (2)2需求分析和总体设计 (3)2.1需求分析与设计思路 (3)2。
1.1关键技术说明 (3)2。
1.2需求分析 (3)2.1.3系统设计方案与思路 (3)2。
1.4系统目录结构说明 (4)2。
2系统功能结构 (5)2.3数据库设计 (6)3详细设计 (7)3.1系统模块实现 (7)3。
1.1ATM主界面实现 (7)4系统运行结果 (11)5课程设计总结 (12)模拟ATM系统的设计与实现1摘要1.1系统开发背景随着Internet网络的迅速发展,作为电子商务的ATM自动取款系统以其方便、快捷和高效的优势,逐步成为新兴电子商务的经营模式和理念,人们已经不再是只满足于低效率的排队等待,而是渴望能充分享受网络所带来的更多的便利.ATM自动取款系统恰恰适应了如今的快节奏生活。
本文以实际ATM取款应用为北京,阐述了系统开发过程的开发方法、系统分析以及一般步骤。
本ATM系统的目的就是建立一个客户平台,用户使用此平台进行查询余额、存款、取款、转账、等业务办理。
相对于柜员操作一样的,不过ATM系统有的功能有权限设置,一些功能只有银行柜员才能进行的业务办理。
ATM取款系统的针对的用户群是使用此软件系统的用户,用户做为系统的服务群体,可以使用数据库已有的账号与密码,登陆ATM系统。
当用户成功登陆后就可以根据用户的需求进行各项业务的办理,办理完所有的手续后,用户的输入的新资料以及办理的业务处理后的信息都会反馈到数据库并且都会存入到数据库中。
这样用户就完成了办理业务。
关键词:ATM;MySQL; Java;1.2系统开发的目的和意义随着信息时代科技的飞速发展,使用ATM取款机、计算机等技术的发展,不仅提高了工作效率,而且大大的提高了其安全性。
java实训报告(通用9篇)

java实训报告java实训报告(通用9篇)在当下社会,大家逐渐认识到报告的重要性,写报告的时候要注意内容的完整。
那么一般报告是怎么写的呢?下面是小编精心整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。
java实训报告篇1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。
2.熟练掌握Java中常用的Swing组件的使用方法。
3.熟练掌握Java程序中图形用户界面设计的方法。
4.熟练掌握使用JDBC操作数据库的方法。
5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。
二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。
该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。
设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。
系统功能分析是在系统开发的总体任务的基础上完成的。
该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。
供应商管理:主要包括供应商的添加、删除和修改。
产品管理:主要包括产品的添加、删除和进货、出货。
产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的导出。
2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想本次实训设计采用选择结构化开发方法,即用系统工程的思想和工程化的方法,按照用户至上的原则,自顶向下整体分析与设计和自底向上逐步实施的系统开发过程。
是组织、管理和控制信息系统开发过程的一种基本框架。
其基本思想:在系统分析时,采用自顶向下、逐层分解,由抽象到具体的逐步认识问题的过程;在系统设计的时候,先考虑系统整体的优化,再考虑局部的优化问题;在系统实施的时候,则坚持自底向上,先局部后整体,通过标准化模块的连接形成完整的系统。
java课程设计记事本设计报告

java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。
1.理解Java编程语言的基本语法和结构。
2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。
3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。
4.熟悉Java中的常用类库和方法。
5.能够运用Java编程语言编写简单的程序。
6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。
7.能够分析并解决编程过程中遇到的问题。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。
2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。
3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。
二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。
1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。
–类和对象的概念,封装、继承和多态的原理。
–常用类库和方法的使用。
2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。
–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。
–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。
三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。
2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。
3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。
4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。
Java程序设计实训报告

Java程序设计实训报告Java程序设计实训报告一、实训目标本次Java程序设计实训旨在让学生掌握Java语言的基础知识和编程技能,能够独立完成Java程序的设计和开发,提高学生的实际编程能力和解决问题能力。
二、实训内容本次Java程序设计实训包括以下内容:1. Java基础语法和面向对象编程的基本概念。
2. Java程序的运行和调试方法。
3. Java标准库的使用和常用数据结构的实现。
4. 常用算法的实现和优化。
5. Java GUI编程和多线程编程的基本概念。
三、实训流程1. 熟悉Java基础语法和面向对象编程的基本概念,在Eclipse 或IntelliJ IDEA等集成开发环境中编写HelloWorld程序,理解程序结构和运行方式。
2. 学习Java标准库的使用和常用数据结构的实现,实现常用算法,如排序、查找等。
掌握调试和优化技巧,以提高程序性能。
3. 学习Java GUI编程和多线程编程的基本概念,实现基本的窗体应用程序和多线程程序,例如计算器、文本编辑器等。
4. 综合应用所学知识,开发一个较为复杂的Java程序,如网络聊天室、小游戏等。
5. 学习Java框架,例如Spring、Hibernate等,实现web应用的设计和开发。
四、实训总结通过这次Java程序设计实训,我加深了对Java语言的理解和认识,学会了使用Java标准库进行编程,掌握了常用算法的实现和优化技巧,学会了Java GUI编程和多线程编程的基本概念,能够独立开发基本的窗体应用程序和多线程程序。
同时,我还学习了Java框架,并能够应用框架进行web应用的设计和开发。
在实训过程中,我遇到了很多困难和问题,但通过查阅资料、询问老师和同学等方式,最终解决了这些问题,加深了对Java程序设计的了解和认识,也提高了我的解决问题的能力。
总的来说,这次实训让我受益匪浅,我会继续学习和探索Java程序设计领域,提高自己的编程水平。
java课程设计报告

java课程设计报告随着Java言的不断发展,越来越多的编程人员开始使用 Java开发应用程序,这就催生出了一种新的课程 Java程设计。
本文旨在通过总结 Java程设计的过程及其相关知识,以便于编程人员以及研究者对 Java程设计有一个更深入的了解。
首先,要完成 Java程设计,需要了解 Java语言特性和编程工具。
这里不仅要掌握 Java言本身的知识,还要熟悉 Java架和测试框架,这样才能开发出能够完成各种任务的应用程序。
此外,学习Java程设计的人还需要具备一定的网络知识,这样可以更好地了解Java程设计的用途,以及 Java发的环境,否则,将很难完成 Java程设计。
其次,要开始 Java程设计,设计人员要先明确设计内容,比如要设计的应用程序的功能、界面要求等,还要考虑安全性、可维护性等方面,以确保设计出来的程序在实际应用中能够如预期般完成任务。
之后,设计人员就可以根据设计内容,编写 Java序,实现功能。
此时,设计人员要根据需求分析,合理安排代码结构,并确定需要用到的类库和技术;同时,实现功能时也要注意代码质量,要遵守 Java 程的规范,要避免出现内存泄漏等问题。
最后,在完成 Java程设计之后,设计人员要进行测试,确保程序能够完成预期任务。
这里可以使用基于 Junit(Java元测试框架)的测试框架,测试各个类的接口和输出内容,以确保程序功能正常,做到稳定可靠。
总的来说,要完成 Java程设计,不仅要有良好的 Java言和编程工具的基础知识,还要了解 Java发的环境,还要具备一定的网络知识,最后要仔细的进行测试,确保设计出来的程序稳定可靠,才能完成 Java程设计。
总之,很明显,Java程设计并不容易,但所能学到的知识也丰富多样,对于以后的研究和工作也有很大的帮助,因此,建议编程人员考虑学习 Java程设计,来拓展自己的知识面和应用能力。
《Java程序设计》上机实验报告 实验五 流、文件及基于文本的应用

信息科学与工程学院《Java程序设计》上机实验报告专业班级姓名学号主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)2.编写一个程序,能将一个源程序中的空行及注释去掉,并将处理后的内容写到目标文件中。
(源文件名称和目标文件名称均要求以命令行参数形式输入)import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;public class CopyFile {static String delComm(String s){if(s==null)return s;int pos=s.indexOf("//"); //去掉以//开始的注释if(pos<0)return s;return s.substring(0,pos);}public static void main(String args[]){String infname="CopyFile.java";String outfname="CopyFile.txt";if(args.length>=1)infname=args[0];if(args.length>=2)outfname=args[1];try{File fin=new File(infname);File fout=new File(outfname);BufferedReader in = new BufferedReader(new FileReader(fin));PrintWriter out = new PrintWriter(new FileWriter(fout));int cnt=0;String s = in.readLine(); //写字符串while(s != null){主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)cnt ++;s=delComm(s); //去掉以//开始的注释out.println(cnt+":\t"+s);//写出s=in.readLine(); //读入}in.close(); //关闭缓冲读入流及文件读入流的连接out.close();}catch (FileNotFoundException e1){System.out.println("File not found");}catch(IOException e2){e2.printStackTrace();}}}主要问题的出错现象:1)运行程序后,无对应的输出结果出现2)源程序编写过程中,出现方法和类的调用无法完成.出错原因:1)函数调用时候,相关函数输入变量错误2)方法名的书写不符合规范,使得方法变为变量.解决方法及效果:1) 编写和调用类的方法时,注意参数的类型和数量的对应.2)规范命名.常量用大写字母,变量用小写字母开始,类以大写字母开始.实验小结:1) 为每个类分配正确的职责.尽量保持类功能单一. 不要在一个类中做太多事.2) BufferedReader的方法:readLine():String ,当他的返回值是null时,就表示读取完毕了。
Java课程设计实验报告及全部源码流程图

课程设计一、实验目的1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。
2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。
二、实验要求1.问题描述准确、规范。
2.程序结构合理,调试数据准确、有代表性.。
3.界面布局整齐,人机交互方便。
4.输出结果正确。
5.正确撰写实验报告。
三、实验内容编写一个GUI程序实现日历的功能。
一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。
可以实现显示时钟,时钟能进行整点报时。
可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。
四、实验步骤1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。
2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。
3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。
4. 根据实验结果,写出合肥工业大学实验报告。
实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。
5.详细的上机实验步骤见任务分工及程序设计进度表。
五、实验结果经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
天津大学电气自动化与信息工程学院学院JAVA课程设计报告班级15通信工程姓名刘华宾学号对随机数的研究设计1:活蹦乱跳的小球一、题目简介创建一个应用程序,调用awt包产生一个可视化界面,界面分为四个区域,每个区域分别产生10个颜色相同的小球,位置随机,四个区域小球颜色不同。
二、代码实现import java .awt.*;public class XiaoQiu{public static void main(String args[]){Frame w = new Frame("活蹦乱跳的小球");w.setSize(1024,768); //设置窗体大小w.setBackground(Color.BLACK);w.show();}1.首先用记事本创建一个名叫XiaoQiu的主类,使用awt包中的类Frame生成一个对象名为w的窗体,窗体名为“闪烁的小球”,设置窗体大小为1024*768,背景为黑色。
2.另建一个名为MyPanel的类,此类继承自Panel类,并将此画布放进窗体。
调用paint方法画出3条白线作为边界。
g.setColor(Color.WHITE);g.fillOval((int)(Math.random()*206),(int)(Math.random()*768 ),50, 50);3.在第一区域画出第一个实心的随机圆,调用fillOval方法。
其x坐标先调用方法random产生一个0到1的随机数再乘第一区域最大x坐标206,并将其转为整形。
一开始将206乘在了外面,(int)(Math.random())*206,产生的小球只能贴着界面的左边,因为先取整,x就变为了0,再乘任何数都是0。
同理y坐标写成(int)(Math.random()*768),通过for语句循环增加小球个数。
4.在第二区域画出实心圆。
由于想x,y为具体数值,不是带状区域,一开始写成了g.fillOval((int)((Math.random()*462),(int) (Math.random()*768),50,50),确实在第二区域产生了绿色的小球,但第一区域也混有绿色小球,经过很多次尝试,终于想出一种方法:先在第一区域随机产生一定数量的小球,然后通过增加x坐标的值将其平移到第二区域。
同理第三、四区域便可以产生不一样颜色的小球,且各区域不会产生混叠。
5.这样产生的小球在面板上是静态的(图1.1),并没有产生动态的效果,通过查阅资料,可以使用接口Runnable,调用repaint方法,加入线程使其每画一次停留30毫秒,这样就给人一种动态的效果了。
public void run(){while(true){try{Thread.sleep(30); //停息30毫秒}catch (Exception e){}repaint(); //重画}}6.编译,运行便产生了预想的结果(图 1.2),由于停留时间较短,所以人眼看去会多余10个小球。
全部代码请见附录一。
图1.1图1.2设计2:从天而降的字母一、题目简介在一个1024*768的窗体上,有50个随机产生的彩色字母缓缓落下,犹如下雪。
二、代码实现1.首先设置一个窗体,方法同设计1,此处不再赘述.2.第二步是生成50个随机字母,我们索性在这一步将坐标放到数组变量里,以便准备给下落动作使用,这样就会字母位置随机。
int x[]= new int[50];int y [] = new int[50];x[i]=(int)(Math.random()*1000);y[i]=(int)(Math.random()*500);问题就在于字母本身是随机的,如何产生更是问题。
首先想到的是产生随机数,用char将整形的随机数(ASCII码)转为字符,发现a对应的ASCII码为97,z就是97+26,第一次写成了(char)(Math.random()*97+26),编译没有出错,但运行时发现还出现了“?”等一系列非字母符号,检查时才想到26个字母才是随机的这一原则,便改为了(char)(Math.random()*26+97),运行产生了正确的结果。
为了效果更好,将字母的颜色也设置为了随机的。
g.setColor(new Color((int)(Math.random()*255),(int)(Math.random()*255),(in t)(Math.random()*255)));3.将产生的随机字母用对象g调方法drawString。
g.drawString((char)(Math.random()*97+26),x[i],y[i]);编译时系统报错,因为drawString的第一个参数为字符串型,这样产生的字母却为字符型。
自己通过查阅课本和网络发现一个办法,将字符型转为字符串型。
把产生的随机字母放入数组C[i]中,并将其变成对象—new Character(C[i]),并用方法toString()得到字符串g.drawString(newCharacter(c[i]).toString(),x[i],y[i]);。
4.第四步是将产生的随机字母落下,当字母超出了下边界之后就要将y值回到零,为了有更好的效果,还要让x获得一个新的随机数,另外,这个字符也要产生一个新的字符。
此处加入线程,引用接口Runnable来实现,每次线程“睡”100ms。
public void run(){while(true){for(inti =0;i<50;i++){y[i]++;if(y[i]>600){y[i]=0;x[i]=(int)(Math.random()*1000);c[i]=(char)(Math.random()*26+97);}}5.编译,运行便产生了预想的结果(图2.1和图2.2),全部代码请见附录二。
图2.1图2.2附录一:import java .awt.*;public class QQMain{public static void main(String args[]){Frame w = new Frame("闪烁的小球");w.setSize(1024,768); //设置窗体大小MyPanelmp = new MyPanel();w. add(mp);Thread t = new Thread(mp);t.start();w.setBackground(Color.BLACK);w.show();}}classMyPanel extends Panel implements Runnable{public void paint(Graphics g){//画出分界线g.setColor(Color.WHITE);g.drawLine(256, 0, 256, 768);g.drawLine(512, 0, 512, 768);g.drawLine(768, 0, 768, 768);for(inti=0;i<=10;i++){g.setColor(Color.WHITE);g.fillOval((int)(Math.random()*206),(int)(Math.random()*768), 50, 50);g.setColor(Color.GREEN);g.fillOval((int)(Math.random()*206)+256,(int)(Math.random( )*768),50, 50);g.setColor(Color.RED);g.fillOval((int)(Math.random()*206)+512,(int)(Math.random( )*768),50, 50);g.setColor(Color.YELLOW);g.fillOval((int)(Math.random()*206)+768,(int)(Math.random() *768),50, 50);}}public void run(){while(true){try{Thread.sleep(30); //停息30毫秒}catch (Exception e){}repaint(); //重画}}}附录二:importjava.awt.*;public class MyChar{public static void main (String args[]){Frame w = new Frame("从天而降的字母");w.setSize(1024,768);w.setBackground(Color.BLACK);MyPanelmp = new MyPanel();w.add(mp);Thread t = new Thread(mp);t.start();w.show();}}classMyPanel extends Panel implements Runnable{int x[]= new int[50];int y [] = new int[50];char c[]= new char[50];MyPanel(){for(inti=0;i<50;i++){x[i]=(int)(Math.random()*1000);y[i]=(int)(Math.random()*500);c[i]=(char)(Math.random()*26+97);}}public void paint(Graphics g){g.setColor(Color.RED);g.drawLine(0,600,1000,600); //横向边界g.drawLine(1000, 0,1000, 600); //竖向边界for(inti=0;i<50;i++){g.setColor(newColor((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));g.drawString(newCharacter(c[i]).toString(),x[i],y[i]);}}public void run(){while(true){for(inti =0;i<50;i++){y[i]++;if(y[i]>600){y[i]=0;x[i]=(int)(Math.random()*1000);c[i]=(char)(Math.random()*26+97);}}try{Thread.sleep(100);}catch(Exception e){}repaint();}}}。