Java语言程序设计实验报告.docx
《Java语言程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计实验报告.docx(30页珍藏版)》请在冰豆网上搜索。
![Java语言程序设计实验报告.docx](https://file1.bdocx.com/fileroot1/2023-1/29/31f65d6b-275f-4d4e-bd3c-9fbbf52c968a/31f65d6b-275f-4d4e-bd3c-9fbbf52c968a1.gif)
Java语言程序设计实验报告
本科实验报告
课程名称:
Java语言程序设计
实验地点:
致远楼
专业班级:
软工1507班学号:
2015005682
学生姓名:
李俊慧
指导教师:
李君婵
实验名称
实验一Java语言基础
实验目的
1.通过实验,掌握Java语言程序设计的基本方法。
2.学会Java语言中标示符的命名、运算符和表达式的应用。
3.熟练地掌握Java程序流程控制语句的应用。
实验内容
1.编写应用程序,计算100(含100)以内所有偶数的和。
2.编写一个程序,求1-100间的素数。
3.使用for循环语句,编写程序输出以下图案。
☆
☆☆☆
☆☆☆☆☆
☆☆☆☆☆☆☆
☆☆☆☆☆
☆☆☆
☆
实验记录
1.publicclassJavashiyan1_1{
publicstaticvoidmain(Stringargs[]){
intsum=0,i;
for(i=1;i<=100;i++){
if(i%2==0)sum=sum+i;
}
System.out.println("SUM="+sum);
}
}
2.publicclassJavashiyan1_3{
publicstaticvoidmain(Stringargs[]){
intn,i,t=0,mark=1;
for(n=1;n<=100;n++){
for(i=2;i<=n-1;i++){
if(n%i==0)mark=0;
}
if(mark==1){
System.out.print(n+"\t");
t++;
if(t%5==0)
System.out.println();
}
mark=1;
}
System.out.println();
}
}
3.publicclassJavashiyan1_5{
publicstaticvoidmain(Stringargs[]){
intm,n,q=1,m2,q3=3;
intm1,n1,q1=5,n2,q2=1;
charA='@',B='';
for(m=0;m<4;m++){
for(m2=1;m2<=q3;m2++){
System.out.print(B);
}
for(n=1;n<=q;n++){
System.out.print(A);
}
System.out.print("\n");
q=q+2;
q3--;
}
for(m1=0;m1<3;m1++){
for(n2=1;n2<=q2;n2++){
System.out.print(B);
}
for(n1=1;n1<=q1;n1++){
System.out.print(A);
}
System.out.print("\n");
q1-=2;
q2++;
}
}
}
实验结果
1.
2.
3.
实验名称
实验二数组和字符串编程
实验目的
1.通过实验,掌握Java语言中数组、字符串程序设计的基本方法。
2.较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。
实验内容
1.编写一个程序,在控制台输入10个数,按大小顺序输出。
2.求一个3*3矩阵对角元素之和。
3.输入一段字符串,统计其中有多少个单词。
(单词用空格隔开)
实验记录
1.importjava.io.*;
publicclassJavashiyan2_1{
publicstaticvoidmain(Stringargs[])throwsIOException{
doublenum[]=newdouble[10];
doubletemp;
inti,m,n,m1;
Stringstr;
BooleancontiGo=true;
BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));
for(i=0;i<10;i++){
System.out.print("PleaseinputNO."+(i+1)+":
");
str=buf.readLine();
num[i]=Double.parseDouble(str);
}
for(m=0;m<9;m++){
for(m1=0;m1<9-m;m1++){
if(num[m1]>num[m1+1]){
temp=num[m1+1];
num[m1+1]=num[m1];
num[m1]=temp;
}
}
}
for(n=0;n<10;n++){
System.out.print(num[n]+"");
}
System.out.println();
}
}
2.importjava.io.*;
publicclassJavashiyan2_2{
publicstaticvoidmain(Stringargs[])throwsIOException{
doubleA[][];
A=newdouble[3][3];
inti1,i2,i3,i4;
doublesum;
Stringstr;
BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));
for(i1=0;i1<3;i1++){
for(i2=0;i2<3;i2++){
str=buf.readLine();
A[i1][i2]=Double.parseDouble(str);
}
}
/*
for(i3=0;i3<3;i3++){
for(i4=0;i4<3;i4++){
System.out.print(A[i3][i4]+"^");
}
}
*/
sum=A[0][0]+A[1][1]+A[2][2]+A[0][2]+A[2][0];
System.out.println("SUM="+sum);
}
}
3.importjava.io.*;
publicclassJavashiyan2_3{
publicstaticvoidmain(Stringargs[])throwsIOException{
StringA;
charB[];
intsum=0,i;
B=newchar[100];
System.out.println("Pleaseinputandendingwith'.':
");
BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));
A=buf.readLine();
//System.out.println(A);
B=A.toCharArray();
for(i=0;B[i]!
='.';i++){
if(B[i]=='')sum++;
}
sum+=1;
System.out.println("thenumberofwords:
"+(sum));
}
}
实验结果
1.
2.
3.
实验名称
实验三Java面向对象程序设计
实验目的
1.掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。
实验内容
1.创建一个复数类complex,以附属进行数学运算、复数具有如下格式:
RealPart+ImaginaryRart*I,其中,I为-1的平方根。
要求如下:
1 利用浮点变量表示此类的私有数据。
提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。
2 提供两复数加、减、乘的运算方法。
3 按格式(a,b)打印复数。
其中a为实部,b为虚部。
2.创建银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。
3.编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。
4.编程实现以下简单超市管理,具体要求如下:
1 实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;
2 定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。
③ main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作
提示:
①超市货架可以使用商品数组,数组大小100表明存放100个商品。
②注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。
实验记录
1.publicclassJavashiyan3_1{
publicstaticvoidmain(Stringargs[]){
ComplexC=newComplex();
ComplexA=newComplex(2.0,3.0);
ComplexB=newComplex(3.0,4.0);
A.Display();
B.Display();
C.Display();
C.Addition(A,B);
C.Display();
C.Subtraction(A,B);
C.Display();
C.Multiplication(A,B);
C.Display();
}
}
classComplex{
privatedoubleRealPart,ImaginaryPart;
publicComplex(){}
publicComplex(doublex,doubley){
RealPart=x;
ImaginaryPart=y;
}
publicvoidAddition(ComplexA,ComplexB){
RealPart=A.RealPart+B.RealPart;
ImaginaryPart=A.ImaginaryPart+B.ImaginaryPart;
}
publicvoidSubtraction(ComplexA,ComplexB){
RealPart=A.RealPart-B.RealPart;
ImaginaryPart=A.ImaginaryPart-B.ImaginaryPart;
}
publicvoidMultiplication(ComplexA,ComplexB){
RealPart=A.RealPart*B.RealPart;
ImaginaryPart=A.ImaginaryPart*B.ImaginaryPart;
}
publicvoidDisplay(){
System.out.println(RealPart+"+"+ImaginaryPart+"i");
}
}
2.publicclassJavashiyan3_2{
publicstaticvoidmain(Stringargs[]){
AccountA=newAccount();
AccountB=newAccount(1000.0);
A.Deposit(200.0);
A.Withdraw(100.0);
A.Getbalance();
B.Withdraw(500.0);
B.Deposit(700);
B.Getbalance();
}
}
classAccount{
privatedoubleBalance;
publicAccount(){}
publicAccount(doublex){
Balance=x;
}
publicvoidDeposit(doublea){
Balance+=a;
System.out.println("PresentBalance:
"+"$"+Balance);
}
publicvoidWithdraw(doubleb){
Balance-=b;
System.out.println("PresentBalance:
"+"$"+Balance);
}
publicvoidGetbalance(){
System.out.println("PresentBalance:
"+"$"+Balance);
}
}
3.publicclassJavashiyan3_3implementsMin_and_max{
publicvoidCompare(doublea,doubleb,doublec){
doublemin,max;
max=a>b?
a>c?
a:
c:
b>c?
b:
c;
min=a>c?
b>c?
c:
b:
a>b?
b:
a;
System.out.println("Max:
"+max+"Min:
"+min);
}
publicstaticvoidmain(Stringargs[]){
Javashiyan3_3A=newJavashiyan3_3();
Javashiyan3_3B=newJavashiyan3_3();
Javashiyan3_3C=newJavashiyan3_3();
Javashiyan3_3D=newJavashiyan3_3();
Javashiyan3_3E=newJavashiyan3_3();
Javashiyan3_3F=newJavashiyan3_3();
A.Compare(12,23,34);
B.Compare(40,23,94);
C.Compare(12,83,34);
D.Compare(42,73,34);
E.Compare(99,67,8);
F.Compare(99,2,40);
}
}
4.publicclassJavashiyan3_4{
publicstaticvoidmain(Stringargs[]){
GoodsA=newGoods("Dong_Bei_Rice",12.0,"Heilongjiang");
GoodsB=newGoods("Te_lun_su_milk",63,"China");
System.out.println("------A.ShowMe()------");
A.ShowMe();//显示A商品的名称价格产地
System.out.println("------A.Add(20)------");
A.Add(20);//上架20份
A.ShowMe();
System.out.println("------A.Sale(10)------");
A.Sale(10);//销售10份
A.ShowMe();
System.out.println("------A.check()------");
A.check();
System.out.println("------A.query()------");
A.query();
B.ShowMe();
B.Add(50);B.query();
B.Sale(50);
B.query();
}
}
classSuppermarket{
StringMerchandise[]=newString[100];
publicvoidcheck(){
/*intt1;
for(t1=0;Merchandise[t1]!
=null;t1++){
System.out.print("Name:
"+Merchandise[t1]);
System.out.print("Inventory:
"+P.Inventory);
}*/
}
publicvoidquery(){
/*P.ShowMe();
System.out.print("Inventory:
"+P.Inventory);*/
}
}classGoodsextendsSuppermarket{
StringName;
doublePrice;
StringProducer;
intInventory,t=0;//表示货架上的数量
publicGoods(){}
publicGoods(StringName,doublePrice,StringProducer){
this.Name=Name;
this.Price=Price;
this.Producer=Producer;
Merchandise[t]=Name;
t++;
}publicvoidSale(inty){//y表示卖了几份
Inventory-=y;
if(Inventory<=0){
Inventory=0;
System.out.println("OUTOFSTOCK!
");
}
}
publicvoidAdd(intx){//x表示上架的数量
Inventory+=x;
}
publicvoidShowMe(){
System.out.println("Name:
"+Name+"Price:
"+Price+"Producer:
"+Producer+"Inventory:
"+Inventory);
}
publicvoidcheck(){
intt2;
for(t2=0;t2<100;t2++){
if(Merchandise[t2]!
=null){
System.out.print("Name:
"+Merchandise[t2]);
System.out.print("Inventory:
"+Inventory);
System.out.println();
}
}
}
publicvoidquery(){
ShowMe();
//System.out.print("Inventory:
"+Inventory);
}
}
实验结果
1.
2.
3.
4.
实验名称
实验四多线程编程
实验目的
1.现成的概念、线程的生命周期。
2.多线程的编程:
扩展Thread类与使用Runnable接口。
3.使用多线程机制实现动画
实验内容
1.创建简单的程序ThreeThread.java,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。
实验记录
1.importjava.util.*;
publicclassJavashiyan5_3extendsThread{
intpauseTime;
Stringname;
longs1,s2;
publicJavashiyan5_3(intx,Stringn){
pauseTime=x;
name=n;
}
publicvoidrun(){
while(true){
try{
s1=System.currentTimeMillis();
System.out.println("*START*"+name+":
"+newDate(System.currentTimeMillis()));
System.out.println(name+":
"+s1);
Thread.sleep(pauseTime);
s2=System.currentTimeMillis();
System.out.println("*END*"+name+":
"+newDate(System.currentTimeMillis()));
System.out.println("|"+name+"|"+"hasrun:
"+(s2-s1));
}catch(Exceptione){
System.out.println(e);
}
}
}
publicstaticvoidmain(Stringargs[]){
Javashiyan5_3tp1=newJavashiyan5_3(4000,"Fast");
tp1.start();
Javashiyan5_3tp2=n