java作业.docx
- 文档编号:14191372
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:33
- 大小:318.29KB
java作业.docx
《java作业.docx》由会员分享,可在线阅读,更多相关《java作业.docx(33页珍藏版)》请在冰点文库上搜索。
java作业
第六章Java输入输出
1、说明程序功能:
importjava.io.*;
publicclassCharWrite{
publicstaticvoidmain(Stringargs[]){
try{
FileWriterfw=newFileWriter("charset.txt");
for(inti=32;i<126;i++)
fw.write(i);
fw.close();
}catch(IOExceptione){}
}
}
功能:
将ASCII码32到125的字符都写入charset.txt,内容如下
2、先用随机函数产生出任意的20个整数,再按由小到大的顺序排序,然后将结果写入一个文件中,最后从该文件中读出后显示出来。
请分别用顺序文件和随机文件的读写形式进行编程测试。
packagehomework6;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.*;
publicclasstest6_2{
/*
*随机产生20个数,并返回它的迭代器
*/
publicstaticIterator
ArrayList
Randomran=newRandom();
intnum;
while(coll.size()<=20)
{
num=ran.nextInt(80)+10;
//重复的不加入
if(!
coll.contains(num))
coll.add(num);
}
//返回迭代器
returncoll.iterator();
}
/*
*转化成字符串
*/
publicstaticStringproToString(Iterator
{
intnum,j=0;
IntegerNum;
Strings0="";
while(coll.hasNext())
s0=newString(s0+coll.next()+"");
returns0.substring(0,s0.length()-1);
}
//根据空格分割字符串
publicstaticint[]splitString(Strings)
{
Stringstr[]=s.split("");
int[]a=newint[str.length];
for(inti=0;i a[i]=Integer.parseInt(str[i]); returna; } publicstaticvoidmain(String[]args) { System.out.println("这些数是: "); Stringstr=proToString(create_Random()); //随机产生的数转换成int[] int[]aa=splitString(str); System.out.println("这些数是: "); System.out.println(str); System.out.println(); //排序 Arrays.sort(aa); //转换成String Stringstr1=Arrays.toString(aa).replace(",","").replace("[","").replace("]",""); //写入文件,并从文件输出 try{ FileWriterfw=newFileWriter("random.txt"); fw.write(str1); fw.close(); FileReaderfr=newFileReader("random.txt"); char[]s=newchar[200]; fr.read(s); fr.close(); System.out.println(str1.valueOf(s)); }catch(IOExceptione){} } } 3、统计一个文本文件中单词的个数。 文本文件的名字从命令行中获得。 packagehomework6; importjava.io.FileReader; importjava.io.FileWriter; importjava.io.IOException; importjava.nio.ByteBuffer; publicclasstest6_3{ publicstaticvoidmain(String[]arg){ try{ FileReaderfr=newFileReader(arg[0]); char[]s=newchar[1000]; fr.read(s); fr.close(); Stringstr=String.valueOf(s); //分割匹配,所有不是a-z和A-Z的字符都是分割符 Stringss[]=str.split("[^a-z^A-Z]"); System.out.println("被分割成: "); for(inti=0;i System.out.println(ss[i]); System.out.println("单词数是: "+ss.length); }catch(IOExceptione){} } } 记事本上的 程序输出 第七章Java图形用户界面 1、阅读下面的程序,回答问题。 importjava.awt.*; importjavax.swing.*; publicclassTextendsJFrame{ publicT(){ super("GridLayout"); Containercon=this.getContentPane(); con.setLayout(newGridLayout(2,3)); con.add(newJButton("a")); con.add(newJButton("b")); con.add(newJButton("c")); con.add(newJButton("d")); con.add(newJButton("e")); con.add(newJButton("f")); setSize(200,80); setVisible(true); } publicstaticvoidmain(Stringargs[]){ newT(); } } 画图表示程序运行后的图形界面。 如果程序通过实现某个接口处理按钮的动作事件,则该接口名为何? 接口中的方法头声明如何? 接口ActionListener 方法publicvoidactionPerformed(ActionEvente) 2、编写一个简单的计算器,要求图形用户界面如下图所示。 packagehomework7; importjava.awt.*; importjavax.swing.*; publicclasstest7_2_panelextendsJPanel{ publictest7_2_panel(){ GridLayoutgla=newGridLayout(4,5); //setSize(newDimension(8,); setLayout(gla); gla.setHgap (2); gla.setVgap (2); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i7.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i8.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i9.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\ijia.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\ic.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i4.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i5.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i6.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\ijian.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\igenhao.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i1.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i2.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i3.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\icheng.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\im2.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\i0.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\ipoint.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\iequal.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\ichu.png"))); add(newJButton(newImageIcon("src\\homework7\\CalIcon\\ixian.png"))); setVisible(true); } publicstaticvoidmain(Stringsarg[]){ JFramejf=newJFrame(); jf.add(newtest7_2_panel()); jf.setTitle("计算器"); jf.setVisible(true); } } 3、请编写一个简单的用户登录程序。 要求使用图形用户界面,用户名和密码假定均为java,且密码输入时全部显示为星号(*)。 packagehomework7; importjava.awt.Container; importjava.awt.FlowLayout; importjava.awt.Font; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjavax.swing.*; publicclasstest7_3extendsJFrame{ privateJLabeluse,password; //用户名输入框 privateJTextFieldk1; //密码输入框 privateJPasswordFieldk2; privateJButtonb1,b2; publictest7_3(){ use=newJLabel("用户名: "); use.setFont(newFont("Serif",Font.PLAIN,25)); password=newJLabel("密码: "); password.setFont(newFont("Serif",Font.PLAIN,25)); k1=newJTextField(12); k2=newJPasswordField(12); b1=newJButton("登录"); b2=newJButton("退出"); Containerc=getContentPane(); c.setLayout(newFlowLayout()); c.add(use); c.add(k1); c.add(password); c.add(k2); c.add(b1); c.add(b2); //设置窗口风格 setTitle("登录界面"); setBounds(600,300,250,150); setVisible(true); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } publicstaticvoidmain(Stringarg[]){ test7_3lo=newtest7_3(); } } 4、编写一个显示六个标签的框架,将标签前景色设为黑色、蓝色、青色、绿色、红色、橙色,标签边界为黄色边界,标签字体为TimesRoman、加粗、20像素,每个标签的文本为前景色名字。 如下图。 packagehomework7; importjava.awt.*; importjavax.swing.*; publicclasstest7_4{ publicstaticvoidmain(Stringstr[]){ JLabelblack=newJLabel("black"); black.setPreferredSize(newDimension(120,150)); black.setFont(newFont("TimesRoman",Font.BOLD,20)); black.setForeground(Color.black); black.setBorder(BorderFactory.createLineBorder(Color.yellow,3)); JLabelblue=newJLabel("blue"); blue.setPreferredSize(newDimension(120,150)); blue.setFont(newFont("TimesRoman",Font.BOLD,20)); blue.setForeground(Color.blue); blue.setBorder(BorderFactory.createLineBorder(Color.yellow,3)); JLabelcyan=newJLabel("cyan"); cyan.setPreferredSize(newDimension(120,150)); cyan.setFont(newFont("TimesRoman",Font.BOLD,20)); cyan.setForeground(Color.cyan); cyan.setBorder(BorderFactory.createLineBorder(Color.yellow,3)); JLabelgreen=newJLabel("green"); green.setPreferredSize(newDimension(120,150)); green.setFont(newFont("TimesRoman",Font.BOLD,20)); green.setForeground(Color.green); green.setBorder(BorderFactory.createLineBorder(Color.yellow,3)); JLabelmagenta=newJLabel("magenta"); magenta.setPreferredSize(newDimension(120,150)); magenta.setFont(newFont("TimesRoman",Font.BOLD,20)); magenta.setForeground(Color.magenta); magenta.setBorder(BorderFactory.createLineBorder(Color.yellow,3)); JLabelorange=newJLabel("orange"); orange.setPreferredSize(newDimension(120,150)); orange.setFont(newFont("TimesRoman",Font.BOLD,20)); orange.setForeground(Color.orange); orange.setBorder(BorderFactory.createLineBorder(Color.yellow,3));JFramejf=newJFrame(); jf.add(black); jf.add(blue); jf.add(cyan); jf.add(green); jf.add(magenta); jf.add(orange); jf.setLayout(newFlowLayout(FlowLayout.CENTER,0,0)); jf.setSize(130*3,165*2+10); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } 第八章Java多线程技术 1、程序如下: publicclassBorleyextendsThread { publicstaticvoidmain(String[]argv) { Borleyb=newBorley(); b.start(); } publicvoidrun() { System.out.println("Running"); } } 下面描述正确的是: (D)单选 A)通过编译和运行但是没有任何输出。 B)通过编译,运行后输出"Running" C)编译出错,没有线程可供运行 D)编译出错,没有权限使用Thread 2、编写程序,启动1000个线程,每个线程给初值为0的变量sum加1。 (提示,需要通过引用传递,将sum传递给每个线程,为了能够进行引用传递,需要定义一个Integer包装对象来保存sum)。 packagehomework8; publicclassmyThreadextendsThread{ intID; publicmyThread(Runnablerunner,intd){ super(runner); ID=d; } publicStringtoString(){ return"当前执行的是"+Integer.toString(ID)+"号进程"; } } packagehomework8; publicclasstest8_2implementsRunnable{ intSum=0; publicsynchronizedvoidcount(){ Sum++; System.out.println(Thread.currentThread().toString()+"\tSum="+Sum); } @Override publicvoidrun(){ //TODOAuto-generatedmethodstub count(); } publicstaticvoidmain(String[]arg){ Runnablerunner=newtest8_2(); //建立100个进程 for(inti=0;i<1000;i++){ newmyThread(runner,i).start(); } } } 3、利用多线程技术模拟龟兔赛跑的场面。 提示: 先设计一个线程类模拟两个参与赛跑的选手的行为;然后创建该类的两个对象分别代表乌龟和兔子;让兔子跑快些,但在路上睡眠休息时间长些,而乌龟跑慢些却不休息;当某个选手到达终点时其线程运行结束;二个选手均到达终点时,显示并祝贺获胜选手,然后主线程结束。 /* *模仿兔子线程,兔子有速度,每一次循环走speed距离, *每循环5次休眠sleeptimems */ packagehomework8; publicclassrobbitimplementsRunnable{ intspeed; intdistance; intnow_distance; intsleeptime; publicrobbit(intsp,inttotal_d,intnow_d,intslt){ speed=sp; distance=total_d; now_distance=now_d; sleeptime=slt; } @Override /* *线程执行的run(non-Javadoc) *@seejava.lang.Runnable#run() */ publicvoidrun()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 作业