四川师范大学软件工程java实验报告.docx

上传人:夺命阿水 文档编号:20039 上传时间:2022-07-05 格式:DOCX 页数:58 大小:419.50KB
返回 下载 相关 举报
四川师范大学软件工程java实验报告.docx_第1页
第1页 / 共58页
四川师范大学软件工程java实验报告.docx_第2页
第2页 / 共58页
四川师范大学软件工程java实验报告.docx_第3页
第3页 / 共58页
四川师范大学软件工程java实验报告.docx_第4页
第4页 / 共58页
四川师范大学软件工程java实验报告.docx_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《四川师范大学软件工程java实验报告.docx》由会员分享,可在线阅读,更多相关《四川师范大学软件工程java实验报告.docx(58页珍藏版)》请在课桌文档上搜索。

1、Java程序设计实验教学大纲一、实验课的性质与任务Java语言是新兴起的面向对象程序设计语言,用于应用程序设计,尤其是应用在网络、因特网和移动设备上。为培养学生网络应用程序的编程能力,在学生具有一定的计算机和网络知识的根底上开设Java程序设计课程,使学生能够运用Java语言作为完成应用程序设计的根本工具。本课程将从面向对象的根本概念入手,结合课程设计,较为系统地介绍Java语言的主要特征和编程方法,包括:类型与转换、类的声明与对象产生、继承与多态性、包与接口、数组与字符串、多线程编程以及异常处理、JDBC等内容。通过相关的实验设计,使学生具有一定的网络编程能力。二、实验课程目的与要求1实验目

2、的:开设该课程设计,目的是让学生在掌握了Java程序设计的根本知识、根本理论方面后,能熟悉Java编程的思想和编程技巧,培养学生分析问题和解决问题的能力及技巧。实验设计覆盖Java程序设计中主要的方法。该课程以讲授、演示和实验法相结合。按照重视根底,突出重点的原那么进行。通过程序设计培养学生的程序设计能力、解决和分析问题的能力,使学生对所学的内容有更深入的理解,逐步掌握Java编程方面的技巧。2 实验要求:(1) 实验安排在上机时间进行,如在上机时间不能完成可课后完成,到期交经过编译并能正常运行的软件。(2) 实验以前,学生应对实验设计的相关知识点和相关设计技术有所了解。(3) 每个实验都要求

3、写出实验报告实验报告包括:实验内容、目的、实现方法、调试结果。三、实验工程及内容提要?Java程序设计?实验课程 序号实验工程编号实验名称学时必做选做学分数实验类型内容提要 根本操作验证综合设计1一Java根底实验3熟悉Java根本语句和程序控制结构 2二Java应用程序和小应用程序3学会Java application和applet,以及Eclipse的使用3三类与对象4使用类来封装对象的属性和功能;学会构造函数的使用和初始化4四类的静态成员与实例成员2掌握静态成员与实例成员的区别学会使用类的静态成员5五Java异常处理2学会声明用户自己的异常类。掌握异常的抛出和捕获的应用6六接口的实现2掌

4、握接口的实现方式使用实现了接口的类理解接口与抽象类的区别7七构造函数的使用4学会构造函数重载8八子类的派生与方法覆盖4理解子类派生的概念学习创立子类对象掌握方法覆盖的使用9九上转型对象及多态4掌握上转型对象的使用学习创立子类对象和继承了解多态的应用10十图形及事件处理4掌握GUI设计及事件处理11十一学期综合实验从所给题目中任选一题,并按要求完成实验1 Java根底实验实验目的: 1) 掌握Java application、applet、DialogBox的区别。2) 学会在Eclipse下编译、调试和运行程序。3) 掌握Java中控制语句、循环语句、数组的使用。实验内容:1、用Java ap

5、plet和application分别编写一个程序进行10年存款的本息计算。要求:1) 存款总金额本金 *1利率存款年限amount = principal * Math.pow( 1.0 + rate, year );2) 分别使用Application, applet, 和DialogBox完成。 applicationimport java.util.*;public class test1 static int year=10;long principal;static double amount;public static void main(String args)Scanner i

6、n=new Scanner(System.in); System.out.println(please input a number:);long principal=in.nextLong(); System.out.println(please input a number(01):); float rate=in.nextFloat(); amount=principal*Math.pow(1+rate, year);System.out.println(存款总金额为 :+amount);appletimport java.applet.Applet;import java.awt.Gr

7、aphics;import java.util.Scanner;public class test1 extends Applet double amount; double rate; int year=0,m,principal;public void init() Scanner input=new Scanner(System.in); System.out.println(Please enter principal:); principal = input.nextInt(); System.out.println(Please enter years you want:); m

8、= input.nextInt(); System.out.println(Please enter rate:); rate = input.nextDouble(); public void paint(Graphics g) int yPos =55; g.drawString(years, 25, yPos);/纵坐标为ypos,横坐标为25 g.drawString(amount, 100, yPos); for(year=0;year=m;year+) yPos +=15;/纵坐标每次循环到就+15 amount=principal * Math.pow( 1.0 + rate,

9、year );/公式 g.drawString(String.valueOf(year), 25, yPos);/输出年数, g.drawString(String.valueOf(amount), 100, yPos); /输出本息和 2、两个二维数组a,b,其初值如下:int a=new int23; int b= 1,5,2,8,5,9,10,-3,2,7,-5,-18 ; 求这两个二维数组的乘积。运行结果如下:import java.util.Scanner;public class test2 public static void main(String args) int a =

10、new int23; int b = 1,5,2,8,5,9,10,-3,2,7,-5,-18 ; int c = new int24; Scanner input = new Scanner(System.in); System.out.println(please enter array a:); for(int i=0;ia.length;i+) for(int j=0;jai.length;j+) aij = input.nextInt(); System.out.println();/换行操作 System.out.println(*Matrix A*); for(int i=0;i

11、a.length;i+) for(int j=0;jai.length;j+) System.out.print(aij+ ); System.out.println(); System.out.println(*Matrix B*); for(int i=0;i=2;i+) for(int j=0;j=3;j+) System.out.print(bij+ ); System.out.println(); System.out.println(*Matrix C*); for(int i=0;i=1;i+) for(int j=0;j=3;j+) cij=ai0*b0j+ai1*b1j+ai

12、2*b2j; System.out.print(cij+ ); System.out.println(); 3采用applet编写一个小应用程序。该程序通过让用户输入13数值中的一个,实现线、方形、圆型绘制。要求用户提示采用DialogBox。程序运行结果如下:提示:输入框使用:JOptionPane.showInputDialog()通过查帮助文档,掌握drawLine(),drawRect(), drawOval()方法的使用。根本框架如下:import java.awt.Graphics;import javax.swing.*;public class drawline extends

13、 JApplet . public void init() input = JOptionPane.showInputDialog( Enter 1 to draw linesn + Enter 2 to draw rectanglesn + Enter 3 to draw ovalsn );. public void paint( Graphics g ) 代码:import java.applet.Applet;import java.awt.Graphics;import java.awt.Color;import javax.swing.JOptionPane;import javax

14、.swing.*;public class test3 extends Applet public String input; int number; public void init() input = JOptionPane.showInputDialog( Enter 1 to draw linesn + Enter 2 to draw rectanglesn + Enter 3 to draw ovalsn ); public void paint( Graphics g ) int number=Integer.parseInt(input); switch (number) cas

15、e 1 : g.setColor(Color.RED);/使用红色 for (int i = 0; i 8 ;i+) g.drawLine(5, 5, 5 * i + 200, 5 * i + 10);/画一条线,起点位置是在点 (5,5) 和 (200,10) 之间画一条线。 break; case 2: g.setColor(Color.BLUE); for (int i = 0; i 8 ;i+) g.drawRect( i*10+5, i*10+5, 65+i*17, 65+i*17);/画一个矩形,起始5.5位置,长度65,宽度65 break; case 3: g.setColor

16、(Color.GREEN); for (int i = 0; i =90, A; 8980,B;7970,C;6960,D;60, F。2、 程序中要求使用inputScore和judegGrade两个方法,分别执行成绩的输入和成绩等级的判断。3、 实验结果如以下图:程序模版:import java.util.Scanner;public class Score Scanner scanner;public Score() scanner = new Scanner(System.in); inputScore();public void inputScore()【代码1】从键盘读入十个成绩i

17、nt s=scanner.nextInt(); String grade = judgeGrade(s); System.out.println(Grade + s +is+ grade); public String judgeGrade(int score)【代码2】对输入成绩进行判断public static void main(String args) new Score(); System.exit(0);代码:import java.util.Scanner;public class grade_rank public static void main(String args)gr

18、ade_rank g = new grade_rank();g.inputScore();System.gc();System.exit(0);public void inputScore()Scanner in = new Scanner(System.in);System.out.println(请输入十个学生的成绩);for(int i = 0;i 10;i+)int n = in.nextInt();String rank = judgeGrade(n);if(rank = )i -= 1;continue;System.out.print(Grade +n+ is +rank);Sy

19、stem.out.println();System.out.println(你已经输入十个学生的成绩);public String judgeGrade(int n)int m = n/10;String rank = ;switch(m)case 9:rank = A;break;case 8:rank = B;break;case 7:rank = C;break;case 6:rank = D;break;case 5:case 4:case 3:case 2:case 1:case 0:rank = F; break;default:if(n = 100)rank = A;elseSy

20、stem.out.print(你输入的成绩错误!0=grade=100请重新输入);break;return(rank);实验二、1、 定义一个Java类Student,实现学生选课、退课和成绩管理。要求自定义学生的状态信息和课程行为。2、 编写一个测试类StudentTest用于测试学生类的实现情况,并输出相关信息。至少创立三个对象/student类public class student public String sno; public String sname; public String course; public float sgrade;public student()publ

21、ic float grade = new float3; public student(String sno,String sname,String course,float sgrade) this.sno = sno; this.sname = sname; this.course = course; this.sgrade = sgrade; public void course_sel(String cs)System.out.println(cs+ :Course select successful!);public void course_dro(String cd)System.

22、out.println(cd+:You can not drop this course!);public void grade_man()String name = new String3;name0 = Guo Tao;name1 = Wang Bing;name2 = Li Yang;System.out.println(已经自定义了学生的信息和课程行为);for(int i = 0;i 3;i+)course_sel(namei); course_dro(namei);/studenttest类 public class student_test public static void

23、main(String args)student p = new student();p.grade_man();p.grade0 = 83.0f; p.grade1 = 78.0f; p.grade2 = 80.0f;student guo_tao = new student(1,Guo Tao,OS,p.grade0);student wang_bing = new student(2,Wang Bing,OS,p.grade1);student li_yang = new student(3,Li Yang,OS,p.grade2);System.out.println(学号tt姓名tt

24、课程tt成绩tt);System.out.println(guo_tao.sno+tt+guo_tao.sname+tt+guo_tao.course+tt+guo_tao.sgrade+tt);System.out.println(wang_bing.sno+tt+wang_bing.sname+t+wang_bing.course+tt+wang_bing.sgrade+tt);System.out.println(li_yang.sno+tt+li_yang.sname+tt+li_yang.course+tt+li_yang.sgrade+tt);System.exit(0);Syst

25、em.gc(); 实验三、1、 修改实验二实现的Student类,添加get(),set()方法以防止用户直接操作对象的数据。状态和行为的设置通过对象调用实现。代码: public class student private String sno; private String sname; private String course; private float sgrade;public String get_sno() return this.sno; public String get_sname() return this.sname; public String get_cours

26、e() return this.course; public float get_grade() return this.sgrade;System.out.println(学号tt姓名tt课程tt成绩tt);System.out.println(guo_tao.get_sno()+tt+guo_tao.get_sname()+tt+guo_tao.get_course()+tt+guo_tao.get_grade()+tt);System.out.println(wang_bing.get_sno()+tt+wang_bing.get_sname()+t+wang_bing.get_cour

27、se()+tt+wang_bing.get_grade()+tt);System.out.println(li_yang.get_sno()+tt+li_yang.get_sname()+tt+li_yang.get_course()+tt+li_yang.get_grade()+tt); 实验二、三结果如下:Guo Tao:Course select successful!Guo Tao: You can not drop this course.Wang Bing: Course select successful!Wang Bing: You can not drop this cour

28、se.Li Yang: Course select successful!Yi Yang: You can not drop this course.学号姓名课程成绩1Guo TaoOS83.02Wang BingOS78.03Li YangOS80.0实验3 类与对象1 实验目的1) 本实验的目的是让学生使用类来封装对象的属性和功能2) 学会对象的使用3) 学会构造函数的使用和初始化2 实验要求实验一、编写一个Java应用程序,该程序中有3个类:Trangle、Lander和Circle,分别用来刻画“三角形、“梯形和“圆形。具体要求如下:1) Trangle类具有类型为double的三个边

29、,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。此外,Trangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形。完成上述操作后,给Trangle再增加3个方法,分别用来返回3个边sideA,sideB, sideC的值。2) Lander类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能。3) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。3 程序运行效果4 模板代码 请按模版要求,将【代码】替换为Java程序代码AreaAndLength.javaclass Trangl

30、e double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c) 【代码1】 /参数a,b,c分别赋值给sideA,sideB,sideC if(【代码2】) /a,b,c构成三角形的条件表达式 【代码3】 /给boo赋值。 else 【代码4】 /给boo赋值。 double getLength() 【代码5】 /方法体,要求计算出length的值并返回 public double getArea() if(boo) double p=(sideA+sideB+sid

31、eC)/2.0; area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC) ; return area; else System.out.println(不是一个三角形,不能计算面积); return 0; public void setABC(double a,double b,double c) 【代码6】 /参数a,b,c分别赋值给sideA,sideB,sideC if(【代码7】) /a,b,c构成三角形的条件表达式 【代码8】 /给boo赋值。 else 【代码9】 /给boo赋值。 class Lader double above,bottom

32、,height,area; Lader(double a,double b,double h) 【代码10】 /方法体,将参数a,b,c分别赋值给above,bottom,height double getArea() 【代码11】 /方法体,,要求计算出area返回 class Circle double radius,area; Circle(double r) 【代码12】 /方法体 double getArea() 【代码13】 /方法体,要求计算出area返回 double getLength() 【代码14】 /getArea方法体的代码,要求计算出length返回 void se

33、tRadius(double newRadius) radius=newRadius; double getRadius() return radius; public class AreaAndLength public static void main(String args) double length,area; Circle circle=null; Trangle trangle; Lader lader; 【代码15】 /创立对象circle 【代码16】 /创立对象trangle。 【代码17】 /创立对象lader 【代码18】 / circle调用方法返回周长并赋值给len

34、gth System.out.println(圆的周长:+length); 【代码19】 / circle调用方法返回面积并赋值给area System.out.println(圆的面积:+area); 【代码20】 / trangle调用方法返回周长并赋值给length System.out.println(三角形的周长:+length); 【代码21】 / trangle调用方法返回面积并赋值给area System.out.println(三角形的面积:+area); 【代码22】 / lader调用方法返回面积并赋值给area System.out.println(梯形的面积:+are

35、a); 【代码23】 / trangle调用方法设置三个边,要求将三个边修改为12,34,1。 【代码24】 / trangle调用方法返回面积并赋值给area System.out.println(三角形的面积:+area); 【代码25】 / trangle调用方法返回周长并赋值给length System.out.println(三角形的周长:+length); 代码:class Trangle double sideA,sideB,sideC,area,length; boolean boo; / 判断是否能构成一个三角形 Trangle()/构造方法 public Trangle(double a,double b,double c)/构造方法 this.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号