charc=args.charAt(i);
if(c>='a'&&c<='z'){
buffer.append((char)(c-32));
}elseif(c>='A'&&c<='Z'){
buffer.append((char)(c+32));
}else{
buffer.append(c);
}
}
returnbuffer.toString();
}
publicstaticvoidmain(Stringargs[]){
Stringa="IloveJavaandC#.";
System.out.println("原来的字符串为:
"+a);
System.out.println("改后的字符串为:
"+Convert(a));
}
}
运行结果为:
三、实验4
(1)有员工类Employee代码如下,编写一个类Company,在其main方法中用数组存放三个Employee对象(对象初始化值自定),输出最低薪水的员工信息,提高其15%的薪水,然后输出提高后的员工信息。
源代码为:
classEmployee
{
privateStringname;
privatebooleansex;//true表示男性,false表示女性
privatedoublesalary;
publicEmployee(Stringn,booleans,doublesa)
{
name=n;
sex=s;
salary=sa;
}
publicStringgetName()
{
returnname;
}
publicbooleangetSex()
{
returnsex;
}
publicdoublegetSalary()
{
returnsalary;
}
publicvoidraiseSalary(doublebyPercent)
{
doubleraise=salary*byPercent;
salary+=raise;
}
}
publicclassCompany{
publicstaticvoidoput(Employeeemployee){
System.out.print("{姓名:
"+employee.getName());
System.out.print(",性别:
"+(employee.getSex()?
"男":
"女"));
System.out.print(",薪水:
"+employee.getSalary()+"}\n");
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Employeeemployees[]={
newEmployee("关羽",true,5430),
newEmployee("孙二娘",false,3300),
newEmployee("扈三娘",false,3690),
};
inti,min=0;
for(i=min+1;i<3;i++){
if(employees[min].getSalary()>employees[i].getSalary()){
min=i;
}
}
System.out.print("最低薪水的员工信息:
");
Company.oput(employees[min]);
employees[min].raiseSalary(0.15);
System.out.print("提高薪水的员工信息:
");
Company.oput(employees[min]);
}
}
运行结果为:
2、继承和多态
有类Cat代码如下,编写类Kitty继承Cat,并在Kitty中实现walk方法(输出“Thecatiswalking”),并编写KittyTest类,在其main方法中创建Kitty的一个实例,然后调用walk方法。
源代码为:
abstractclassCat{publicCat(Stringname){System.out.println("Thecatnameis"+name);}abstractpublicvoidwalk();}publicclassKittyextendsCat{publicKitty(){super("CatRunning");}publicvoidwalk(){System.out.println("Thecatiswalking");}}publicclassKittyTest{publicstaticvoidmain(String[]args){Kittytest=newKitty();test.walk();}}
运行结果为:
四、试验5
全部为验证性试验,无代码和报告。
五、试验6
1、文件类File
查看C:
\目录下是否存在a.exe文件,若存在,将它移动到D:
\目录下。
(提交实验报告)
源代码为:
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
publicclassCopyFile{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Filefile=newFile("C:
\\a.exe");
if(file.exists()){
System.out.println("文件C:
\\a.exe存在.");
try
{
FileInputStreamis=newFileInputStream("C:
\\a.exe");
FileOutputStreamos=newFileOutputStream("D:
\\a.exe");
byte[]buffer=newbyte[4096];
while(is.available()>0){
intn=is.read(buffer);
os.write(buffer,0,n);
}
is.close();
os.close();
}
catch(IOExceptione){
System.out.println("复制到D:
\\a.exe失败!
");
e.printStackTrace();
return;
}
System.out.println("复制文件成功!
");
}else{
System.out.println("文件C:
\\a.exe不存在!
");
}
}
}
运行结果为:
首先,C盘目录下没有a.exe的时候出现的情况:
其次,C盘有a.exe后出现的情况:
现有2个Student对象,将对象中的学生数据保存到文件stu.info中,然后从文件中读取学生信息并显示。
(使用DataInput/OutputStream类完成,提交实验报告)
源代码为:
classStudent
{
Stringname;//姓名
booleansex;//男性为true,女性为false
intage;//年龄
doubleweight;//体重
Student(Stringname,booleansex,intage,doubleweight)
{
this.name=name;
this.sex=sex;
this.age=age;
this.weight=weight;
}
publicvoidSetInfo(Stringname,booleansex,intage,doubleweight)
{
this.name=name;
this.sex=sex;
this.age=age;
this.weight=weight;
}
publicvoidOutPut()
{
System.out.println("姓名:
"+name+"\n"+"性别:
"+sex+"\n年龄:
"+age+"\n体重:
"+weight);
}
}
importjava.io.IOException;
importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.FileOutputStream;
importjava.io.FileInputStream;
publicclassLX4_4{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Students[]={
newStudent("sam\0",true,18,54.2),
newStudent("jenny\0",true,20,46.3),
};
try
{
DataOutputStreamobjOut=newDataOutputStream(newFileOutputStream("stu.info"));
objOut.writeChars(s[0].name);
objOut.writeBoolean(s[0].sex);
objOut.writeInt(s[0].age);
objOut.writeDouble(s[0].weight);
objOut.writeChars(s[1].name);
objOut.writeBoolean(s[1].sex);
objOut.writeInt(s[1].age);
objOut.writeDouble(s[1].weight);
objOut.close();
}
catch(IOExceptione){
e.printStackTrace();
System.out.println("DataOutputStreamSomethingiswrong!
");
}
s[0].SetInfo("",false,0,0);
s[1].SetInfo("",false,0,0);
try
{
DataInputStreamobjIn=newDataInputStream(newFileInputStream("stu.info"));
s[0].name="";
for(charc;(c=objIn.readChar())!
='\0';){
s[0].name+=c;
}
s[0].SetInfo(s[0].name,objIn.readBoolean(),objIn.readInt(),objIn.readDouble());
s[1].name="";
for(charc;(c=objIn.readChar())!
='\0';){
s[1].name+=c;
}
s[1].SetInfo(s[1].name,objIn.readBoolean(),objIn.readInt(),objIn.readDouble());
objIn.close();
s[0].OutPut();
s[1].OutPut();
}
catch(IOExceptione){
e.printStackTrace();
System.out.println("DataOutputStreamSomethingiswrong!
");
}
}
}
运行结果为:
(3)编写程序,在一个文本文件的开头添加一行“山中何所有,岭上多白云”,在文件的末尾添加一行“只可自怡悦,不堪持赠君”。
(提交实验报告)
源代码为:
importjava.io.*;
publicclassAppend
{
publicstaticvoidmain(Stringargs[])
{
Stringpath="c:
\\append.txt";
Stringcontent="山中何所有,岭上多白云;";
StringAppendStr="只可自怡悦,不堪持赠君.";
writefile(path,content,false);
writefile(path,AppendStr,true);
System.out.println("Success");
}
publicstaticvoidwritefile(Stringpath,Stringcontent,booleanappend)
{
BufferedWriterbw;
Filewritefile;
try{
booleanaddStr=append;
writefile=newFile(path);
if(writefile.exists()==false){
writefile.createNewFile();
writefile=newFile(path);
}
FileWriterfw=newFileWriter(writefile,addStr);
bw=newBufferedWriter(fw);
fw.write(content);
fw.flush();
fw.close();
}catch(Exceptiond){
System.out.println(d.getMessage());
}
}
}
运行结果为:
六、试验7
2、TreeSet树集
对于如下的学生类
classStudent
{
Stringname;//姓名
booleansex;//男性为true,女性为false
intage;//年龄
doubleweight;//体重
}
将5个Student对象保存到TreeSet中,要求按照学生的姓名进行排序,且姓名短的学生排在前面,例如,假设5个学生的姓名分别为Black,John,Alice,Raj,Sheldon,那么输出的顺序应为Raj,John,Alice,Black,Sheldon。
(提交实验报告)
源代码为:
importjava.util.*;
classStudentimplementsComparable
{
publicStringname;
booleansex;
intage;
doubleweight;
Student(Stringname,booleansex,intage,doubleweight)
{
this.name=name;
this.sex=sex;
this.age=age;
this.weight=weight;
}
publicintcompareTo(Objectb)
{
Studentst=(Student)b;
returnthis.name.length()-st.name.length();
}
}
importjava.util.*;
publicclassStudentTest
{
publicstaticvoidmain(Stringargs[])
{
TreeSetmytree=newTreeSet();
Studentstu1,stu2,stu3,stu4,stu5;
stu1=newStudent("Black",true,21,120.0);
stu2=newStu