




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学 生 实 验 报 告(理工类)课程名称: Java实验 专业班级:13软件工程2班 学生学号: 1305104061 学生姓名: 葛石 所属院部: 软件工程 指导教师: 陈圣国 20 14 2015 学年 第 1 学期 金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。 实验项目名称:Java编程基础 实验学时: 2 同组学生姓名: 实验地点: A205 实验日期: 实验成绩: 批改教师: 批改时间: 一、实验目的(1) 熟练掌握JDK编写调试Java应用程序及Java小程序的方法。(2) 熟练掌握Java应用程序及小程序的结构。(3) 了解Java语言的特点,基本语句、运算符及表达式的使用方法。(4) 熟练掌握常见数据类型的使用。(5) 熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法。二、实验要求(1)调试程序要记录调试过程中出现的问题及解决办法;(2)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(3)做完实验后给出本实验的实验报告。三、实验设备、环境奔腾以上计算机,Windows 2000 、J2SDK、IE浏览器三、实验过程(1)输入并用JDK编译运行下面的程序class HelloWorldpublic static void main(String args)System.out.println(“Hello,world”);(2)2-18public class 素数判断public static void main(String args)/自动生成的方法存根int mymin=1;int mymax=100;int i,j;for(i=mymin;i=mymax;i+)if(i=1)continue;for(j=2;j=i;j+)if(i%j)=0)break;if(j=i)System.out.print( +i);(3)2-19public class 等腰杨辉三角public static void main(String args)int n=9,j,i,k;int a=new int n+1;a0=a1=1;for(i=0;in*10+2;i+)System.out.print( );System.out.println(a0);for(i=0;i10*n;i+)System.out.print( );System.out.println(a0+ +a1);for(i=1;i0;j-)aj=aj-1+aj;for(k=0;k(10*n-i*2);k+)System.out.print( );for(j=0;ji+2;j+)System.out.print(aj+ );System.out.println();(4) 2-28public class 判断回文字符串public static boolean pdhw(String s)int i;char a,b;for(i=0;is.length()/2;i+)a=s.charAt(i);b=s.charAt(s.length()-i-1);if(a!=b)return false;return true;public static void main(String args)String a=321321123123;if(pdhw(a)System.out.println(yse!);elseSystem.out.println(no!);(5)2-32public class MyDouble /返回实数字符串表示的浮点数值 public static double parseDouble(String s) int i=0, sign=s.charAt(0)=- ? -1 : 1; /sign记住符号位 if (s.charAt(0)=+ | s.charAt(0)=-) /跳过符号位 i+; double value=0, power=0.1; /power表示底数为10的幂 while (i=0 & s.charAt(i)=9) /获得整数部分值 value = value*10+s.charAt(i+)-0; if (is.length() & s.charAt(i)=.) /若是小数点 i+; while (i=0 & s.charAt(i)=9)/获得小数部分值 value += (s.charAt(i)-0)*power ; i+; power*=0.1; value *=sign; if (is.length() & (s.charAt(i)=E | s.charAt(i)=e) /处理阶码 i+; power = (s.charAt(i)=-) ? 0.1 :10; /阶码的符号位决定指数的正负及其运算 if (s.charAt(i)=+ | s.charAt(i)=-) i+; int exp=0; while (i=0 & s.charAt(i)=9) exp = exp*10+s.charAt(i+)-0; /获得指数的绝对值 for (int j=0; jexp; j+) value*=power; return value ; public double toDouble (String s) /返回实数字符串表示的浮点数值 int j=s.indexOf(.), k=s.indexOf(E); /寻找小数点和E if (k=-1) k=s.indexOf(e); if (j=-1 & k=-1) return Integer.parseInt(s); /s中没有小数和阶码部分,获得整数值返回 int i=0, sign = s.charAt(0)=- ? -1 : 1; /sign记住符号位 if (s.charAt(0)=+ | s.charAt(0)=-) /跳过符号位 i+; double value=0, power=0.1; /power表示底数为10的幂 if (j!=-1) /s中有小数部分 value=Integer.parseInt(s.substring(i,j); /获得正整数部分值 j+; /跳过小数点 while (j=0 & s.charAt(j)=9) /获得小数部分值 value += (s.charAt(j)-0)*power; j+; power*=0.1; value *=sign; if (k!=-1) /处理阶码 if (j=-1) /s中没有小数部分 value=Integer.parseInt(s.substring(0,k); /获得整数部分值 k+; power = (s.charAt(k)=-) ? 0.1 :10; /阶码的符号位决定指数的正负及其运算 if (s.charAt(k)=+ | s.charAt(k)=-) k+; int exp=Integer.parseInt(s.substring(k); /获得指数部分的正整数值 for (j=0; j=0&month=1&month0&day=31)if(month=2&day=29)if(MyDate.isLeapYear(year)&day0;i-)total+=daysofMonth(this.year,i);total+=this.day;int week=1;week=(week+total)%7;System.out.printf(this.year+年+this.month+月+this.day+日 星期);switch(week)case 0:System.out.println(日);case 1:System.out.println(一);case 2:System.out.println(二);case 3:System.out.println(三);case 4:System.out.println(四);case 5:System.out.println(五);case 6:System.out.println(六);public String toWeek()int total=this.year-1980+(this.year-1980+3)/4;for(int i=this.month-1;i0;i-)total+=daysofMonth(this.year,i);total+=this.day;int week=1;week=(week+total)%7;switch(week)case 0:return new String(this.year+年+this.month+月+this.day+日 星期日);case 1:return new String(this.year+年+this.month+月+this.day+日 星期一);case 2:return new String(this.year+年+this.month+月+this.day+日 星期二);case 3:return new String(this.year+年+this.month+月+this.day+日 星期三);case 4:return new String(this.year+年+this.month+月+this.day+日 星期四);case 5:return new String(this.year+年+this.month+月+this.day+日 星期五);case 6:return new String(this.year+年+this.month+月+this.day+日 星期六);return error!;public boolean before(MyDate d)if(d.getYear()this.year)return false;if(d.getYear()=this.year)if(d.getMonth()this.month)return false;elseif(d.getMonth()=this.month)return d.getDay()0;i-)total+=daysofMonth(this.year,i);total+=this.day;return total;(2) 3-34 设计一个复数类,成员包括实部和虚部,成员方法包括复数加法、减法、比较、转换成字符串等运算或操作。public class Complex private int real,imaginary;public Complex(String s)int i,k=1;char a;String s2;for(i=0;i=0&a=9)s2=String.valueOf(a);this.real=Integer.parseInt(s2)*k;k*=10;k=1;for(;i=0&a=0&red=0&blue=0&green=255) this.red = red; this.blue = blue; this.green = green; Color() this.red =0; this.blue =0; this.green =0; public void getColor() System.out.print(+red+,+blue+,+green+); import java.awt.*;public class Pixel extends Pointprivate Color color=new Color(0, 0, 0);Pixel()(4) 3-38public class Student protected String name;protected String speciality;protected int number;Student(Student d)=;this.speciality=d.speciality;this.number=d.number;Student()=;this.speciality=;this.number=0;Student(String name,String speciality,int number)=name;this.speciality=speciality;this.number=number;public void set(Student d)=;this.speciality=d.speciality;this.number=d.number;public class Student2 extends Studentprivate int math,chinese,english;private static int scount=new int10;Student2(int a,int b,int c,Student d)super.set(d);math=a;chinese=b;english=c;public void bh()switch(super.speciality)case 计算机:super.number=scount0+;break;case 物联网:super.number=scount1+;break;case 美术:super.number=scount2+;break;case 会计:super.number=scount3+;break;(5) 4-17public interface Areapublic abstract double area();public interface Perimeterpublic abstract double perimeter();public class cone implements Area,Perimeterprivate double r,h;public double area()return 3.14*r*r*h*1.0/3;public double perimeter()return 3.14*r*r+0.5*2*r*3.14*(Math.sqrt(r*r+h*h);cone(double a,double b)r=a;h=b;public static void main(String args) cone p=new cone(10,5);Area a=p;Perimeter v=p;System.out.println(面积:+a.area()+ 体积:+v.perimeter();六、讨论、思考题(1) 类的继承有什么好处?1)继承关系是传递的。若类C继承类B,类B继承类A,则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法。继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。 (2)继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。 (3)继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。 (4)继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。 (5)提供多重继承机制。从理论上说,一个类可以是多个一般类的特殊类,它可以从多个一般类中继承属性与方法,这便是多重继承。Java出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。(2)抽象类与接口的共同点是什么?不同点表现在哪些地方?1、抽象类里面可以有非抽象方法但接口里只能有抽象方法 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。Abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。2、接口(interface)是抽像类的变体。在接口中,所有方法都是抽像的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对像上调用接口的方法。由于有抽像类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口.相同点:都不能被直接实例化,都可以通过继承实现其抽象方法。 都是面向抽象编程的技术基础,实现了诸多的设计模式。 实验项目名称: 图形用户界面 实验学时: 2 同组学生姓名: 实验地点: A205 实验日期: 实验成绩: 批改教师: 批改时间: 一、实验目的(1) 掌握AWT组件的使用方法(2) 熟练掌握AWT中常用界面元素如窗口、菜单、对话框的使用方法(3) 掌握用户界面动作与事件的处理程序的编写方法。(4) 熟练掌握构造用户界面的方法和常见界面元素的使用。二、实验要求(1)调试程序要记录调试过程中出现的问题及解决办法;(2)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(3)做完实验后给出本实验的实验报告。三、实验设备、环境奔腾以上计算机,Windows 98 、J2SDK、IE浏览器四、实验步骤及内容编写并调试如下程序(界面采用awt实现):(1) 6-31设计一个图形界面的计算器程序,要求能够实现加减乘除等基本运算。package 图形实验;import java.awt.*;import java.awt.event.*;public class mygrphice extends Frame implements ActionListener private static final long serialVersionUID = 1L;/* 标识符 */Button one = new Button(1);Button two = new Button(2);Button three = new Button(3);Button four = new Button(4);Button five = new Button(5);Button six = new Button(6);Button seven = new Button(7);Button eight = new Button(8);Button nine = new Button(9);Button zero = new Button(0);Button add = new Button(+);Button sub = new Button(-);Button mul = new Button(*);Button div = new Button(/);Button decimal = new Button(.);final Button equal = new Button(=);TextField tf = new TextField();int fa=0;String s=new String();double result=-1;double a=0,b=0;char sign = 0 ;public mygrphice() Frame f = new Frame(计算器);f.setVisible(true);f.setBounds(200, 200, 250, 300);f.addWindowListener(new winclose();Panel p = new Panel();f.setLayout(new BorderLayout(4, 4);f.add(p, BorderLayout.CENTER);f.add(tf, BorderLayout.NORTH);p.setLayout(new GridLayout(4, 4);p.add(one);p.add(two);p.add(three);p.add(four);p.add(five);p.add(six);p.add(seven);p.add(eight);p.add(nine);p.add(zero);p.add(add);p.add(sub);p.add(mul);p.add(div);p.add(decimal);p.add(equal);one.addActionListener(this);two.addActionListener(this);three.addActionListener(this);four.addActionListener(this);five.addActionListener(this);six.addActionListener(this);seven.addActionListener(this);eight.addActionListener(this);nine.addActionListener(this);zero.addActionListener(this);add.addActionListener(this);sub.addActionListener(this);mul.addActionListener(this);div.addActionListener(this);decimal.addActionListener(this);equal.addActionListener(this);public void actionPerformed(ActionEvent ev)if(ev.getSource()=one|ev.getSource()=two|ev.getSource()=three|ev.getSource()=four|ev.getSource()=five|ev.getSource()=six|ev.getSource()=seven|ev.getSource()=eight|ev.getSource()=nine|ev.getSource()=zero|ev.getSource()=decimal)s+=String.valueOf(Button) ev.getSource().getLabel();tf.setText(s);elseif(fa=0)a=toDouble(tf.getText();fa=1;elseb=toDouble(tf.getText();if(ev.getSource()=add|ev.getSource()=sub|ev.getSource()=div|ev.getSource()=mul)tf.setText();s=;if(ev.getSource()=add)sign=+;else if(ev.getSource()=sub)sign=-;else if(ev.getSource()=div)sign=/;else if(ev.getSource()=mul)sign=*;if(ev.getSource()=equal)if(sign=+)result=a+b;else if(sign=-)result=a-b;else if(sign=/)result=a/b;else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园防疫餐饮管理制度
- 数字版权保护机制-第3篇-洞察及研究
- 流程创新管理-第1篇-洞察及研究
- 微量元素生物地球化学-洞察及研究
- 捡到一只小鸟写物12篇范文
- 委托财务咨询服务合同书
- 《物理力学基础知识:高中物理力学课程教案》
- 职业规划与发展咨询试题
- 摄影色彩试题及答案
- 建行java外包面试题及答案
- 保洁学校管理制度
- 2025年河北省中考麒麟卷生物(三)及答案
- 2025年河北省中考麒麟卷生物(二)及答案
- 2025年中国铁路济南局集团招聘笔试冲刺题(带答案解析)
- 2025年河北省万唯中考定心卷地理(二)
- 2025年高考全国二卷英语高考真题含解析
- 2025年全国高考一卷英语真题(解析版)
- 湖南省长沙市2025年七年级下学期语文期末试卷(附参考答案)
- 农机停放场管理制度
- 2025年浙江省嘉兴市南湖区中考二模英语试题(含答案无听力原文及音频)
- T/SHPTA 071.1-2023高压电缆附件用橡胶材料第1部分:绝缘橡胶材料
评论
0/150
提交评论