课程 Java程序设计 _ 实验名称 一、Java程序流程控制
院 系____ ____ 专业班级__ _________
姓 名_______________ 学 号____________ _
指导老师: 日 期
一. 实验目的
熟悉Java语言中的数据类型、变量声明、流程控制语句。
二. 实验要求
每个人独立完成程序的调试、运行,将运行结果的屏幕截图粘贴在代码的下方。
三. 实验内容
教材第四章练习题:1、2、5、8、11
四. 实验过程及结果
//下面仅为参考例子,书写自己的实验报告时请删除
题目1:xxxxxx(题目内容与要求)
public class IfDemo {
public static void main(String[] args) {
int score = 70;
if (score >= 60 )
System.out.println("及格");
else
System.out.println("不及格");
}
}
运行结果:
//参考例子结束
五. 实验中的问题及心得
Java实验报告
一、实验代码(必须带注释,用红色标识注释)
1. 第一题1、随机生成一个6位的正整数,编程实现由这六位数字生成的最大数和最小数。
import java.io.IOException;//这个包用来捕获输入输出异常
import java.util.Arrays;//导入Arrays的一些工具方法,如Arryas.sort()
import java.util.Random;//用于导入随机数这个类
publicclass Number {
publicstaticvoid main(String[] args)throws IOException {
// TODO 自动生成的方法存根
//Scanner reader =new Scanner(System.in);
Random random = new Random(); //创建随机数这个类的一个对象
int max=1000000;//规定最大值和最小值的取值范围
int min=100000;
int a=random.nextInt(max)%(max-min+1) + min;//a就是最小值min到最大值max之间的任意随机数
String x=a+"";
String str1[] = x.split(""); //用“ ”分割,放入集合
System.out.print("生成的六位数为:") ;
print(str1);
System.out.print("组成的最小值为:");//输出最小值
Min(str1);
print(str1);
System.out.print("组成的最大值为:");//输出最大值
Max(str1);
print(str1);
}
publicstaticvoid Max(String str[])//求六个数组成的最大值
{
for(int i=0;i<str.length;i++)//用冒泡排序法
for(int j=i+1;j<str.length;j++)
if(str[j].compareTo(str[i])>0)
{
@SuppressWarnings("unused")
//屏蔽java编译中的一些警告信息:定义的变量在代码中并未使用且无法访问
String temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
//求六个数组成的最小值
publicstaticvoid Min(String str[])
{
Arrays.sort(str);
for(int i=0;i<str.length;i++)
if(str[i].compareTo("0")>0)
{
String a=str[0];
str[0]=str[i];
str[i]=a;
break;
}
}
//输出字符的函数
public staticvoid print(String str[])
{
for(String s:str)//foreach函数用来处理字符通用字符的长度的情况
System.out.print(s);
System.out.println();
}
}
2. 第二题使用命令行参数读入三个字符串,第三个字符串为一个带目录的文件名,
如:java StringDemo2 hello el F:\a\b\c\file1.etca,完成下列功能:
1)如果参数的数目不够,显示相应的提示信息并退出程序的执行。
2)如果第二个字符串在第一个字符串中出现过,则返回true值,否则返回false值--true
public class Demo {
public static void main(String[] args) {
//判断传进来的参数数量是否正确
if(args.length <3){//判断
System.out.println("参数数量不足");
return;
}
//判断第一个字符串是否包含了第二个字符串
if(args[0].contains(args[1])){
System.out.println("true");
}else{
System.out.println("false");
}
//获取第三个字符串里的文件名
String fName = args[2].trim();
int pre = fName.lastIndexOf("\\") + 1;//”取\\的位置”
int rear = fName.lastIndexOf(".");//截取”.”的位置
String fileName = fName.substring(pre, rear);//把文件名截取出来
System.out.println("fileName = " + fileName);
}
}
3.第三题读取键盘输入的任意字符串,如:She is a very good teacher,按要求执行以下操作:
(1) 读取键盘输入的字符,如‘e’,统计该字符在字符串串中出现的次数
(2) 统计某字符串如”er” ,在字符串中出现的次数
(3) 将字符串中每个单词的首字母变成大写,形成新的字符串,并输出。
import java.io.IOException;
import java.util.*;
publicclass Numbe {
publicstaticvoid main(String[] args)throws IOException {
// TODO 自动生成的方法存根
@SuppressWarnings("resource")
Scanner reader =new Scanner(System.in);
String str;//用来接收用户输入的字符串
//byte[] b=str.getBytes();
int choice=0;//用来接收用户选择的功能
System.out.print("请输入一串字符:");
str=reader.nextLine();//接收一行字符
menu();//输出选项的函数
while(true)
{ System.out.print("请输入你的选择:");
choice=reader.nextInt();//接收用户的选择
switch(choice)
{
//统计一个字符在字符串串中出现的次数
case 1:
{
System.out.print("请输入一个字符(输入多个则默认为第一个):");
String a=reader.next();
char ch=a.charAt(0);//将String类型的字符转换为char型
//调用char_number函数
// 统计一个字符在字符串串中出现的次数
System.out.println("字符 '"+ ch +"' "+"出现次数为:"+char_number(ch,str));
}break;
case 2:
{
System.out.print("请输入一个字符串:");
String s=reader.next();//接收用户的字符串并赋值给s
//调用char_number函数
// 统计一个字符串在字符串串中出现的次数
System.out.println( "字符串 “ "+s+" ”"+"出现次数为: "+string_number(s,str));
}break;
case 3:
{//建立StringBuilder 类型的字符串
StringBuilder str1=new StringBuilder();
//调用capitalize函数将字符串str的每个单词的首字母变成大写
str1=capitalize(str);
System.out.println("首字母变成大写后为");
System.out.println(str1);
}break;
case 0:
{
return;
}
default:{return;}
}
}
}
//将字符串str中的每个单词的首字母变成大写
publicstatic StringBuilder capitalize(String str)
{
String words[] = str.split(" "); //将字符串str用“ ”分割,放入集合word中
StringBuilder str1=new StringBuilder();
for(int i = 0; i < words.length; i++)
{
words[i] = words[i].substring(0,1).toUpperCase() + words[i].substring(1);
//循环截取每个item的首位,然后ToUpper()将其变为大写
//words[i].substring(1)去掉字符串打头的字符
}
for(int i=0;i<words.length;i++)
{
str1.append(words[i]+" ");//将words里的字符从尾部添加给字符str1
}
return str1;//返回字符str1
}
//统计一个字符在字符串串中出现的次数
publicstaticint char_number(char ch,String str)
{
int count = 0;
//遍历整个字符串
//判断字符串是否与接受用户的字符相等
//相等即加1
for(int i=0;i<str.length();i++)
{
count = (str.charAt(i)==ch)?count+1:count;
}
return count;
//返回计数器
}
publicstaticint string_number(String a,String str)
{ int index=0;
int count=0;
//第一种调用regionMatches函数的方法实现
/*for(int i=0;i<str.length();i++)
{
if(str.regionMatches(i,a, 0, a.length()))
{
count++;
}
}
*/
//第二种调用检索函数indexOf
//每一次的位置都是上一次检索的位置的后面一位
//直到返回值为-1
while(true)
{
index = str.indexOf(a, index + 1);
if (index > 0)
{ count++; }
else
{ break; }
}
return count;
}
//主界面输出
publicstaticvoid menu()
{
System.out.println("\t(1)统计字符出现的次数");
System.out.println("\t(2)统计某字符串出现的次数");
System.out.println("\t(3)将首字母变成大写");
System.out.println("\t(4)退出");
}
}
二、实验运行结果截图
1. 第一题
2. 第二题
3. 第三题
三、实验中的错误罗列及解决办法
1、错误1:
大小写转换后字符出错
解决办法:
去掉字符串的头部后连接在一起
2、错误2
第一题输出最小值的时候回把0放在最前面
解决办法:
先从大到小排序,然后将第一个不为0 的数放在第一位
Arrays.sort(str);
for(int i=0;i<str.length;i++)
if(str[i].compareTo("0")>0)
{
String a=str[0];
str[0]=str[i];
str[i]=a;
break;
}
3. 错误3
徐州工程学院管理学院实验报告实验课程名称数据结构与算法实验地点经济管理教学实验中心20xx年3月至20xx年6月专业信息管理与信息…
河南工业大学实验报告课程Java程序设计实验名称一Java程序流程控制院系专业班级姓名学号指导老师日期一实验目的熟悉Java语言中…
光信学院Java程序设计实验报告班级姓名实验时间20xx年月日指导教师陈顺凡一实验目的1掌握JavaApplet的程序结构和开发过…
华北科技学院计算机学院综合性实验实验报告课程名称面向对象程序设计Java实验学期20xx至20xx学年第一学期学生所在院部计算机学…
实验二java程序设计一实验目的与要求1了解Java的数据类型2掌握各种变量的声明方式3理解运算符的优先级4掌握Java基本数据类…
实训报告书课程:Java项目实训专业班级:学生姓名:学号:指导教师:完成日期:重庆电子工程职业学院软件学院目录目录........…
JavaWeb实习报告一、实习目的与任务为了锻炼我们的实践动手能力,提高我们分析问题、解决问题的能力,培养我们的工作意识和团队合作…
辽宁建筑职业学院Java高级应用实训报告课题名称婚庆公司网站专业软件技术班级xxxxxxxxxx学号姓名xxxx指导教师xxx二O…
徐州工程学院管理学院实验报告实验课程名称数据结构与算法实验地点经济管理教学实验中心20xx年3月至20xx年6月专业信息管理与信息…
Java程序设计实训报告实训名称图书管理系统实训专业计算机应用技术班级学号090443220姓名高宇国指导教师侯丽敏20xx年12…
第7章常用实用类实验1比较日期的大小1实验目的本实验的目的是让学生掌握Date类和Calendar类的常用方法2实验要求编写一个J…