实验3 常用类(2学时)
一、实验目的
1. 熟悉Java中的String、StringBuffer、Math、包装器类、Scanner类的使用方法。 2. 使用常用类解决一般性的应用问题。 3. 掌握JavaSE API文档的使用方法。
二、实验内容
1. 编写一个Java应用程序。用户从键盘输入一个整数,程序将判断这个数是几位数并输出其位数,并判断这个数是否是回文数(是,则输出“是回文数”,否则输出“不是回文数”)。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如121
21、3223都是回文数。要求:定义两个方法,一个用于获取一个整数的位数,一个用于返回一个整数是否为回文数。
2. 编写一个程序,由用户从键盘输入一个字符串,程序输出该字符串中的大写英文字母数,小写英文字母数以及非英文字母数。(用户键盘输入用Scanner类实现)
3. 在安排教师监考时,需要从一组教师中随机选取n个教师参加监考。要求实现一个类RandomTeacher的静态方法public static String[] getRandomTeachers(String[] teachers, int n),能够从teachers中随机选择n个教师(名字)并返回。
4. 假设某餐馆中每桌顾客点菜记录的格式为“北京烤鸭:189 西芹百合:15 清蒸鲈鱼:80”。编写一个类的方法,能够根据点菜内容对应的字符串输出点菜记录中每种菜的价格以及总的价格。
5. 编写一个方法,返回一个double型的二维数组,数组中的元素通过解析字符串参数获得。例如,字符串参数:“1,2;3,4,5;6,7,8”,对应的数组为:
d[0,0] = 1.0 d[0,1] = 2.0
d[1,0] = 3.0 d[1,1] = 4.0 d[1,2] = 5.0
d[2,0] = 6.0 d[2,1] = 7.0 d[2,2] = 8.0
三、实验要求
完成程序设计并提交代码。
项目一
Java语言基础
一、实验学习目标
1.熟悉Java开发环境
2.了解和掌握Java的基本数据类型和基本运算
3.掌握Java语言的条件控制语句,循环语句以及转向语句。 4.理解和掌握数组的基本内容(包括数组声明,初始化,复制等)。 5.掌握多维数组的定义和使用。
二、实验设备
PC
三、实验内容
(1) 常规测试。即两个类没有任何package和import。 (2) 将被调用类加载命名空间,并编译主类。(以联编方式) 被调用类存在于正确的命名空间下
被调用类同时存在于正确的命名空间下和与主目录平行的位置 被调用类的命名空间相对路径存在于与主目录不平行的位置。 以不同的classpath顺序进行编译运行。 (3) 配置好相应目录结构和Java源文件
在主类中import不同包下的同名类 移去与主类平行的类
在import中指明被调用类或在主类中指明被调用类的命名空间 在主类中import与主类不平行的命名空间。
四、实验原理
(1) (2) (3) (4) (5) (6) (7)
生成classpath列表
生成类引用表和相对类引用表
引用的类是否使用全名,是则转向(4),否则转向(5)
将类全名与classpath列表匹配,找到第一个则进行编译,否则报错。 将无命名空间类与classpath列表匹配,找到则进行编译,否则转向(6) 是否在类引用表中用同名类,是则转向(7),否则转向(8)
有几个同名类,一个的话,根据classpath列表和类引用表进行匹配,找到第一个符合条件的类进行编译。一个以上则报错。
(8) 根据classpath列表和相对类引用表进行匹配,看能否找到对应的类。找到一个则
编译,没有或者一个以上不同包的同名类则报错
五、实验步骤
1.安装好JDK 5.0后,如果想在系统的任意目录下编译和运行编写好的Java程序,需要先设置环境变量。本实验将在Windows系统下的环境变量中设置JDK运行路径( 以使用安装程序的默认路径:C:\Program Files\Java\ jdk1.5.0_06为例)。
(1)鼠标右键单击“我的电脑”,选择“属性”,在弹出对话框中选择“高级”下的“环境变量”,如图1.1所示。
(2)在“系统变量”中选择Path,单击“编辑”按钮,如图1.2所示,在弹出对话框中的“变量值”文本框中添加;C:\Program Files\Java\jdk1.5.0_06\bin (如果前一个变量值后已有“;”则将路径信息加入即可),单击“确定”按钮,如图1.3所示。
图1.1
图1.2
图1.3 (3)在“环境变量”对话框中单击“新建”按钮,如图1.4所示,在弹出对话框中的“变量名”后输入java_home,“变量值”后输入C:\Program Files\Java\jdk1.5.0_06,单击“确定”按钮,如图1.5所示。
图1.4 (4)在“环境变量”下单击“新建”按钮,在弹出对话框中的“变量名”后输入classpath,在“变量值”后输入C:\Program Files\Java\jdk1.5.0_06\lib\tools.jar;C:\Program Files\Java\ jdk1.5.0_06\jre\lib\rt.jar; .;,单击“确定”按钮,如图1.6所示。
图1.5 图1.6
至此环境变量设置完毕, 可以通过在DOS环境下直接键入javac命令按回车来检查环境变量设置是否成功,如果设置成功则可看到如图1.7所示结果。
图1.7 在以后需要通过DOS命令直接编译和执行Java程序时,只需进入Java程序所在的存放目录,通过javac和Java命令编译和执行相应程序。
运行结果如下:
情况一
:
情况二:
情况三:
情况四:
情况五:
情况六:
情况七:
情况八:
情况九:
六、实验小结:
总的来说呢,这次做实验就轻松了很多,做起来比以前熟悉了,但是小错误也是难免的,不过很多时候path就解决了。
1、 实验一:多线程程序设计:炮打飞机
实验目的:学会使用多线程进行并发程序设计
实验内容:编写一个应用程序模拟大炮打飞机。在GUI界面上,飞机水平飞行,用界面上的按钮控制大炮的运行方向(如向左,向右,向上,向下)。当炮弹碰着飞机后,飞机坠落。
2、 实验二:数据库编程:书目信息管理
实验目的:掌握数据库编程技术。能正确连接数据库,能对数据库中信息进行查询、插
入、删除、修改。
实验内容:在数据库中创建一张书目信息表,包括书名、作者、出版社、出版日期、书
号、价格字段。设计一个GUI界面进行书目管理。在该界面上有四个选项卡,分别是查询、插入、删除、修改。点击查询选项卡,出现的界面上有书名、作者、出版社、书号四个文本框,一个按钮和一个只读文本区。文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的“查询”按钮,可以在界面下方的文本区中显示出符合条件的书目详细信息。点击插入选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。在文本框中输入信息后,点击“插入”按钮,该书目信息插入数据库表中。点击删除选项卡,出现的界面上有书名文本框和一个按钮,输入书名后点击“删除”按钮,该书目信息从数据库表中删除。点击修改选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。输入的书名必须是已存在的,否则会弹出消息框显示出错信息。输入信息后,点击“修改”按钮,数据库表中的相应书目信息被修改为新值。
3、 实验三:Applet编程:鸭子的移动
实验目的:掌握Applet程序设计的方法,学会在Applet中绘制图片,能采用双缓冲技术进行图片绘制,会在Applet中采用多线程进行动画显示。能在Applet中实现动画的平滑显示,避免闪烁现象。
实验内容:在Applet窗口中显示一只鸭子图片,要求这只鸭子以每秒100帧的速率水平移动,移到窗口边界再返回移动。在窗口中点击鼠标,鸭子停止移动;再次点击鼠标,鸭子恢复移动。
4、 实验四:网络编程:聊天室的实现
实验目的:会编写客户端和服务器程序实现C/S模式下的通信,会使用多线程进行网络编程。
实验内容:编写一个聊天室程序:客户端界面请自行设计,可使其具有个性化特征; 可在实现基本的聊天室功能的基础上添加个性化的功能。
学 生 实 验 报 告 册
2013——2014学年第1学期
项目名称: Java Web 学院: 信电
班级:
11计算机科学与技术一班 学号: 155140007 姓名: 伍振东 指导教师: 李竹林 完成时间: 2013/9/28
一、实验要求
1.用HTML语言编写如下样式的网页
2.可以用Dreamweaver,推荐手动编写HTML带代码
3. 图片从清华大学的网站自己取得。 http://www.xiexiebang.com">
实验五
一、 实验内容:
从键盘上输入一行字符串。
①将字符按Unicode字典顺序排序后输出。 ②统计每个字符出现的次数和位置。 ③统计含有的单词个数。 ④正向和反向输出单词。
二、 算法思路:
要完成任务①:使用StringTokenizer类的countTokens( )方法和nextToken(),将单词存储到String a[ ]数组中,再定义一个空的String b[ ] , 用来存放比较大小后的单词。
要完成任务③:使用StringTokenizer类中的countTokens( )方法。
要完成任务②:定义charArray[i ]存放字符
intArray[ i]出现字符的次数 addr[i][ ]用来存放出现字符的位置
要完成任务④:可以通过之前定义存储的String a[ ]和相关简单算法,输出正向和反向的单词。
三、 实验结果:
四、 程序代码: import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class TokenTest extends JFrame{
private JLabel promptLabel;
private JTextField inputField;
private JTextArea outputArea;
public TokenTest(){
super("字符串");
Container container=getContentPane();
container.setLayout(new FlowLayout());
promptLabel=new JLabel("输入一个句子,然后按回车键");
container.add(promptLabel);
inputField=new JTextField(20);
inputField.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
StringTokenizer tokens=new StringTokenizer(event.getActionCommand());
int num=100;
int n=0;
num=tokens.countTokens();
String a[]=new String[num];
String b[]=new String[num];
while(tokens.hasMoreTokens())
{
a[n++]=tokens.nextToken();
}
n=0;
int m=0;
while(m{
for(int i=0;i<=n;i++)
{
if(i==n)
b[i]=a[m];
else if(a[m].compareToIgnoreCase(b[i])<0)
{
for(int j=n;j>i;j--)
b[j]=b[j-1];
b[i]=a[m];
break;
}
}
m++;
n++;
}
outputArea.setText("按Unicode字典顺序排序后输出:\n");
for(int i=0;ioutputArea.append(b[i]+" ");
outputArea.append("\n\n单词个数:"+num);
String buffer=inputField.getText();
char charArray[]=new char[26];
int intArray[]=new int[26];
int addr[][]=new int[26][26];
n=0;
for(int i=0;i{
for(int j=0;j<=n;j++)
{
if(j==n)
{
charArray[j]=buffer.charAt(i);
intArray[j]++;
addr[j][intArray[j]-1]=i;
}
else if(buffer.charAt(i)==' ')
{n--;break;}
else if(buffer.charAt(i)==charArray[j])
{
intArray[j]++;
addr[j][intArray[j]-1]=i;
n--;
break;
}
}
n++;
}
置:");
});
}
outputArea.append("\n\n统计每个字符出现的次数和位置\n"); for(int i=0;ioutputArea.append(charArray[i]+" 次数:"+intArray[i]+" 位
for(int j=0;j{
outputArea.append(addr[i][j]+" ");
}
outputArea.append("\n"); }
String s="\n";
outputArea.append("\n单词正向输出:\n");
for(int i=0;ioutputArea.append(a[i]+" ");
outputArea.append("\n\n单词反向输出:");
for(int i=0;i{
for(int count=a[i].length()-1;count>=0;count--)
{
s+=a[i].charAt(count);
}
s+=" ";
}
outputArea.append(s); }
container.add(inputField); outputArea=new JTextArea(20,40); outputArea.setEditable(false); container.add(new JScrollPane(outputArea)); setSize(500,500); setVisible(true);
public static void main(String[] args) {
TokenTest application=new TokenTest();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} }
五、 心得体会:
这个程序,应该是我目前所花时间最长编写出来的程序,从草稿纸上酝酿出算法,到最后在计算机上成功运行,花了3个晚上的时间,其中有一天晚上,本人忘我编程到凌晨12:30,当中遇到了很多出乎意料的问题,但是在遇到问题时,我积极思考,反复调试,编程开始阶段,程序一直异常跳出,我也花了挺多时间找错误,也花了不少时间检验算法的严密性。程序中用红笔标注的,是我花时间最长的地方,也是本程序的难点和要点。通过这次程序,我很好地深入钻研了StringTokenizer类的用法,原来使用其对象countTokens()方法和hasMoreTokens()方法一次之后,再次调用这些方法,countTokens()返回值是0;hasMoreTokens()返回null。正是由于自己一开始对StringTokenizer类用法的不了解,我才在一开始程序中,异想天开的多次使用了countTokens()方法和hasMoreTokens()方法,导致程序无法达到我的要求,所以我经历了漫长而艰辛的调试过程后,我才写出了本程序,但我觉得,通过这种程序的锤炼,自己的变成能力会有很显著的提升。
下载Java实验3.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档
文档为doc格式
网址:https://www.xiexiebang.com/a1/201905122/aff693cc5c7a2644.html
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
相关范文推荐
河北北方学院信息科学与工程学院 《Java程序设计》 实 验 报 告 实验学期 2014 至 2015 学年 第 2 学期 学生所在系部 信息科学与工程学院 年级 2012 专业班级 电子三班 学......
学 生 实 验 报 告 册 (理工类) 课程名称:面向对象程序设计 专业班级:16计算机科学与技术(专转本) 学生学号: 1613203022 学生姓名: 张义丹 所属院部: 计算机工程 指导教师: 刘 晶 2......
《Java简易聊天室》 实验目的:实现简单的客服端与服务端通讯,进一步巩固,加深对Java语言基础知识的了解,将理论与实际相结合。 实验要求:能相互之间发送消息,并进行简单的异常处理......
实验报告一、 实验目的
巩固复习课上所讲内容,进一步熟悉面向对象编程。
二、 实验内容
编写程序求点到原点的距离三、 程序清单及运行结果
abstractclass Distance
{
abstra......
学 生 实 验 报 告 课程名称: 学生学号: 所属院部: (理工类) J2EE程序设计 专业班级: 学生姓名: 信息技术学院 指导教师: 20 13 ——20 14 学年 第 2 学期 金陵科技学院教务处制......
实验报告_实验4 常用类(学生学号_姓名) 一、实验目的 1.掌握String类的基本构造方法和常用方法的使用; 2.熟悉StringBuffer类的追加、插入、查找、替换、删除等操作; 3.熟悉Math......
北京联合大学 信息学院 “面向对象程序设计”课 程上机实验报告题 目: java上机实验心得体会姓名(学号):专 业: 计算机科学与技术编 制 时 间: 2012年12月19日版 本: 1.0.0 指......
实验一、简单Java程序设计 一、实验目的 1. 学习使用JCreator开发JAVA代码。 2. 了解JAVA的运行环境,掌握开发JAVA代码所需要的相关配置。 3. 在JCreator中输入习题程序,验证程序......