if((y%4==0&&y%100!
=0)||y%400==0){
System.out.print(y+"是闰年"+"");
k+=1;
if(k%5==0)
System.out.println("");
}
}
}
}
3.实验预习
(1)复习本章所学内容。
(2)写出实验内容中第
(2)、(3)题两个程序的源代码,作为预习报告。
4.实验结论
实验过程中,注意记录以下内容
(1)遇到的问题及解决办法。
在编写星星程序时,不会它的算法,通过XX,然后自己试运行,得出了最后的结果。
另外,在程序中遇到问题,积极的问了同学,解决了我的问题。
(2)实验体会。
我觉得在编写程序时,要细心并且要有耐心,认真的写每一个程序,就一定会有收获。
实验2数组和字符串编程
1.实验目的
(1)通过实验,掌握Java语言中数组、字符串程序设计的基本方法。
(2)较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。
2.实验内容
(1)编写一个程序,在控制台输入10个数,按大小顺序输出。
packagecom.zhangqian.exercise1;
importjava.io.*;
publicclassOrder{
publicstaticvoidmain(String[]args)throwsIOException{
//TODOAuto-generatedmethodstub
doublet;
System.out.println("请输入10个数");
doublenum[]=newdouble[10];
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
Stringstr;
for(inti=0;i<10;i++){
str=br.readLine();
num[i]=Double.parseDouble(str);
}
for(intj=1;j<10;j++){//冒泡排序
for(inti=0;i<10-j;i++)
if(num[i]>num[i+1]){
t=num[i];
num[i]=num[i+1];
num[i+1]=t;
}
}
System.out.println("顺序为:
");
for(intk=0;k<10;k++){
System.out.print(num[k]+"");
}
}
}
(2)求一个3*3矩阵对角元素之和。
packagecom.zhangqian.exercise1;
importjava.io.*;;
publicclassJuzhen{
publicstaticvoidmain(String[]args)throwsIOException{
//TODOAuto-generatedmethodstub
inta[][]=newint[3][3];
System.out.println("请输入3*3矩阵:
");
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
Stringstr;
for(inti=0;i<3;i++)
for(intj=0;j<3;j++){
str=br.readLine();
a[i][j]=Integer.parseInt(str);
}
ints=a[0][0]+a[1][1]+a[2][2];
System.out.println("矩阵对角元素之和为:
"+s);
}
}
(3)输入一段字符串,统计其中有多少个单词。
(单词用空格隔开)
packagecom.zhangqian.exercise1;
importjava.io.*;
publicclassDanci{
publicstaticvoidmain(String[]args)throwsIOException{
//TODOAuto-generatedmethodstub
System.out.println("请输入字符串:
");
Stringstr;
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
str=br.readLine();
while(str!
=null){
String[]a=str.split("");
System.out.println("单词个数为:
"+a.length);
break;
}
}
}
3.实验预习
(1)将本章所学内容要点进行整理,并认真体会例题中的编程要领。
(2)写出实验内容中第
(2)、(3)题两个程序的源代码,作为预习报告。
4.实验结论
实验过程中,注意记录以下内容:
(1)遇到的问题及解决办法。
在编写排序算法时,采用了冒泡排序,对于冒泡排序,产生了一些错误,通过查阅书籍进行改正,最后得到了正确结果。
(2)实验体会
在编写程序时要认真细心,并且要认真了解它的过程,明白它的算法。
实验3Java面向对象程序设计
1.实验目的
掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。
2.实验内容
(1)创建一个复数类complex,以附属进行数学运算、复数具有如下格式:
RealPart+ImaginaryRart*I,其中,I为-1的平方根。
要求如下:
1 利用浮点变量表示此类的私有数据。
提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。
2 提供两复数加、减、乘的运算方法。
3 按格式(a,b)打印复数。
其中a为实部,b为虚部。
publicclassComplex{
privatedoublea;
privatedoubleb;
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Complexx=newComplex(2,3);
Complexy=newComplex(1,4);
Complexc=newComplex();
x.Add(x,y);
x.Multiply(x,y);
x.Subtraction(x,y);
c.Add(c,y);
}
Complex(){
a=0.0;
b=0.0;
}
Complex(doublea,doubleb){
this.a=a;
this.b=b;
}
publicvoidAdd(Complexx,Complexy){
doublea=x.a+y.a;
doubleb=x.b+y.b;
System.out.println("相加为:
("+a+","+b+")");
}
publicvoidSubtraction(Complexx,Complexy){
doublea=x.a-y.a;
doubleb=x.a-y.b;
System.out.println("相减为:
("+a+","+b+")");
}
publicvoidMultiply(Complexx,Complexy){
doublea=x.a*y.a-x.b*y.b;
doubleb=x.a*y.b+x.b*y.a;
System.out.println("相乘为:
("+a+","+b+")");
}}
(2)创建银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。
importjava.io.*;
publicclassAccount{
doublefund=1000;
publicstaticvoidmain(String[]args)throwsIOException{
//TODOAuto-generatedmethodstub
Accounta=newAccount();
System.out.println("存款选择1取款选择2查询选择3");
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
intn=Integer.parseInt(br.readLine());
if(n==1)
a.deposit();
elseif(n==2)
a.withdraw();
elseif(n==3)
a.getbalance();
else
System.out.println("输出不正确!
");
}
publicAccount(){
System.out.println("请选择服务:
");
}
publicvoiddeposit()throwsIOException{
System.out.println("请输入存款金额:
");
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
doubles=Double.parseDouble(br.readLine());
System.out.println("存款成功"+"余额为:
"+(s+fund));
}
publicvoidwithdraw()throwsIOException{
System.out.println("请输入取款金额:
");
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
doubles=Double.parseDouble(br.readLine());
if(s>1000)
System.out.println("余额不足,余额为:
"+fund);
else
System.out.println("取款成功:
"+"余额为:
"+(fund-s));
}
publicvoidgetbalance(){
System.out.println("余额为:
"+fund);
}
}
(3)编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。
packagemymaths;
publicclassJiekou{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
MAXma=newMAX(1,8,10);
ma.max();
ma.min();
}
}
interfaceTsort{
publicvoidmax();
publicvoidmin();
}
classMAXimplementsTsort{
inta,b,c;
publicMAX(inta,intb,intc){
this.a=a;
this.b=b;
this.c=c;
}
publicvoidmax(){
intmax=0;
max=a>b?
a:
b;
max=max>c?
max:
c;
System.out.println("MAX="+max);
}
publicvoidmin(){
intmin=0;
min=a
a:
b;
min=minmin:
c;
System.out.println("MIN="+min);
}
}
(4)编程实现以下简单超市管理,具体要求如下:
1 实现描述超市的类SuperMacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;
packagesssu;
importjava.util.ArrayList;
importjava.util.List;
/**
*1、实现描述超市的的类Suppermacket类,
*记录系统中现有商品(Goods类),
*定义增加商品的函数Append,
*删除商品的函数Delete,
*查询商品的函数Query,
*并显示查询结果;
*
*/
publicclassSuperMarket{
privateListgoodsList=newArrayList();
/**
*增加商品的
*@paramgoods
*@return
*/
publicStringappend(Goodsgoods)
{
goodsList.add(goods);
return"添加成功";
}
/**
*删除商品
*/
publicStringdelete(Stringname)
{Stringflag=null;
if(name==null){
flag="删除商品["+name+"]不存在";
}
else
{
for(inti=0;i{
Goodsgoods=goodsList.get(i);
if(goods.getName().equals(name))
{
goodsList.remove(i);
flag="删除商品["+name+"]成功";
break;
}
}
}
returnflag;
}
/**
*销售
*@paramgoods
*@return
*/
publicStringsale(Goodsgoods)
{
Stringflag="销售商品["+goods.getName()+"]失败";
if(goods!
=null)
{
for(inti=0;i{
Goodsgoods_2=goodsList.get(i);
if(goods_2.getName().equals(goods.getName()))
{
if(goods.getNumber()>goods_2