java期末上机复习题目及其答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<JAVA上机作业1>
3.运行程序,分析并写出程序执行结果
public class less1_3 {
public static void main(String args[]){
boolean x , y , xx , yy;
int i = 10, j =10, ii = 10, jj = 10;
x = true || (++i >10);
y = true &&(++j >10);
xx=true | (++ii >10);
yy=true &(++jj >10);
System.out.println("\n i = " +i+"\t j = "+j);
System.out.println("\n x = " +x+"\t y = "+y);
System.out.println("\n ii = " +ii+"\t jj = "+jj);
System.out.println("\n xx = " +xx+"\t yy = "+yy);
} }
4.根据注释填空,并写出正确执行结果
public class less1_4
{ public static void main(String args[ ])
{ float fa=102.5f;
int ia=3;
String sfa , sia , sc;
double scd;
System.out.println(fa+ia);
sfa=Float.toString(fa); //将fa数值转换为字符串;
sia= Interger.toString(ia); //将ia数值转换为字符串;
sc= sfa+sia; //将字符串sfa和sia连接起来; System.out.println(“sc=”+sc);
scd= Double.parseDouble(sc); //将字符串sc转换为数值; System.out.println(scd);
} }
6.(选做)解释划线语句功能,并写出程序执行结果。
public class less3_1{
public static void main(String arg[]){
float fdata[]={98.5f,85.2f,100.0f},sum=0.0f;
String sdata[]={"","",""}, st=new String();
int i;
for(i=0;i<3;i++)
{ sum+=fdata[i];
sdata[i]=Float.toString(fdata[i]);
st+=sdata[i]+" ";
}
System.out.println(sum);
System.out.println(st);
} }
<JAVA上机作业2>
2下面程序:在圆类的基础上派生出了圆锥类,按照注释填空,并调试执行成功。
class Circle
{ double r ;
Circle( ) { r=1.0; } //无参构造方法,默认半径为1.0
Circle(double a) //有参构造方法
{ r=a; }
double Area( ) { return 3.14*r*r; }//返回面积
double Girth( ) { return 2*3.14*r; }//返回周长
}
class Cone extends Circle
{
double h;
Cone(){ super();h=1.0;}
Cone(double rr,double hh)
{ super(rr); h=hh; }
double V() { return 1.0/3*area()*h; }//返回圆锥的体积
}
public class less2_3
{
public static void main(String args[])
{ Cone c1=new Cone();
System.out.println(c1.V());
Cone c2=new Cone(1.0,3.0);
System.out.println(c2.V());
}
}
4.综合题:根据注释填空,调试并写出执行结果。
abstract class Shape{
public abstract double area();
}
class Circle extends Shape{
double r;
Circle(double rr) { r = rr;}
public double area(){return 3.14*r*r; } //实现area()方法
}
class Rectangle extends Shape{
double width,height;
Rectangle(double w,double h)
{ width=w; height=h; }
public double area(){return width*heigth; } //实现area()方法
}
class less2_4{
public static void main(String args[ ])
{ double sum_area=0;
int i;
Shape shape[]; //声明属于Shape类的数组shape;
shape=new Shape[5];
shape[0]=new Circle(1.0);
shape[1]=new Circle(2.0);
shape[2]=new Circle(3.0);
shape[3]=new Rectangle(1.0,1.0);
shape[4]=new Rectangle(2.0,3.0);
for (i=0; i<shape.length; i++)
{
sum_area+=shape[i].area(); //求所有图形的面积和; }
System.out.println("形状数组的总面积为:"+sum_area); } }
< JAVA上机作业3>
4.根据提示补充程序,调试并执行程序实现栈的功能(接口)。
程序执行结果: 99 88 77 66 55 44 33 22 11
//请在此处添加语句,进行CharStorage接口的声明实现
interface CharStorage{
public void put(String s);
public String get();
}
class Stack implements CharStorage{
String mem[ ]=new String[9];
int point=0;
public void put(String s){ //增加代码
mem[point]=s;
point++;
}
public String get(){//增加代码
point--;
return mem[point];
}}
class Test{
public static void main(String args[ ]){
Stack s1=new Stack();
//循环输入“11” (99)
for(int i=1;i<=9;i++){
String s;
s=Integer.toString(i*10+i);
s1.put(s);
}
//循环输出“11” (99)
for(int i=1;i<=9;i++)
System.out.println(s1.get()+" ");
}}
<JAVA上机作业4>
1.写出程序执行结果,解释划线部分功能,并上机验证之。
public class less4_1
{
public static void main(String args[ ])
{
String s = new String("We will modify a String by copy");
System.out.println("s:\"" + s + "\"");
String sub1 = s.substring(8);
String sub2 = s.substring(0,8);
System.out.println("from index 8 to the end:\n"+ sub1);
System.out.println("from index 0 to 8:" + sub2);
String cons=sub2.concat(sub1);//根据运行效果分析该句功能
//能在sub2的后面追加sub1
System.out.println("Concat :\n" + cons);
}
}
3.如果ch 为StringBuffer对象,ch=”Java Applet ”,下列结果是什么?尝试编写完整程序验证。
(1) ch.insert(3,’p’);
(2) ch.append(“Basic”);
(3) ch.reverse();//解释方法功能 //逆序
public class Login
{
public static void main(String args[ ])
{
StringBuffer ch=new StringBuffer("Java Applet");
ch.insert(3, 'p');
System.out.println(ch);
ch.append("Basic");
System.out.println(ch);
ch.reverse();
System.out.println(ch);
}
}
5.下面是哈希表的例题,请调试程序执行,并解释程序中划线语句功能
import java.util.HashMap;
import java.util.Iterator;
public class ArrayListDemo{
public static void main(String args[])
{
HashMap map=new HashMap();
map.put("S20099", 80);
map.put("S20034", 90);
map.put("S20015", 90);
map.put("S20036", 70);
map.put("S20077", 60);
map.put("S20088", 80);
System.out.println("keySt="+map.keySet());
System.out.println("values="+map.values());
System.out.println("key=S20034 value="+map.get("S20034"));
System.out.println("values contains 100 is "+map.containsValue(100));
System.out.println("keySet contains S20023 is "+map.containsKey("S20023"));
int sum=0;
int size=map.size();
for(Iterator iterator=map.keySet().iterator();iterator.hasNext();)
{
sum=sum+map.get(iterator.next()).hashCode();
}
System.out.println("Totalscore="+sum+"\nStudents\'snumber="+size+"\nAverage="+su m/(double)size);
} }
<JAVA上机作业5>
2.编写程序判断输入的三位数是否为水仙花数。
import java.awt.*; //引入类库
import java.awt.event.*;
import javax.swing.*;
public class less2_5 {//主类
public static void main(String args[ ]){
new FrameInOut( );
}}
class FrameInOut extends JFrame implements ActionListener{
JLabel prompt; //声明标签对象prompt
JTextField input,output; //声明文本对象input,output
JButton btn; //声明按钮对象btn
FrameInOut( ) {
super("图形界面的Java Application程序");
prompt=new JLabel("请输入一个三位整数");
input=new JTextField(6);
output=new JTextField(20);
btn=new JButton("关闭" ); //创建按钮并初始化“关闭”
setLayout(new FlowLayout()); //窗体布局
add(prompt); add(input);
add(output);add(btn);//在窗体上填加标签控件、文本控件和按钮控件
input.addActionListener(this);
btn.addActionListener(this); //为按钮控件增加监听
setSize(200,200); //窗体大小
setVisible(true); //可见
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==input) //判断动作控件是否为文本
{ String s=input.getText().trim();
int data,a,b,c;
data=Integer.parseInt(s);
a=data/100;
b=data/10%10;
c=data%10;
if(a*a*a+b*b*b+c*c*c==data) output.setText(s+"是水仙花数字");
else output.setText(s+"不是水仙花数字"); } else { dispose( );
System.exit(0); //关闭窗体
}}}
<JAVA上机作业6>
3.编写程序,实现管理员登陆窗体(请注意窗体的布局),并且当输入用户名“sa”,密码“123”
后,能够提示正确,否则提示错误。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class login1 extends JFrame implements ActionListener{
JLabel l1=new JLabel("用户名");
JLabel l2=new JLabel("密码");
JTextField tname=new JTextField(6);
JPasswordField tnumber=new JPasswordField(6);
JButton tsure=new JButton("确定");
JButton tcancel=new JButton("取消");
login1(){
super("登录");
setSize(600,400);
setLocation(100,100);
setVisible(true);
setLayout(new GridLayout(3,2));
add(l1);add(tname);
add(l2);add(tnumber);
add(tsure);add(tcancel);
tsure.addActionListener(this);
tcancel.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==tsure){
String s=new String(tnumber.getPassword());
if(tname.getText().equals("sa")&&s.equals("123"))
JOptionPane.showMessageDialog(this,"用户名和密码都正确");
else
JOptionPane.showMessageDialog(this,"用户名或密码不正确");
}
else{
dispose();
System.exit(0);
} } }
public class login {
public static void main(String args[]){
new login1();
} }
<JAVA上机作业7>
1. 参照课件中的菜单程序,编写程序完成下面窗体的执行效果
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class MyMenu extends JFrame implements ActionListener{
JMenuBar menubar=new JMenuBar();
JMenu menu1=new JMenu("用户管理");
JMenu menu2=new JMenu("借阅管理");
JMenu menu3=new JMenu("图书管理");
JMenu menu4=new JMenu("退出");
JMenuItem itemadd=new JMenuItem("添加用户");
JMenuItem itemre=new JMenuItem("修改用户");
JMenuItem itemdel=new JMenuItem("删除用户");
JMenuItem itemche=new JMenuItem("查找用户");
JMenuItem item=new JMenuItem("退出系统");
JLabel prompt=new JLabel("大连理工大学城市学院图书信息管理系统");
MyMenu(){
super("图书借阅系统");setSize(500,500);setLocation(100,100); setVisible(true);
menu1.add(itemadd); menu1.add(itemre); menu1.add(itemdel);
menu1.add(itemche); menu4.add(item);
menubar.add(menu1); menubar.add(menu2);
menubar.add(menu3); menubar.add(menu4);
setJMenuBar(menubar);
setLayout(new BorderLayout());
add(BorderLayout.WEST,prompt);
item.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
dispose();
System.exit(0);
}
}
public class Menu{
public static void main(String args[]){
new MyMenu();
}
}
<JAVA上机作业8>
1、在JAVA中标准输入为System.in,System.in作为InputStream类的对象实现标准输入,可以调用它的read方法来读取键盘数据。
执行下面程序,解释画线语句的功能。
public class less8_1{
public static void main(String args[]) throws java.io.IOException{
byte buffer[]=new byte[10];
System.out.println("请输入:");
int count=System.in.read(buffer);
System.out.println("缓冲区中的元素ASCII是");
for(int i=0;i<count;i++)//count为输入元素个数
{
System.out.print(buffer[i]+" ");
}
System.out.println("");
System.out.println("缓冲区中的元素字符是");
System.out.write(buffer,0,buffer.length);
}
}
2、执行下面程序,观察执行效果。
程序功能是将一个Hello.java文件读入并显示,同时将文件内容写入到Hello.txt文件中(请注意文件目录)
import java.io.*;
public class less8_2{
public static void main(String args[]) throws
java.io.IOException
{
FileReader in=new FileReader("Hello.java");
BufferedReader bin=new BufferedReader(in);
FileWriter out=new FileWriter("Hello.txt",true);
String str;
while((str=bin.readLine())!=null)
{
System.out.println(str);
out.write(str+"\n");
}
in.close(); out.close();
}
}
3、声明窗口类ReadFile,在窗口中输入用户名和密码,并将用户名和密码保存到文件Secret.txt中。
(提示:可将输入内容先存放在字符串缓冲区中)
部分程序如下:
//引入
import java.awt.*;
import java.awt.event.*;
import java.io.*; import javax.swing.*;
public class ReadFile extends JFrame implements ActionListener{
//控件声明
JLabel m_id=new JLabel("用户名:");
JLabel m_key=new JLabel("密码:");
JButton m_input=new JButton("存入");
JTextField Id=new JTextField(10);
JPasswordField Keyid=new JPasswordField(10);
String outFilename;
StringBuffer m_buf=new StringBuffer();
ReadFile(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());//布局
add(m_id); add(Id);
add(m_key); add(Keyid); //添加控件;
add(m_input);
m_input.addActionListener(this); //增加监听
setSize(400,100); //窗体大小
setVisible(true); } //可见性
public void actionPerformed(ActionEvent e){
String cmd=e.getActionCommand();
//判断事件源,保存输入数据
if(cmd=="存入"){
String Idstring;
String Keyidstring;
Idstring = Id.getText();
Keyidstring = Keyid.getText();
m_buf.append("用户名是 ");
m_buf.append(Idstring);
m_buf.append(" 密码是 ");
m_buf.append(Keyidstring);
try{//将输入的内容输出到文件Secret.txt中
outFilename="c:\\"+"Secret.txt";
BufferedWriter bo=new BufferedWriter(new FileWriter(outFilename)); bo.write(m_buf.toString());
bo.close();
}catch(Exception ee){ } }}
public static void main(String[] args){ new ReadFile(); }
}
<JAVA上机作业10>上机交的java作业此题目答案略
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class Student extends JFrame implements ActionListener{
JLabel lab1=new JLabel(" ID:");
JLabel lab2=new JLabel(" Name:");
JLabel lab3=new JLabel(" Score:");
JTextField ID=new JTextField(10);
JTextField Name=new JTextField(10);
JTextField Score=new JTextField(10);
JButton btnselect=new JButton("查找");
JButton btninsert=new JButton("增加");
JButton btndelete=new JButton("删除");
JButton btnupdate=new JButton("修改");
Student (){
super("窗体");
setSize(250,250);
setLocation(400,400);
setLayout(new GridLayout(5,2));
add(lab1);add(ID);
add(lab2);add(Name);
add(lab3);add(Score);
add(btnselect);add(btninsert);
add(btndelete);add(btnupdate);
btnselect.addActionListener(this);
btninsert.addActionListener(this);
btndelete.addActionListener(this);
btnupdate.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
String sid=ID.getText().trim();
String sname=Name.getText().trim();
String sscore=Score.getText().trim();
int temp=Integer.parseInt(sscore);
Connection conn;
Statement stmt;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:StuDB","sa","shelly");
stmt=conn.createStatement();
String strsql;
if(e.getSource()==btnselect){
strsql="select * from StuTable where ID='"+sid+"' and Name='"+sname+"'";
rs=stmt.executeQuery(strsql);
if(rs.next())
JOptionPane.showMessageDialog(this,"存在,分数为:"+sscore);
else JOptionPane.showMessageDialog(this, "不存在");
conn.close(); }
else if(e.getSource()==btninsert){
strsql="insert into StuTable (ID,Name,Score)values ('"+sid+"','"+sname+"',"+temp+")";
stmt.executeUpdate(strsql);
conn.close();}
else if(e.getSource()==btndelete){
strsql="delete from StuTable where ID='"+sid+"'";
stmt.executeUpdate(strsql);
conn.close(); }
else{
strsql="update StuTable set Score="+temp+",where ID='"+sid+"' and Name='"+sname+"'";
stmt.executeUpdate(strsql);
conn.close(); }
}catch(Exception ee){
ee.printStackTrace();
} }
public static void main(String sagr[]){
new Student(); }
}
<JAVA上机作业11>
1.阅读程序,按照注释填加语句,分析程序执行结果。
class WriteWordThread extends Thread {
WriteWordThread(String s){
setName(s);
}
public void run(){
for(int i=1;i<=8;i++)
System.out.println("我是一个线程,我的名字是"+getName());
} }
public class Example{
public static void main(String args[ ]){
WriteWordThread zhang,wang;
zhang=new WriteWordThread("zhang");//创建zhang线程对象,名字为“张无忌” wang =new WriteWordThread("wang"); //创建wang线程对象,名字为“王保保” zhang.start(); //zhang线程开始执行;
for(int i=1;i<=8;i++){
System.out.println("我是主线程中的语句");
}
wang.start(); //wang线程开始执行;
} }
4.为下面程序编写html文件,使之能正确执行,并解释程序功能
import java.awt.*;
import java.applet.Applet;
public class SetFontColor extends Applet{
public void paint(Graphics g){
String s="This Font:";
Font font1,font2= new Font("Arial",Font.BOLD,14);
g.setColor(Color.red);
setBackground(Color.lightGray);
g.setFont(font2);
s=s+font2.getName()+" "+font2.getStyle()+" "+font2.getSize();
g.drawString(s,20,40);
g.setColor(Color.blue);
font2=new Font("隶书",Font.BOLD,20);
g.setFont(font2);
s="This Font:";
s=s+font2.getName()+" " +font2.getStyle()+" "+font2.getSize();
g.drawString(s,20,80); } }
答案:<H1>小程序演示</H1>
<applet
code="SetFontColor.class"
width="300"
height="200">
</applet>。