Java课程设计第二次实验报告--红绿黄灯(完整代码+报告)
红绿灯-JAVA课程设计报告

合肥学院计算机科学与技术系课程设计报告2012~2013学年第一学期课程课程设计名称学生姓名学号专业班级指导教师2013JAVA 语言JAVA 语言课程设计朱鹏飞110401101111 级计本(3)班檀明、张艳明年 1 月一、课程设计目的通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《JAVA语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)熟练掌握JAVA语言的GUI 设计、多线程技术,灵活运用各种类库。
二、课程设计名称及内容名称:交通灯模拟程序内容:设计一个交通灯管理的模拟程序,实现在一个十字路口的交通管理三、任务和要求1.设计程序界面,画出十字路口和交通灯。
2.可以手工设置红、绿等的时间间隔,程序按设定值自动变换每个路口的交通灯颜色。
3.随机产生一些车辆,这些车辆遵守红灯停、绿灯行的交通规则。
四、设计方案提示分别设置两个线程代表东西和南北方向的交通灯,根据设定值变换交通灯颜色每个车辆对应一个线程,利用线程技术实现车辆的红灯停、绿灯行的行为五、总体设计思路从实验的要求上看,要实现交通灯的管理,需要解决的问题有两大部分:(一)绘制出交通灯及路口上的线路,以界面的形式展现出来。
以此作为程序运行的一个进程。
(二)程序对交通灯时间按计数器进行监听,倒计时时间为0的时候就进行切换。
同时设置文本框,当操作员将时间写入文本框当中之后,点击确定按钮就将程序中的红绿灯的时间重置。
以此作为一个线程。
(三)随机在各个路口产生车辆,符合条件则通过,不符合条件则暂停。
java多线程交通信号灯模拟过程详解

java多线程交通信号灯模拟过程详解这学期我们java课程的课程设计项⽬----交通信号灯的线程设计实验⽬的:多线程设计,同步机制题意设计⼀个交通信号灯类:变量:位置、颜⾊(红、黄、绿)、显⽰时间(秒)。
⽅法:切换信号灯。
创建并启动两个线程(东西向、南北向)同时运⾏。
实验要求设计线程。
设计路⼝信号灯⽰意图界⾯。
进⼀步将每个⽅向的信号灯分成3种车道灯:左转、直⾏和右转。
根据车流量进⾏时间的模糊控制。
在课程设计的开始并没有仔细看⽼师的要求,只知道是交通信号灯。
然后就开始各种找资料,百度,⽹上⼤量的关于红绿灯的设计都是参考张孝祥⽼师的教程,⼤概的设计⽅法是创建了三个类 lamp、road、lampcontrol。
然鹅......对.....然鹅⼜来了,在查了⼤概两天资料后,我⼜反过来看了⼀遍⽼师发的设计要求.....这这这.....,光控制灯就⾏了啊,不要车的啊,捂脸...所以设计思路马上就变得清晰,根据张⽼师的做法,每个路⼝都有三个灯,分别为左转、直⾏、右转,所以⼀共有12盏灯。
按照要求,右转灯为常亮灯,左转和直⾏灯才有红绿交替。
在除去右转灯的⼋个灯⾥⾯,⼜可以分为四组可以两两匹配的灯,分别为东西左转南北(平⾏转垂直)、南北直⾏(垂直通⾏)、南北左转东西(垂直转平⾏)、东西直⾏(平⾏通⾏)。
于是我给这个12个灯编了个号:emmm ⼤概就是这样,但是跟⽣活中的红绿灯不同,⽣活中的都是看对⾯路⼝的灯,我们这⾥是模拟嘛....就各个路⼝⽤各个路⼝的灯呗.....⼤致解释⼀下,1号灯为由南向西的左转灯,2号灯为由南向北的直⾏灯,3号灯为由南向东的右转灯。
4号灯为由东向北的右转灯,5号灯为由东向西的直⾏灯,6号灯为由东向南的左转灯。
7号灯为由北向西的右转灯,8号灯为由北向南的直⾏灯,9号灯为由北向东的左转灯。
10号灯为由西向北的左转灯,11号灯为由西向东的直⾏灯,12号灯为由西向南的右转灯。
然后根据匹配的原则,⼤概就是这么⼀张图:我们就可以得到:这四组信号灯。
Java课程第二次实验报告

实验报告( 2015 / 2016学年第2学期)课程名称JAVA语言程序设计实验名称Java方法和数组的使用、类和对象实验时间年月日指导单位指导教师学生班级学号学院(系) 专业if(n==a*a*a+b*b*b+c*c*c)return true;elsereturn false;}}运行结果:2. 求斐波那契数列的第n项,n从键盘输入。
程序:package斐波那契数列;import java.util.Scanner;public class Fibonacci_arrays {public static void main(String[] args) {// TODO自动生成的方法存根int n;System.out.print("输入需要的第N位斐波那契数:");Scanner input=new Scanner(System.in);n=input.nextInt();switch(n){case 0: System.out.print(0);break;case 1: System.out.print(1);break;default:System.out.print("循环迭代法:");System.out.print(circulate(n));System.out.print("\n");System.out.print("递归法:");System.out.print(iteration(n));}}public static int circulate(int n){int i,temp,sum1=0,sum2=1;for(i=2;i<=n;i++){temp=sum2+sum1;sum1=sum2;sum2=temp;}return sum2;}public static int iteration(int n){int sum;if(n==1)sum=1;else if(n==0)sum=0;else{sum=iteration(n-1)+iteration(n-2);}return sum;}}运行结果:3.由键盘输入5个整数存入数组,比较并输出其中的最大值和最小值并对其进行排序输出。
java实验简单交通灯报告全

一.实验目的掌握Java Swing组件的使用方法,理解委托事件处理模型,掌握多种布局方式,掌握窗口菜单和快捷菜单设计方式,熟悉在组件上绘图的方法,设计出具有图形用户界面的、能够响应事件的Java应用程序。
理解进程与线程概念,掌握创建、管理和控制Java线程对象的方法,包括创建Java 线程对象、改变线程状态、设置线程优先级以控制线程调度等方法,了解并发执行的多线程间存在的各种关系,掌握实现线程互斥和线程同步的方法。
二.实验内容绘制交通信号灯,经过指定延时,改变信号灯三.实验分析绘制面板,设置信号灯的线程。
四.实现手段设置两个Java类,一个实现画布,一个实现交通灯的线程。
五.源程序import java.awt.*;import java.awt.event.*;public class JiaoTong extends Frame{//成员boolean redStatus=false,greenStatus=false,yellowStatus=false;int j=0;//画布public void paint(Graphics g){Color c=g.getColor();if(redStatus==true){j++;g.setColor(Color.RED);g.fillOval(100,50, 50,50);g.drawString("红灯亮了"+j+"秒", 100, 120);}else{g.setColor(Color.BLACK);g.fillOval(100,50,50,50);}if(yellowStatus==true){j++;g.setColor(Color.YELLOW);g.fillOval(200, 50, 50, 50);g.drawString("黄灯注意啦"+j+"秒", 100, 220);}else{g.setColor(Color.BLACK);g.fillOval(200, 50, 50, 50);}if(greenStatus==true){j++;g.setColor(Color.GREEN);g.fillOval(300, 50, 50, 50);g.drawString("绿灯行"+j+"秒", 100, 320);}else{g.setColor(Color.BLACK);g.fillOval(300, 50, 50, 50);}g.setColor(c);}//建窗口public void Lauch(){setTitle("交通灯指示");setSize(400, 300);setBackground(Color.WHITE);addWindowListener(new WindowAdapter() //给窗口注册一个事件监听器{public void windowClosing(WindowEvent e){System.exit(0);}});this.setVisible(true);new Thread(new PaintThread()).start();}//主函数public static void main(String[] args){JiaoTong a=new JiaoTong();uch();}//线程public class PaintThread implements Runnable {public void run(){for(int i=0;i<80;i++){switch (i){//红灯case 0:j=0;//计时redStatus=true;greenStatus=false;yellowStatus=false;break;//黄灯case 40:j=0;redStatus=false;greenStatus=false;yellowStatus=true;break;//绿灯case 50:j=0;redStatus=false;greenStatus=true;yellowStatus=false;break;default:break;}repaint();if(i==79)i=-1;try{Thread.sleep(1000);}catch(InterruptedException e){e.printStackTrace();}}}}}六.实验运行七.实验心得此次实验结合图形用户界面设计和线程设计,综合运用所学知识,用动画效果展示线程的运行。
Java+2实用教程(3版)实验代码及答案

Java 2实用教程(第三版)实验指导与习题解答清华大学出版社(编著耿祥义张跃平)实验模版代码及答案建议使用文档结构图(选择Word菜单→视图→文档结构图)上机实践1 初识JA V A (4)实验1一个简单的应用程序 (4)实验2一个简单的J A V A A PPLET程序 (4)实验3联合编译 (5)上机实践2 基本数据类型与控制语句 (6)实验1输出希腊字母表 (6)实验2回文数 (7)实验3猜数字游戏 (9)上机实践3 类与对象 (10)实验1三角形、梯形和圆形的类封装 (10)实验2实例成员与类成员 (13)实验3使用PACKAGE语句与IMPORT语句 (15)上机实践4 继承与接口 (17)实验1继承 (17)实验2上转型对象 (20)实验3接口回调 (22)上机实践5 字符串、时间与数字 (24)实验1S TRING类的常用方法 (24)实验2比较日期的大小 (25)实验3处理大整数 (26)上机实践6 组件及事件处理 (27)实验1算术测试 (27)实验2信号灯 (30)实验3布局与日历 (32)上机实践7 组件及事件处理2 (36)实验1方程求根 (36)实验2字体对话框 (39)实验3英语单词拼写训练 (42)上机实践8 多线程 (46)实验1汉字打字练习 (46)实验2旋转的行星 (48)实验3双线程接力 (52)上机实践9 输入输出流 (55)实验1学读汉字 (55)实验2统计英文单词字 (58)实验2读取Z IP文件 (62)上机实践10 JAV A 中的网络编程 (63)实验1读取服务器端文件 (63)实验2使用套接字读取服务器端对象 (65)实验3基于UDP的图像传输 (68)上机实践11 数据结构 (72)实验1扫雷小游戏 (72)实验2排序与查找 (77)实验3使用T REE S ET排序 (78)上机实践12 JAV A SWING (80)实验1JL AYERED P ANE分层窗格 (80)实验2使用表格显示日历 (81)实验3多文档界面(MDI) (84)上机实践1 初识Java实验1 一个简单的应用程序1.答案:【代码1】:System.out.println("你好,很高兴学习Java") ;【代码2】:System.out.println("We are students") ;2.模板代码Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令行窗口输出"We are students"}}实验2 一个简单的Java Applet程序1.答案:【代码1】:g.drawString("这是一个Java Applet 程序",10,30);【代码2】:g.drawString("我改变了字体",20,50);2.模板代码FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet{public void paint(Graphics g){g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体”}}实验3 联合编译1.答案:【代码1】:System.out.println("你好,只需编译我");【代码2】:System.out.println("I am A");【代码3】:System.out.println("I am B");【代码4】:System.out.println("I am C");2.模板代码模板1:Hello.javapublic class MainClass{public static void main (String args[ ]){【代码1】 //命令行窗口输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令行窗口输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令行窗口输出"I am B"}}模板4 :C.javapublic class C{void fC(){【代码4】 //命令行窗口输出"I am C"}}上机实践2 基本数据类型与控制语句实验1 输出希腊字母表1.答案:【代码1】:startPosition=(int)cStart;【代码2】:endPosition=(int)cEnd ;【代码3】:c=(char)i;2.模板代码GreekAlphabet.javapublic class GreekAlphabet{public static void main (String args[ ]){int startPosition=0,endPosition=0;char cStart='α',cEnd='ω';【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition【代码2】//cEnd做int型转换运算,并将结果赋值给endPositionSystem.out.println("希腊字母\'α\'在unicode表中的顺序位置:"+(int)c);System.out.println("希腊字母表:");for(int i=startPosition;i<=endPosition;i++){char c='\0';【代码3】//i做char型转换运算,并将结果赋值给cSystem.out.print(" "+c);if((i-startPosition+1)%10==0)System.out.println("");}}}实验2 回文数1.答案:【代码1】:number<=99999&&number>=1【代码2】:d5=number/10000;【代码3】:d4=number%10000/1000;【代码4】:d3=number%1000/100;【代码5】:d5!=0【代码6】:d1==d5&&d2==d4【代码7】:d4!=0【代码8】:d1==d4&&d2==d3【代码9】:d3!=0【代码10】:d1==d32.模板代码Number.javaimport javax.swing.JOptionPane;public class Number{public static void main(String args[]){int number=0,d5,d4,d3,d2,d1;String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");number=Integer.parseInt(str);if(【代码1】) //判断number在1至99999之间的条件{【代码2】//计算number的最高位(万位)d5【代码3】//计算number的千位d4【代码4】//计算number的百位d3d2=number%100/10;d1=number%10;if(【代码5】) //判断number是5位数的条件{System.out.println(number+"是5位数");if(【代码6】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码7】) //判断number是4位数的条件{System.out.println(number+"是4位数");if(【代码8】) //判断number是回文数的条件码{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(【代码9】) //判断number是3位数的条件{System.out.println(number+"是3位数");if(【代码10】) //判断number是回文数的条件{System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d2!=0){System.out.println(number+"是2位数");if(d1==d2){System.out.println(number+"是回文数");}else{System.out.println(number+"不是回文数");}}else if(d1!=0){System.out.println(number+"是1位数");System.out.println(number+"是回文数");}}else{System.out.printf("\n%d不在1至99999之间",number);}}}实验3 猜数字游戏1.答案:【代码1】:yourGuess!=realNumber【代码2】:yourGuess>realNumber【代码3】:yourGuess<realNumber2.模板代码GuessNumber.javaimport javax.swing.JOptionPane;public class GuessNumber{public static void main (String args[ ]){System.out.println("给你一个1至100之间的整数,请猜测这个数");int realNumber=(int)(Math.random()*100)+1;int yourGuess=0;String str=JOptionPane.showInputDialog("输入您的猜测:");yourGuess=Integer.parseInt(str);while(【代码1】) //循环条件{if(【代码2】) //条件代码{str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}else if(【代码3】) //条件代码{str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:");yourGuess=Integer.parseInt(str);}}System.out.println("猜对了!");}}上机实践3 类与对象实验1 三角形、梯形和圆形的类封装1.答案:【代码1】:sideA=a;sideB=b;sideC=c;【代码2】:a+b>c&&a+c>b&&c+b>a【代码3】:boo=true;【代码4】:boo=false;【代码5】:if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}【代码6】:sideA=a;sideB=b;sideC=c;【代码7】:a+b>c&&a+c>b&&c+b>a【代码8】:boo=true;【代码9】:boo=false;【代码10】:above=a;bottom=b;height=h;【代码11】:area=(above+bottom)/2*height;return area;【代码12】:radius=r;【代码13】:return 3.14*radius*radius;【代码14】:return 3.14*2*radius;【代码15】:circle=new Circle(10);【代码16】:trangle=new Trangle(3,4,5);【代码17】:lader=new Lader(3,4,10);【代码18】:length=circle.getLength();【代码19】:area=circle.getArea();【代码20】:length=trangle.getLength();【代码21】:area=trangle.getArea();【代码22】:area=lader.getArea();【代码23】:trangle.setABC(12,34,1);【代码24】:area=trangle.getArea();【代码25】:length=trangle.getLength();2.模板代码AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。
红绿灯实验报告

红绿灯实验报告第一篇:红绿灯实验报告实验报告班级:学号:姓名:日期:实验一、红绿灯控制一、实验目的熟悉软件的使用,掌握plc编程的方法,编写程序控制十字路口的红绿灯。
二、实验设备一台安装有STEP 7-MivroWIN4.0与S7200_simulation的电脑。
三、控制要求分析实验利用PLC控制十字路口的红绿灯。
十字路口的红绿灯分为横向控制灯和纵向控制灯,每个方向有红、绿、黄3种颜色的控制灯。
当电路接通,双向红绿灯开始正常工作,横向的绿灯和纵向的红灯先亮。
横向的绿灯亮维持8s,在横向绿灯亮的同时纵向的红灯也亮起,并维持10s。
第8秒时横向的绿灯熄灭,同时亮起黄灯并维持2s 后熄灭。
第10s时,横向黄灯熄灭的同时亮起红灯并维持10s,同时纵向的绿灯亮起并维持8s。
当纵向绿灯熄灭并亮起黄灯持续2s后红灯亮起,同时横向的绿灯也亮起并维持8s到此一个循环就此结束下一个循环开始。
当按下紧停按钮时两路同时亮黄灯2s后,其中一路亮红灯另一路亮绿灯。
本实验设置了两个紧停按钮。
四、PLC的I/O分析I0.1,I0.2两个紧停按钮。
M0.1,M0.2中间继电器。
Q0.0横向绿灯,Q0.1横向黄灯,Q0.2横向红灯,Q0.3纵向红灯,Q0.4纵向绿灯,Q0.5纵向黄灯。
T37、T41为8s定时器,T38、T42为2s定时器,T39、T40为10s定时器。
五、PLC梯形图程序及指令表程序梯形图程序:指令表程序:LD I0.1 = M0.1 Network 2 LDN M0.2 AN M0.1 AN T37 LDN M0.1 A T38 A M0.2 OLD = Q0.0 Network 3 LDN M0.2 AN M0.1 AN T39 TON T37, 80 Network 4 LDN M0.2 AN M0.1 AN T38 A T37 LDN M0.2 AN T38 A M0.1 OLD LDN M0.1 AN T38 A M0.2 OLD = Q0.1 Network 5 LDN M0.1 AN M0.2 A T37 LDN M0.2 A M0.1 OLD LDN M0.1 A M0.2 OLD TON T38, 20 Network 6 LDN M0.2 AN M0.1 AN T39 A T38 LDN M0.2 A T38 A M0.1 OLD = Q0.2 Network 7 LDN M0.1 AN M0.2 A T38 TON T39, 100 Network 8 LDN M0.1 AN M0.2 AN T40 LDN M0.1 A T42 A M0.2 OLD = Q0.3 Network 9 LDN T42 AN M0.1 AN M0.2 TON T40, 100 Network 10 LDN M0.1 AN M0.2 AN T41 A T40 LDN M0.2 A T38 A M0.1 OLD = Q0.4 Network 11 LDN M0.1 AN M0.2 AN T42 A T40 TON T41, 80 Network 12 LD T41 AN M0.2 AN T42 AN M0.1 LDN T42 A M0.1 AN M0.2 OLD LDN T42 AN M0.1 A M0.2 OLD = Q0.5 Network 13 LDN M0.1 AN M0.2 A T41 LDN M0.2 A M0.1 OLD LD M0.2 AN M0.1 OLD TON T42, 20 Network 14 LD I0.2 = M0.2六、实验过程记录及分析根据实验要求,编写plc梯形图程序。
红绿灯java课程设计

红绿灯java课程设计一、课程目标知识目标:1. 让学生理解Java语言中条件语句的使用,特别是if-else结构。
2. 使学生掌握利用Java编程实现简单的“红绿灯”控制逻辑。
3. 帮助学生理解事件监听器和多线程在模拟交通灯中的应用。
技能目标:1. 培养学生运用Java编写程序解决问题的能力,特别是解决实际生活中的模拟问题。
2. 培养学生将复杂问题分解为可管理模块的能力,并通过编程实现各个模块。
3. 提升学生进行程序调试和错误处理的能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,增强其对信息科学的探究欲。
2. 通过团队合作,培养学生的协作精神和沟通能力。
3. 引导学生理解交通规则的重要性,加强社会责任感和规则意识。
分析:本课程设计针对的是高年级小学生,他们在前期的课程中已经学习了基本的Java编程知识。
课程性质为实践操作课,要求学生在理解交通规则的基础上,通过编程实现对交通灯的控制。
课程目标旨在巩固学生的编程基础,提高他们的问题解决能力,同时培养其规则意识和团队协作能力。
通过具体的学习成果分解,教学设计和评估将更加有针对性,确保学生能够在理解知识的同时,提升技能和情感态度价值观。
二、教学内容1. 回顾Java基本语法,特别是变量定义、数据类型和条件语句(教材第3章)。
2. 讲解和演示事件监听器的概念和使用方法,通过案例让学生理解其在图形用户界面中的应用(教材第5章)。
3. 引入多线程的概念,讲解如何在Java中创建和管理线程,以及线程同步的重要性(教材第7章)。
4. 结合交通灯的实际情况,分析并设计程序结构,将问题分解为:界面设计、事件处理、线程控制和逻辑实现。
- 界面设计:使用Swing组件设计模拟的交通灯界面(教材第4章)。
- 事件处理:编写按钮点击事件监听器,实现交通灯颜色切换(教材第5章)。
- 线程控制:利用多线程模拟交通灯变化和车辆行驶(教材第7章)。
- 逻辑实现:编写控制交通灯变化的逻辑代码,实现红绿灯交替工作(教材第6章)。
java实验报告代码

java实验报告代码Java 实验报告代码引言:Java 是一种面向对象的编程语言,广泛应用于软件开发领域。
本实验报告将介绍我在学习 Java 过程中的实验代码,并对其进行分析和总结。
一、实验背景在学习 Java 编程语言时,实验是一种非常重要的学习方式。
通过实验,我们可以将理论知识应用于实际项目中,提升自己的编程能力和解决问题的能力。
二、实验目的本次实验的目的是通过编写 Java 代码,实现一些基本的功能,包括输入输出、条件语句、循环语句、数组和函数等。
三、实验过程1. 输入输出在 Java 中,可以使用 Scanner 类来实现输入输出操作。
下面是一个示例代码:```javaimport java.util.Scanner;public class InputOutputExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个整数:");int num = scanner.nextInt();System.out.println("您输入的整数是:" + num);}}```上述代码中,我们使用 Scanner 类的 nextInt() 方法来读取用户输入的整数,并使用 System.out.println() 方法将结果输出到控制台。
2. 条件语句条件语句是根据条件判断来执行不同的代码块。
下面是一个示例代码:```javapublic class ConditionalStatementExample {public static void main(String[] args) {int num = 10;if (num > 0) {System.out.println("这个数是正数");} else if (num < 0) {System.out.println("这个数是负数");} else {System.out.println("这个数是零");}}}```上述代码中,我们使用 if-else 语句来判断一个数是正数、负数还是零,并根据不同的条件输出不同的结果。
Java实验二实验报告

本科学生实验报告(二)姓名学院计算机科学学院专业计算机科学与技术班级实验课程名称Java面向对象设计试验时间2012年10 月14日指导教师及职称实验成绩开课时间2012—2013学年第一学期实验管理中心印制实验题目类与对象小组合作是○否⊙姓名班级学号一、实验目的1、熟悉Java面向对象程序设计的基本思想。
2、掌握类与对象的定义及使用方法。
3、掌握package语句与import语句的用法。
4、掌握java 继承中父类及其子类的定义方法。
5、掌握子类重写父类同名方法的方法。
6、掌握用法。
二.实验环境JDK1.6和Eclipse3.4.1开发环境三、实验内容与步骤一、分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法1、程序代码如下class Trangle {double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){sideA=a;sideB=b;sideC=c;//参数a,b,c分别赋值给sideA,sideB,sideCif(a+b>c&&a+c>b&&c+b>a) //a,b,c构成三角形的条件表达式{boo=true; //给boo赋值。
}else{boo=false; //给boo赋值。
}}double getLength(){if(boo){length=sideA+sideB+sideC;return length;}else{System.out.println("不是一个三角形,不能计算周长");return 0;}//方法体,要求计算出length的值并返回}public double getArea(){if(boo){double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;return area;}else{System.out.println("不是一个三角形,不能计算面积");return 0;}}public void setABC(double a,double b,double c){sideA=a;sideB=b;sideC=c; //参数a,b,c分别赋值给sideA,sideB,sideCif(a+b>c&&a+c>b&&c+b>a) //a,b,c构成三角形的条件表达式{boo=true; //给boo赋值。
java实验2实习报告

信息工程学院Java程序设计实习报告面向对象编程1. 实验目的掌握Java程序面向对象编程的基本架构, 会运用面向对象的思想编写Java程序。
2. 实验内容实验题1 阅读如下程序, 完成思考题。
class CCircl e{ d oubl e pi;d ouble radius;d ouble getRadius(){ return radius;}void setCircl e(d oubl e r, d oubl e p){ pi=p;radius=r;}}public class Ex2_1{ public static void main(String args[]){ CCircl e cir1=new CCircl e();cir1.setCircl e(2.0,3.1416);System.out.println("radius="+cir1.getRadius());}}程序的运行结果为: Radius=2.0。
实验题 2 设计一个用来描述汽车的类, 使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度, 使用类的非静态成员方法来表示改变汽车的实验报告的内容与格式按任课教师的要求书写。
速率和停车两个操作。
import java.util.Scanner;public class Car {String Name;d ouble Rate;d ouble Angl e;Car(String name,d ouble rate,d oubl e angl e){Name=name;Rate=rate;Angl e=angl e;}Car(){}void getrate(){if(Rate==0){System.out.println("停车! ");}else{System.out.println(" 行驶中! ");}}public static void main(String args[]){Car person=new Car();="ligang";person.Rate=90;person.Angl e=25;System.out.println(" 姓名: "++" 速度"+person.Rate+" 角度"+person.Angl e);person.getrate();}}程序运行结果如下:实验题3 定义一个类MyProgram, 包含两个属性: 一个是private的整型属性data、一个是private的String类型的属性str, 封装这两个属性的四个方法setData()和getData()、setStr( )和getStr();将这两个属性转变为字符串的方法是toStr()。
设计红绿灯的实验报告

设计红绿灯的实验报告1. 引言红绿灯是城市交通中非常重要的交通信号控制设备之一。
它通过红、黄、绿三种颜色灯光的不同组合,指挥车辆和行人在道路上的行进。
本实验旨在设计一个基本的红绿灯系统,并通过控制设备和电路来实现红绿灯的交替显示。
2. 实验方法2.1 材料准备- Arduino控制板- 红绿灯模块- 面包板及杜邦线- 电源线- 电阻、电容等元器件2.2 硬件连接首先,将Arduino控制板通过杜邦线与电脑连接,然后将红绿灯模块连接到控制板上的数字输出引脚。
具体的硬件连接方式如下:- 红灯接口:连接到Arduino控制板的数字输出引脚13- 黄灯接口:连接到Arduino控制板的数字输出引脚12- 绿灯接口:连接到Arduino控制板的数字输出引脚112.3 软件编程使用Arduino开发环境进行编程,编写代码实现红绿灯的交替显示。
代码应包括以下步骤:1. 设置引脚模式:将数字引脚13、12、11设置为输出模式。
2. 控制红灯亮起:将数字引脚13输出高电平,使红灯点亮。
3. 控制黄灯熄灭:将数字引脚12输出低电平,使黄灯熄灭。
4. 控制绿灯熄灭:将数字引脚11输出低电平,使绿灯熄灭。
5. 控制红灯熄灭:将数字引脚13输出低电平,使红灯熄灭。
6. 控制黄灯亮起:将数字引脚12输出高电平,使黄灯点亮。
7. 控制绿灯熄灭:将数字引脚11输出低电平,使绿灯熄灭。
8. 控制红灯熄灭:将数字引脚13输出低电平,使红灯熄灭。
9. 控制黄灯熄灭:将数字引脚12输出低电平,使黄灯熄灭。
10. 控制绿灯亮起:将数字引脚11输出高电平,使绿灯点亮。
3. 实验结果与分析在完成硬件连接和编写代码后,将程序上传到Arduino控制板上。
经过实验,观察到在运行程序的过程中,红、黄、绿三种颜色的灯光按照交通信号灯的规律进行交替显示,实现了红绿灯的基本功能。
4. 实验总结通过本次实验,我们成功设计出了一个基本的红绿灯系统,并通过控制设备和电路实现了红绿灯的交替显示。
红绿灯 JAVA课程设计报告

红绿灯 JAVA课程设计报告合肥学院计算机科学与技术系课程设计报告2012~2013学年第一学期课程JA V A语言课程设计名称JA V A语言课程设计学生姓名朱鹏飞学号1104011011专业班级11级计本(3)班指导教师檀明、张艳明2013 年 1 月一、课程设计目的通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《JAVA语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)熟练掌握JA V A语言的GUI设计、多线程技术,灵活运用各种类库。
二、课程设计名称及内容名称:交通灯模拟程序内容:设计一个交通灯管理的模拟程序,实现在一个十字路口的交通管理三、任务和要求1.设计程序界面,画出十字路口和交通灯。
2.可以手工设置红、绿等的时间间隔,程序按设定值自动变换每个路口的交通灯颜色。
3.随机产生一些车辆,这些车辆遵守红灯停、绿灯行的交通规则。
四、设计方案提示分别设置两个线程代表东西和南北方向的交通灯,根据设定值变换交通灯颜色每个车辆对应一个线程,利用线程技术实现车辆的红灯停、绿灯行的行为五、总体设计思路从实验的要求上看,要实现交通灯的管理,需要解决的问题有两大部分:(一)绘制出交通灯及路口上的线路,以界面的形式展现出来。
以此作为程序运行的一个进程。
(二)程序对交通灯时间按计数器进行监听,倒计时时间为0的时候就进行切换。
同时设置文本框,当操作员将时间写入文本框当中之后,点击确定按钮就将程序中的红绿灯的时间重置。
以此作为一个线程。
(三)随机在各个路口产生车辆,符合条件则通过,不符合条件则暂停。
java实验2实验报告

引言概述:实验目的:本次实验的主要目的是通过设计和实现一个简单的Java程序,加深对Java编程语言的理解,培养对面向对象编程思想的应用能力。
实验要求学生熟悉Java语法和类的基本概念,并能够正确运用这些知识编写出符合要求的程序。
实验过程:1.确定实验题目和要求:根据实验要求,确定需要实现的功能和要求,并理解题目中的各个概念和要求。
2.设计程序结构:根据题目要求和功能需求,设计程序的类结构、方法和变量。
要求合理设计类和对象的关系,充分运用封装、继承和多态等面向对象编程的特性。
3.编码实现:根据设计好的程序结构,使用Java语言进行编码实现。
编写各个类和方法的代码,确保代码的规范和可读性。
4.调试和测试:编写完代码后,进行充分的调试和测试工作。
确保程序能够正确运行并符合预期的功能需求。
5.优化和改进:对程序进行优化和改进,提高程序的性能和可维护性。
可以通过重构代码、增加异常处理等方式进行优化。
6.提交实验报告:实验完成后,撰写实验报告,对实验过程和结果进行总结和分析。
实验结果:实验结果表明,本次实验成功实现了所要求的功能。
通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。
同时,通过实验过程中的调试和测试工作,我对程序的错误处理和调试技巧也有了一定的了解和掌握。
实验分析:通过本次实验,我认识到了面向对象编程的重要性和优势。
在程序设计过程中,合理设计类和对象的关系,充分利用面向对象编程的特性,可以提高程序的可读性、可维护性和扩展性。
同时,对于Java编程语言的学习和理解也是很有必要的,它是一种广泛应用于软件开发的编程语言。
总结:本次实验是一次很好的学习和实践机会,通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。
在实验过程中,我收获了很多,对面向对象编程有了更深刻的理解,也对程序的调试和测试有了更多的经验。
java实验2实验报告1

java实验2实验报告1Java 实验 2 实验报告一、实验目的本次 Java 实验 2 的主要目的是通过实际编程操作,深入理解和掌握Java 语言中的一些重要概念和技术,包括面向对象编程的基本思想、类和对象的创建与使用、方法的定义与调用,以及异常处理等方面的知识。
通过实践,提高我们的编程能力和解决问题的能力。
二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,Java 版本为 JDK 18。
操作系统为 Windows 10。
三、实验内容1、设计一个简单的学生类(Student)包含学生的姓名(name)、学号(studentID)、年龄(age)等属性。
定义构造方法用于初始化学生对象的属性。
定义获取和设置学生属性的方法。
2、实现一个计算学生平均年龄的方法接受一个学生对象数组作为参数。
计算并返回学生的平均年龄。
3、异常处理在计算平均年龄的方法中,处理可能出现的除数为 0 的异常情况。
四、实验步骤1、创建学生类(Student)```javapublic class Student {private String name;private int studentID;private int age;public Student(String name, int studentID, int age) {thisname = name;thisstudentID = studentID;thisage = age;}public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentID(){return studentID;}public void setStudentID(int studentID) {thisstudentID = studentID;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}}```2、计算平均年龄的方法```javapublic class AverageAgeCalculator {public double calculateAverageAge(Student students) {int totalAge = 0;int studentCount = studentslength;for (Student student : students) {totalAge += studentgetAge();}if (studentCount == 0) {throw new ArithmeticException("除数不能为 0,学生数组为空。
java课程实验报告

java课程实验报告Java 课程实验报告一、实验目的通过本次实验,深入理解和掌握 Java 编程语言的基本概念、语法和编程技巧,提高解决实际问题的能力,培养良好的编程习惯和逻辑思维能力。
二、实验环境操作系统:Windows 10开发工具:EclipseJDK 版本:18三、实验内容本次实验主要包括以下几个部分:1、基础语法练习变量与数据类型的使用控制流语句(如 ifelse、for、while 等)的应用数组和字符串的操作2、面向对象编程类与对象的定义和使用成员变量和方法的访问控制构造函数和析构函数的理解3、异常处理捕获和处理常见的运行时异常自定义异常的创建和抛出4、文件操作读取和写入文本文件处理文件中的数据四、实验步骤及结果1、基础语法练习变量与数据类型:在代码中定义了各种类型的变量,如整数、浮点数、字符、字符串等,并进行了简单的运算和输出。
例如:```javaint num = 10;double price = 125;char letter ='A';String name ="张三";Systemoutprintln(num +""+ price +""+ letter +""+name);```控制流语句:使用 ifelse 语句判断一个数的奇偶性,使用 for 循环计算 1 到 100 的和,使用 while 循环实现用户输入次数的控制。
以下是判断奇偶性的代码示例:```javaint num = 15;if (num % 2 == 0) {Systemoutprintln(num +"是偶数");} else {Systemoutprintln(num +"是奇数");}```数组和字符串:创建了整数数组和字符串,并进行了遍历、查找、修改等操作。
例如:```javaint arr ={1, 2, 3, 4, 5};for (int i = 0; i < arrlength; i++){Systemoutprint(arri +"");}String str ="Hello Java";Systemoutprintln(strcharAt(2));```2、面向对象编程类与对象:定义了一个名为`Person` 的类,包含姓名、年龄等成员变量和一个介绍自己的方法。
红绿灯java课程设计

红绿灯java课程设计一、课程目标知识目标:1. 学生能够理解并掌握Java编程中条件语句的使用,特别是if-else结构;2. 学生能够运用Java编程实现基本的红绿灯控制逻辑;3. 学生理解交通灯变化的规律,并将其与编程逻辑相结合。
技能目标:4. 学生能够运用所学知识独立设计并编写简单的交通灯模拟程序;5. 学生通过编程实践,提升问题分析能力,掌握基本的编程调试技巧;6. 学生能够通过编写代码,展示对现实生活中的事件进行模拟的能力。
情感态度价值观目标:7. 学生培养编程的兴趣,认识到编程与现实生活的紧密联系;8. 学生在学习过程中培养解决问题的耐心和毅力,增强团队合作意识;9. 学生通过模拟现实生活中的交通规则,增强遵守交通规则的意识,培养社会责任感。
课程性质分析:本课程为实践性较强的信息技术课程,通过Java编程实现交通灯控制逻辑,将理论知识与实践操作相结合。
学生特点分析:考虑到学生年级特点,已有一定的逻辑思维能力,对编程有好奇心,但需通过具体案例来引导学生理解和掌握编程概念。
教学要求:教师应关注学生对条件语句的理解和应用,通过红绿灯案例激发学生兴趣,注重培养学生动手实践能力和问题解决能力。
在教学过程中,将课程目标细化为具体的学习成果,以便于教学设计和评估。
二、教学内容1. Java基础语法复习:变量声明、数据类型、运算符;2. 条件语句:重点复习if-else结构,理解其在编程决策中的重要性;3. 循环结构:介绍for循环和while循环,讲解其在重复执行任务中的应用;4. 红绿灯逻辑分析:讲解交通灯变化的规律,分析如何利用编程实现;5. 编程实践:设计并编写红绿灯控制程序,实现不同灯色的切换和时间控制;6. 调试与优化:指导学生如何调试程序,发现并修正错误,优化代码执行效率;7. 项目展示与评价:学生展示自己的红绿灯程序,进行互评和教师评价。
教学内容安排和进度:第一课时:复习Java基础语法,介绍条件语句;第二课时:讲解循环结构,分析红绿灯逻辑;第三课时:指导学生动手编写红绿灯程序,进行初步调试;第四课时:优化代码,进行项目展示与评价。
红绿灯-JAVA课程设计报告

红绿灯-JAVA课程设计报告合肥学院计算机科学与技术系课程设计报告2012~2013学年第⼀学期课程课程设计名称学⽣姓名学号专业班级指导教师2013JAVA 语⾔JAVA 语⾔课程设计朱鹏飞110401101111 级计本(3)班檀明、张艳明年 1 ⽉⼀、课程设计⽬的通过课程设计,学⽣在下述各⽅⾯的能⼒应该得到锻炼:(1)进⼀步巩固、加深学⽣所学专业课程《JAVA语⾔教程》的基本理论知识,理论联系实际,进⼀步培养学⽣综合分析问题,解决问题的能⼒。
(2)全⾯考核学⽣所掌握的基本理论知识及其实际业务能⼒,从⽽达到提⾼学⽣素质的最终⽬的。
(3)利⽤所学知识,开发⼩型应⽤系统,掌握运⽤JAVA语⾔编写调试应⽤系统程序,训练独⽴开发应⽤系统,进⾏数据处理的综合能⼒。
(4)对于给定的设计题⽬,如何进⾏分析,理清思路,并给出相应的数学模型。
(5)熟练掌握JAVA语⾔的GUI 设计、多线程技术,灵活运⽤各种类库。
⼆、课程设计名称及内容名称:交通灯模拟程序内容:设计⼀个交通灯管理的模拟程序,实现在⼀个⼗字路⼝的交通管理三、任务和要求1.设计程序界⾯,画出⼗字路⼝和交通灯。
2.可以⼿⼯设置红、绿等的时间间隔,程序按设定值⾃动变换每个路⼝的交通灯颜⾊。
3.随机产⽣⼀些车辆,这些车辆遵守红灯停、绿灯⾏的交通规则。
四、设计⽅案提⽰分别设置两个线程代表东西和南北⽅向的交通灯,根据设定值变换交通灯颜⾊每个车辆对应⼀个线程,利⽤线程技术实现车辆的红灯停、绿灯⾏的⾏为五、总体设计思路从实验的要求上看,要实现交通灯的管理,需要解决的问题有两⼤部分:(⼀)绘制出交通灯及路⼝上的线路,以界⾯的形式展现出来。
以此作为程序运⾏的⼀个进程。
(⼆)程序对交通灯时间按计数器进⾏监听,倒计时时间为0的时候就进⾏切换。
同时设置⽂本框,当操作员将时间写⼊⽂本框当中之后,点击确定按钮就将程序中的红绿灯的时间重置。
以此作为⼀个线程。
(三)随机在各个路⼝产⽣车辆,符合条件则通过,不符合条件则暂停。
红绿灯设计实验报告阶段

红绿灯设计实验报告阶段1. 实验目的本实验旨在设计一套可靠的红绿灯系统,通过合理的时间间隔安排和状态切换策略,达到最佳的交通流量控制效果。
2. 设计内容根据实验要求,本次设计的红绿灯系统应包含以下几个要素:- 红绿灯状态(红灯、黄灯、绿灯)- 状态切换时间间隔(红灯倒计时、黄灯倒计时、绿灯倒计时)- 切换策略(如何根据当前交通情况或算法来调整状态切换时间)3. 实验方法3.1 硬件设置本次实验中,我们使用了以下硬件设备:- 一台计算机- LED 灯(代表红、黄、绿灯)3.2 软件设计我们使用Python 语言来设计红绿灯系统。
具体步骤如下:3.2.1 导入必要的库pythonimport timeimport random3.2.2 定义红绿灯状态和时间间隔pythonRED = 0YELLOW = 1GREEN = 2RED_TIME = 10YELLOW_TIME = 3GREEN_TIME = 153.2.3 实现状态切换逻辑pythondef switch_light():light = GREENwhile True:if light == GREEN:print("绿灯亮起")time.sleep(GREEN_TIME)light = YELLOWelif light == YELLOW:print("黄灯亮起")time.sleep(YELLOW_TIME)light = REDelse:print("红灯亮起")time.sleep(RED_TIME)light = GREEN3.2.4 实现模拟交通情况判断在实际交通情况中,红绿灯的切换不仅仅是定时的,还需考虑实际情况,如交通流量、行人过马路等。
为了模拟这种情况,我们引入一个随机数,根据随机数的大小来调整绿灯时间。
pythondef adjust_time():if random.randint(1, 10) <= 6:return GREEN_TIME + random.randint(-3, 3)else:return GREEN_TIME + random.randint(1, 5)3.2.5 主程序入口pythonif __name__ == "__main__":switch_light()4. 实验结果通过实验设计的红绿灯系统,我们成功实现了红灯、黄灯和绿灯的状态切换,并且能够根据交通情况调整绿灯时间。
java课程设计设计实验报告

java课程设计设计实验报告一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、流程控制、数据结构、面向对象编程等基本知识,培养学生运用Java语言解决实际问题的能力。
具体目标如下:1.知识目标:(1)理解Java编程语言的基本语法和编程规范;(2)掌握Java中的基本数据类型、运算符、表达式;(3)了解Java的流程控制语句,如if、for、while等;(4)熟悉Java数组、字符串、集合等数据结构的使用;(5)理解面向对象编程的基本概念,如类、对象、封装、继承、多态等;(6)掌握Java异常处理机制和文件操作。
2.技能目标:(1)能够使用Java编写简单的程序,实现基本的功能;(2)能够运用面向对象编程思想,设计并实现具有一定复杂度的程序;(3)具备阅读Java代码的能力,能够理解并修改他人编写的程序;(4)掌握使用Java开发工具,如Eclipse、IntelliJ IDEA等;(5)了解Java程序的调试和性能优化方法。
3.情感态度价值观目标:(1)培养学生对编程语言的兴趣,激发学生主动学习的动力;(2)培养学生团队合作精神,提高学生沟通协作能力;(3)培养学生面对挑战、解决问题的信心和勇气;(4)培养学生具有良好的代码规范和编程习惯。
二、教学内容本课程的教学内容主要包括Java编程语言的基本语法、流程控制、数据结构、面向对象编程等。
具体安排如下:1.第一章:Java入门,介绍Java编程语言的基本概念、环境搭建和基本语法;2.第二章:基本数据类型和运算符,学习Java中的整数、浮点数、字符、布尔等数据类型以及运算符;3.第三章:流程控制语句,学习if、for、while等流程控制语句的使用;4.第四章:数组和字符串,学习数组的声明、初始化和使用,字符串的创建、操作和转换;5.第五章:集合框架,学习List、Set、Map等集合接口及其实现类的使用;6.第六章:面向对象编程,学习类、对象、封装、继承、多态等概念及应用;7.第七章:异常处理和文件操作,学习Java异常处理机制和文件读写方法;8.第八章:Java编程实践,通过案例分析法和实验法,巩固所学知识,提高实际编程能力。
JAVA实验报告(一二三次实验代码完整版矿大)DOC

第一题:public class chengfabiao{public static void main(String args[]){System.out.println("*"+" "+1+" "+2+" "+3+" "+4+" "+5+""+6+" "+7+" "+8+" "+9);int i;int j;for(i=1;i<=9;i++){System.out.print(i+" ");for(j=1;j<=i;j++){System.out.print(i*j+" ");}System.out.println();}}}第二题:import java.util.Scanner;public class zhuanhuan{/*public int mon;public static void input(String args[]){System.out.println("Please input your nubmers:");System.in.print(mon);}*/public static void main(String args[]){//输入月份数System.out.println("Please input your nubmers:");Scanner in = new Scanner(System.in);int mon = in.nextInt();while(mon>0) //月份数大于0进入循环{switch(mon){case 1:System.out.println("January");break;case 2:System.out.println("February");break;case 3:System.out.println("March");break;case 4:System.out.println("April");break;case 5:System.out.println("May");break;case 6:System.out.println("June");break;case 7:System.out.println("July");break;case 8:System.out.println("August");break;case 9:System.out.println("September");break;case 10:System.out.println("October");break;case 11:System.out.println("November");break;case 12:System.out.println("December");break;}System.out.println("Please input your nubmers:");in = new Scanner(System.in);mon = in.nextInt();}}}第三题:import java.util.Scanner;public class sanjiao{public static void main(String args[]){int i,j,k,number;System.out.println("Please input your nubmers:");Scanner in = new Scanner(System.in);number = in.nextInt();while(number>0){for(i=1;i<=number;i++){for(j=number-i+1;j>=1;j--){System.out.print(" ");}for(k=1;k<=i;k++){System.out.print("*"+" ");}System.out.println();}System.out.println("Please input your nubmers:");in = new Scanner(System.in);number = in.nextInt();}}}第四题:public class sxh{public static void main(String args[]){int shuixian,n=1;for(int i=1;i<=9;i++){for(int j=0;j<=9;j++){for(int k=0;k<=9;k++){if((i*100+j*10+k)==(i*i*i+j*j*j+k*k*k)){shuixian=i*100+j*10+k;System.out.print(shuixian+" ");n++;}if(n==5){System.out.println();n=1;}}}}}}第五题:import java.util.Scanner;public class paixu{public static void main(String args[]){int i;int j;int k;int m;int shu[];shu=new int[10];System.out.println("Please input ten nubmers:");Scanner in = new Scanner(System.in);for(i=0;i<10;i++){shu[i] = in.nextInt();}for(j=8;j>=0;j--)for(k=0;k<=j;k++){if(shu[k]>shu[k+1]){int temp;temp=shu[k];shu[k]=shu[k+1];shu[k+1]=temp;}}for(m=0;m<10;m++){System.out.print(shu[m]+" ");}}}第七题:import java.util.Random;import java.io.*;public class shuz{public static void main(String[] args){int[][]a=new int[6][6];int i,j;double x=0;Random rand= new Random();for(i=0;i<6;i++){for(j=0;j<6;j++){a[i][j]=10+rand.nextInt(11);}}System.out.println("初始化矩阵: ");for(i=0;i<6;i++){for(j=0;j<6;j++){System.out.print(a[i][j]+" ");}System.out.println();}for(i=0;i<6;i++){for(j=0;j<6;j++){if(i==j) x=x+Math.sqrt(a[i][j]);}}System.out.println();System.out.println("数组对角线上的元素平方根和为:"+x);}}第一题:package one;import java.util.Scanner;public class maxgongyue{public static int num1,num2,temp1,temp2;public static void main(String args[]){System.out.print("请输入两个数字:");Scanner in=new Scanner(System.in);num1=in.nextInt();num2=in.nextInt();if(num1>num2){temp1=solution1(num1,num2);temp2=solution2(num1,num2);}else{temp1=solution1(num2,num1);temp2=solution2(num2,num1);}System.out.println("循环法得到"+num1+"和"+num2+"的最大公约数为:"+temp1);System.out.println("递归法得到"+num1+"和"+num2+"的最大公约数为:"+temp2);}private static int solution1(int x,int y){int r;while(y!=0){r=x%y;x=y;y=r;}return x;}private static int solution2(int m,int n){if(n==0){return m;}else{return solution2(n,m%n);}}}第二题:package two;public class House {private String hname;private int hlength;private int hwidth;private int hheight;public House(String hname,int hlength,int hwidth,int hheight){ this.hname=hname;this.hlength=hlength;this.hwidth=hwidth;this.hheight=hheight;}public void Print(){System.out.println("房子名称:"+gethname());System.out.println("房子长度:"+this.hlength);System.out.println("房子宽度:"+gethwidth());System.out.println("房子高度:"+this.hheight);}public void sethname(String hname){this.hname=hname;}public String gethname(){return hname;}public void sethwidth(int hwidth){this.hwidth=hwidth;}public int gethwidth(){return hwidth;}}package two;public class leiprogram {public static void main(String args[]){Tool tool1=new Tool("剪刀",2000);tool1.Print();tool1.Settname("锤子");tool1.Settyear(2012);tool1.Print();House house1=new House("普通房子",20,10,3);house1.Print();house1.sethname("教室");house1.sethwidth(15);house1.Print();}}package two;public class Tool {private String tname;private int tyear;public Tool(String tname,int tyear){this.tname=tname;this.tyear=tyear;}public void Print(){System.out.println("工具名称:"+gettname());System.out.println("工具制造年份:"+gettyear());}public void Settname(String tname){this.tname=tname;}public String gettname(){return tname;}public void Settyear(int tyear){this.tyear=tyear;}public int gettyear(){return tyear;}}第三题:package three;public class Circle {private int x,y,r;Circle(){x=y=r=0;}Circle(int x,int y,int r){this.x=x;this.y=y;this.r=r;}public void setxy(int x,int y){this.x=x;this.y=y;}public void setr(int r){this.r=r;}public double zhou(){return 2*3.14*r;}public double mian(){return 3.14*r*r;}public void Print(){System.out.println("圆心位置:("+x+","+y+")");System.out.println("元的半径:"+r);}}package three;public class yuancase {public static void main(String args[]){Circle c=new Circle(1,1,3);c.Print();System.out.println("周长为:"+c.zhou());System.out.println("面积为:"+c.mian());}}第四题:package four;public class Classroom extends House {private String hschoolname;public Classroom(String hname,int hlength,int hwidth,int hheight,String hschoolname){super(hname,hlength,hwidth,hheight);this.hschoolname=hschoolname;}public void Print(){super.Print();System.out.println("学校名称:"+this.hschoolname);}}package four;public class House {private String hname;private int hlength;private int hwidth;private int hheight;public House(String hname,int hlength,int hwidth,int hheight){ this.hname=hname;this.hlength=hlength;this.hwidth=hwidth;this.hheight=hheight;}public void Print(){System.out.println("房子名称:"+gethname());System.out.println("房子长度:"+this.hlength);System.out.println("房子宽度:"+gethwidth());System.out.println("房子高度:"+this.hheight);}public void sethname(String hname){this.hname=hname;}public String gethname(){return hname;}public void sethwidth(int hwidth){this.hwidth=hwidth;}public int gethwidth(){return hwidth;}}package four;public class jicheng {public static void main(String args[]){Classroom class1=new Classroom("普通房子",20,10,3,"中国矿业大学");class1.Print();Pen pen1=new Pen("钢笔",2012,20);pen1.Print();}}package four;public class Pen extends Tool {private int tweight;public Pen(String tname,int tyear,int tweight){super(tname,tyear);this.tweight=tweight;}public void Print(){super.Print();System.out.println("重量:"+this.tweight);}}package four;public class Tool {private String tname;private int tyear;public Tool(String tname,int tyear){this.tname=tname;this.tyear=tyear;}public void Print(){System.out.println("工具名称:"+gettname());System.out.println("工具制造年份:"+gettyear());}public void Settname(String tname){this.tname=tname;}public String gettname(){return tname;}public void Settyear(int tyear){this.tyear=tyear;}public int gettyear(){return tyear;}}第五题:package five;public class Circle {protected int centre_x,centre_y;protected int radius;public Circle(int x,int y,int r){centre_x=x;centre_y=y;radius=r;}public double zhou(){return 2*3.14*radius;}public double mian(){return 3.14*radius*radius;}}package five;public class Yuanzhu extends Circle{private int height;public Yuanzhu(int x,int y,int r,int height){ super(x,y,r);this.height=height;}public double mian(){return 2*super.mian()+height*super.zhou();}public double ti(){return height*super.mian();}}package five;public class zhulei {public static void main(String args[]){Circle circle1=new Circle(3,4,5);Yuanzhu yuanzhu1=new Yuanzhu(3,4,5,6);System.out.println("circle1 的周长为:"+circle1.zhou());System.out.println("circle1的面积为:"+circle1.mian());System.out.println("yuanzhu1的面积为:"+yuanzhu1.mian());System.out.println("yuanzhu1的体积为:"+yuanzhu1.ti());}}第六题:package six;public class casemain {public static void main(String args[]){Classes class1;class1=new Classes("cs09-1");class1.Studentlist();}}package six;public class Classes {private String classname;private Student students[];public Classes(String classname){this.classname=classname;}public void Studentlist(){System.out.println("学生名单:");students=new Student[6];students[0]=new Student(3342,"yaowei","cs09-1");students[1]=new Student(3343,"yuyong","cs09-1");students[2]=new Student(3341,"wuqiang","cs09-1");students[3]=new Student(3337,"yuxiang","cs09-1");students[4]=new Student(3339,"wanghao","cs09-1");students[5]=new Student(3336,"sunhao","cs09-1");for(int i=0;i<6;i++){System.out.println("学生"+(i+1)+"的信息"+":");System.out.println("学号"+students[i].getid());System.out.println("名字"+students[i].getname());System.out.println("班级"+students[i].get());}}}package six;public class Person {protected int id;protected String name;protected String sex;public Person(int id,String name){this.id=id;=name;}public void setid(int id){this.id=id;}public void setname(String name){=name;}public int getid(){return id;}public String getname(){return name;}}package six;public class Student extends Person{private String sclass;public Student(int id,String name,String sclass){ super(id,name);this.sclass=sclass;}public void set(String sclass){this.sclass=sclass;}public String get(){return sclass;}}package six;public class Teacher extends Person{private String major;public Teacher(int id,String name,String major){super(id,name);this.major=major;}public void set(String major){this.major=major;}public String get(){return major;}public void Teacher(int i, String string, String string2) { // TODO Auto-generated method stub}}第七题:人员包:package person;public class Student extends six.Person{private String sclass;public Student(int id,String name,String sclass){ super(id,name);this.sclass=sclass;}public void set(String sclass){this.sclass=sclass;}public String get(){return sclass;}}package person;public class Teacher extends six.Person{private String major;public Teacher(int id,String name,String major){ super(id,name);this.major=major;}public void set(String major){this.major=major;}public String get(){return major;}}管理包:package manage;import six.Student;public class Class {private String classname;private Student students[];public Class(String classname){this.classname=classname;}public void Studentlist(){System.out.println("学生名单:");students=new Student[6];students[0]=new Student(3342,"yaowei","cs09-1");students[1]=new Student(3343,"yuyong","cs09-1");students[2]=new Student(3341,"wuqiang","cs09-1");students[3]=new Student(3337,"yuxiang","cs09-1");students[4]=new Student(3339,"wanghao","cs09-1");students[5]=new Student(3336,"sunhao","cs09-1");for(int i=0;i<6;i++){System.out.println("学生"+(i+1)+"的信息"+":");System.out.println("学号"+students[i].getid());System.out.println("名字"+students[i].getname());System.out.println("班级"+students[i].get());}}}package manage;import java.util.Scanner;public class Tsourse {protected String schoolname;protected int idhao;protected String teaname,teamajor;public Tsourse(String schoolname,int idhao,String teaname,String teamajor){this.schoolname=schoolname;this.idhao=idhao;this.teaname=teaname;this.teamajor=teamajor;}public String getschoolname(){return schoolname;}public int getidhao(){return idhao;}public String getteaname(){return teaname;}public String getteamajor(){return teamajor;}public void print(){System.out.println("学校"+getschoolname());System.out.println("id"+getidhao());System.out.println("名字"+getteaname());System.out.println("授课"+getteamajor());}}用户包:package use;import manage.Tsourse;public class Use {public static void main(String args[]){manage.Tsourse tsourse[];tsourse=new manage.Tsourse[3];tsourse[0]=new manage.Tsourse("cumt",0001,"mrli","cs");tsourse[1]=new manage.Tsourse("cumt",0002,"mrwang","cs");tsourse[2]=new manage.Tsourse("cumt",0003,"mrzhang","cs");for(int i=0;i<3;i++){System.out.println("教师"+(i+1)+"的信息"+":");tsourse[i].print();}}}第八题:package eight;public class cumt implements Jiekou{private String schoolname;public cumt(String name){schoolname=name;}public void havecs(){System.out.println("如今很多高校都开设计算机科学与技术这一专业");}public void cumtcs(){System.out.println("中国矿业大学的计算机科学与技术专业具有国家一级学科博士点");}}package eight;public interface Jiekou {public void havecs();}package eight;public class Main {public static void main(String args[]){ cumt CUMT=new cumt("中国矿业大学");CUMT.havecs();CUMT.cumtcs();}}第九题:/** 鸟类,实现“会飞”接口*/package nine;public class Bird implements Flyable {public Bird() {}@Overridepublic void fly() {System.out.println("鸟会飞");}}/** 飞机类,实现“会飞”接口*/package nine;public class Flight implements Flyable {public Flight() {}@Overridepublic void fly() {System.out.println("飞机会飞");}}/** 会飞的接口*/package nine;public interface Flyable {void fly();}/** 主类*/package nine;public class PackageMany {public static void main(String[] args) {Flyable[] flyable = { new Bird(), new Flight(), new Superman() };for (Flyable canFly : flyable) {canFly.fly();}}}/** 超人类,实现“会飞”接口*/package nine;public class Superman implements Flyable {public Superman() {}@Overridepublic void fly() {System.out.println("超人会飞");}}第一题:import java.awt.FlowLayout;import java.awt.event.*;import java.awt.Color;import javax.swing.*;public class jisuanqi{public static void main(String[] args){JFrame chuangKou=new JFrame("计算器");//chuangKou.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出响应FlowLayout flow=new FlowLayout();chuangKou.setLayout(flow);//添加文本框和按钮,并把这些单元加入窗口JTextField textfield1=new JTextField(20);final JTextField textfield2=new JTextField(20);JButton button1=new JButton("+");JButton button2=new JButton("-");JButton button3=new JButton("*");JButton button4=new JButton("/");final JTextField textfield3=new JTextField(20);chuangKou.add(textfield1);chuangKou.add(textfield2);chuangKou.add(button1);chuangKou.add(button2);chuangKou.add(button3);chuangKou.add(button4);chuangKou.add(textfield3);//设置按钮的颜色,并初始化窗口button1.setForeground(Color.RED);button2.setForeground(Color.BLUE);button3.setForeground(Color.MAGENTA);button4.setForeground(Color.green);chuangKou.setVisible(true);chuangKou.setBounds(300,200,240, 180);chuangKou.setResizable(false);}}第二题:import javax.swing.*;public class xuanke {public static void main(String[] args){JFrame frame=new JFrame("选课系统");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JMenuBar menu=new JMenuBar();//建立一个菜单条JMenu menu1=new JMenu("文体类");//分别创建菜单JMenu menu2=new JMenu("计算机类");JMenu menu3=new JMenu("帮助");//菜单加入到菜单条中menu.add(menu1);menu.add(menu2);menu.add(menu3);//建立菜单的下拉菜单JMenuItem menu11=new JMenuItem("艺术欣赏");JMenuItem menu12=new JMenuItem("健美操");JMenuItem menu13=new JMenuItem("篮球");JMenuItem menu21=new JMenuItem("java语言");JMenuItem menu22=new JMenuItem("网络编程");JMenuItem menu31=new JMenuItem("选课方法");//把下拉菜单添加到菜单中menu1.add(menu11);menu1.add(menu12);menu1.add(menu13);menu2.add(menu21);menu2.add(menu22);menu3.add(menu31);frame.setJMenuBar(menu); //将建成的菜单条加入容器 frame.setBounds(300,200,250, 150);frame.setVisible(true);}}第三题:import javax.swing.*;import java.awt.Graphics;public class tuxing extends JFrame{public void paint(Graphics g){//paint方法中画相应的图形g.drawRect(40,50,120,80);g.drawOval(40,50,120,80);g.drawOval(40,70,60,40);g.drawOval(40,80,30,20);}//paint方法在主函数中是自动调用的public static void main(String[] args){tuxing frame=new tuxing();frame.setTitle("图形界面");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setBounds(300,300,240,160);frame.show();}}第四题:import javax.swing.*;import java.awt.Graphics;import java.awt.Canvas;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.InputEvent;class Expression extends Canvas implements MouseListener{ int p=0;public Expression(){addMouseListener(this);}//paint方法,当p=1时,画笑脸,其它时,画哭脸public void paint(Graphics g){if(p==1){g.drawString("笑脸",120,10);g.drawOval(80,30,80,120);g.drawArc(100,70,20,10,20,140);g.drawArc(130,70,20,10,20,140);g.drawArc(105,110,40,20,180,180);g.drawString("老师给个高分!",120,200);}else{g.drawString("哭脸", 120, 10);g.drawOval(80,30,80,120);g.drawArc(100,70,20,10,200,140);g.drawArc(130,70,20,10,200,140);g.drawArc(105,110,40,20,0,180);g.drawString("怎么又挂了!",120,200);}}//鼠标按键方法,监听鼠标事件public void mousePressed(MouseEvent e){if(e.getModifiers()==InputEvent.BUTTON1_MASK){ p=(1+p)%2;repaint();}}public void mouseReleased(MouseEvent e){}public void mouseEntered(MouseEvent e){}public void mouseClicked(MouseEvent e){}public void mouseExited(MouseEvent e){}public void update(Graphics g){super.update(g);paint(g);}}public class Bianlian {public static void main(String args[]){JFrame f=new JFrame("变脸");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setBounds(300, 300, 300, 300);f.setVisible(true);f.add(new Expression());f.validate();}}第五题:import javax.swing.*;import java.awt.FlowLayout;import java.awt.event.*;public class Anwo extends JFrame{public static void main(String[] args){Anwo frame = new Anwo();frame.setTitle("Press Me");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);FlowLayout flow=new FlowLayout(FlowLayout.CENTER);frame.setLayout(flow);final JTextField text=new JTextField("你还没按我呢!");JButton botton=new JButton("Press Me");frame.add(text);frame.add(botton);frame.setVisible(true);frame.setBounds(300,200,170, 100);botton.addActionListener(new ActionListener() {//按钮的监听方法int i=0;public void actionPerformed(ActionEvent event) {i++;text.setText("你按了我"+i+"次!");}});}}第六题:import javax.swing.*;import java.awt.event.*;import java.util.Vector;import java.awt.*;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;public class Zaocan extends JFrame{private JList foodList;private JTextArea results;public Zaocan(){JLabel label1=new JLabel("请选择早点: ");//创建两个标签对象JPanel jp1=new JPanel();//创建一个面板jp1.add(label1);//面板上添加标签jp1.setBounds(0,0,310,40);//设置面板坐标及大小final String[] s1={"名称单价","***************","馒头0.20元","花卷0.30元","面包0.50元","蛋糕0.80元","豆浆0.50元","牛奶 1.00元"};final float[] money ={ 0.20f, 0.30f, 0.50f, 0.80f, 0.50f,1.00f };foodList=new JList();foodList.setListData(s1);//把数组中的数据添加到列表中foodList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERV AL_SELECTION);//设置选择监听器//JScrollPane jsp1=new JScrollPane();//创建滚动窗格对象//jsp1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//jsp1.getViewport().setView(foodList);//jsp1.setBounds(0,30,100,200);foodList.addListSelectionListener(new ListSelectionListener() {//添加监听器public void valueChanged(ListSelectionEvent e) {float total = 0.00f;int[] selected = foodList.getSelectedIndices();results.setText("");for (int index : selected) {if (index == 0 || index == 1) {continue;}results.append(s1[index] + "\n");total += money[index - 2];}results.append(String.format("\n 总计:%.2f元", total));}});add(jp1);jp1.add(foodList);JLabel label2=new JLabel("您选择了:");JPanel jp2=new JPanel();//创建一个面板jp2.add(label2);jp2.setBounds(80,80,31,30);//设置面板坐标及大小results = new JTextArea("\n 总计:0.00元", 10, 10);jp2.add(new JScrollPane(results));JPanel buttonPanel = new JPanel(new FlowLayout());JButton exitButton = new JButton("确定");exitButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.exit(0);}});buttonPanel.add(exitButton);jp2.add(buttonPanel);add(jp2);//JList jls2=new JList();//JScrollPane jsp2=new JScrollPane();//jsp2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//jsp2.getViewport().setView(jls2);//jsp2.setBounds(0,330,310,40);//JButton jb1=new JButton("确定");//jp2.add(jb1);//jp2.setBounds(0,330,310,40);//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//getContentPane().setLayout(null);//getContentPane().add(jp1);//getContentPane().add(jsp1);//getContentPane().add(jp2);setBounds(300,200,500,250);setVisible(true);}public static void main(String[] args){Zaocan frame=new Zaocan();frame.setTitle("自助早餐");FlowLayout flow=new FlowLayout();frame.setLayout(flow);}}第七题:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.FlowLayout;import java.awt.event.*;import java.awt.Color;import javax.swing.*;public class jisuanqi{public static void main(String[] args){JFrame chuangKou=new JFrame("计算器");chuangKou.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出响应FlowLayout flow=new FlowLayout();chuangKou.setLayout(flow);final JTextField textfield1=new JTextField(16);final JTextField textfield2=new JTextField(16);JButton button1=new JButton("+");JButton button2=new JButton("-");JButton button3=new JButton("*");JButton button4=new JButton("/");final JTextField textfield3=new JTextField(16);chuangKou.add(textfield1);chuangKou.add(textfield2);chuangKou.add(button1);chuangKou.add(button2);chuangKou.add(button3);chuangKou.add(button4);chuangKou.add(textfield3);button1.setForeground(Color.RED);button2.setForeground(Color.BLUE);button3.setForeground(Color.MAGENTA);button4.setForeground(Color.green);chuangKou.setVisible(true);chuangKou.setBounds(300,300,190, 150);chuangKou.setResizable(false);button1.addActionListener( //调用方法作为参数new ActionListener() {public void actionPerformed(ActionEvent event) { //行动执行处理方法String s1=textfield1.getText(); //获取输入的值double n1=Double.parseDouble(s1); //转换为double型String s2=textfield2.getText();double n2=Double.parseDouble(s2);double n3=n1+n2;String s3=String.valueOf(n3);int index=s3.indexOf(".");String s=s3.substring(index+1,s3.length());//获取小数部分子字符串if(s.length()>4) s=s.substring(1,4);int in=Integer.parseInt(s);//将代表小数部分的字符串转化为整数if(in==0) //如果小数部分等于0,则去掉小数部分和小数点{textfield3.setText(String.valueOf(Math.round(n3)));}else //否则直接打印出这个浮点数{textfield3.setText(s3);}}});button2.addActionListener( //调用方法作为参数new ActionListener() {public void actionPerformed(ActionEvent event) { //行动执行处理方法String s1=textfield1.getText(); //获取输入的值double n1=Double.parseDouble(s1); //转换为double型String s2=textfield2.getText();double n2=Double.parseDouble(s2);double n3=n1-n2;String s3=String.valueOf(n3);int index=s3.indexOf(".");String s=s3.substring(index+1,s3.length());//获取小数部分子字符串if(s.length()>4) s=s.substring(1,4);int in=Integer.parseInt(s);//将代表小数部分的字符串转化为整数if(in==0) //如果小数部分等于0,则去掉小数部分和小数点{textfield3.setText(String.valueOf(Math.round(n3)));}else //否则直接打印出这个浮点数{textfield3.setText(s3);}}});button3.addActionListener( //调用方法作为参数new ActionListener() {。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java语言》课程作业
(第二次)
题目第13题
学院计算机学院
专业软件工程
班别
学号
姓名
2015年11月20日
一、课程题目
编写一个程序,模拟交通信号灯。
程序让用户从红、黄、绿三色灯中选择一种。
当选择一个单选按钮后,相应的灯被打开,每次只能亮一种灯。
程序开始时所有的灯都不亮。
二、题目分析与设计
1. 论述题目的需求。
通过编写界面程序配合监听事件触发,达到按相应的按钮界面在相应的圆圈显示相应的颜色。
2.论述界面设计过程,指出其设计上的创意及组件的布局策略。
首先设计整体的外框并设置其居屏幕中间,然后设置三个小圆圈并从上到下排列,接着设置颜色触发按钮在最下面,最后再为个组件设置
相应的事件。
3.论述程序的相关功能已在注释中有涉及
4. 所使用的开发环境:Eclipse
解析关键代码部分的实现也在注释中涉及。
三、测试分析
1.初始状态
2.按red按钮
4.按yellow按钮
5.按green按钮
附录:源代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.Graphics;
public class TrafficLight extends JFrame{ /**
*
*/
private static final long serialVersionUID = -8911555102673423810L; JRadioButton jrbYellow,jrbGreen,jrbRed;
int flag=0;
jpNewPanel jpNewPanel;
public static void main(String[] args){
TrafficLight frame=new TrafficLight();
frame.setSize(300,200); //设置窗口大小
frame.setLocationRelativeTo(null); //使窗口显示在屏幕中间
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置叉的功能frame.setTitle("交通灯"); //设置窗口名
frame.setVisible(true); //使窗口可改变大小
}
public TrafficLight(){
//设置各按钮的个数和大小位置还有颜色的调配
jpNewPanel=new jpNewPanel();
add(jpNewPanel,BorderLayout.CENTER);
JPanel jpRadioButtons=new JPanel();
jpRadioButtons.setLayout(new GridLayout(1,4));
jpRadioButtons.add(jrbRed=new JRadioButton("Red")); jpRadioButtons.add(jrbYellow=new JRadioButton("Yellow")); jpRadioButtons.add(jrbGreen=new JRadioButton("Green"));
add(jpRadioButtons,BorderLayout.SOUTH);
ButtonGroup group=new ButtonGroup();
group.add(jrbYellow);
group.add(jrbGreen);
group.add(jrbRed);
//设置三个颜色的监听事件
jrbYellow.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=2;
jpNewPanel.repaint();
}
});
jrbGreen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=1;
jpNewPanel.repaint();
}
});
jrbRed.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
flag=3;
jpNewPanel.repaint();
}
});
}
class jpNewPanel extends JPanel{
/**
*
*/
private static final long serialVersionUID = 1440950878615850777L; protected void paintComponent(Graphics g){
super.paintComponent(g);
//配置颜色和圆圈的位置吻合
g.drawRect(120,10,40,100);
g.drawOval(130,20,20,20);
g.drawOval(130,50,20,20);
g.drawOval(130,80,20,20);
if(flag==1){
g.setColor(Color.GREEN);
g.fillOval(130, 80, 20, 20);
}
else if(flag==2){
g.setColor(Color.YELLOW);
g.fillOval(130, 50, 20, 20);
}
else if(flag==3){
g.setColor(Color.RED);
g.fillOval(130, 20, 20, 20);
}
}
}
}。