java实验3_Java实验3

实验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">

20130925151728.png

实验五

一、 实验内容:

从键盘上输入一行字符串。

①将字符按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()方法,导致程序无法达到我的要求,所以我经历了漫长而艰辛的调试过程后,我才写出了本程序,但我觉得,通过这种程序的锤炼,自己的变成能力会有很显著的提升。

1861bad6f0a0efd62ff27011ace440e5.png

下载Java实验3.doc

将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。

82f8c251eebcb4b750a1a5dc579c7666.png

点此处下载文档

文档为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中输入习题程序,验证程序......

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华中科技大学汇编实验 源代码及实验报告 2.1 任务1. 《80X86汇编语言程序设计》教材中 P31的 1.14题。 要求: (1) 直接在TD中输入指令,完成两个的求和、求差的功能。求和/差后的结果放在(AH)中。 (2) 请事先指出执行指令后(AH)、标志位 SF、OF、CF、ZF的内容。 (3) 记录上机执行后的结果,与(2)中对应的内容比较。 (4)求差运算中,若将A、B视为有符号,且A>B, 标志位有何特点? 若将A、B视为无符号,且A>B, 标志位又有何特点? 2.2 任务2. 《80X86汇编语言程序设计》教材中 P45的 2.3题。 要求: (1)分别记录执行到“MOV CX,10”和“INT 21H”之前的(BX), (BP),(SI),(DI)各是多少。 (2)记录程序执行到退出之前据段开始40个字节的内容,指出程序运行结果是否与设想的一致。 (3)在标号LOPA前加上一段程序,实现新的功能:先显示提示信息“Press any key to begin!”, 然后,在按了一个键之后继续执行LOPA处的程序。 2.3 任务3. 《80X86汇编语言程序设计》教材中 P45的 2.4题的改写。 要求: (1) 实现的功能不变,对据段中变量访问时所用到的寻址方式中的寄存器改成32位寄存器。 (2) 内存单元中据的访问采用变址寻址方式。 (3) 记录程序执行到退出之前据段开始40个字节的内容,检查程序运行结果是否与设想的一致。 (4)在TD代码窗口中观察并记录机器指令代码在内存中的存放形式,并与TD中提供的反汇编语句及自己编写的源程序语句进行对照,也与任务2做对比。(相似语句记录一条即可,重点理解机器码与汇编语句的对应关系,尤其注意操作寻址方式的形式)。 (5)观察连续存放的二进制串在反汇编成汇编语言语句时,从不同字节位置开始反汇编,结果怎样?理解 IP/EIP指明指令起始位置的重要性。 2.4 设计实现一个学生成绩查询的程序。 1、实验背景 在以BUF为首址的字节据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:姓名(占10个字节,结束符为值0),语文成绩(1个字节),学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。 2、功能一:提示并输入待查询成绩的学生姓名 (1)使用9号DOS系统功能调用,提示用户输入学生姓名。 (2)使用10号DOS系统功能调用,输入学生姓名。输入的姓名字符串放在以in_name为首址的存储区中。 (3)若只是输入了回车,则回到“(1)”处重新提示与输入;若仅仅输入字符q,则程序退出,否则,准备进入下一步处理。 3、功能二:以学生姓名查询有无该学生 (1)使用循环程序结构,在成绩表中查找该学生。 (2)若未找到,就提示用户该学生不存在,并回到“功能一(1)”的位置,提示并重新输入姓名。 (3)若找到,则将该学生课程成绩表的起始偏移地址保存到POIN字变量中。 4、功能三:计算所有学生的平均成绩 使用算运算相关指令计算并保存每一个学生的平均成绩。 平均成绩计算公式:(A*2+B+C/2)/3.5,即将语文成绩A乘以权重2、英语成绩C除以权重2后,与学成绩B一起求和,再计算该生的平均成绩。要求避免溢出。 5、功能四:将功能二查到的学生的平均成绩进行等级判断,并显示判断结果。 (1)平均成绩等级显示方式:若平均成绩大于等于90分,显示“A”;大于等于80分,显示“B”;大于等于70分,显示“C”;大于等于60分,显示“D”;小于60分,显示“F”。 提示:使用分支程序结构,采用2号DOS系统功能调用显示结果。 (2)使用转移指令回到“功能一(1)”处(提示并输入姓名)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值