广东海洋大学java实验4
广东海洋大学数据库原理及应用课程设计——学生信息管理系统(Java+SQL)
本科生课程设计课程名称数据库原理及应用课程设计课程编号J1670101学号学生姓名所在专业所在班级指导教师成绩教师签字年月日课程设计时间:年月日至年月日目录目录设计总说明 (I)1、需求分析 (3)2、概念结构设计 (3)3、逻辑结构设计 (4)4、物理结构设计 (4)5、系统实现 ....................................................................................... 错误!未定义书签。
5.1前台界面 .................................................................................. 错误!未定义书签。
5.2 后台实现 .................................................................................. 错误!未定义书签。
6、优缺点及自我评价....................................................................... 错误!未定义书签。
7、参考文献 (7)设计总说明(1)系统开发目的学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。
随着在校大学生人数的不断增加,教务系统的数量也不断的上涨。
学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。
并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。
然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。
所以如何自动高效地管理信息是这些年来许多人所研究的。
(2)开发内容用数据库和Java相关技术开发一个学生信息管理系统(3)开发要求能够对学生信息进行简单的添加,删除和查询(4)开发环境及工具1、操作系统:Windows 72、数据库软件:SQL Server 20083、Java开发工具:Eclipse(5)系统功能简介一、学生管理1、添加学生信息。
JAVA实验报告书
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验二数组和字符串课程名称Java程序设计课程号16232115学院(系) 数计(软件)学院专业软件工程班级学生姓名学号实验地点钟04002 实验日期17.09.26第 1 章实验二数组和字符串一.实验目的1.掌握Java中的数组定义、引用2. 掌握使用字符串String类处理字符串的方法3.掌握使用字符串StringBuffer类处理字符串的方法二.实验要求1。
编写程序,读取1到100之间的整数,然后计算每个数出现的次数。
(假设输入是以0结束的)2、编写程序,调用类ng.Math的成员方法random(),设法生成10个互不相同的小写英文字母,然后对这10个英文字母按从小到大进行排列。
输出排序前与排序后的字母序列。
三.实验心得1、利用数组的下标记录相同数字的个数,如果不为零,则输出。
输出格式为“数字:出现次数”2、用random()*26+97随机生成数值,通过ASCII码间接的将数字转换为字母。
通过冒泡排序或快速排序去实现大小排列。
while(n<10){// random的範圍是0+97<=x<1*26+97 -> 97-123num[n]=(int)(97+26*Math.random());letter[n]=(char)num[n];//将数字转换为字母n++;for(int i=0;i<n;i++){//判断有无重复if(num[i]==num[n-1]&&i!=n-1){num[n-1]=0;n--;break;}}}成绩指导教师日期注:请用A4纸书写,不够另附纸。
第页,共页。
计科1141广东海洋大学java10(实验4)解答
广东海洋大学学生实验报告书(学生用表)实验名称实验四.类的基本编程课程名称Java程序设计与开发技术课程号学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名邓超荣学号201411621110 实验地点钟海楼04017实验日期2016.10.26一实验目的:掌握Java类的基本知识及应用二实验内容:定义一个名为Complex的类实现复数概念及运算,它的UML图如下,先实现该类的相关方法,再试编写主方法来测试该类这些的方法。
GDOU-B-11-112代码:public class ComplexDemo {public static void main(String[] args) {Complex c1 = new Complex(1,2);Complex c2 = new Complex(2,3);Complex c3 = new Complex(4,-2);double c = -2;Complex sum = new Complex();sum = plexAdd(c1,c2);System.out.println("(1+2i)+(2+3i)="+sum);sum = plexAdd(c1, c);System.out.println("(1+2i)+(-2)="+sum);sum = plexAdd(c1,c2,c3);System.out.println("(1+2i)+(2+3i)+(4-2i)="+sum);Complex mid = new Complex();mid = plexMinus(c1,c2);System.out.println("(1+2i)-(2+3i)="+mid);mid = plexMinus(c1, c);System.out.println("(1+2i)-(-2)="+mid);Complex mul = new Complex();mul = plexMul(c1,c2);System.out.println("(1+2i)*(2+3i)="+mul);mul = plexMul(c1, c);System.out.println("(1+2i)*(-2)="+mul);mul = plexMul(c1,c2,c3);System.out.println("(1+2i)*(2+3i)*(4-2i)="+mul);}}class Complex {double realPart;double imaginaryPart;Complex(){} //默认构造函数Complex(double r,double i) { //带参数的构造函数realPart = r;imaginaryPart = i;}double getRealPart() { //返回实部return realPart;}void setRealPart(double d) { //设置实部realPart = d;}double getImaginaryPart() { //返回虚部return imaginaryPart;}void setImaginaryPart(double d) { //设置虚部imaginaryPart = d;}Complex complexAdd(Complex c1,Complex c2) { //复数对象与复数对象相加Complex sum = new Complex();sum.realPart = c1.realPart + c2.realPart;sum.imaginaryPart = c1.imaginaryPart +c2.imaginaryPart;return sum;}Complex complexAdd(Complex c1,double c2) { //复数对象与实数相加Complex sum = new Complex();sum.realPart = c1.realPart + c2;sum.imaginaryPart = c1.imaginaryPart;return sum;}Complex complexAdd(Complex c1,Complex c2,Complex c3) { //三个复数相加Complex sum = new Complex();sum.realPart = c1.realPart + c2.realPart +c3.realPart;sum.imaginaryPart = c1.imaginaryPart +c2.imaginaryPart + c3.imaginaryPart;return sum;}Complex complexMinus(Complex c1,Complex c2) { //复数对象与复数对象相减Complex mid = new Complex();mid.realPart = c1.realPart - c2.realPart;mid.imaginaryPart = c1.imaginaryPart -c2.imaginaryPart;return mid;}Complex complexMinus(Complex c1,double c2) { //复数对象与实数相减Complex mid = new Complex();mid.realPart = c1.realPart - c2;mid.imaginaryPart = c1.imaginaryPart;return mid;}Complex complexMul(Complex c1,Complex c2) { //复数对象与复数对象相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2.realPart -c1.imaginaryPart * c2.imaginaryPart;mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;return mul;}Complex complexMul(Complex c1,double c2) { //复数对象与实数相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2;mul.imaginaryPart = c1.imaginaryPart * c2;return mul;}Complex complexMul(Complex c1,Complex c2,Complex c3) { //三个复数相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2.realPart -c1.imaginaryPart * c2.imaginaryPart;mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;double r = mul.realPart;double i = mul.imaginaryPart;mul.realPart = r * c3.realPart - i *c3.imaginaryPart;mul.imaginaryPart = r * c3.imaginaryPart + i *c3.realPart;return mul;}public String toString() { //以a+bi的形式显示复数String s = new String();if(realPart!=0){if(imaginaryPart>0) {s = (int)realPart + "+" + (int)imaginaryPart + "i";}else if(imaginaryPart==0) {s = String.valueOf((int)realPart);}else{s= (int)realPart+ ""+ (int)imaginaryPart+ "i";}}else{if(imaginaryPart>0) {s = (int)imaginaryPart + "i";}else if(imaginaryPart==0) {s = String.valueOf(0);}else{s = (int)imaginaryPart + "i";}}return s;}}。
广东海洋大学java课程设计报告书-记事本
广东海洋大学课程设计报告成绩:评语:报告正文一,项目说明文档1.任务与内容设计一个简单的使用java语言编写的一个记事本程序,可以实现以下功能:A.文件的新建,打开,保存和另存B.对文件的编辑,如剪切,复制,粘贴,删除,还有查找替换等等C.对文本中字体的设置2.运行以及使用使用eclipse运行源程序,则可以出现:1)主界面2)点击窗口的文件按钮,可以实现打开保存等操作3)点击编辑菜单,可以实现对文本的复制粘贴剪切全选等功能4)点击编辑菜单,可以实现查找替换功能5)点击编辑菜单的全部替换功能,可以实现快速替换。
6)点击格式中的字体按钮,可以实现对文本区域的字体设置2.程序设计思路和关键数据结构在本程序中,在菜单栏上设置四大菜单,然后将相应的菜单项(功能)添加到各个菜单中,然后再具体实现各个菜单项的功能。
主要使用JButton,JFrame,Textarea (文本区),menu(创建菜单)等类和实现ActionListener,MouseListener,WindowListener等接口。
3.测试数据1)编辑菜单中的替换功能当查找文本中没有数据时,这时点击替换或全部替换,因为还没有内容,这这时会弹出一个消息对话框,提示“请先输入查找内容”。
2)编辑菜单中的查找功能打开查找菜单对话框,如果没有输入查找内容,点击查找下一个,则会弹出一个消息对话框,说“请先输入查找内容”。
4.在设计实现和测试中发现的问题以及我的解决方案1)在实现查找功能时,分为向上、向下查找,当第一次向下查找时,我们先设置rear变量为0,从头开始查找,当查找到时,对rear重新赋值,使它能够下次从正确位置开始遍历。
向上查找时,通过设置另一个变量head来控制实现。
2)在设计新建文件的类中,当用户点击新建时候,应该类中的成员变量(保存文件名,打开文件名)设为null,把是否第一次保存的标记设为false;3)在点击退出时,我们我先判断文本是否作过了改动,若改动过,看是否已经保存,保存过了,就直接退出,否则弹框提示是否保存,再点击相应的按钮进行后续的保存或不保存操作。
2020广东海洋大学大一计科下学期java期末考试考试
三、按要求实现下面方法的代码。(每题 10 分,共 20 分)
1、使用下面的方法签名编写一个方法,方法的功能是返回两个整数的最大公约数,
如 GCD(8,12)的返回值是 4。 public int GCD(int a, int b)
2、使用下面的方法签名编写一个方法,方法的功能是传入一个正整数返回该数的各
public class T1 { public static void main(String[] args) { System.out.println(MyClass.x); }
} class MyClass{
int x=10; }
第 1 页 共 6 页(A 卷)
2、 }
3、
}
public class T1 { public static void main(String[] args) { String x; System.out.println("s="+s);
}
第 2 页 共 6 页(A 卷)
6、
class AA { public AA() { System.out.println("AA"); } public AA(String x) { System.out.println("AA " + x); }
}
class BB extends AA { public BB() { System.out.println("BB"); } public BB(String x) { System.out.println("BB " + x); }
位数字和,如 SumDigital(123),返回的值是 6。 public int SumDigital(int x)
JAVA实验6答案
广东海洋大学学生实验报告书(学生用表)实验名称实验六. Java的接口与实现课程名称Java程序设计与开发技术课程号16232204学院(系) 信息学院专业计算机科学与技术班级计科学生姓名学号实验地点钟海楼04019实验日期2015年10月26日一、实验目的(1)学习掌握Java中类怎样实现接口、接口回调技术;(2)学习掌握Java 程序中面向接口的编程思想。
二、实验任务完成实验六指导上实验1、实验2、实验3的实验任务。
三、实验仪器设备和材料安装有J2SE开发工具的PC机。
四、实验内容和步骤实验1代码如下:Estimator.javainterface CompurerAverage{public double average(double x[]);}class Gymnastics implements CompurerAverage{public double average(double x[]){int count=x.length;double aver=0,temp=0;for(int i=0;i<count;i++){for(int j=i;j<count;j++){if(x[j]<x[i]){temp=x[j];x[j]=x[i];x[i]=temp;}}}for(int i=1;i<count-1;i++){GDOU-B-11-112aver=aver+x[i];}if(count>2)aver=aver/(count-2);elseaver=0;return aver;}}class School implements CompurerAverage{public double average(double[] x){int count=x.length;double sum=0;for(int i=0;i<count;i++){sum+=x[i];}return sum/count;}}public class Estimator{public static void main(String[] args){double a[]={9.89,9.88,9.99,9.12,9.69,9.76,8.97};double b[]={89,56,78,90,100,77,56,45,36,79,98};CompurerAverage computer;computer=new Gymnastics();double result=computer.average(a);System.out.printf("%n");System.out.printf("体操选手最后得分:%5.3f\n",result);computer=new School();result=computer.average(b);System.out.printf("班级考试平均分数:%-5.2f\n",result);}}运行结果:---------- JAVAC ----------Estimator.java:27: 错误: School不是抽象的, 并且未覆盖CompurerAverage中的抽象方法average(double[])class School implements CompurerAverage{^1 个错误实验2代码如下:CheckCarWeight.javainterface ComputerWeight{public double computerWeight();}class Television implements ComputerWeight{public double computerWeight(){return 10.0;}}class Computer implements ComputerWeight{public double computerWeight(){return 8.0;}}class WashMachine implements ComputerWeight{public double computerWeight(){return 35.5;}}class Truck{ComputerWeight[] goods;double totalWeihts=0;Truck(ComputerWeight[] goods){this.goods=goods;}public void setGoods(ComputerWeight[] goods){this.goods=goods;}public double getTotalWeigths(){totalWeihts=0;for(int i=0;i<goods.length;i++){totalWeihts+=goods[i].computerWeight();}return totalWeihts;}public class CheckCarWeight{public static void main(String[] args){ComputerWeight[] goods=new ComputerWeight[650];for(int i=0;i<goods.length;i++){if(i%3==0)goods[i]=new Television();if(i%3==1)goods[i]=new Computer();if(i%3==2)goods[i]=new WashMachine();}Truck truck=new Truck(goods);System.out.printf("\n货车装载的货物重量:%-8.5f kg\n",truck.getTotalWeigths());goods=new ComputerWeight[68];for(int i=0;i<goods.length;i++){if(i%2==0)goods[i]=new Television();elsegoods[i]=new WashMachine();}truck.setGoods(goods);System.out.printf("货车装载的货物重量:%-8.5f kg\n",truck.getTotalWeigths());}}运行结果:练习:class Refrigerrator implements ComputerWeight{public double computerWeight(){return 10.5;}}不需修改Truck类实验3代码如下:CheckDogState.javainterface DogState{public void showState();}class SoftlyState implements DogState{public void showState(){System.out.println("听主人的命令");}}class MeetEnemyState implements DogState{public void showState(){System.out.println("狂叫,并冲向去狠咬敌人");}}class MeetFriendState implements DogState{public void showState(){System.out.println("晃动尾巴,表示欢迎");}}class MeetAnotherDog implements DogState{public void showState(){System.out.println("嬉戏");}}class Dog{DogState state;public void show(){state.showState();}public void setState(DogState s){state=s;}}public class CheckDogState{public static void main(String[] args){Dog yellowDog=new Dog();System.out.print("狗在主人面前:");yellowDog.setState(new SoftlyState());yellowDog.show();System.out.print("狗遇到敌人:");yellowDog.setState(new MeetEnemyState());yellowDog.show();System.out.print("狗遇到朋友:");yellowDog.setState(new MeetFriendState());yellowDog.show();System.out.print("狗遇到同伴:");yellowDog.setState(new MeetAnotherDog());yellowDog.show();}}运行结果:练习:CheckWaterState.javainterface WaterState{public void showState();}class ColdState implements WaterState{public void showState(){System.out.println("固态");}}class OrdinaryState implements WaterState{ public void showState(){System.out.println("液态");}}class HotState implements WaterState{public void showState(){System.out.println("气态");}}class Water{WaterState state;public void show(){state.showState();}public void setState(WaterState s){state=s;}}public class CheckWaterState{public static void main(String[] args){Water water=new Water();System.out.print("低于0°C:");water.setState(new ColdState());water.show();System.out.print("高于0°C且低于100°C:");water.setState(new OrdinaryState());water.show();System.out.print("高于100°C:");water.setState(new HotState());water.show();}}成绩指导教师孙兵日期2015年10月30日注:请用A4纸书写,不够另附纸。
计科1141广东海洋大学java实验三
广东海洋大学学生实验报告书(学生用表)实验名称实验三数组与字符课程名称Java程序设计与开发技术课程号学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名邓超荣学号201411621110 实验地点钟海楼04017实验日期2016.10.22实验三数组与字符一实验目的:掌握Java数组的编程掌握字符串使用二实验内容:1 已知字符串:“This is a java program.”按要求编写下程序:(1)统计该字符串中字母a出现的次数(2)取出子字符串“java”,存在另一字符串中并输出。
(3)用两种方式将本字符串复制到另一个字符数组char[] str中,并输出(4)将字符串中每个单词的第一个字母变成大写,并输出整个字符串(5)用两种方式将该字符串逆序输出(用stringbuffer和for方式来实现)实验代码:package javademo2;public class Stringtest {GDOU-B-11-112public static void main(String[] args) {//问题1 统计该字符串中字母a出现的次数String s="This is a java program.";int count=0;char[] chs=s.toCharArray();for(int i=0;i<chs.length;i++){if(chs[i]=='a'){count++;}}System.out.println("a出现的次数:"+count);//问题2 取出子字符串“java”,存在另一字符串中并输出。
int index=s.indexOf("java");String ss=s.substring(index,index+4 );System.out.println(ss);//问题3 用两种方式将本字符串复制到另一个字符数组 char[] str中,并输出//方式一:char[] str=s.toCharArray();System.out.println(str);//方式二char[]str2=new char[s.length()];for(int i=0;i<str.length;i++){str2[i]=s.charAt(i);}System.out.println(str2);//问题4 将字符串中每个单词的第一个字母变成大写,并输出整个字符串//思路:先定义一个变量f用来标记是否是单词的开始位置,如果是开始位置就输出大写字母,并把f标记成false,如果遇到空格,就把f标记成true。
广东海洋大学Java图形界面实验
Java实验报告五实验名称:Java上机训练五课程名称:Java程序设计教程学院:信息学院专业:班级:学生姓名:学号:实验地点:钟海楼04004日期:2014-11-13实验五图形用户界面编程一、实验目的1、掌握常用组件的定义及使用2、理解常见的布局方式及其特点3、掌握事件处理机制二、实验要求1、编写Swing图形用户界面程序2、编写事件处理程序三、实验内容1、编写一个程序,创建如下的界面(使用FlowLayout)。
2、在上题的基础上,编写程序,使其将输入的姓名和密码插入到列表框中。
四、实验过程1、打开文本编辑器,编写下面的代码:import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.JPasswordField;import javax.swing.JTextArea;import javax.swing.JPanel;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.JButton;import java.awt.Container;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.*;public class Demo{private JLabel label1,label2,labelf1,labelf2,labelf3;private JButton button1,button2,button3;private JTextField textfield1; //文本区private JPasswordField textfield2; //密码文本框private JTextArea textarea; //文本域private JPanel panel1,panel2; //面板两个private JDialog dialog1,dialog2,dialog3;//三个错误提示对话框String nametext="#";//用于记录姓名,防止重复输入public void init(){JFrame myWindow=new JFrame("测试"); //设置窗口标题myWindow.setLocation(300,300);//设定窗口开始显示在屏幕上的初始位置myWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//使窗口可以关闭 myWindow.setSize(600,200);//设置窗口的大小myWindow.setResizable(false);//设置用户不可以改变窗口大小dialog1=new JDialog(myWindow,"错误提示",true);//提示未输入姓名dialog1.setBounds(500, 320, 150, 100);//设置对话框的尺寸dialog1.setLayout(new FlowLayout());labelf1=new JLabel("错误:未输入姓名");button1=new JButton ("确定");dialog1.add(labelf1);dialog1.add(button1);dialog1.setResizable(false);//设置用户不可以改变窗口大小dialog2=new JDialog(myWindow,"错误提示",true);//提示重复输入的错误dialog2.setBounds(500, 320, 150, 100);//设置对话框的尺寸dialog2.setLayout(new FlowLayout());labelf2=new JLabel("错误:重复输入");button2=new JButton("确定");dialog2.add(labelf2);dialog2.add(button2);dialog2.setResizable(false);//设置用户不可以改变窗口大小dialog3=new JDialog(myWindow,"错误提示",true);//提示未输入密码的错误dialog3.setBounds(500, 320, 150, 100);//设置对话框的尺寸dialog3.setLayout(new FlowLayout());labelf3=new JLabel("错误:未输入密码");button3=new JButton("确定");dialog3.add(labelf3);dialog3.add(button3);dialog3.setResizable(false);//设置用户不可以改变窗口大小Container c=myWindow.getContentPane();c.setLayout(new BorderLayout()); //设置边界布局label1=new JLabel("输入姓名",JLabel.CENTER); //设置标签1,垂直居中label2=new JLabel("输入密码",JLabel.CENTER); //设置标签2,垂直居中 textfield1=new JTextField(12); //设置文本框textfield2=new JPasswordField(12); //设置密码文本框textarea=new JTextArea(10,10); //设置文本域textarea.setLineWrap(true);//设置文本区的边界处自动换行textarea.setWrapStyleWord(true);//设置文本区在文字的边界处自动换行panel1=new JPanel();//设置面板panel2=new JPanel();panel1.add(label1);panel1.add(textfield1);panel2.add(label2);panel2.add(textfield2);JScrollPane panel3=new JScrollPane(textarea);//给文本域添加滑动条 JSplitPane sp1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,panel1,panel2);JSplitPane sp2=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true,sp1,panel3);sp1.setDividerLocation(250);//设置分隔板最初显示的位置c.add(sp2,BorderLayout.CENTER);myEvent();//添加事件处理myWindow.setVisible(true);//设置窗口可见}public void myEvent(){button1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e2){dialog1.dispose();//关闭对话框}});dialog1.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dialog1.dispose();//关闭对话框}});button2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e2){dialog2.dispose();//关闭对话框}});dialog2.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dialog2.dispose();//关闭对话框}});button3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e2){dialog3.dispose();//关闭对话框}});dialog3.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dialog3.dispose();//关闭对话框}});textfield2.addKeyListener(new KeyAdapter(){public void keyPressed(KeyEvent e1){if (e1.getKeyCode() == KeyEvent.VK_ENTER){//提示未输入姓名if((textfield1.getText()).equals(""))dialog1.setVisible(true);//提示重复输入的错误else if((textfield1.getText()).equals(nametext))dialog2.setVisible(true);//提示未输入密码的错误else if(String.valueOf(textfield2.getPassword()).equals(""))dialog3.setVisible(true);else{ nametext=textfield1.getText();//获取输入的姓名textarea.append("姓名:"+nametext);textarea.append(" ");//加10个空格来隔开姓名与密码//获取密码,注意:getPassword返回的是字符,不是字符串textarea.append("密码”+String.valueOf(textfield2.getPassword()));textarea.append("\r\n");//换行,以便下次操作}}}});}public static void main(String args[]) {Demo app=new Demo();app.init();}}运行的结果是:五、实验总结通过这次实验我学会了如何设计图形界面,我首先按照实验内容要求的界面来编写代码,发现标签、文本框与另一个之间分隔开的是分隔板,不是其他的。
广东海洋大学继承类的实验报告
System.out.print("-----------------child object--------------------\n");
System.out.print("fish: \n");
m.out(new Fish());
System.out.print("bird: \n");
{
a.act();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Mnay m = new Mnay();
Animal a = new Animal();
m.out(a);
Animal a1 = new Animal("strong");
}
}
class Bird extends Animal
{
public Bird()
{
System.out.println("I'm a bird");
}
public void act()
{
System.out.println("I can fly.");
}
}
public class Mnay
{
public void out(Animal a)
,不够另附纸。第页,共页
{
if((a[i]%2)==0)
{
n=n+a[i];
}
else m=m+a[i];
}
System.out.print("数组为:");
广东海洋大学学生软件测试实验报告书4
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验四功能测试工具QTP课程名称软件测试课程号学院(系) 信息(软件)学院专业软件工程班级学生姓名学号实验地点实验日期实验四功能测试工具QTP实验目的:1.熟悉QuickTest Professional(QTP)的安装过程2.熟悉并掌握QTP的基本原理及使用-对象的识别、检查点、参数化实验内容:1.安装QTP2.录制计算器加法运算,计算5+6,保存脚本为cal。
运行脚本,观察是否正确。
计算器对应的程序是:C:\WINDOWS\system32\calc.exe3.对脚本为cal修改,插入属性检查点检查预期结果是否为“11.”,保存脚本为checkcal。
观察运行后QTP是否能够正确判断结果对错。
4.以QTP自带的Windows应用程序flight为例。
对应的应用程序是:C:\Program Files\Mercury Interactive\QuickTestProfessional\samples\flight\app\flight4a.exe,其中AgEnt name至少为4位,password 为mercury.录制如下操作:登录并订购机票(此时不要选择航班)。
保存脚本为flight。
运行脚本,观察是否正确。
5.对登录名称进行参数化:对脚本flight修改,利用Data table数据(只用二个用户)进行参数化,保存脚本为para_name。
观察运行后QTP是否能够以相应的用户名进行登录。
1.1)先打开QTP软件,如下图操作,选择计算器进行测试图1-1-1选择Test-Record图1-1-2按Record后如下图操作,选择Windows的计算器图1-1-3 点击“确定”后,弹出以下页面图1-1-4 2)开始录放脚本(事先已将对象设置好)按照顺序输入“5+6=”,完成后按Stop图1-2-1完成后,按“Run”键,选择“确定”可以运行脚本。
计科1141广东海洋大学java10(实验4)
广东海洋大学学生实验报告书(学生用表)实验名称实验四.类的基本编程课程名称Java程序设计与开发技术课程号学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名邓超荣学号201411621110 实验地点钟海楼04017实验日期2016.10.26一实验目的:掌握Java类的基本知识及应用二实验内容:定义一个名为Complex的类实现复数概念及运算,它的UML图如下,先实现该类的相关方法,再试编写主方法来测试该类这些的方法。
GDOU-B-11-112代码:public class ComplexDemo {public static void main(String[] args) {Complex c1 = new Complex(1,2);Complex c2 = new Complex(2,3);Complex c3 = new Complex(4,-2);double c = -2;Complex sum = new Complex();sum = plexAdd(c1,c2);System.out.println("(1+2i)+(2+3i)="+sum);sum = plexAdd(c1, c);System.out.println("(1+2i)+(-2)="+sum);sum = plexAdd(c1,c2,c3);System.out.println("(1+2i)+(2+3i)+(4-2i)="+sum);Complex mid = new Complex();mid = plexMinus(c1,c2);System.out.println("(1+2i)-(2+3i)="+mid);mid = plexMinus(c1, c);System.out.println("(1+2i)-(-2)="+mid);Complex mul = new Complex();mul = plexMul(c1,c2);System.out.println("(1+2i)*(2+3i)="+mul);mul = plexMul(c1, c);System.out.println("(1+2i)*(-2)="+mul);mul = plexMul(c1,c2,c3);System.out.println("(1+2i)*(2+3i)*(4-2i)="+mul);}}class Complex {double realPart;double imaginaryPart;Complex(){} //默认构造函数Complex(double r,double i) { //带参数的构造函数realPart = r;imaginaryPart = i;}double getRealPart() { //返回实部return realPart;}void setRealPart(double d) { //设置实部realPart = d;}double getImaginaryPart() { //返回虚部return imaginaryPart;}void setImaginaryPart(double d) { //设置虚部imaginaryPart = d;}Complex complexAdd(Complex c1,Complex c2) { //复数对象与复数对象相加Complex sum = new Complex();sum.realPart = c1.realPart + c2.realPart;sum.imaginaryPart = c1.imaginaryPart +c2.imaginaryPart;return sum;}Complex complexAdd(Complex c1,double c2) { //复数对象与实数相加Complex sum = new Complex();sum.realPart = c1.realPart + c2;sum.imaginaryPart = c1.imaginaryPart;return sum;}Complex complexAdd(Complex c1,Complex c2,Complex c3) { //三个复数相加Complex sum = new Complex();sum.realPart = c1.realPart + c2.realPart +c3.realPart;sum.imaginaryPart = c1.imaginaryPart +c2.imaginaryPart + c3.imaginaryPart;return sum;}Complex complexMinus(Complex c1,Complex c2) { //复数对象与复数对象相减Complex mid = new Complex();mid.realPart = c1.realPart - c2.realPart;mid.imaginaryPart = c1.imaginaryPart -c2.imaginaryPart;return mid;}Complex complexMinus(Complex c1,double c2) { //复数对象与实数相减Complex mid = new Complex();mid.realPart = c1.realPart - c2;mid.imaginaryPart = c1.imaginaryPart;return mid;}Complex complexMul(Complex c1,Complex c2) { //复数对象与复数对象相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2.realPart -c1.imaginaryPart * c2.imaginaryPart;mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;return mul;}Complex complexMul(Complex c1,double c2) { //复数对象与实数相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2;mul.imaginaryPart = c1.imaginaryPart * c2;return mul;}Complex complexMul(Complex c1,Complex c2,Complex c3) { //三个复数相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2.realPart -c1.imaginaryPart * c2.imaginaryPart;mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;double r = mul.realPart;double i = mul.imaginaryPart;mul.realPart = r * c3.realPart - i *c3.imaginaryPart;mul.imaginaryPart = r * c3.imaginaryPart + i *c3.realPart;return mul;}public String toString() { //以a+bi的形式显示复数String s = new String();if(realPart!=0){if(imaginaryPart>0) {s = (int)realPart + "+" + (int)imaginaryPart + "i";}else if(imaginaryPart==0) {s = String.valueOf((int)realPart);}else{s= (int)realPart+ ""+ (int)imaginaryPart+ "i";}}else{if(imaginaryPart>0) {s = (int)imaginaryPart + "i";}else if(imaginaryPart==0) {s = String.valueOf(0);}else{s = (int)imaginaryPart + "i";}}return s;}}。
JAVA实验4-1答案
广东海洋大学学生实验报告书(学生用表)实验名称实验四(1). 类与对象(第1部分)课程名称Java程序设计与开发技术课程号16232204学院(系) 信息学院专业计算机科学与技术班级计科1131学生姓名彭德权学号201311621124 实验地点钟海楼04019实验日期2015年9月24日一、实验目的(1)学习使用Java中的类来封装对象的属性和功能;(2)学习掌握Java中对象的组合及参数传递。
二、实验任务完成实验三指导上实验1、实验2的实验任务。
三、实验仪器设备和材料安装有J2SE开发工具的PC机。
四、实验内容和步骤实验1 机动车编写一个Java应用程序,改程序中有两个类:Vehicle(用于刻画机动车)和User (主类)。
具体要求如实验指导所示。
代码如下:Vehicle.javapublic class Vehicle{private double speed;private int power;void speedUp(int s){this.speed=this.speed+s;}void speedDown(int s){this.speed=this.speed-s;}void setPower(int p){this.power=p;}int getPower(){return this.power;}double getSpeed(){return this.speed;}}User.javapublic class User{public static void main(String args[]){Vehicle car1,car2;GDOU-B-11-112car1=new Vehicle();car2=new Vehicle();car1.setPower(128);car2.setPower(76);System.out.println("car1的功率是:"+car1.getPower());System.out.println("car2的功率是:"+car2.getPower());car1.speedUp(80);car2.speedUp(80);System.out.println("car1目前的速度:"+car1.getSpeed());System.out.println("car2目前的速度:"+car2.getSpeed());car1.speedDown(10);car2.speedDown(20);System.out.println("car1目前的速度:"+car1.getSpeed());System.out.println("car2目前的速度:"+car2.getSpeed());}}运行结果:课后的练习(1)改进speedUp()方法,使得Vehicle类的对象加速时不能将speed值超过200。
最新广东海洋大学编译原理LL(1)文法分析器实验(java)
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验3:语法分析课程名称编译原理课程号16242211 学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名学号实验地点科425 实验日期2017.4.21一、实验目的熟悉语法分析的过程;理解相关文法的步骤;熟悉First集和Follow集生成二、实验要求对于给定的文法,试编写调试一个语法分析程序:要求和提示:(1)可选择一种你感兴趣的语法分析方法(LL(1)、算符优先、递归下降、SLR(1)等)作为编制语法分析程序的依据。
(2)对于所选定的分析方法,如有需要,应选择一种合适的数据结构,以构造所给文法的机内表示。
(3)能进行分析过程模拟。
如输入一个句子,能输出与句子对应的语法树,能对语法树生成过程进行模拟;能够输出分析过程每一步符号栈的变化情况。
设计一个由给定文法生成First集和Follow集并进行简化的算法动态模拟。
三、实验过程1:文法:E->TE’E’->+TE’|εT->FT’T’->*FT’|εF->(E)|i:2程序描述(LL(1)文法)本程序是基于已构建好的某一个语法的预测分析表来对用户的输入字符串进行分析,判断输入的字符串是否属于该文法的句子。
基本实现思想:接收用户输入的字符串(字符串以“#”表示结束)后,对用做分析栈的一维数组和存放分析表的二维数组进行初始化。
然后取出分析栈的栈顶字符,判断是否为终结符,若为终结符则判断是否为“#”且与当前输入符号一样,若是则语法分析结束,输入的字符串为文法的一个句子,否则出错若不为“#”且与当前输入符号一样则将栈顶符号出栈,当前输入符号从输入字符串中除去,进入下一个字符的分析。
若不为“#”且不与当前输入符号一样,则出错。
四、程序流程图本程序中使用以下文法作对用户输入的字符串进行分析:E→TE’E’→+TE’|εT→FT’T’→*FT’|εF→i|(E)该文法的预测分析表为:五:结果及截图1、显示预测分析表,提示用户输入字符串2、输入的字符串为正确的句子:3、输入的字符串中包含了不属于终结符集的字符4、输入的字符串不是该文法能推导出来的句子程序代码:package complier;import java.io.*;public class LL {String Vn[] = { "E", "E'", "T", "T'", "F" }; // 非终结符集String Vt[] = { "i", "+", "*", "(", ")", "#" }; // 终结符集String P[][] = new String[5][6]; // 预测分析表String fenxi[] ; // 分析栈int count = 1; // 步骤int count1 = 1;//’分析栈指针int count2 = 0, count3 = 0;//预测分析表指针String inputString = ""; // 输入的字符串boolean flag;public void setCount(int count, int count1, int count2, int count3){ this.count = count;this.count1 = count1;this.count2 = count2;this.count3 = count3;flag = false;}public void setFenxi() { // 初始化分析栈fenxi = new String[20];fenxi[0] = "#";fenxi[1] = "E";}public void setP() { // 初始化预测分析表for (int i = 0; i < 5; i++) {for (int j = 0; j < 6; j++) {P[i][j] = "error";}}P[0][0] = "->TE'";P[0][3] = "->TE'";P[1][1] = "->+TE'";P[1][4] = "->ε";P[1][5] = "->ε";P[2][0] = "->FT'";P[2][3] = "->FT'";P[3][1] = "->ε";P[3][2] = "->*FT'";P[3][4] = "->ε";P[3][5] = "->ε";P[4][0] = "->i";P[4][3] = "->(E)";// 打印出预测分析表System.out.println(" 已构建好的预测分析表");System.out.println("----------------------------------------------------------------------");for (int i=0; i<6; i++) {System.out.print(" "+Vt[i]);}System.out.println();System.out.println("----------------------------------------------------------------------");for (int i=0; i<5; i++) {System.out.print(" "+Vn[i]+" ");for (int j=0; j<6; j++) {int l = 0;if (j>0) {l = 10-P[i][j-1].length();}for (int k=0; k<l; k++) {System.out.print(" ");}System.out.print(P[i][j]+" ");}System.out.println();}System.out.println("----------------------------------------------------------------------");}public void setInputString(String input) {inputString = input;}public boolean judge() {String inputChar = inputString.substring(0, 1); // 当前输入字符boolean flage = false;if (count1 >= 0) {for (int i=0; i<6; i++) {if (fenxi[count1].equals(Vt[i])) { // 判断分析栈栈顶的字符是否为终结符flage = true;break;}}}if (flage) {// 为终结符时if (fenxi[count1].equals(inputChar)) {if (fenxi[count1].equals("#")&&inputString.length()==1) { // 栈顶符号为结束标志时// System.out.println("最后一个");String fenxizhan = "";for (int i=0; i<=P.length; i++) { // 拿到分析栈里的全部内容(滤去null)if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" " + count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.println("接受");flag = true;return true;} else {// 分析栈栈顶符号不为结束标志符号时String fenxizhan = "";for (int i=0; i<=P.length; i++) { // 拿到分析栈里的全部内容(滤去null)if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" "+count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.println("\"" + inputChar + "\"" + "匹配");// 将栈顶符号出栈,栈顶指针减一fenxi[count1] = null;count1 -= 1;if (inputString.length() > 1) { // 当当前输入字符串的长度大于1时,将当前输入字符从输入字符串中除去inputString = inputString.substring(1, inputString.length());} else { // 当前输入串长度为1时inputChar = inputString;}// System.out.println(" "+count+" "+fenxizhan+"// "+inputString +" "+P[count3][count2]);// System.out.println(count + inputChar + "匹配 ");count++;judge();}}else { // 判断与与输入符号是否一样为结束标志System.out.println(" 分析到第" + count + "步时出错!");flag = false;return false;}} else {// 非终结符时boolean fla = false;for (int i=0; i<6; i++) { // 查询当前输入符号位于终结符集的位置if (inputChar.equals(Vt[i])) {fla = true;count2 = i;break;}}if(!fla){System.out.println(" 分析到第" + count + "步时出错!");flag = false;return false;}for (int i=0; i<5; i++) { // 查询栈顶的符号位于非终结符集的位置if (fenxi[count1].equals(Vn[i])) {count3 = i;break;}}if (P[count3][count2] != "error") { // 栈顶的非终结符与输入的终结符存在产生式时String p = P[count3][count2];String s1 = p.substring(2, p.length()); // 获取对应的产生式if (s1.equals("ε")) { // 产生式推出“ε”时String fenxizhan = "";for (int i=0; i<=P.length; i++) {if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" " + count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.println(fenxi[count1] + P[count3][count2]);// 将栈顶符号出栈,栈顶指针指向下一个元素fenxi[count1] = null;count1 -= 1;count++;judge();} else { // 产生式不推出“ε”时int k = s1.length();String fenxizhan = "";for (int i=0; i<=P.length; i++) {if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" "+count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int o=0; o<farWay; o++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int o=0; o<farWay; o++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int o=0; o<farWay; o++) {System.out.print(" ");}System.out.println(fenxi[count1] + P[count3][count2]);for (int i=1; i<=k; i++) { // 将产生式右部的各个符号入栈String s2 = s1.substring(s1.length() - 1,s1.length());s1 = s1.substring(0, s1.length() - 1);if (s2.equals("'")) {s2= s1.substring(s1.length() - 1, s1.length())+ s2;i++;s1 = s1.substring(0, s1.length() - 1);}fenxi[count1] = s2;if (i < k)count1++;// System.out.println("count1=" + count1);}// System.out.println(" "+count+" "+fenxizhan+"// "+inputString +" "+P[count3][count2]);count++;// System.out.println(count);judge();}} else {System.out.println(" 分析到第" + count + "步时出错!");flag = false;return false;}}return flag;}public static void main(String args[]) {LL l = new LL();l.setP();String input = "";boolean flag = true;while (flag) {try {InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);System.out.println();System.out.print("请输入字符串(输入exit退出):");input = br.readLine();} catch (Exception e) {e.printStackTrace();}if(input.equals("exit")){flag = false;}else{l.setInputString(input);l.setCount(1, 1, 0, 0);l.setFenxi();System.out.println();System.out.println("分析过程");System.out.println("----------------------------------------------------------------------");System.out.println(" 步骤 | 分析栈 | 剩余输入串 | 所用产生式 ");System.out.println("----------------------------------------------------------------------");boolean b = l.judge();System.out.println("----------------------------------------------------------------------");if(b){System.out.println("您输入的字符串"+input+"是该文发的一个句子");}else{System.out.println("您输入的字符串"+input+"有词法错误!");}}}}}六:实验心得通过本次实验基本掌握了语法分析的原理和LL(1)语法分析方法,以及预测分析表的构造,进一步熟悉了语法分析的详细过程,收获还是蛮大的,值得我们认真对待。
计科1141广东海洋大学java实验二详解
GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表)Java程序设计与开发实验名称实验二Java流程控制课程名称门「课程号技术学院(系)数学与计算机学院专业计算机科学与技术班级 ______________钟海楼2016.10.1 学生姓名邓超荣学号201411621110实验地点实验日期04017 5一实验目的:掌握Java流程控制语句掌握字符串的定义与使用二实验内容:1、超级素数:一个n位超级素数是指一个 n位正整数,它的前1位,前2位,...,前n位均为素数,例如,7331是个4位超级素数,因为7,73, 733, 7331均为素数。
由键盘输入n (n<9),然后输出全部的1---n位超级素数.可参考下面的类 class Prime{public boolea n isPrime( Io ng nu m){ // 输入:一个长整数,若为素数则返回true,否则返回false;if (num==1) return false ;for (long i=2;i<=Math. sqrt(num);i++){if (nu m%i==0)return false;return true ; public boolean findPrime( long a){ // 判断一个数是否为超级素数 boolean flagPrime= true ;long b;b=a;while (b>=10) b=b/10;if (b==1) return false ;b=a;flagPrime= true ;while (b>0){flagPrime=flagPrime &&isPrime(b);if (flagPrime== true )b=b/10;elsebreak ;}if (flagPrime== true )return true ;elsereturn false ;实验代码:Test_01.javapackage eclipse_test5;Prime.javaimport java.util.Scanner;public class test_01 {public static void main(String[] args) { // TODO Auto-generatedmethod stub int n;Prime prime=new Prime();Scanner scan=new Scanner(System.in);System.out.println(" 请输入 N 的值 (N<9)"); n= scan.nextInt();System.out.println(" 超级素数是: "); System.out.println(" "+2);for(int i=3;i<exp(n);i=i+2){if(prime.findPrime(i)==true)System.out.println(" "+i); scan.close();}static long exp(int x){〃产生 10A x 这样的数long num=1;if(x>9) x=9;for(int i=1;i<=x;i++){num=num*10;}return num;}}import java.util.Scanner;//超级素数class Prime{public boolean isPrime(long num){ // 输入:一个长整数,若为素数则返回true,否则返回false;if(num==1) return false;for(long i=2;i<=Math.sqrt(num);i++){if(num%i==0)} return true;}public boolean findPrime(long a){ // 判断一个数是否为超级素数 boolean flagPrime=true;long b;b=a;while(b>=10) b=b/10;if (b==1) return false;b=a;flagPrime=true;while(b>0){flagPrime=flagPrime &&isPrime(b);if(flagPrime==true)b=b/10;elsebreak;}if (flagPrime==true)return true;else}运行结果请输入N的值(N<9)2超圾素数是:23572329313753597173792•编写一加密程序,要求从键盘上输入一个字符串,然后输出加密后的字符串。
JAVA实验1答案
广东海洋大学学生实验报告书(学生用表)实验名称实验一.熟悉Java编程开发环境课程名称Java程序设计与开发技术课程号16232004学院(系) 信息学院专业计算机科学与技术班级计科学生姓名学号实验地点钟海楼04019实验日期2015年9月14日一、实验目的(1)学习掌握开发Java应用程序的三个步骤;(2)学习同时编译多个Java源文件。
二、实验任务完成实验一指导上实验1、实验2的实验任务。
三、实验仪器设备和材料安装有J2SE开发工具的PC机。
四、实验内容和步骤实验1 一个简单的应用程序编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,欢迎学习Java”和“We are students”。
代码如下:Hello.javapublic class Hello{public static void main(String[] args) {System.out.println("你好,欢迎学习Java");A a=new A();a.fA();}}class A{void fA(){System.out.println("We are students");}}运行结果:GDOU-B-11-112试验后的练习(1)编译器怎样提示丢失大括号的错误。
Hello.java:16: 错误: 解析时已到达文件结尾(2)编译器怎样提示语句丢失分号的错误。
Hello.java:15: 错误: 需要';'(3)编译器怎样提示将System写成system这一错误。
Hello.java:5: 错误: 程序包system不存在(4)编译器怎样提示将String写成string这一错误。
Hello.java:3: 错误: 找不到符号实验2 联合编译编写4个源文件:MainClass.java、A.java、B.java、C.java,每个源文件只有一个类。
广东海洋大学学生报告书
GDOU-B-11-112广东海洋大学学生实验报告书实验名称实验6:异常处理课程名称Java程序设计2 成绩学院(系)软件学院专业计算机软件工程班级学生姓名学号实验地点实验日期实验目的:1.掌握Java异常的概念和类型;2.掌握Java的异常处理机制;3.掌握Java人工抛出异常和自定义异常方法;实验内容:1.下面的代码在运行过程中会出现异常,就使用异常捕捉处理机制使得下列代码能够运行到正常的终点结束。
public class Exc1{static void subroutine( ){int d=0;int a=10/d;}public static void main(String[] args){Exc1.subroutine( );System.out.println(“程序正常结束”);}}2.下面代码在顺序执行的过程中可能会发生多种类型的异常,用多个catch语句捕获处理具体异常(不要使用笼统父类Exception),使程序代码能够正常运行到终点结束。
public class Exc2{public static void main(String[] args){int a=args.length;System.out.println(“\n参数个数为:”+a);int b=42/a;int c[]={1};c[2]=10;System.out.println(“程序运行结束”);}}指导教师日期注:请用A4纸书写,不够另附纸。
第页,共页3. P194页第4题,写出程序的运行结果,说明输出该结果的原因;对程序做少量修改使得输出的结果是“abcdmn”;程序的修改要求如下,所有的System.out.println()语句位置不能改变。
可修改或移动其它的部分语句,也可增加语句,要求增加的语句不超过2行。
4. 测试以下的程序,运行时分别用0个,1个和2个参数测试,写出程序的运行结果。
掌握try-catch语句的嵌套使用。
实验4+IO
信息工程学院Java语言课内实习报告(2013~2014学年第二学期)实习题目:实验四输入输出流姓名:学号:专业:年级班级:实习4 输入输出流一、实习目的(1) 掌握输入输出流的总体结构;(2) 掌握流的概念;(3) 了解各种流的使用。
二、实习设计过程实验题1编写一个Java Application程序,打印命令行输入的所有参数。
运行结果:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JTextArea;public class mytxt extends JFrame implements ActionListener{ JTextArea jta=null;JMenuBar jmb=null;JMenu jm=null;JMenuItem jmi1=null;JMenuItem jmi2=null;public static void main(String[] args) {// TODO Auto-generated method stubmytxt mu=new mytxt();}public mytxt(){jta=new JTextArea();jmb=new JMenuBar();jm=new JMenu("文件");jmi1=new JMenuItem("打开");jmi1.addActionListener(this);jmi1.setActionCommand("open");jmi2=new JMenuItem("保存");jmi2.addActionListener(this);jmi2.setActionCommand("save");//把JMenu添加到JMenuBarjmb.add(jm);jm.add(jmi1);jm.add(jmi2);//把JMenuBar添加到窗口上this.setJMenuBar(jmb);this.add(jta);this.setSize(400,300);this.setLocation(500,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);this.setResizable(true);}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getActionCommand().equals("open")){//System.out.print("打开");JFileChooser jfc=new JFileChooser();jfc.setDialogTitle("请选择......");//选择默认方式 nulljfc.showOpenDialog(null);//显示对话框jfc.setVisible(true);String filename=jfc.getSelectedFile().getAbsolutePath();System.out.println(filename);FileReader fr=null;BufferedReader br=null;try{fr=new FileReader(filename);br=new BufferedReader(fr);String str="";String strall="";while((str=br.readLine())!=null){strall+=str+"\r\n";}jta.setText(strall);}catch (Exception e1){e1.printStackTrace();}finally{try{fr.close();br.close();}catch (IOException e1){e1.printStackTrace();}}}else if(e.getActionCommand().equals("save")){//System.out.println("save")JFileChooser jfc=new JFileChooser();jfc.setDialogTitle("另存为......");jfc.showSaveDialog(null);jfc.setVisible(true);String filename=jfc.getSelectedFile().getAbsolutePath();FileWriter fw=null;BufferedWriter bw=null;try{fw=new FileWriter(filename);bw=new BufferedWriter(fw);bw.write(jta.getText());}catch(IOException e1){e1.printStackTrace();}finally{try{bw.close();fw.close();}catch(IOException e1){e1.printStackTrace();}}}}}实验题2阅读下面程序,叙述其功能。
广东海洋大学java课程设计报告书-记事本
广东海洋大学课程设计报告成绩:评语:报告正文一,项目说明文档1.任务与内容设计一个简单的使用java语言编写的一个记事本程序,可以实现以下功能:A.文件的新建,打开,保存和另存B.对文件的编辑,如剪切,复制,粘贴,删除,还有查找替换等等C.对文本中字体的设置2.运行以及使用使用eclipse运行源程序,则可以出现:1)主界面2)点击窗口的文件按钮,可以实现打开保存等操作3)点击编辑菜单,可以实现对文本的复制粘贴剪切全选等功能4)点击编辑菜单,可以实现查找替换功能5)点击编辑菜单的全部替换功能,可以实现快速替换。
6)点击格式中的字体按钮,可以实现对文本区域的字体设置2.程序设计思路和关键数据结构在本程序中,在菜单栏上设置四大菜单,然后将相应的菜单项(功能)添加到各个菜单中,然后再具体实现各个菜单项的功能。
主要使用JButton,JFrame,Textarea (文本区),menu(创建菜单)等类和实现ActionListener,MouseListener,WindowListener等接口。
主界面文件编辑格式帮助3.测试数据1)编辑菜单中的替换功能当查找文本中没有数据时,这时点击替换或全部替换,因为还没有内容,这这时会弹出一个消息对话框,提示“请先输入查找内容”。
2)编辑菜单中的查找功能打开查找菜单对话框,如果没有输入查找内容,点击查找下一个,则会弹出一个消息对话框,说“请先输入查找内容”。
4.在设计实现和测试中发现的问题以及我的解决方案1)在实现查找功能时,分为向上、向下查找,当第一次向下查找时,我们先设置rear变量为0,从头开始查找,当查找到时,对rear重新赋值,使它能够下次从正确位置开始遍历。
向上查找时,通过设置另一个变量head来控制实现。
2)在设计新建文件的类中,当用户点击新建时候,应该类中的成员变量(保存文件名,打开文件名)设为null,把是否第一次保存的标记设为false;3)在点击退出时,我们我先判断文本是否作过了改动,若改动过,看是否已经保存,保存过了,就直接退出,否则弹框提示是否保存,再点击相应的按钮进行后续的保存或不保存操作。
广东海洋大学-java历年考题及答案
《 Java 程序设计 》课程试题 课程号: 9500437 √ 考试 □ A 卷 √ 闭卷□ 考查 □ B 卷 □ 开卷 题 号 一 二 三 四 五 六 七 八 九 十 总分 阅卷教师 各题分数 40 20 10 5 5 20 实得分数 一、单项选择题(20题;每题2分,共40分) 1、以下对于标识符的描述有误的是___。
A )常量用大写字母,变量用小写字母 B ) JAVA 的标识符严格区分大小写 C )第一个字符不是数字 D )标识符中任何位置都不能用数字 答案:D (难度系数C )知识点:变量 2、在HTML 中,用________标签来强制显示Applet 。
A ) name,height,width B )codebase, height,width C ) code ,name D ) code, height,width 答案:D (难度系数B )知识点:小应用程序 3、在Applet 程序的自定义的Applet 子类中,在Applet 的界面中显示文字、图形和其他界面元素,常常重载的方法是。
A )start( )B )stop( )C )paint( )D )init( )4、创建一个标识有“关闭”按钮的语句是___。
A ) TextField b = new TextField(“关闭”);B ) Label b = new Label(“关闭”);C ) Checkbox b = new Checkbox(“关闭”);D ) Button b = new Button(“关闭”);答案:D (难度系数C )知识点:GUI 编程 班级: 计科1141姓名:阿稻学号:007试题共页 加白纸张密封线5、在编写异常处理的Java程序中,每个catch语句块都应该与___语句块对应,使得用该语句块来启动Java的异常处理机制。
A)if – else B)switch C)try D)throw答案:C(难度系数B)知识点:异常6、以下关于循环语句描述正确的是___。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)
实验名称类的综合运用课程名称 Java 程序设计课程号16232105学院(系) 信息学院专业计算机科学与技术班级
学生姓名XXX 学号20 实验地点钟04002 实验日期
实验目的:
(1)掌握类的继承,实现构造函数的继承。
(2)多态,通过相同的方法名实现不同的功能
实验内容:
1、有一个shape接口,利用该接口来编写求解不同的几何图形(矩型,正
方形,圆)的周长、面积的应用程序(其中正方形是矩形的子类),要求用到继承、多态、抽象类、接口、内部类等面向对象程序设计技术的来编程。
Interface shape{
Public double perimeter();
Public double area();
}
放自己的程序代码
import java.util.Scanner;
interface Shape{ //定义一个接口
public double perimeter();
public double area();
}
abstract class line{ //定义一个长度抽象类
double r=0;
}
class Juxing implements Shape{ //矩形的类定义
double c=0;
double h=0;
Juxing(){}
Juxing(double a){ //多态
h=a;
}
Juxing(double a,double b){ //多态
c=a;
h=b;
}
public double perimeter(){ //重写,求矩形周长double z=(c+h)*2;
return z;
}
public double area(){ //重写,求矩形面积double s=c*h;
return s;
}
}
class Square extends Juxing{ //继承,定义正方形的类 Square(double a){
super(a);
}
}
class Circle extends line implements Shape{ //继承,定义圆的类 jisuan A=new jisuan();
Circle(double y){
r=y;
}
class jisuan{ //内部计算类
jisuan(){}
double zhouchang(){
double l=2*3.14*r;
return l;
}
double mianji(){
double s1=3.14*r*r;
return s1;
}
}
public double perimeter(){ //求圆的周长
return A.zhouchang();
}
public double area(){ //求圆的面积
return A.mianji();
}
}
public class Shiyan4 {
public static void main(String[] args){
System.out.print("请输入矩形的长和宽:");
Scanner input = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);
double ai = input.nextInt(); // 输入
double bi = input2.nextInt(); //输入
Juxing J=new Juxing(ai,bi);
ai=J.perimeter();
System.out.print("矩形的周长为:"+ai+'\n');
bi=J.area();
System.out.print("矩形的面积为:"+bi+'\n');
System.out.print("请输入正方形的边长:");
Scanner input3 = new Scanner(System.in);
double ci = input3.nextInt();
Square S=new Square(ci);
ci=S.perimeter();
System.out.print("正方形的周长为:"+ci+'\n');
ci=S.area();
System.out.print("正方形的面积为:"+ci+'\n');
System.out.print("请输入一个圆的半径:");
Scanner input4 = new Scanner(System.in);
double di = input4.nextInt();
Circle C=new Circle(di);
di=C.perimeter();
System.out.print("圆的周长为:"+di+'\n');
di=C.area();
System.out.print("圆的面积为:"+di+'\n');
}
}
运行结果或截图
2 设计一个抽象类CompareObject,其中定义一个抽象方法compareTo()
用于比较两个对象。
然后设计一个类Posisition从CompareObject类派生,该类有x和y两个成员变量表示坐标,该类实现compareTo()方法,用比较两个Posisition对象到原点(0,0)的距离之差。
放自己的程序代码
import java.util.Scanner;
abstract class CompareObject{ //定义抽象类
abstract int compareTo(Posisition a,Posisition b);
}
class Posisition extends CompareObject{ //定义Posisition类int x;
int y;
Posisition(){
x=0;
y=0;
}
Posisition(int a,int b){
x=a;
y=b;
}
int compareTo(Posisition a,Posisition b){
int ci;
int ai=a.x*a.x+a.y*a.y;
int bi=b.x*b.x+b.y*b.y;
ai=(int) Math.sqrt(ai);
bi=(int) Math.sqrt(bi);
ci=ai-bi;
if(ci<0)
{ci=0-ci;}
return ci;
}
}
public class Sy4 {
public static void main(String[] args){
System.out.print("创建点A,请输入横坐标和纵坐标:");
Scanner input = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);
int ai = input.nextInt(); // 输入
int bi = input2.nextInt();
Posisition A=new Posisition(ai,bi);
System.out.print("创建点B,请输入横坐标和纵坐标:");
Scanner input3 = new Scanner(System.in);
Scanner input4 = new Scanner(System.in);
int ci = input3.nextInt(); // 输入
int di = input4.nextInt();
Posisition B=new Posisition(ci,di);
int C=pareTo(A, B);
System.out.print("A("+ai+","+bi+")点和B("+ci+","+di+")点到原点的距离之差为:"+C);
}
}
运行结果或截图
成绩指导教师日期
注:请用A4纸书写,不够另附纸。
第页,共页。