《Java程序设计》练习题 下载本文

(2) public int indexOf(String str,int fromIndex) //从指定的索引开始,返回指定子字

符串在此字符串中第一次出现处的索引。

(3) public String toUpperCase() // String 中的所有字符都转换为大写 (4) public String toLowerCase () // String 中的所有字符都转换为小写

18、编写一个程序N_Digital.java,随机生成n个数,n的值也随机生成,n的取值范围为10~50。要求将生成的n个数从大到小排序写入n.txt文件保存。

19、编写一个文件拷贝的程序,将文件C:\\test1.txt的内容拷贝到C:\\test2.txt中。

20、编写一个Java程序ReadFileContent.java读取当前目录下的Test.txt文件内容(内容含有中文字),将该文件的内容按行读取出来,并在每行前面加上行号后写入当前目录的myTest.txt文件中。

21、创建一个Frame,有两个Button按钮和一个TextField,点击按钮,在TextField上显示Button信息。

22、创建下图的GUI程序(注意:不需要提供任何功能)。

23、编写一个文本编辑程序TextEdit.java,用户界面中含一个TextArea组件和一个“保存”Button组件(采用BorderLayout布局,TextArea组件放在”Center”区,Button组件放在”South”区),用鼠标单击按钮,程序将TextArea组件中的内容写入文件mytext.txt中。

注:窗口事件可不用处理

24、用Java Swing GUI组件JPanel、JTextField、JLabel和JButton写一个Java程序。这个程序是用来进行简单的加法运算,其中用两个JTextField来输入要进行运算的数值,用一个JLabel来显示结果,用JButton来监听进行运算的指令,可任选你认为合适的布局管理器。

25、编写一个简单的图形界面程序ButtonDemo.java,界面标题为“按钮测试” ,窗口大小为200×100,使用FlowLayout布局,界面上有两个按钮(分别为OK和Cancel),点击OK按钮,则打印“您按了OK按钮!”,点击Cancel按钮,则打印“您按了Cancel按钮!” 。

第 45 页 共 48 页

26、使用AWT或Swing组件编写一个支持中文文本编辑程序TextEdit.java,要求如下: ①用户界面大小为400×200像素,如下图所示:

②程序启动后,多行文本输入框TextArea中显示当前目录下myText.txt文件中原有的内容,如果该文件不存在,则新建该文件。

③“保存”按钮功能:将多行文本输入框TextArea中的内容写入myText.txt文件中保存。 ④“取消”按钮功能:将多行文本输入框TextArea中的内容清空。 ⑤“退出”按钮功能:退出程序 ⑥ 窗口事件不处理

27、一个用AWT编写的用户登陆程序说明如下:

①用户界面大小为200*160像素,如下图所示:

②用户类型包括学生用户和教师用户,缺省为学生用户。

③“确定”按钮功能:如果用户名为空,则打印\用户名不可为空!\;如果密码为空,则打印\密码不可为空!\;如果是学生用户,用户名和密码都是s,登陆成功则打印\学生用户登陆成功\;如果是教师用户,用户名和密码都是t;登陆成功则打印\教师用户登陆成功\;如果登陆不成功,则打印\用户名不存在或者密码不正确!\。 ④“取消”按钮功能:将用户名和密码的输入框清空。 ⑤“退出”按钮功能:退出程序 ⑥窗口事件不处理

⑦该程序的代码框架如下: import java.awt.*;

import java.awt.event.*;

public class UserLogin extends Frame implements ActionListener,ItemListener{

Panel panel1,panel2; //定义两个面板

Label userType,userLabel,pswLabel;//分别定义用户类型、用户名和密码标签

第 46 页 共 48 页

TextField userName,psw;//分别定义用户名和密码文本框

Button yesBtn,cancelBtn,exitBtn;//分别定义确定、取消和退出按钮 Choice userSelect;//用户类型下拉框

int userID=0; //定义用户类型标志变量,0表示学生用户,1表示教师用户

public UserLogin(){ //定义用户登陆界面的构造方法

?? }

?? //事件处理的方法代码块

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

根据以上要求,完成下面两个问题的代码: (1)补全用户登陆界面的构造方法的代码 (2)写出该用户登陆的事件处理方法的代码

28、应用Java中线程的概念,编写一个Java程序(包括一个主程序类,一个Thread类的子类)。在主程序中创建2个线程(用子类),将其中一个线程的优先级设为10,另一个线程的优先级设为6。让优先级为10的线程打印200次“线程1正在运行”,优先级为6的线程打印200次“线程2正在运行”。(提示:设置线程优先级用setPriority方法)

29、假设一个银行的ATM机,它可以允许用户存款也可以取款。现在一个账户上有存款200元,用户A和用户B都拥有在这个账户上存款和取款的权利。用户A将存入100元,而用户B将取出50元,那么最后账户的存款应是250元。实际操作过程如下: (1) 先进行A的存款操作:

1) 得到账户的存款数额200,耗时2s。 2) 将账户数额增加100,耗时忽略不计

3) 将新生成的账户结果300返回到ATM机的服务器上,耗时2s (2) 再进行B的取款操作:

4) 得到增加后账户存款数额300,耗时2s。

5) 判断取款额是否小于账户余额,若是,则将账户数额减少50,否则抛出异常信息,

耗时忽略不计。

6) 将新生成的账户结果250返回到ATM机的服务器上,耗时2s。 请根据以上要求,将A的操作和B的操作分别用线程来表示,编写一个Java程序实现该功能。

30、编写一个程序,扫描本机的小于5000的端口,显示正在使用的端口号。要求采用5个线程实现,每个线程扫描1000个端口。

31、用Java编写一个服务器端的程序Server.java,该程序在8000端口监听客户端的请求,如果与客户端连接后,收到客户端发送的数据不是字符串“bye”,则在服务器端打印客户端发来的数据,并向客户端回送一条从键盘输入的信息,若客户端发来的数据是字符串“bye”,

第 47 页 共 48 页

则关闭服务器端程序。

32、编写一个服务器端ServerDemo.java程序,它能够响应客户的请求。如果这个请求的内容是字符串\的话,服务器仅将\字符串返回给用户。否则将用户的话追加到当前目录的文本文件log.txt中,并向用户返回\。

第 48 页 共 48 页