广东海洋大学(java实验9)
广东海洋大学java实验4

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()用于比较两个对象。
计科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;}}。
广东海洋大学学生软件测试实验报告书6

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验六综合测试课程名称软件测试课程号学院(系) 信息(软件)学院专业软件工程班级学生姓名学号实验地点实验日期实验六综合测试实验目的:能够综合运用多种测试方法对某个应用程序进行测试;实验内容:阅读关于StudentInfoSystem系统的相关文件,系统运行直接点击:“StudentInfoSystem最终版本”->release-> buildlog。
(正确的用户名:admin 密码:dzxsz)1.静态测试:分析StudentInfoSystem系统涉及的类及方法。
确定哪个方法是重要的方法,需要进行重点测试。
分析这些方法存在的不足之处。
下图是VS2008 sp1生成的类图:比较重要的方法都涉及都目录名字的检查和验证。
从“校验并导出”按钮函数CStudentInfoSystemDlg::OnBnClickedExportBtn()开始,先检查目录是否为空,若符合则可以自动导出到相应文件夹;CStudentInfoSystemDlg::BeginCheck(LPVOID Lpvoid),检查目录下是否有对应文件;CheckManager::DoCheck(vector<ErrorInfo *> &errorInfoArray)检查是否有excel文件,对应班照片目录;ExcelReader::isExcelLegal(vector< ErrorInfo*> & errorInfoArray,CString picDir)检查Excel文件内容是否符合规则,以及照片文件名字的正确性;不足:个人认为,ExcelReader::isExcelLegal(vector< ErrorInfo*> & errorInfoArray,CString picDir)函数中功能比较复杂,函数命名意义就是检查Excel文件是否符合规定,但该函数还实现了检查照片名字格式和照片名字是否和Excel文件相对应。
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,每个源文件只有一个类。
计科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();}}运行的结果是:五、实验总结通过这次实验我学会了如何设计图形界面,我首先按照实验内容要求的界面来编写代码,发现标签、文本框与另一个之间分隔开的是分隔板,不是其他的。
广东海洋大学学生软件测试实验报告书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”键,选择“确定”可以运行脚本。
广东海洋大学_计算机科学与技术_汇编实验2

实验2 建立运行汇编语言程序实验目的:1. 熟悉8088/8086的数据传送和算术运算指令的书写格式、功能。
2. 编写源程序,掌握汇编语言程序格式。
3. 掌握汇编、连接、运行汇编程序的全过程;使用DEBUG调试和运行汇编程序。
实验内容:在硬盘E中建立自己的文件夹,以“班级姓名”命名(比如计科1111张三),实验文件以“实验次数-序号”命名,比如sy2-1.asm。
1、有3个内存单元x, ,y z,其中x=1234h,y=0c3f6h,z=10c5h,请编写源程序,计算x+ 2z -y,结果保存在z单元中,并用debug调试运行查看结果,观察标志位变化。
由图中红色部分可看出: 标志位从NC变为CY,即进位值从0变为1.2、写一个完整的源程序,用DEBUG调试运行,查看运行结果。
DATA SEGMENTAUGEND DD 99251SUM DD?DATA ENDSEXTRA SEGMENTADDENG DQ-15962EXTRA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:EXTRASTART:MOV AX,DATAMOV DS,AXMOV DX,EXTRAMOV ES,DXMOV AX,WORD PTR AUGENDMOV DX,WORD PTR AUGEND+2ADD AX,WORD PTR AUGENDADC DX,WORD PTR AUGEND+2MOV WORD PTR SUM,AXMOV WORD PTR SUM+2,DXMOV AH,4CHINT 21HCODE ENDS3、完成实验教程第一章的内容。
学习字符串处理指令(课本P75)和DOS显示字符串功能调用(课本P335),理解实验教程例题1.1的程序。
实验报告要求:1、将程序1的调试运行查看结果的过程截图,并分析标志位值的变化情况。
解: 如上图所示.2、分析一个完整的汇编语言源程序应由哪些部分组成?解: 一个完整的汇编语言源程序由: 数据段,代码段.程序指令,中断指令四部分组成.3、总结汇编源程序从编写到执行的过程。
计科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。
Java实验4报告

广东海洋大学学生实验报告书(学生用表)实验名称实验1.Java开发环境J2SE 课程名称Java程序设计课程号16232105 学院(系) 信息学院专业计算机科学与技术班级计科1091学生姓名杨伟学号200911621129 实验地点科技楼423实验日期2011年9月26日一、实验目的(1)掌握类的定义和使用。
(2)掌握对象的声明和使用。
(3)掌握构造函数的概念和使用。
(4)掌握类及其成员的访问控制符。
二、实验任务(1)阅读下的程序,在main()方法里添加语句完成如下的功能:1)创建一个MyValue类的对象myValue。
2)为myValue对象中的value域赋值10。
3)使用getValue()方法获得myValue对象中的数据并将它打印在屏幕上。
class MyValue{private int value;public void setValue(int x){value=x;}public int getValue(){return value;}}public class UseValue{public static void main(String[] args){}}(2)试编写java代码实现一个计数器类Counter,其中包含:1)域counterValue 用来保存计数器的当前值;2)方法increment()计数器加一;3)方法decrement()计数器减一;4)方法reset()计数器清零。
GDOU-B-11-112对于这个类,你计划定义几个构造函数?(3)使用计数器类,编程管理会议室投影仪的出借情况:每新购入或收回一台投影仪,计数器加一;每淘汰或借出一台投影仪,计数器减一。
(4)编程实现矩形类,其中应包括计算矩形周长和面积的方法。
要求你的定义更好地满足面向对象程序设计中信息隐藏和封装的原则?对于这个类,你计划定义几个构造函数?(5)使用矩形类,编程统计若干块土地的相关信息。
JAVA实验3答案

广东海洋大学学生实验报告书(学生用表)实验名称实验三、分支与循环语句课程名称Java程序设计与开发技术课程号学院(系) 信息学院专业计算机科学与技术班级计科学生姓名学号实验地点钟海楼04019实验日期2015年9月22日一、实验目的(1)学习掌握Java中的if-else if-else多分支语句;(2)学习使用Java 程序中的if-else分支与while循环语句解决问题。
二、实验任务完成实验三指导上实验1、实验2的实验任务。
三、实验仪器设备与材料安装有J2SE开发工具的PC机。
四、实验内容与步骤实验1 回文数编写一个Java应用程序。
用户从键盘输入一个1~9999之间的数,程序将判断这个数就是几位数,并判断这个数就是否就是回文数。
代码如下:Number、javaimport java、util、Scanner;public class Number{public static void main(String args[]){int number=0,d5,d4,d3,d2,d1;Scanner reader=new Scanner(System、in);System、out、println("输入一个1至99999之间的数");number=reader、nextInt();if(number>=1&&number<=99999){d5=number/10000;d4=number%10000/1000;d3=number%1000/100;d2=number%100/10;d1=number%10;if(d5!=0){GDOU-B-11-112System、out、println(number+"就是5位数");if(d5==d1&&d4==d2){System、out、println(number+"就是回文数");}else{System、out、println(number+"不就是回文数");}}else if(d4!=0){System、out、println(number+"就是4位数");if(d4==d1&&d3==d2){System、out、println(number+"就是回文数");}else{System、out、println(number+"不就是回文数");}}else if(d3!=0){System、out、println(number+"就是3位数");if(d3==d1){System、out、println(number+"就是回文数");}else{System、out、println(number+"不就是回文数");}}else if(d2!=0){System、out、println(number+"就是2位数");if(d2==d1){System、out、println(number+"就是回文数");}else{System、out、println(number+"不就是回文数");}}else if(d1!=0){System、out、println(number+"就是1位数");System、out、println(number+"就是回文数");}}else{System、out、printf("\n%d不在1至99999之间",number);}}}运行结果:课后的练习(1)程序运行时,用户从键盘输入2332,程序提示怎样的提示。
广东海洋大学学生软件测试实验报告书3

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验三白盒测试课程名称软件测试课程号学院(系) 信息(软件)学院专业软件工程班级学生姓名学号实验地点实验日期实验三白盒测试实验目的:1.掌握白盒测试原理和测试方法2.使用白盒测试的逻辑测试和基本路径测试法设计测试用例实验内容:1.画出如下程序段的程序流程图,分别用最少的测试用例完成语句覆盖、判定覆盖、条件覆盖、条件组合覆盖和路径覆盖的测试用例设计。
void test(int x, int y){if (x>0 && y>10) y=y/x;if(x<-10 || y<0) y=-(y+x);}解题:语句覆盖:使得程序中每个语句至少都能被执行一次。
用例分析:abd 用例格式[输入:(x , y) 输出:(x , y) ] 可以一次执行路径,但是条件1与条件2明显是互斥的。
所以必须要两个路径测试用例,例如abe 和ade用例设计:abe 路径:[输入:(1, 11) 输出:(1,11)]ade 路径:[输入:(-11, -1) 输出:(-11,12)]判定覆盖:使得程序中每个判定至少为TRUE 或FALSE各一次。
也就是必须经过每个判定一次。
用例分析:条件1与条件2明显是互斥的。
两个路径测试用例,例如abe 和ade用例设计:abe 路径:[输入:(1, 11) 输出:(1,11)] 第一个判定为true 第二个判定为falseade 路径:[输入:(-11, -1) 输出:(-11,12)] 第一个判定为false 第二个判定为true条件覆盖:使得判定中的每个条件获得各种可能的结果。
用例分析:判定一:x>0,x≦0;y>10,y≦10判定二:x<-10,x≧-10;y<0,y≧0 ;其中【x>0和x≧-10】【x≦0和x<-10】为一对条件【y>10和y≧0】【y≦10和y<0】为一对条件;所以可以给出的测试组合是:【x>0和x≧-10】【y>10和y≧0】以及【x≦0和x<-10】【y≦10和y<0】或【x>0和x≧-10】【y≦10和y<0】以及【x≦0和x<-10】【y>10和y≧0】用例设计:[输入:(1, 11) 输出:(1,11)] abe[输入:(-11, -1) 输出:(-11,12)] ade或[输入:(1, -1) 输出:(1,0)] ade[输入:(-11, 11) 输出:(-11,0)] ace条件组合覆盖:使得每个判定中条件的各种可能组合都至少出现一次。
最新广东海洋大学编译原理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)语法分析方法,以及预测分析表的构造,进一步熟悉了语法分析的详细过程,收获还是蛮大的,值得我们认真对待。
广东海洋大学andriod应用软件开发实习报告

ห้องสมุดไป่ตู้东海洋大学课程实习
④ 删除录像:点击相应录像列表中的录像文件,然后弹出的对话框中 点击删除,确定后即可删除录像文件。
3.2.2 非功能性需求 ① 客户端界面设计美观大方,给人良好的审美效果。 ② 系统稳定运行不出错。
四、系统概要设计
4.1 系统架构图
4.2 系统部署图
5
广东海洋大学课程实习
五、系统详细设计
Activity 模块 MainActivity 模块 CameraResourceActivity ReCordSourceActivity ReCordAudioActivity ReCordAudioResourceActivity AudioReadViewActivity AboutActivity 主界面 照相界面 录音界面 录像界面 录像资源管理界面 录像播放界面 关于界面
3.2 需求分析
3.2.1 功能性需求 拍照: ① 开始拍照:用户进入应用后,点击拍照按钮后,应用可以进入拍照 界面,然后用户可以自定义的进行拍照操作,拍完照后即将拍好的照片保 存在手机的 SD 卡中。 ② 浏览照片:用户进入应用后,点击浏览按钮后,应用将调用系统的 图库功能, 通过系统的图库功能即可查看本应用刚刚拍的照片。 查看图片, 可以对图片进行旋转,放大等操作。 ③ 上传照片:用户进入应用后,点击上传按钮后,应用将通过网络与 服务器相连,把自己想上传到服务器的照片上传到服务器的相应位置,然 后将照片在服务的具体信息保存在数据库中。 ④ 删除照片:用户通过系统的图库查看照片,在查看照片的过程中可 以利用图库的功能对图片进行删除相应的照片。
1
广东海洋大学课程实习
广铁集团乘务通软件系统开发 ——拍照录像录音模块
广东海洋大学学生报告书

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语句的嵌套使用。
广东海洋大学JAVA历年考题-答案(完善放心版)

注:文档及答案由阿稻想洋洋完善上传提供,如有疑问或不妥之处,请自行解决或联系师兄我。
《 Java 程序设计 》课程试题 课程号: 9500437 √ 考试 □ A 卷 √ 闭卷 □ 考查 □ B 卷 □ 开卷一、单项选择题(20题;每题2分,共40分) 1、以下对于标识符的描述有误的是_D __。
A ) 常量用大写字母,变量用小写字母 B ) JAVA 的标识符严格区分大小写 C ) 第一个字符不是数字(以字母,$,下划线开头) D ) 标识符中任何位置都不能用数字 答案:D (难度系数C )知识点:变量 2、在HTML 中,用______D __标签来强制显示Applet 。
A ) name,height,width B )codebase, height,width C ) code ,name D ) code, height,width 答案:D (难度系数B )知识点:小应用程序 3、在Applet 程序的自定义的Applet 子类中,在Applet 的界面中显示文字、图形和其他界面元素,常常重载的方法是 C 。
A )start( )B )stop( )C )paint( )D )init( )4、创建一个标识有“关闭”按钮的语句是D ___。
A ) TextField b = new TextField(“关闭”);B ) Label b = new Label(“关闭”);C ) Checkbox b = new Checkbox(“关闭”);D ) Button b = new Button(“关闭”); 班级: 计科1141姓名: 阿稻学号:007试题共页 加白纸张密封线答案:D(难度系数C)知识点:GUI编程5、在编写异常处理的Java程序中,每个catch语句块都应该与_C__语句块对应,使得用该语句块来启动Java的异常处理机制。
A)if – else B)switch C)try D)throw答案:C(难度系数B)知识点:异常6、以下关于循环语句描述正确的是D___。
广东海洋大学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)在点击退出时,我们我先判断文本是否作过了改动,若改动过,看是否已经保存,保存过了,就直接退出,否则弹框提示是否保存,再点击相应的按钮进行后续的保存或不保存操作。
广东海洋大学_计算机科学与技术_数据库实验1

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验1数据库及其对象创建与管理课程名称数据库原理及应用课程号16732201 学院(系) 信息学院专业计算机科学与技术班级1113学生姓名学号实验地点科技楼实验日期2013-3-31实验一数据库及其对象的创建与管理一、实验目的1、掌握用SSMS或Transact-SQL语句创建、查看、修改、删除数据库的方法;2、掌握数据库的备份和恢复方法;3、掌握数据库的分离和附加方法;4、掌握用SSMS或Transact-SQL语句创建、修改、删除表及向其添加数据的方法。
二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验内容1.(1).建立一个学生课程数据库StudentIF EXISTS(SELECT*FROM sys.databasesWHERE NAME='Student')DROP DATABASE StudentGOCREATE DATABASE StudentON PRIMARY(NAME=Student_dat,FILENAME='D:\Student_dat.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=10%)LOG ON(NAME=Student_log,FILENAME='D:\Student_log.ldf',SIZE=5MB,FILEGROWTH=10%)GO(2)再修改学生课程数据库Student的主数据文件的大小,使其扩大两倍ALTER DATABASE Studentname=Student_dat,size=30MB)GO2.(1)创建如下四个表:1) 创建S表:CREATE TABLE S(Sno INT PRIMARY KEY,Sname CHAR(10)NOT NULL UNIQUE,Ssex CHAR(2)CHECK(Ssex='男'OR Ssex='女'),Sage SMALLINT,Sdept CHAR(20)NULL DEFAULT'计算机系');2)创建Course表:CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(10)NOT NULL,Tno INT NOT NULL);3)创建SC表:CREATE TABLE SC(Sno INT FOREIGN KEY REFERENCES S(Sno),Cno CHAR(4)FOREIGN KEY REFERENCES Course(Cno),Grade INT CHECK( Grade>=0 AND Grade<=100 ));4)创建Teacher表:CREATE TABLE Teacher(Tno INT PRIMARY KEY,Tname CHAR(10),Sdept CHAR(20)NULL DEFAULT'计算机系');(2) 用SSMS修改将刚才所创建表:①在Course表中插入如下两列:ALTER TABLE SC ADD Cpno CHAR(4);ALTER TABLE SC ADD Ccredit INT NOT NULL;②将SC表中列Grade的类型改为smallintALTER TABLE SC DROP CONSTRAINT CK__SC__Grade__164452B1; --必须先删除约束,再修改列属性ALTER TABLE SC ALTER COLUMN Grade SMALLINT;③在S表中创建CHECK约束,约束名为Sagechk,要求实现年龄在15~45取值④在Course表中创建外键约束,约束名为Fk_Tno,要求实现Course表中的Tno必须参照Teacher表的Tno取值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九简单记事本编辑设计一、实验目的:熟悉Swing组件及相关方法:掌握常用Swing组件的菜单的使用方法、组件的事件监听方法以及主要布局管理器的使用。
本实验需4学时二、实验内容:编写如下图的一个记事本,并可实现图中列出的功能。
截图:代码:package notetest;import java.awt.CheckboxMenuItem; import java.awt.Color;import java.awt.FileDialog;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.MenuShortcut;import java.awt.TextArea;import java.awt.Toolkit;import java.awt.Window;import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection;import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;public class notebook {// 记事本的具体实现类private static final long serialVersionUID = 1L; //序列化时保持版本的兼容性private TextArea content;private String filePath = "";//先让路径为空Color color=Color.red;Toolkit toolKit = Toolkit.getDefaultToolkit(); //获取默认工具包。
Clipboard clipboard = toolKit.getSystemClipboard();//获取系统Clipboard 的一个实例,作为本机平台提供的剪贴板工具的接口。
public notebook(){//创建一个JFrame对象;并设置相关属性final JFrame jf = new JFrame("记事本");//设置窗口jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);jf.setBounds(100,100,500,500);jf.setResizable(true); //设置此窗体是否可由用户调整大小jf.setVisible(true);//创建菜单栏MenuBar menu = new MenuBar();jf.setMenuBar(menu);//将此窗体的菜单栏设置为指定的菜单栏。
//创建并添加文本区,具有指定的文本,以及指定的行数、列数和滚动条可见性content = new TextArea("",50,50,TextArea.SCROLLBARS_VERTICAL_ONLY);//只创建并显示垂直滚动条jf.add(content); //添加文本区content.setVisible(true);content.requestFocusInWindow();//菜单栏添加内容Menu filemenu =new Menu("文件");Menu editmenu =new Menu("编辑");Menu formatmenu = new Menu("格式");Menu aboutmenu = new Menu("关于");menu.add(filemenu);menu.add(editmenu);menu.add(formatmenu);menu.add(aboutmenu);//创建文件菜单上的各个菜单项并添加到菜单上MenuItem newitem = new MenuItem("新建");newitem.setShortcut(new MenuShortcut(KeyEvent.VK_N,false)); // 设置快捷键filemenu.add(newitem);MenuItem openitem = new MenuItem("打开");openitem.setShortcut(new MenuShortcut(KeyEvent.VK_O,false));filemenu.add(openitem);MenuItem saveitem = new MenuItem("保存");saveitem.setShortcut(new MenuShortcut(KeyEvent.VK_S,false));filemenu.add(saveitem);filemenu.addSeparator(); //将一个分隔线或连字符添加到菜单的当前位置。
MenuItem exititem = new MenuItem("退出");exititem.setShortcut(new MenuShortcut(KeyEvent.VK_X,false));filemenu.add(exititem);//添加监听器来实现文件菜单上的各个菜单项的功能//新建菜单项的功能实现newitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String con = content.getText();if(!con.equals("")){//文本域里文本不为空int result = JOptionPane.showConfirmDialog(null, ("是否要保存?"),("保存文件"),JOptionPane.YES_NO_CANCEL_OPTION);if(result == JOptionPane.NO_OPTION){//不保存content.setText("");}else if(result == JOptionPane.CANCEL_OPTION){//取消新建}else if(result == JOptionPane.YES_OPTION)//选择保存{JFileChooser jfc = new JFileChooser();//用于选择保存路径的文件名int bcf = jfc.showSaveDialog(jf); // 弹出一个"Save File" 文件选择器对话框。
if(bcf == JFileChooser.APPROVE_OPTION){try {//保存文件BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(jfc.getSelectedFile().getAbsolutePath()+".txt")));filePath = jfc.getSelectedFile().getAbsolutePath()+".txt";//获取文件保存的路径bfw.write(con);//向文件写出数据bfw.flush();bfw.close();//关闭输出流} catch (IOException ex) {Logger.getLogger(notebook.class.getName()).log(Level.SEVERE, null, ex);}new notebook();//新建文本文件}}}}});//打开菜单项的功能实现openitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {FileDialog dialog = new FileDialog(jf,"打开",FileDialog.LOAD);//创建一个具有指定标题的文件对话框窗口,用于加载或保存文件。
dialog.setVisible(true);filePath = dialog.getDirectory()+ dialog.getFile();// 获取此文件对话框的目录和选定文件//System.out.println(filePath);if(dialog.getDirectory()!=null&&dialog.getFile()!=null){File file = new File(filePath);jf.setTitle(dialog.getFile()+"-记事本");StringBuilder sb = new StringBuilder();try{BufferedReader br = new BufferedReader (new FileReader(file));String str = null;while ((str = br.readLine()) != null){sb.append(str).append("\n");}content.setText(sb.toString()); //变成字符串br.close();}catch(FileNotFoundException e1){e1.printStackTrace();}catch(IOException e1){e1.printStackTrace();}}}});//保存菜单项的功能实现saveitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {if(filePath.equals("")){//没有路径时JFileChooser jfc = new JFileChooser();//用于选择保存路径的文件名int bcf = jfc.showSaveDialog(jf);//弹出保存窗口if(bcf == JFileChooser.APPROVE_OPTION){try {//保存文件BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(jfc.getSelectedFile().getAbsolutePath()+".txt")));filePath =jfc.getSelectedFile().getAbsolutePath();bfw.write(content.getText());//向文件写出数据bfw.flush();bfw.close();//关闭输出流} catch (IOException ex) {Logger.getLogger(notebook.class.getName()).log(Level.SEVERE, null, ex);}}}else{//路径不为空时,保存在原来的路径下try {//保存文件BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(filePath)));bfw.write(content.getText());//向文件写出数据bfw.flush();bfw.close();//关闭输出流} catch (IOException ex) {Logger.getLogger(notebook.class.getName()).log(Level.SEVERE, null, ex);}}}});// 退出菜单项的功能实现exititem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {Object[] options = { "确定", "取消" };int option = JOptionPane.showOptionDialog(null, "您确定要退出吗?","退出提示",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null,options, options[0]);if(option == JOptionPane.OK_OPTION){System.exit(0);}}});//创建编辑菜单上的各个菜单项并添加到菜单上MenuItem cutitem = new MenuItem("剪切");cutitem.setShortcut(new MenuShortcut(KeyEvent.VK_X,false));editmenu.add(cutitem);MenuItem copyitem = new MenuItem("复制");copyitem.setShortcut(new MenuShortcut(KeyEvent.VK_C,false));editmenu.add(copyitem);MenuItem pasteitem = new MenuItem("粘贴");pasteitem.setShortcut(new MenuShortcut(KeyEvent.VK_V,false));editmenu.add(pasteitem);MenuItem finditem = new MenuItem("查找");finditem.setShortcut(new MenuShortcut(KeyEvent.VK_F,false));editmenu.add(finditem);MenuItem replaceitem = new MenuItem("替换");replaceitem.setShortcut(new MenuShortcut(KeyEvent.VK_H,false));editmenu.add(replaceitem);editmenu.addSeparator();//复选菜单项MenuItem allitem = new MenuItem("全选");allitem.setShortcut(new MenuShortcut(KeyEvent.VK_A,false));editmenu.add(allitem);//添加监听器来实现编辑菜单上的各个菜单项的功能//剪切菜单项的功能实现cutitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String text = content.getSelectedText();//返回此文本组件所表示文本的选定文本StringSelection selection = new StringSelection(text);clipboard.setContents(selection, null);//将剪贴板的当前内容设置到指定的对象if(text.length() == 0){return;}else{content.replaceRange("", content.getSelectionStart(),content.getSelectionEnd());}//用指定替换文本替换指定开始位置与结束位置之间的文本}});//复制菜单项的功能实现copyitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String text = content.getSelectedText();StringSelection selection = new StringSelection(text);clipboard.setContents(selection, null);}});//粘贴菜单项的功能实现pasteitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {Transferable contents = clipboard.getContents(this);String str =null;try {str = (String) contents.getTransferData(DataFlavor.stringFlavor);} catch (UnsupportedFlavorException e1) {e1.printStackTrace();} catch (IOException e1) {e1.printStackTrace();}if (str == null)return;try {content.replaceRange(str,content.getSelectionStart(),content.getSelectionEnd());}catch (Exception e1) {e1.printStackTrace();}}});//查找菜单项的功能实现finditem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {final JDialog dialog = new JDialog(jf,"查找字符串...",true);dialog.setBounds(560,250,310,130);JLabel find = new JLabel("请输入字符串:");final JTextField findtext = new JTextField(1);JButton jbu = new JButton("查找");dialog.setLayout(null);find.setBounds(10,30,90,20);findtext.setBounds(100,30,90,20);jbu.setBounds(200,30,80,20);dialog.add(find);dialog.add(findtext);dialog.add(jbu);jbu.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {String text = content.getText();String str = findtext.getText();int end = text.length();int len = str.length();int start = content.getSelectionEnd();if(start == end){start = 0;}for(;start<=end-len;start++){if(text.substring(start,start+len).equals(str)){content.setSelectionStart(start);content.setSelectionEnd(start+len);return;}}//若找不到待查字符串,则将光标置于末尾content.setSelectionStart(end);content.setSelectionEnd(end);}});dialog.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dialog.dispose();}});dialog.setResizable(false);dialog.setVisible(true);}});//替换菜单项的功能实现replaceitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {final JDialog dialog = new JDialog(jf,"字符串替换...",true);dialog.setBounds(560,250,310,180);final JLabel tihuan = new JLabel("请输入要替换的字符串:");JLabel mubiao = new JLabel("请输入替换后的字符串:");JTextField jtf1 = new JTextField(10);JTextField jtf2 = new JTextField(10);JButton jb = new JButton("替换");dialog.setLayout(null);tihuan.setBounds(10,30,150,20);mubiao.setBounds(10,70,150,20);jtf1.setBounds(160,30,110,20);jtf2.setBounds(160,70,110,20);jb.setBounds(100,110,80,20);dialog.add(tihuan);dialog.add(mubiao);dialog.add(jtf1);dialog.add(jtf2);dialog.add(jb);final String text = content.getText();final String str1 = tihuan.getText();final String str2 = mubiao.getText();jb.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {if(content.getSelectedText().equals(tihuan.getText())){content.replaceRange(str2,content.getSelectionStart(),content.getSelectionEnd());}else {int end=text.length();int len=str1.length();int start=content.getSelectionEnd();if(start==end) start=0;for(;start<=end-len;start++){if(text.substring(start,start+len).equals(str1)){content.setSelectionStart(start);content.setSelectionEnd(start+len);return;}}//若找不到待查字符串,则将光标置于末尾content.setSelectionStart(end);content.setSelectionEnd(end);}}});dialog.setResizable(false);dialog.setVisible(true);}});//全选菜单项的功能实现allitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {content.selectAll();}});//时间菜单项的功能实现//创建格式菜单上的各个菜单项并添加到菜单上CheckboxMenuItem lineturnitem = new CheckboxMenuItem("自动换行(W)");formatmenu.add(lineturnitem);formatmenu.addSeparator();MenuItem worditem = new MenuItem("字体(F)");formatmenu.add(worditem);worditem.setEnabled(true);formatmenu.addSeparator();//添加监听器来实现格式菜单上的各个菜单项的功能//自动换行菜单项的功能实现//字体菜单项的功能实现MenuItem aboutboxitem = new MenuItem("关于记事本(A)");aboutmenu.add(aboutboxitem);//aboutmenu.addSeparator();//添加监听器来实现帮助菜单上的各个菜单项的功能//关于记事本菜单项的功能实现aboutboxitem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(jf,"版本 6.0","版本信息", RMATION_MESSAGE);}//调出对话框,它显示使用由messageType 参数确定的默认图标的message});//关闭程序事件jf.addWindowListener(new WindowAdapter(){//程序关闭时的方法public void windowClosing(WindowEvent e){int option = JOptionPane.showConfirmDialog(null, "您确定关闭吗?","关闭提示",JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);if(option == JOptionPane.OK_OPTION){((Window) e.getComponent()).dispose();System.exit(0);}}});}public static void main(String[] args){new notebook();}public static long getSerialversionuid() {return serialVersionUID;}}。