System.out.print("");
}
for(intk=1;k<=2*i-1;k++){
System.out.print("☆");
}
System.out.println();
}
for(inti=size-1;i>=1;i--){
for(intj=1;j<=size-i;j++){
System.out.print("");
}
for(intk=2*i-1;k>0;k--){
System.out.print("☆");
}
System.out.println();
}
}
}
(6)编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。
判断年是否为闰年的条件是:
①若年号可以被4整除,而不能被100整除,则是闰年;②若年号可以被400整除,也是闰年。
packagerunyear;
实验源代码:
publicclassrunyear{
publicstaticvoidmain(String[]args){
intx;
inti=0;
for(x=1900;x<=2100;x++)
{
if(x%400==0||(x%4==0&&x%100!
=0))
{System.out.print(x+"");
i++;
}
if(i%5==0)System.out.println();
}
}
}
3.实验预习
(1)复习本章所学内容。
(2)写出实验内容中第
(2)、(3)题两个程序的源代码,作为预习报告。
4.实验结果
实验截图:
1、
2、
3、
4、
5、
6、
5、实验心得体会
通过实验一几个JAVA小程序的训练,我不仅巩固了先前所学的有关编程的知识,而且还提高自己解决问题的能力,编程能力有了很大的提高。
会做简单的java程序设计。
Java程序的设计过程应该是认真细致的。
在完成要求之前,先做做例题。
这同时也是自己熟悉java语言规则及其编译器的过程。
实验2数组和字符串编程
1.实验目的
(1)通过实验,掌握Java语言中数组、字符串程序设计的基本方法。
(2)较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。
2.实验内容
(1)编写一个程序,在控制台输入10个数,按大小顺序输出。
实验源代码:
packageorder;
importjava.util.Scanner;
publicclassorder{
publicstaticvoidmain(String[]args){
int[]number=newint[10];
inti,j,temp;
for(i=0;i<10;i++)
{
Scannerscanner=newScanner(System.in);
number[i]=scanner.nextInt();
}
for(i=1;i<10;i++)
{
for(j=1;j<10-i;j++)
{
if(number[j]>number[j+1])
{
temp=number[j];
number[j]=number[j+1];
number[j+1]=temp;
}
}
}
for(i=0;i<10;i++)
System.out.print(number[i]+"");
}
}
(2)求一个3*3矩阵对角线元素之和。
实验源代码:
packageRectangle;
importjava.util.Scanner;
publicclassRectangle{
publicstaticvoidmain(String[]args)
{
int[][]number=newint[3][3];
inti,j;
intsum=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
Scannerscanner=newScanner(System.in);
number[i][j]=scanner.nextInt();
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(i==j)sum+=number[i][j];continue;
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
System.out.print(sum);
}
}
}
(3)输入一段字符串,统计其中有多少个单词。
(单词用空格隔开)
packagewords;
importjava.util.Scanner;
publicclasswordstongji{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
System.out.print("请输入:
");
Stringsentence=input.nextLine();
String[]words=sentence.split("");
System.out.println("共有"+words.length+"个单词.");
}
}
3.实验预习
(1)将本章所学内容要点进行整理,并认真体会例题中的编程要领。
(2)写出实验内容中第
(2)、(3)题两个程序的源代码,作为预习报告。
4.实验结果
实验截图:
1、
2、
3、
5、实验心得体会
通过实验,掌握了Java语言中数组、字符串程序设计的基本方法。
并且较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。
提高了自己的编程能力,同时在实验过程中有时会遇到一些因粗心而产生的小错误,在今后编程过程中,一定要培养自己细心的习惯。
实验3Java面向对象程序设计
1.实验目的
掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。
2.实验内容
(1)创建一个复数类complex,以附属进行数学运算、复数具有如下格式:
RealPart+ImaginaryRart*I,其中,I为-1的平方根。
要求如下:
1 利用浮点变量表示此类的私有数据。
提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。
2 提供两复数加、减、乘的运算方法。
3 按格式(a,b)打印复数。
其中a为实部,b为虚部。
实验源代码:
packagecomplex;
classComplex{
privateintRealpart;
privateintImaginarypart;
privateComplexz;
privateComplexz2;
privateComplexz3;
publicComplex(intx,inty)
{
Realpart=x;
Imaginarypart=y;
}
publicComplex(){
Realpart=0;
Imaginarypart=0;
}
publicComplexadd(Complexx){
z=null;
z.Realpart=x.Realpart+Realpart;
z.Imaginarypart=x.Imaginarypart+Imaginarypart;
returnthis;
}
publicComplexsub(Complexx){
z3=null;
z3.Realpart=x.Realpart-Realpart;
z3.Imaginarypart=x.Imaginarypart-Imaginarypart;
returnthis;
}
publicComplexmulti(Complexx){
z2=null;
z2.Realpart=x.Realpart*Realpart;
z2.Imaginarypart=x.Imaginarypart*Imaginarypart;
returnthis;
}
publicvoidprint()
{
System.out.println("("+Realpart+","+Imaginarypart+")");
}
}
publicclassEx_3_complex{
publicstaticvoidmain(String[]args){
Complexcomplex1=newComplex(1,1);
Complexcomplex2=newComplex(2,2);
Complexcomplex3=newComplex(3,3);
complex3.add(complex1);
System.out.println("两复数相加的结果为:
");
complex3.print();
complex1.sub(complex1);
System.out.println("两复数相减的结果为:
");
complex1.print();
complex2.multi(complex1);
System.out.println("两复数相乘的结果为:
");
complex2.print();
}}
(2)创建银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。
实验源代码:
publicclassAccount{
privatefloatbalance;
publicvoiddeposit(floatx){
balance+=x;
}
publicvoidwithdraw(floatx){
balance=balance-x;
}
publicvoidgetbalance()
{
System.out.print("您的存款金额为:
"+balance);
}
}
(3)编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。
(4)编程实现以下简单超市管理,具体要求如下:
1 实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;
2 定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。
3 main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作
提示:
①超市货架可以使用商品数组,数组大小100表明存放100个商品。
②注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。
实验源代码:
packagesupermarket;
publicclassEx_supermarket{
publicstaticvoidmain(String[]args){
marketgood=newmarket(100,"第二货架");
Goodsgood1=newGoods(23,"大豆豆牌洗面奶","山西太原",100);
System.out.println("该商品的数量为"+good.check());
System.out.println("该商品的位置在"+good.query());
good1.Sale();
good1.Add(100);
good1.ShowMe();
try
{
if(good1.Goodsnumber>200)
thrownewException("商品数量超出剩余数量");
}catch(Exceptione){
e.printStackTrace();
}
}
}
classmarket{
publicintgoodsnumber;
publicStringlocation;
publicmarket(intx,Stringy){
goodsnumber=x;
location=y;
}
publicintcheck(){
returngoodsnumber;
}
publicStringquery(){
returnlocation;
}
}
classGoods{
publicintPrice;
publicStringName;
publicStringproducer;
publicintGoodsnumber;
publicGoods(intx,Stringy,Stringz,intw){
Price=x;
Name=y;
producer=z;
Goodsnumber=w;
}
publicvoidSale(){
if(Goodsnumber<10)System.out.print("商品数量不足");
}
publicvoidAdd(inta){
Goodsnumber+=a;
}
publicvoidShowMe()
{
System.out.println("该商品的名称为:
"+Name);
System.out.println("该商品的价格为:
"+Price);
System.out.println("该商品的生产地为:
"+producer);
System.out.println("该商品的数量为"+Goodsnumber);
}
}
3.实验预习要求
复习本章所学内容,思考以下问题:
(1)什么是对象?
什么是类?
(2)面向对象编程的特性有哪三个?
它们各自有哪些特性?
(3)Java语言在面向对象编程方面有哪些独特的特点?
(4)抽象类与接口有何异同?
4.实验结果
1、
4、
5、实验心得体会
通过实验,掌握了Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。
经过这次实验我发现自己在知识方面还有很多的不足,在平时的练习中也不懂得扩展与举一反三,导致这次的实验做得马马虎虎,除此之外也体会到了面向对象程序设计相对于过程化程序设计的优越性,总之,语言是一门技巧,要想能熟练掌握,必须多加练习。
实验4Java异常处理
1.实验目的
掌握异常的概念,以及如何定义、抛出和捕获处理异常。
2.实验内容
(1)做实验之前要求思考以下问题,作为预习内容;
1 错误和异常有何区别?
查看Java异常类的关系图。
2 异常是如何抛出、捕获和处理的?
3 Java捕获和处理异常的结构式怎样的?
4 Try语句如何嵌套?
Trow语句有何作用?
Finally程序快的作用是什么?
(2)运行下面的程序,理解异常的抛出、捕获与处理。
Importjava.io.*;
publicclassvoidmain(Stringargs[]){
publicstaicvoidmain(Stringargs[]){
for(inti=0;i<4;i++){
intk;
try{
switch(i){
case0:
//dividedbyzero
intzero=0;
k=911//zero
break;
case1:
//nullpointer
intb[]=null;
k=b[0];
break;
case2;//arrayindexoutofbound
intc[]=newint[2];
k=c[9];
break;
case3:
//stringindexoutofbound
charch="abc".charAt(99);
break;
}
}catch(Exceptione){
System.out.println("\nTestcase#"+i+"\n");
System.out.println(e);
}
}
}
}
(3)在实验三中的超市、商品类中创建一个自定义异常类。
要求:
在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。
提示:
1 产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。
2 确定产生异常的方法,应该在sale方法中产生异常InsufficientFundsException。
3 处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。
4 要定义好自己的异常。
实验源代码:
packagesupermarket;
publicclassEx_supermarket{
publicstaticvoidmain(String[]args){
marketgood=newmarket(100,"第二货架");
Goodsgood1=newGoods(23,"大豆豆牌洗面奶","山西太原",100);
System.out.println("该商品的数量为"+good.check());
System.out.println("该商品的位置在"+good.query());
good1.Sale();
good1.Add(100);
good1.ShowMe();
try
{
if(good1.Goodsnumber>200)
thrownewException("商品数量超