JavaJAVA程序设计 答案
更新时间:2023-10-23 16:16:01 阅读量: 综合文库 文档下载
- javajava课程设计推荐度:
- 相关推荐
项目一 学生管理系统(结构化设计方法实现) 任务一 程序的运行环境 (一)填空题
1.Java SE Java EE Java ME 2.C:\\JDK . 3..java .class 4.public
5.Java应用程序 Java小应用程序 (二)选择题
1.B 2.B 3.D 4.A (三)简答题
1.Java语言有哪些特点?
答:简单,面向对象,与平台无关,解释型,多线程,安全,动态。 2.JDK安装完成后,如何设置环境变量?
答:主要设置环境变量JAVA_HOME,path,classpath。详见教材第6页。 3.简述Java应用程序和小应用程序的区别。
答:Java应用程序是由用户系统就地装入的可独立运行的Java程序,可以是基于窗口或控制台的。而Java小应用程序需要嵌入到网页在浏览器中运行。 4.简述Java应用程序的开发过程。 答:(1)建立源程序。可利用任何文本编辑器建立,文件扩展名为.java。(2)编译源程
序。命令为javac 程序名.java(3)解释运行程序。命令为java 程序名
任务二 成绩的表示和基本运算 (一)填空题
1.true false
2.1 1 false 0 -0.6 (二)选择题
1.C 2.B 3.D 4.D 5.D 6.C 7.C 8.D 9.B 10.D 11.D 12.A (三)编程题
1.定义两个整型变量a,b;然后分别赋予23,89,在屏幕上打印出“a+b=112”字样。 package pr1;
public class lx1_2_1 {
public static void main(String args[]) { int a, b; a = 23; b = 89;
System.out.println(\ } }
2.定义两个浮点型变量m,n;然后分别赋予98.67,2.34,在屏幕上打印出“m-n=96.33”字样。 package pr1;
public class lx1_2_2 {
public static void main(String[] args) { double m, n; m = 98.67; n = 2.34;
System.out.println(\ } }
3.编写程序求出Area=a×b×c,并对a,b,c分别赋予数值,进行调试查看。 package pr1;
public class lx1_2_3 {
public static void main(String[] args) { int a, b, c; int area; a = 17; b = 42; c = 33;
area = a * b * c;
System.out.println(area); } }
4.使用Math.pow( )方法,求出2的32次方的值。 package pr1;
public class lx1_2_4 {
public static void main(String[] args) { double value;
value = Math.pow(2, 32);
System.out.println(\的32次方是:\ } }
任务三 成绩的判断和统计 (一)填空题
1.byte short,int ,char 2.结束整个循环
3.if语句 switch语句 4.>=0 >0 >=0 (二)选择题
1.C 2.C 3.B 4.D 5.C 6.D 7.A 8.B 9.C 10.B 11.D 12.B 13.C (三)编程题
1.输入4个数,将这4个数按从小到大输出。 package pr1;
import java.util.Scanner; public class lx1_3_1 {
public static void main(String args[]) {
Scanner scan=new Scanner(System.in); int a,b,c,d,t;
System.out.println(\请输入三个整数:\ a=scan.nextInt(); b=scan.nextInt(); c=scan.nextInt(); d=scan.nextInt(); if (a>b) {
t=a; a=b; b=t; }
if (a>c) {
t=a; a=c; c=t; }
if (a>d) {
t=a; a=d; d=t; }
if (b>c) {
t=b; b=c; c=t; }
if (b>d) {
t=b; b=d; d=t; }
if (c>d) {
t=c; c=d; d=t; }
System.out.println(a+\ } }
2.输入一个年份值,判断是否是闰年,输出相应的信息。 import java.util.Scanner; public class Exam24 {
public static void main(String[] args) { Scanner input=new Scanner(System.in); int year;
year=input.nextInt();
if (year%4==0 && year0!=0 || year@0==0) {
System.out.println(year+\年是闰年\ } else {
System.out.println(year+\年不是闰年\ } } }
3.输入一元二次方程系数,若有实数根,求根并输出,否则输出“不是二次方程或没有实数根”的信息。 package pr1;
import java.util.Scanner; public class lx1_3_3 {
public static void main(String args[]){ double a,b,c,d,x1,x2;
Scanner scan=new Scanner(System.in);
System.out.println(\请输入一元二次方程的系数:\ a=scan.nextDouble(); b=scan.nextDouble(); c=scan.nextDouble(); d=b*b-4*a*c; if (d>=0){
x1=(-b+Math.sqrt(d))/(2*a); x2=(-b-Math.sqrt(d))/(2*a);
System.out.println(\方程的实数根为:x1=\ }else{
System.out.println(\方程没有实数根!\ } } }
4.编写程序,计算邮局汇款的汇费:如果汇款金额小于100元,汇费为1元,如果金额在100元与500元之间,按1%收取汇费,如果金额大于500元,汇费为50元。 package pr1;
import java.util.Scanner; public class lx1_3_4 {
public static void main(String[] args) { Scanner input=new Scanner(System.in); double je,hf;
je=input.nextDouble(); if (je<100) {
hf=1; }
else if (je<500) {
hf=je*0.01; } else {
hf=50; }
System.out.println(\汇款金额:\汇费:\ } }
5.求某年某月的天数. package pr1;
import java.util.Scanner; public class lx1_3_5 {
public static void main(String args[]) { Scanner input = new Scanner(System.in); int year, month, day; year = input.nextInt(); month = input.nextInt(); switch (month) { case 2:
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) day = 29; else
day = 28; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31; break; default:
day = 30; break; }
System.out.println(year + \年\月的天数:\ }
}
6.求从1到100之间所有奇数的平方和(用for、while和do??while编写程序)。 public class lx1_3_6 {
public static void main(String[] args) { int i,sum; sum=0;
for(i=1;i<=100;i++) {
if (i%2==1)
sum=sum+i*i;
}
System.out.println(\ } }
7.求S=1+2+3+?+n之和,S<1000的最大n的值。 public class lx1_3_7 {
public static void main(String[] args) { int s=0; int i;
for(i=1;;i++) {
s=s+i;
if (s>1000) break; }
System.out.println(i-1); } }
8. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 public class lx1_3_8{
public static void main(String[] args) { double a,b,s; int i; s=0; a=2;b=1;
for(i=1;i<=20;i++) {
s=s+a/b; a=a+b; b=a-b; }
System.out.println(s); }
}
9.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个,到第十天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少? package pr1;
public class lx1_3_9 {
public static void main(String[] args) { int x, i; x = 1;
for (i = 9; i >= 1; i--) { x = 2 * (x + 1); }
System.out.println(x); } }
10.输出九九乘法表。 package pr1;
public class lx1_3_10 {
public static void main(String[] args) { int i, j;
for (i = 1; i <= 9; i++) // 行 {
for (j = 1; j <= i; j++) // 列 {
System.out.print(i + \ }
System.out.println(); // 换行 } } }
11.输出1000之内的所有完数。所谓完数指的是:如果一个数恰好等于它的所有因子之和,
这个数就称为完数。 package pr1;
public class lx1_3_11 {
public static void main(String args[]) { int x, y, i;
for (x = 1; x <= 1000; x++) { y = 0;
for (i = 1; i <= x / 2; i++) { if (x % i == 0) y = y + i; }
if (x == y) {
System.out.println(x); } } } }
12.输出100以内的全部素数。 package pr1;
public class lx1_3_12 {
public static void main(String args[]) { int x, i, k;
for (x = 2; x <= 100; x++) { k = (int) Math.sqrt(x); for (i = 2; i <= k; i++) { if (x % i == 0) break; }
if (i>k){
System.out.println(x); } } } }
13.求1!+2!+3!+??+10! package pr1;
public class lx1_3_13 {
public static void main(String args[]) { double sum = 0, t;
for (int i = 1; i <= 10; i++) { t = 1;
for (int j = 1; j <= i; j++) { t = t * j; }
sum = sum + t; }
System.out.println(\=\ } }
14.求2+22+222+2222+22222。 package pr1;
public class lx1_3_14 {
public static void main(String args[]) { int sum, x, v, n = 5; v = 0;
x = 2; sum = 0;
for (int i = 1; i <= n; i++) { v = v * 10 + x; sum += v; }
System.out.println(\ } }
任务四 学生成绩管理系统功能的实现 (一)填空题
1.int y[]={1,2,3,4,5}; 2.3
3.a[i].length (二)选择题
1.C 2.B 3.C (三)编程题
1.编写一个程序,计算一维数组中的最大值、最小值及其差值。 package pr1;
public class lx1_4_1 {
public static void main(String[] args) {
int a[] = { 34, 65, 79, 50, 30, 40, 65, 23, 8, 10 }; // 数组名.length a.length int i, max, min; int n = a.length; // a[0] a[1] a[n-1] max = a[0]; min = a[0];
for (i = 1; i < n; i++) { if (max < a[i]) { max = a[i];
} else if (min < a[i]) { min = a[i]; } }
System.out.println(\最大数:\最小数:\差值:\- min)); } }
2.将一个数组中的数逆序重新存放。 package pr1;
public class lx1_4_2 {
public static void main(String args[]) {
int a[] = { 3, 15, 28, 11, 34, 78, 95, 27, 18 }; int i, length, temp; length = a.length;
for (i = 0; i < (length / 2); i++) {
// 以下将数组元素a[i]和a[length -1 - i]的值互换 temp = a[i];
a[i] = a[length - 1 - i]; a[length - 1 - i] = temp; }
for (i = 0; i < length; i++) { System.out.print(a[i] + \ } } }
3.已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。 package pr1;
import java.util.Scanner; public class lx1_4_3 {
public static void main(String args[]) { int a[] = { 12, 23, 26, 45, 58, 60, 0 }; int x, i, j, n;
Scanner scanner = new Scanner(System.in); System.out.println(\请输入要插入的数x:\ x = scanner.nextInt(); n = 6;
for (i = 0; i < n; i++) { if (x < a[i]) break; }
for (j = n; j > i; j--) { a[j] = a[j - 1]; }
a[i] = x; n++;
for (i = 0; i < n; i++) {
System.out.print(a[i] + \ } } }
4.输出杨辉三角形。如: 1 1 1 1 2 1
1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ??
package pr1;
public class lx1_4_4 {
public static void main(String args[]) { int a[][] = new int[10][10];
for (int i = 0; i < a.length; i++) { a[i][0] = a[i][i] = 1;
for (int j = 1; j < i ; j++) {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } }
for (int i = 0; i < a.length; i++) { for (int j = 0; j <=i; j++) {
System.out.print(a[i][j] + \ }
System.out.println(); } } }
5.求一个二维数组的每行最大数。 package pr1;
public class lx1_4_5 {
public static void main(String args[]) {
int a[][] = { { 34, 23, 45, 78 }, { 2, 24, 16, 20 }, { 43, 56, 22, 12 } }; int max;
for (int i = 0; i < a.length; i++) { max = a[i][0];
for (int j = 0; j < a[i].length; j++) { if (max < a[i][j]) max = a[i][j]; }
System.out.println(\第\行上的最大数为:\ } } }
6.输入一个十进制数,转换成二进制数并输出。 package pr1;
import java.util.Scanner; public class lx1_4_6 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in); int x, i;
System.out.print(\请输入一个十进制数:\ x = input.nextInt(); int a[] = new int[20]; i = 0; do {
a[i++] = x % 2; x = x / 2; } while (x != 0);
System.out.print(\对应的二进制数为:\ for (i--; i >= 0; i--) { System.out.print(a[i]); } } }
项目二 学生成绩管理系统(面向对象设计方法实现) 任务一 用类来表示学生成绩信息 (一)选择题
1.B 2.A 3.D 4.C 5.A 6.D 7.A 8.D 9.A 10.D 11.C 12.C 13.B 14.B 15.B 16.C 17.C 18.B 19.A 20.B (二)编程题
1.某公司正进行招聘工作,被招聘人员需要填写,做“个人简历”的封装类。 class jianli {
String xm;// 姓名 String xb;// 性别 int nl;// 年龄
String jtzz;// 家庭住址 String xl;// 学历
public String getXm() { return xm; }
public void setXm(String xm) { this.xm = xm; }
public String getXb() { return xb; }
public void setXb(String xb) { this.xb = xb; }
public int getNl() {
return nl; }
public void setNl(int nl) { this.nl = nl; }
public String getJtzz() { return jtzz; }
public void setJtzz(String jtzz) { this.jtzz = jtzz; }
public String getXl() { return xl; }
public void setXl(String xl) { this.xl = xl; } }
2.编写程序,提供实现各种数学计算的方法。包括如下几项。 (1)两个数的加、减、乘、除。
(2)求某数的相反数、倒数、绝对值。 (3)取两数中较大的和较小的。
(4)对浮点数(double型)的计算功能。如:给定浮点数d,取大于或等于d的最小整
数,取小于或等于d的最大整数,计算最接近d的整数值,计算d的平方根、自然对数log(d)等。
(5)计算以double型数a为底数,b为指数的幂。 package pr2; class MyMath {
public int add(int a, int b) { return a + b; }
public int sub(int a, int b) { return a - b; }
public int mul(int a, int b) { return a * b; }
public int div(int a, int b) { return a / b; }
public int xianfan(int a) { return -a; }
public double daoshu(int a) { return 1.0 / a; }
public int abs(int a) { if (a >= 0) return a; else
return -a; }
public int max(int a, int b) { if (a > b) return a; else
return b; }
public int min(int a, int b) { if (a < b) return a; else
return b; } } 3.编写一个抽象类Shape,声明计算图形面积的抽象方法。再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法。 (1)抽象类定义 package pr2;
abstract class Shape {
public abstract double area(); }
(2)Circle类定义
public class Circle extends Shape { double r;
public Circle() { r = 0; }
public Circle(double r) { this.r = r; }
public double area() { return 3.14 * r * r; } }
(3)Rectangle类定义
public class Rectangle extends Shape { double w, h;
public Rectangle() { w = h = 0; }
public Rectangle(double w, double h) { this.w = w; this.h = h; }
public double area() { return w * h; } }
4.定义一个接口,接口中有3个抽象方法如下。 (1)“long fact(int m);”方法的功能为求参数的阶乘。 (2)“long intPower(int m,int n);”方法的功能为求参数m的n次方。 (3)“boolean findFactor(int m,int n);”方法的功能为判断参数m加上参数n的和
是否大于100。
定义类实现该接口,编写应用程序,调用接口中的3个方法,并将调用方法所得的结果
输出。 答案:
(1)接口定义 package pr2;
public interface MyInterface { public long fact(int m);
public long intPower(int m, int n);
public boolean findFactor(int m, int n); }
(2)类定义 package pr2;
public class MyClass implements MyInterface { public long fact(int m) { long f; f = 1;
for (int i = 1; i <= m; i++) f = f * i; return f; }
public boolean findFactor(int m, int n) { if (m + n > 100) return true; else
return false; }
}
public long intPower(int m, int n) { long v; v = 1;
for (int i = 1; i <= n; i++) { v = v * m; }
return v; }
(3)主类 package pr2;
public class lx2_1_4 {
public static void main(String[] args) { MyClass c1;
c1 = new MyClass();
System.out.println(c1.fact(10));
System.out.println(c1.intPower(2, 10)); System.out.println(c1.findFactor(2, 10)); } }
5.创建一个接口IShape,接口中有一个求取面积的抽象方法“public double area()”。定义一个正方形类Square,该类实现了IShape接口。Square类中有一个属性a表示正方形的边长,在构造方法中初始化该边长。定义一个主类,在主类中,创建Square类的实例对象,求该正方形对象的面积。 答案:
(1)接口定义 package pr2;
public interface IShape {
public abstract double area(); }
(2)类定义 package pr2;
public class Square implements IShape { double a;
public Square() { a = 0; }
public Square(double a) { this.a = a; }
public double area() { return a * a; } }
(3)主类: package pr2;
public class lx2_1_5 {
public static void main(String[] args) { Square s1 = new Square(4); System.out.println(s1.area()); } }
6.定义一个人类,包括属性:姓名、性别、年龄、国籍;包括方法:吃饭、睡觉,工作。 (1)根据人类,派生一个学生类,增加属性:学校、学号;重写工作方法(学生的工作
是学习)。
(2)根据人类,派生一个工人类,增加属性:单位、工龄;重写工作方法(工人的工作
是??自己想吧)。
(3)根据学生类,派生一个学生干部类,增加属性:职务;增加方法:开会。 (4)编写主函数分别对上述3类具体人物进行测试。 答案: (1)人类 package pr2;
public class People { String xm; String xb; int nl; String gj;
public void chifan() {
System.out.println(\正在吃饭\ }
public void shuijiao() {
System.out.println(\正在睡觉\ }
public void gongzuo() {
System.out.println(\正在工作\ } }
(2)学生类: package pr2;
public class Xuesheng extends People { String xx; int xh;
public void gongzuo() {
System.out.println(\正在学习\ } }
(3)工人类: package pr2;
public class Gongren extends People{ String dw; int gl;
public void gongzuo() {
System.out.println(\正在生产汽车\ } }
(4)干部类: package pr2;
public class Ganbu extends Xuesheng{ String zw;
public void kaihui() {
System.out.println(\正在开会\ } }
(5)主类: package pr2;
public class lx2_1_6 {
public static void main(String[] args) { Xuesheng xs = new Xuesheng();
xs.chifan();xs.shuijiao();xs.gongzuo(); Gongren gr=new Gongren();
gr.chifan();gr.shuijiao();gr.gongzuo(); Ganbu gb=new Ganbu();
gb.chifan();gb.shuijiao();gb.gongzuo();gb.kaihui(); } }
任务二 用动态数组存储学生成绩信息 (一)填空题 1.hello world 2.s1+=s2 3.s1.equals(s2) 4.edcba 5(二)选择题
1.C 2.B 3.B 4.A (三)编程题
1.实现把“I Love Java!”的字符全部转换为小写并输出到控制台。 答案:
package pr2;
public class lx2_2_1 {
public static void main(String[] args) { String str1, str2; str1 = \ str2 = str1.toLowerCase(); System.out.println(str1); System.out.println(str2);
.new Date() } }
2.使用String类中的split()函数,统计出“this is my homework! I must finish it!”中单词的个数。(注意:单词之间用一个空格来分隔。) 答案:
package pr2;
public class lx2_2_2 {
public static void main(String[] args) { String str1;
str1=\ String str2[]=str1.split(\
System.out.println(\单词个数为:\ }
}
3.给出两个日期,计算它们之间相隔的天数。 答案:
package pr2;
import java.util.Calendar; import java.util.Date; public class lx2_2_3 {
public static void main(String args[]) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());// 用当前时间初始化日历时间 calendar.set(2000, 10, 1); //
long time1 = calendar.getTimeInMillis(); calendar.set(2010, 10, 1);
long time2 = calendar.getTimeInMillis();
long num = (time2 - time1) / (1000 * 60 * 60 * 24); System.out.println(\相隔\天\ } }
4.实现将当前日期信息以4位年份、月份全称、两位日期形式输出。 答案:
package pr2;
import java.text.SimpleDateFormat; import java.util.Date; public class lx2_2_4 {
public static void main(String args[]) { Date nowDate = new Date();
SimpleDateFormat sdf=new SimpleDateFormat(\年MM月dd日\ System.out.println(\当前日期是:\ } }
任务三 学生成绩信息的保存与读取
(一)填空题
1.输入流 输出流 2.字节流和字符流 3.Writer (二)选择题
1.D 2.D 3.A 4.B 5.A 6.A 7.C (三)编程题
1.使用随机文件流RandomAccessFile类将一个文本文件倒置读出。 答案:
package pr2;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile; public class lx2_3_1 {
public static void main(String[] args) { {
String filename = \ File f1 = new File(filename); try {
RandomAccessFile raf1 = new RandomAccessFile(filename, \ byte[] b = new byte[(int) f1.length()]; StringBuffer sb = new StringBuffer();
for (int i = 0; raf1.read(b) != -1; i++) { sb.append(new String(b, \ }
System.out.println(sb.reverse().toString()); raf1.close();
} catch (IOException e) { e.printStackTrace(); } } } }
2.编写一个Java应用程序,可以实现DOS中的TYPE命令,并加上行号。即将文本文件在控制台上显示出来,并在每一行的前面加上行号。 答案:
package pr2;
import java.io.BufferedReader; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class lx2_3_2 {
public static void main(String[] args) { FileReader fr; BufferedReader br;
中证明线程的无序性。 答案: 第一种: package pr4;
class Thread1 extends Thread { public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println(this.getName()); } } }
public class lx4_2_1 {
public static void main(String[] args) { Thread1 th1, th2, th3, th4, th5; th1 = new Thread1(); th2 = new Thread1(); th3 = new Thread1(); th4 = new Thread1(); th5 = new Thread1(); th1.start(); th2.start(); th3.start(); th4.start(); th5.start(); } }
第二种: package pr4;
class Target implements Runnable { public void run() {
for (int i = 1; i <= 100; i++) { System.out.println(i); } } }
public class lx4_2_1 {
public static void main(String[] args) { Target tt = new Target();
Thread th1, th2, th3, th4, th5; th1 = new Thread(tt); th2 = new Thread(tt); th3 = new Thread(tt); th4 = new Thread(tt);
th5 = new Thread(tt); th1.start(); th2.start(); th3.start(); th4.start(); th5.start(); } } 2.制作两个线程对象,要求用同步块的方式使第一个线程运行10次,然后将自己阻塞起来,唤醒第二个线程,第二个线程再运行10次,然后将自己阻塞起来,唤醒第一个线程??两个线程交替执行。 答案:
package pr4;
public class lx4_2_2 implements Runnable { Thread t1, t2; public lx4_2_2() {
t1 = new Thread(this); t2 = new Thread(this); }
public static void main(String args[]) { lx4_2_2 ee = new lx4_2_2(); ee.t2.start(); ee.t1.start(); }
public synchronized void f() { // 同步方法 for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName()); try {
Thread.sleep(100);
} catch (InterruptedException e) { e.printStackTrace(); } }
notifyAll(); try {
wait();
} catch (InterruptedException e) { } }
public void run() { while (true) { f(); } }
}
File file = new File(\ String str; int n = 0; try {
fr = new FileReader(file); br = new BufferedReader(fr);
while ((str = br.readLine()) != null) { n++;
System.out.println(n + \ }
} catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
项目三 学生信息管理系统(图形界面设计应用) 任务一 界面设计 子任务一 主界面设计 (一)填空题
1.setVisible 2.Graphics User Interface 3.add (二)选择题
1.C 2.C 3.B 4.D (三)编程题
1.仿照Windows记事本,制作记事本的窗口和菜单。 package pr3;
import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JTextArea; class Myjsb extends JFrame {
JTextArea ta = new JTextArea(); JMenuBar bar = new JMenuBar();
JMenu fileMenu, editMenu, formatMenu;
JMenuItem newfileItem, openfileItem, savefileItem, saveasfileItem, exitItem, cutItem, copyItem, pasteItem, deleteItem, findItem, replaceItem, selectallItem, linewrapItem, fontItem;
JPopupMenu popMain;
public Myjsb() {
super(\我的记事本\
// **********添加菜单********** fileMenu = new JMenu(\文件\ editMenu = new JMenu(\编辑\ formatMenu = new JMenu(\格式\
newfileItem = new JMenuItem(\新建\ openfileItem = new JMenuItem(\打开\ savefileItem = new JMenuItem(\保存\ saveasfileItem = new JMenuItem(\另存为\ exitItem = new JMenuItem(\退出\ cutItem = new JMenuItem(\剪切\ copyItem = new JMenuItem(\复制\ pasteItem = new JMenuItem(\粘贴\ deleteItem = new JMenuItem(\删除\ findItem = new JMenuItem(\查找\ replaceItem = new JMenuItem(\替换\ selectallItem = new JMenuItem(\全选\
linewrapItem = new JCheckBoxMenuItem(\自动换行\ fontItem = new JMenuItem(\字体\ fileMenu.add(newfileItem); fileMenu.add(openfileItem); fileMenu.add(savefileItem); fileMenu.add(saveasfileItem); fileMenu.addSeparator(); fileMenu.add(exitItem); editMenu.add(cutItem); editMenu.add(copyItem); editMenu.add(pasteItem); editMenu.add(deleteItem); editMenu.addSeparator(); editMenu.add(findItem); editMenu.add(replaceItem); formatMenu.add(linewrapItem); formatMenu.add(fontItem); bar.add(fileMenu); bar.add(editMenu); bar.add(formatMenu); setJMenuBar(bar); // 快捷菜单
popMain = new JPopupMenu(); popMain.add(cutItem);
popMain.add(copyItem); popMain.add(pasteItem); popMain.add(deleteItem);
// **********添加多行文本框********** JScrollPane jsp = new JScrollPane(ta); add(jsp);
// **********关闭窗口时**********
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); } });
setExtendedState(JFrame.MAXIMIZED_BOTH); // 窗口最大化 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } }
public class lx3_1_1_1 {
public static void main(String[] args) { Myjsb win = new Myjsb(); } }
2.查看JDK帮助文档,了解javax.swing.JRadioButtonMenuItem和javax.swing.JCheck BoxMenuItem两种菜单项的用法,并编写测试程序。
子任务二 登录界面 (一)填空题
1.addActionListener 2.ActionListener actionPerformed 3.setEnabled
4.tf.setEditable(false) 5.tf.getText() (二)选择题
1.B 2.C 3.C 4.B 5.B (三)编程题
1.设计一个图形界面的猜数游戏程序。 答案:
package pr3;
import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Toolkit;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField;
class Win1 extends JFrame implements ActionListener { int number;
JTextField t1 = new JTextField(10);
JLabel mess = new JLabel(\
JButton b1 = new JButton(\点击产生一个1-100之间的随机数\b2 = new JButton(\确定\
public Win1() {
super(\猜数游戏\
setLayout(new FlowLayout()); add(b1);
add(new JLabel(\你的猜测是:\ add(t1); add(b2); add(mess);
b1.addActionListener(this); b2.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = new Dimension(250, 130); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; }
if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; }
setLocation(((screenSize.width - frameSize.width) / 2), ((screenSize.height - frameSize.height) / 2)); setSize(frameSize);
this.setResizable(false); this.setVisible(true); }
public void actionPerformed(ActionEvent e) { if (e.getSource() == b1) {
number = (int) (Math.random() * 100 + 1); } else if (e.getSource() == b2) { try {
int guss = Integer.parseInt(t1.getText()); if (guss > number) {
mess.setText(\猜大了!\ } else if (guss < number) { mess.setText(\猜小了!\ } else {
mess.setText(\猜对了!\ }
} catch (Exception ee) {
javax.swing.JOptionPane.showMessageDialog(null, \请输入数值!\ } }
} }
public class lx3_1_2_1 {
public static void main(String[] args) { new Win1(); } }
2.设计一个窗口,里面有两个文本框和一个按钮,在第一个文本框中输入一个数,当单击按钮时,在另一个文本框显示该数字的平方根,要求能处理异常。 答案:
package pr3;
import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Toolkit;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; class Win extends JFrame {
JTextField t1 = new JTextField(10); JTextField t2 = new JTextField(10);
JButton pfButton = new JButton(\求平方根\ public Win() {
super(\求平方根\
setLayout(new FlowLayout());
add(new JLabel(\请输入一个整数:\ add(t1);
add(new JLabel(\平方根:\ add(t2);
add(pfButton);
pfButton.addActionListener(new ActionListener() { // 匿名内部类 public void actionPerformed(ActionEvent e) { String str = t1.getText(); int n = Integer.parseInt(str); t2.setText(\ } });
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = new Dimension(250, 130); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; }
if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; }
setLocation(((screenSize.width - frameSize.width) / 2), ((screenSize.height - frameSize.height) / 2)); setSize(frameSize);
this.setResizable(false); this.setVisible(true); } }
public class lx3_2_2 {
public static void main(String[] args) { Win win = new Win(); } }
子任务三 信息录入界面 (一)填空题
1.addItem() 2.getSelectedItem 3.setLineWrap (二)选择题
1.A 2.B 3.B (三)编程题
1.设计一个模拟交通信号灯的窗口。窗口内包含表示红、绿、黄3种颜色信号灯的图标标签,3个对应的单选按钮(标题为红灯、绿灯、黄灯),每当一个按钮被选中,则与之相对应的信号灯亮(即可见)。 答案:
package pr3;
import java.awt.Color; import java.awt.Dimension; import java.awt.Toolkit;
import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JLabel;
import javax.swing.JRadioButton;
class Win331 extends JFrame implements ItemListener { JLabel red, green, yellow;
JRadioButton redButton, greenButton, yellowButton; public Win331() { super(\交通灯\ setLayout(null);
red = new JLabel(\ red.setOpaque(true);
red.setBackground(Color.RED); green = new JLabel(\ green.setOpaque(true);
green.setBackground(Color.green); yellow = new JLabel(\ yellow.setOpaque(true);
red.setBounds(50, 10, 30, 20); green.setBounds(110, 10, 30, 20); yellow.setBounds(170, 10, 30, 20); red.setVisible(false); green.setVisible(false); yellow.setVisible(false);
yellow.setBackground(Color.yellow); ButtonGroup bg = new ButtonGroup(); redButton = new JRadioButton(\红灯\ greenButton = new JRadioButton(\绿灯\ yellowButton = new JRadioButton(\黄灯\ redButton.setBounds(20, 50, 60, 20); greenButton.setBounds(100, 50, 60, 20); yellowButton.setBounds(180, 50, 60, 20); bg.add(redButton); bg.add(greenButton); bg.add(yellowButton); add(red); add(green); add(yellow); add(redButton); add(greenButton); add(yellowButton);
redButton.addItemListener(this); greenButton.addItemListener(this); yellowButton.addItemListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = new Dimension(250, 130); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; }
if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; }
setLocation(((screenSize.width - frameSize.width) / 2), ((screenSize.height - frameSize.height) / 2)); setSize(frameSize);
this.setResizable(false); this.setVisible(true); }
public void itemStateChanged(ItemEvent e) { if (e.getSource() == redButton) { red.setVisible(true); green.setVisible(false); yellow.setVisible(false);
} else if (e.getSource() == greenButton) { green.setVisible(true); red.setVisible(false); yellow.setVisible(false);
} else if (e.getSource() == yellowButton) { yellow.setVisible(true); red.setVisible(false); green.setVisible(false); } } }
public class lx3_1_3_1 {
public static void main(String args[]) { new Win331(); } }
2.设计一个窗口,窗口上方是一个组合框,组合框中的列表项有:北京、天津、上海、重庆等城市的名称,窗口下方是一个文本区,当选择某一个城市名称时,在下方的文本区中显示该城市的介绍信息。 答案:
package pr3;
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit;
import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JTextArea;
class Win332 extends JFrame implements ItemListener {
JComboBox cb; JTextArea ta; public Win332() { super(\城市\
cb = new JComboBox(); cb.addItem(\北京\ cb.addItem(\天津\ cb.addItem(\上海\ cb.addItem(\重庆\ ta = new JTextArea(); setLayout(null); add(cb);
cb.setBounds(100, 10, 60, 20); add(ta);
ta.setBounds(30, 40, 200, 50); cb.addItemListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = new Dimension(250, 160); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; }
if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; }
setLocation(((screenSize.width - frameSize.width) / 2), ((screenSize.height - frameSize.height) / 2)); setSize(frameSize);
this.setResizable(false); this.setVisible(true); }
public void itemStateChanged(ItemEvent e) { String str = (String) cb.getSelectedItem(); ta.setText(str); } }
public class lx3_3_2 {
public static void main(String[] args) { new Win332(); } }
3.用列表框完成上题。
请读者参照第2题答案自行完成。
子任务四 信息查询界面 (一)填空题
1.有模式对话框 无模式对话框 2.KeyListener keyTyped keyPressed KeyTyped 3.setFocusable (二)选择题
1.C 2.B 3.B 4.B (三)编程题
1.模仿Windows中的画图软件,设计一个简单的画图程序。 package pr3;
import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton;
import javax.swing.JColorChooser; import javax.swing.JFrame; import javax.swing.JPanel;
class Win341 extends JFrame implements ActionListener, MouseMotionListener, MouseListener {
JButton line, rect, circle, pencil, color; JPanel p1;
int x1, x2, y1, y2; String shape = \ Color c;
MyCanvas canvas; public Win341() {
super(\简单绘图程序\ p1 = new JPanel();
line = new JButton(\直线\ rect = new JButton(\矩形\ circle = new JButton(\圆\ pencil = new JButton(\画笔\ color = new JButton(\颜色\ p1.add(line); p1.add(rect); p1.add(circle); p1.add(pencil); p1.add(color);
正在阅读:
JavaJAVA程序设计 答案10-23
土霉素概况12-06
高一物理必修二第五章曲线运动单元检测题05-23
嗑瓜子之战作文600字07-08
亳州中公教育关于药都银行员工招聘初选工作的通知(小编整理)08-23
优化供电服务实施情况汇报材料11-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- JavaJAVA
- 答案
- 2011语文普陀区二模卷及答案、
- 李清照词赏析
- 橡胶哑铃裁刀
- 大五人格理论在提升领导特质中的应用
- 西方经济学试卷1答案函授
- 南昌大学电子电工实习报告 - 图文
- 客户资料综合企业通讯录
- 国旗班日常守则
- 2012年1月中央电大行政管理专科《政治学原理》期末考试试题及答案
- 点钞人员作业管理规章制度
- 小学奥数讲义 第一讲-加减法巧算之凑整与组合思想竞赛篇
- 事故车辆维修委托书
- 220kV寒山变电站现场运行规程(2.0)资料
- 最新版油类记录簿记录指南
- 如何建立健全派出所等基层单位的民警绩效考核体制
- 饲料鉴定完整版
- 电子自动化控制中的干扰因素及处理对策分析
- 2012学年崇明中学见习教师规范化培训方案-上海工程技术管理学校
- 可持续发展下的居住区建筑(住宅)设计 - 图文
- (普通机床的数控改造)综合作业指导书 - 40902