Java程序设计课程作业

更新时间:2024-04-25 15:30:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Java程序设计课程作业

第一章 绪论

1、安装Java SDK到你的电脑中。

2、选择安装一种Java开发工具到你的电脑中。Jcreater、NetBeans、Eclipse 3、编译并运行一个“Hello World”Java程序。 程序代码:

//filename:App2_1.Java public class App2_1 {

public static void main(String[]args) {

System.out.println(\} }

4、编译并运行一个Java Applet程序。

答:编译成功,不过浏览器不显示自己的Applet程序,还在学习中,错误的原因是自己电脑上java的安全设置的原因,修改后运行成功。

第二章 Java语法基础

1、下列表达式是否有错?若有错,请说明何处出现何种错误;若无错,请给出其值。 (1) 3+4<<2^-8

没有错误,运行结果为-28 (2) 36>>2*4&48<<8/4+2 运行结果为0

(3) \abc\

有错误,||这个运算规律是两边均为boolean型 (4) 2*4&&0<2||4%2

有错误,||这个运算规律是两边均为boolean型

2、任意准备一份学生成绩表,其中包括至少3门课程、每门课程至少10名同学的成绩。请编写程序完成以下功能:(1) 统计并输出各门课程的平均成绩。(2) 输出等级表:优、良、中、及格与不及格。 import java.util.*; class student{ String num;

double math; double english; double chinese; }

public class Test{

public static void main(String[]agrs){

student stu[]=new student[11]; for(int i=0;i<10;i++) stu[i]=new student();

Scanner reader=new Scanner(System.in);

System.out.println(\请依次输入十个同学的数学,英语。语文的成绩:\); for(int i=0;i<=10;i++){

System.out.println(\第\+(i+1)+\同学的数学,英语。语文的成绩:\); stu[i].math=reader.nextInt(); stu[i].english=reader.nextInt(); stu[i].chinese=reader.nextInt(); }

double sum=0;

for(int i=0;i<10;i++) sum=sum+stu[i].math; float A=(float)sum/10;

System.out.println(\数学平均成绩:\+A); //int sum;

for(int i=0;i<10;i++) sum=sum+stu[i].math; float B=(float)sum/10;

System.out.println(\数学平均成绩:\+B); //int sum;

for(int i=0;i<10;i++) sum=sum+stu[i].math; float C=(float)sum/10;

System.out.println(\数学平均成绩:\+C); System.out.println(\数学不及格的成绩:\); for(int i=0;i<10;i++) if(stu[i].math<60)

System.out.println(stu[i].math); System.out.println(\及格:\); for(int i=0;i<10;i++) if(stu[i].math>60)

System.out.println(stu[i].math); System.out.println(\优:\); for(int i=0;i<10;i++)

if(stu[i].math>80)

System.out.println(stu[i].math); System.out.println(\良:\); for(int i=0;i<10;i++) if(stu[i].math>90)

System.out.println(stu[i].math); System.out.println(\英语不及格的成绩:\); for(int i=0;i<10;i++) if(stu[i].english<60)

System.out.println(stu[i].english); System.out.println(\及格:\); for(int i=0;i<10;i++) if(stu[i].english>60)

System.out.println(stu[i].english); System.out.println(\优:\); for(int i=0;i<10;i++) if(stu[i].english>80)

System.out.println(stu[i].english); System.out.println(\良:\); for(int i=0;i<10;i++) if(stu[i].english>90)

System.out.println(stu[i].english); System.out.println(\语文不及格的成绩:\); for(int i=0;i<10;i++) if(stu[i].chinese<60)

System.out.println(stu[i].chinese); System.out.println(\及格:\); for(int i=0;i<10;i++) if(stu[i].chinese>60)

System.out.println(stu[i].chinese); System.out.println(\优:\); for(int i=0;i<10;i++) if(stu[i].chinese>80)

System.out.println(stu[i].chinese);

System.out.println(\良:\); for(int i=0;i<10;i++) if(stu[i].chinese>90)

System.out.println(stu[i].chinese); } }

3、编写程序,用数组存储并输出乘法九九表。 //编写程序,用数组存储并输出乘法九九表 public class Test{

public static void main (String[] agrs){ int[][]a=new int[9][9]; for(int i=1;i<=9;i++)

for(int j=1;j<=i;j++){ a[i-1][j-1]=i*j;

System.out.print(j+\+i+\+i*j+\); if(i==j)

System.out.print(\);} int n;

for(int m=0;m<9;m++){ for(n=0;n<=m;n++){

System.out.print(\+a[m][n]); if(m==n)

System.out.print(\);} } } }

运算结果:

4、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

5、打印出所有的\水仙花数\,所谓\水仙花数\是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个\水仙花数\,因为153=1的三次方+5的三次方+3的三次方。

第三章 Java面向对象

1、为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A、B、C的表达式。现有两种工具:Car007 和Plane,其中Car007 的速度运算公式为:A*B/C,Plane 的速度运算公式为:A+B+C。需要编写三类:ComputeTime.java, Plane.java, Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。其运行过程如下,从命令行输入ComputeTime的四个参数,第一个是交通工具的类型,第二、三、四

个参数分别时整数A、B、C,举例如下:

计算Plane的时间:\ 计算Car007的时间:\

如果第3种交通工具为Ship, 则只需要编写Ship.java,运行时输入:\22 33 44\

提示:充分利用接口的概念,接口对象充当参数。

实例化一个对象的另外一种办法:Class.forName(str).newInstance();例如需要实例化一个Plane对象的话,则只要调用Class.forName(\便可。 interface Common{

abstract double getv(int a,int b,int c); }

class Car007 implements Common{

public double getv(int a,int b,int c){ if (c == 0) {

System.out.println(\参数C为0\); return 0; } else

return a*b/c; } }

class Plane implements Common{

public double getv(int a,int b,int c){ return a+b+c; } }

public class zuo31 {

public static void main(String [] agrs){ } }

2、编写一个学生类 Student ,要求: (1) 学生类 Student 属性有: id : long型,代表学号 name : String类对象,代表姓名 age : int型,代表年龄 sex : boolean型,代表性别(其中:true表示男,false表示女) phone : String类对象,代表联系电话 (2) 学生类 Student的方法有: Student(long i , String n , int a , boolean s , String p) : 有参构造函数,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。 int getAge() ( ) : 获取年龄作为方法的返回值。 boolean getSex( ) ( ) : 获取性别作为方法的返回值。 String getPhone ( ) : 获取联系电话作为方法的返回值。 public String toString( ) : 以 姓名:联系电话 的形式作为方法的返回值。

class Student{

long id;//代表学号

String name ;//代表姓名 int age ;//代表年龄

boolean sex ;//代表性别(其中:true表示男,false表示女)

String phone;// ,代表联系电话

Student(long i,String n,int a,boolean s,String p) { id=i; age=a; name=n; sex=s; phone=p; }

int getAge(){ return age; }

boolean getSex(){ return sex; }

String getPhone (){ return phone; }

public String toString(){

return name+phone;//以 姓名:联系电话 的形式作为方法的返回值。 } }

public class Test{

public static void main(String[]agrs){ String s,phone,np; int age;

Student r=new Student(201108011,\郭文杰\,20,false,\); boolean a=r.getSex(); if(a==true) s=\男\; else

s=\女\;

age=r.getAge();

phone=r.getPhone();

System.out.println(\该同学的姓名是\+r.name+\学号:\+r.id+\年龄:\+age+\性别:\+s+\电话:\+phone); np=r.toString();

System.out.println(np); } }

3、利用接口编写三角形、矩形的面积和周长的程序。 interface Shape{ //接口 abstract double getArea(); abstract double getlength(); }

class Rectangle implements Shape{ //长方形的类 private double a; private double b;

public Rectangle(double i,double j){ a=i; b=j; }

public double getArea(){ return a*b; }

public double getlength(){ return 2*(a+b); } }

class triangle implements Shape{ //三角形的类 double a,b,c; double p;

public triangle(double i,double j, double k){ a=i; b=j; c=k; }

public double getArea(){

p=(double) (Math.round(a+b+c)/2.0); // 将p保留小数位

return java.lang.Math.sqrt(p*(p-a)*(p-b)*(p-c));//三角形面积公式 }

public double getlength(){ return a+b+c; } }

public class zuoye3 {

public static void main(String [] agrs){ double s1,s2,c1,c2;

triangle tri=new triangle(3,4,5);//三角形对象 Rectangle rec=new Rectangle(4,5);//矩形对象 s1=tri.getArea(); c1=tri.getlength(); s2=rec.getArea(); c2=rec.getlength();

System.out.println(\三角形的面试是:\+s1+\周长是:\+c1); System.out.println(\矩形的面试是:\+s2+\周长是:\+c2); } }

4、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如\我ABC\,应该截为\我AB\,输入\我ABC汉DEF\,6,应该输出为\我ABC\而不是\我ABC+汉的半个\。

第四章 Java异常处理 1、 写程序运行结果: public class A {

static int some() { try {

System.out.println(\ return 1; }

finally {

System.out.println(\ } }

public static void main(String arg[]) { System.out.println(some()); } }

2、先从键盘输入一个十六进制数,再将其转化为十进制数,然后输出。若输入的不是一个有效的十六进制数,则抛出异常。 import java.util.*; public class dex {

public static void main (String[] agrs){ Scanner reader = new Scanner(System.in); String s; int n,m; System.out.println(\请输入十六进制数:\); try{

s=reader.next();

n=Integer.parseInt(s,16); System.out.println(n); }

catch(InputMismatchException e){ e.printStackTrace(); } } }

3、先编写一个方法,它将格式为“yyyy/mm/dd”形式的日期字符串转化为日期对象。若日期字符串不符合以上规定,则抛出异常。再在main方法中对正常和异常输入的日期字符串分别进行验证,并输出转换后的日期对象。

第五章 Java常见类

1、设有一个由10个英文单词构成的字符串数组,要求: (1) 统计以字母“w”开头的单词数;

(2) 统计单词中含“or”字符串的单词数; (3) 统计长度为3的单词数。 代码是:

import java.util.*; public class Array {

public static void main (String [] agrs){ String[] word=new String[10]; int count1=0,count2=0,count3=0; int i=0,j=0;

Scanner reader=new Scanner(System.in);

System.out.println(\请输入十个单词:\); for(j=0;j

if (word[i].charAt(0)=='w') count1++;

if(word[i].length()==3) count3++;

if(word[i].contains(\)) count2++; i++;

}while(i

System.out.println(\在这是个单词中首字母是“w”的单词总共有:\+count1+\个\);

System.out.println(\在这是个单词中含有“or”的单词总共有:\+count2+\个\);

System.out.println(\在这是个单词中长度为3的单词总共有:\+count3+\个\); } }

2、利用随机函数产生20个10~90之间的不重复整数, 将这些数拼接在一个字符串中, 用逗号隔开(每产生一个新数, 要保证在该串中不存在)。然后将字符串中的整数分离存放到一个数组中,将数组的内容按由小到大的顺序输出。 import java.util.Random; public class rand {

public static void main(String[] agrs){ Random rand=new Random(); int[] num=new int[20]; int a;

}

for(int i=0;i

for(int j=i;j>=0;j--){ if(b==num[j]) b=0;} if( b>10){ num[i]=b; i++;} } String s=\;

System.out.print(\产生的20个随机数是\\n\); for(int i=0;i

System.out.println(\链接成字符串后 的结果时:\\n\+s); int tem;

for(int i=0;i

for(int j=i+1;j

System.out.print(\排序后的结果时:\\n\); for(int i=0;i

3、先任意输入不超过10个人的姓名和电话到电话簿,然后从电话簿中查询指定人的电话。 import java.util.*;

class people{ //建立类包含姓名与电话 String name,number;

public people(String n,String m){ name=n; number=m; } }

public class phonenum {

public static void main(String[] agrs){ Scanner reader=new Scanner(System.in);

people[] p=new people[10]; //数组对象 String a,b;

System.out.println(\请输入十个人的姓名以及他们的电话:\);

for(int i=0;i

people s=new people(a,b); p[i]=s; }

String s=\;

System.out.println(\请输入要查找的人的姓名\); s=reader.next();

for(int i=0;i

System.out.println(\该人的电话是号码是:\+p[i].number); break;} else

{System.out.println(\没有此人的电话\);break;}

并保存

} } }

4、编写一个日历,按照格式yyyy-MM-dd输入一个指定日期,可以显示当月的日历,该指定日期前面加*以示是你输入的日期。

第六章 Java输入输出 1、说明程序功能: import java.io.*;

public class CharWrite {

public static void main(String args[]) { try {

FileWriter fw=new FileWriter(\ for ( int i=32;i<126;i++) fw.write(i); fw.close();

} catch (IOException e) { } } }

2、先用随机函数产生出任意的20个整数,再按由小到大的顺序排序,然后将结果写入一个文件中,最后从该文件中读出后显示出来。请分别用顺序文件和随机文件的读写形式进行编程测试。

3、统计一个文本文件中单词的个数。文本文件的名字从命令行中获得。

第七章 Java图形用户界面 1、阅读下面的程序,回答问题。

import java.awt.*;

import javax.swing.*; public class T extends JFrame { public T ( ) {

super(\

Container con=this.getContentPane(); con.setLayout(new GridLayout(2,3)); con.add(new JButton(\ con.add(new JButton(\ con.add(new JButton(\ con.add(new JButton(\ con.add(new JButton(\ con.add(new JButton(\ setSize(200, 80); setVisible(true); }

public static void main(String args[]) { new T(); }

}

?画图表示程序运行后的图形界面。

?如果程序通过实现某个接口处理按钮的动作事件,则该接口名为何?接口中的方法头声明如何?

2、编写一个简单的计算器,要求图形用户界面如下图所示。

3、请编写一个简单的用户登录程序。要求使用图形用户界面,用户名和密码假定均为java,且密码输入时全部显示为星号(*)。

4、编写一个显示六个标签的框架,将标签前景色设为黑色、蓝色、青色、绿色、红色、橙色,标签边界为黄色边界,标签字体为TimesRoman、加粗、20像素,每个标签的文本为前景色名字。如下图。

第八章 Java多线程技术 1、程序如下:

public class Borley extends Thread {

public static void main(String[] argv) {

Borley b = new Borley(); b.start(); }

public void run() {

System.out.println(\ } }

下面描述正确的是:()单选

A) 通过编译和运行但是没有任何输出。 B) 通过编译,运行后输出\C) 编译出错,没有线程可供运行 D) 编译出错,没有权限使用Thread

2、编写程序,启动1000个线程,每个线程给初值为0的变量sum加1。(提示,需要通过引用传递,将sum传递给每个线程,为了能够进行引用传递,需要定义一个Integer包装对象来保存sum)。

3、利用多线程技术模拟龟兔赛跑的场面。提示:先设计一个线程类模拟两个参与赛跑的选手的行为;然后创建该类的两个对象分别代表乌龟和兔子;让兔子跑快些,但在路上睡眠休

息时间长些,而乌龟跑慢些却不休息;当某个选手到达终点时其线程运行结束;二个选手均到达终点时,显示并祝贺获胜选手,然后主线程结束。

第九章网络编程

1、关于数据报通信(UDP)和流式通信(TCP)的论述,正确的有:(选择1项) A) TCP和UDP在很大程度上是一样的,由于历史原因产生了两个不同的名字而已 B) TCP和UDP在传输方式上是一样的,都是基于流的但是TCP可靠,UDP不可靠 C) TCP和UDP使用的都是IP层所提供的服务 D) 用户不可以使用UDP来实现TCP的功能 2、说明程序功能。 import java.net.*; import java.io.*;

public class SimpleTalkServer { //存放所有通信线程

public static ArrayList allclient=new ArrayList(); public static int clientnum=0; //连接客户数 public static void main(String args[]) { try {

ServerSocket s = new ServerSocket(5432); while (true) {

Socket s1=s.accept(); //等待客户连接

DataOutputStream dos = new DataOutputStream

(s1.getOutputStream());

DataInputStream din = new DataInputStream(s1.getInputStream()); Client x = new Client(clientnum,dos,din); allclient.add(x);

allclient[clientnum].start(); clientnum++; }

} catch (IOException e) { } } }

class Client extends Thread { int id; //客户标识

DataOutputStream dos; //去往客户的输出流 DataInputStream din; //来自客户的输入流

public Client(int id, DataOutputStream dos, DataInputStream din) { this.id=id; this.dos=dos; this.din=din; public void run() { while(true) { try {

String message=din.readUTF();

int m=SimpleTalkServer.clientnum; for (int i=0;i

SimpleTalkServer.allclient[i].dos.writeUTF(message); }

} catch(IOException e) {} } } }

3、编写一个程序,使两个用户可以互相聊天。其中一个用户作为客户端,另一个作为服务器端,服务器端有两个文本域:一个用于输入文本,一个用于接收文本,按下Enter键后,即将信息发往客户端。客户端同样的功能。

第十章 数据库编程

1、 在使用JDBC的许多方法中,方法的调用顺序正确的一项是: A)getConnection() getString() createStatement() executeQuery() B)getConnection() createStatement() executeQuery() getString() C)createStatement() getConnection() executeQuery() getString() D)createStatement() getConnection() getString() executeQuery() 2、写程序功能。 import java.sql.*;

public class InsertStudent2 {

public static void main(String args[ ]) { String url = \ try {

Class.forName(\ } catch(java.lang.ClassNotFoundException e) { } try {

Connection con = DriverManager.getConnection(url, \ Statement stmt = con.createStatement( );

String sql=\ PreparedStatement ps=con.prepareStatement(sql); ps.setString(1, ”obama\ ps.setString(2, ”M\

ps.setDate(3, Date.valueOf(\ ps.setBoolean (4, true); ps.setInt(5, 20010848); ps.executeUpdate( );

System.out.println (\ 1 Item \ stmt.close( ); con.close( );

} catch(SQLException ex) {

System.out.println(ex.getMessage( )); }}}

3、说明程序功能。 import java.sql.*; public class InsertStudent {

public static void main(String args[ ]) { String url = \ try {

Class.forName(\ } catch(java.lang.ClassNotFoundException e) { } try {

Connection con = DriverManager.getConnection(url, \ Statement stmt = con.createStatement( );

String sql=\/13/74',True, 20010845)\ stmt.executeUpdate(sql);

sql=\/03/78', False, 20010846)\ stmt.executeUpdate(sql);

System.out.println (\ stmt.close( ); con.close( );

} catch(SQLException ex) {

System.out.println(ex.getMessage( )); } } }

} catch(SQLException ex) {

System.out.println(ex.getMessage( )); }}}

3、说明程序功能。 import java.sql.*; public class InsertStudent {

public static void main(String args[ ]) { String url = \ try {

Class.forName(\ } catch(java.lang.ClassNotFoundException e) { } try {

Connection con = DriverManager.getConnection(url, \ Statement stmt = con.createStatement( );

String sql=\/13/74',True, 20010845)\ stmt.executeUpdate(sql);

sql=\/03/78', False, 20010846)\ stmt.executeUpdate(sql);

System.out.println (\ stmt.close( ); con.close( );

} catch(SQLException ex) {

System.out.println(ex.getMessage( )); } } }

本文来源:https://www.bwwdw.com/article/2a7p.html

Top