广东海洋大学JAVA实验2
广东海洋大学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()用于比较两个对象。
实验二报告模板

广东海洋大学学生实验报告书(学生用表)实验名称实验二.软件需求分析课程名称软件工程课程号32342206 学院(系) 数学与计算机学院专业计算机科学与技术班级计科1171学生姓名李明海学号201711621116 实验地点科技楼423实验日期2019年10月23日一、实验目的(1)熟悉并掌握StarUML工具的用法;(2)理解和掌握StarUML工具用于需求分析的用法;(3)掌握面向对象分析、设计的方法二、实验任务完成实验指导上实验1、实验2、实验3的实验任务。
三、实验仪器设备和材料安装有StarUML工具的PC机。
四、实验内容和步骤任务1:完成下张幻灯片中顺序图的绘制GDOU-B-11-112任务2:请完成教学管理系统中“设置开设课程”的顺序图任务3:图书管理系统功能性需求说明如下。
图书管理系统能够为一定数量的借阅者提供服务。
每个借阅者能够拥有唯一标识其存在的编号。
图书馆向每一个借阅者发放图书证,其中包含每一个借阅者的编号和个人信息。
提供的服务包括提供查询图书信息、查询个人信息服务和预订图书服务等。
当借阅者需要借阅图书、归还书籍时,需要通过图书管理员进行,即借阅者不直接与系统交互,而是通过图书管理员充当借阅者的代理和系统交互。
系统管理员主要负责系统的管理维护工作,包括对图书、数目、借阅者的添加、删除和修改,并且能够查询借阅者、图书和图书管理员的信息。
可以通过图书的名称或图书的ISBN/ISSN号对图书进行查找。
回答下面问题:(1)该系统中有哪些参与者?(2)画出语境“借阅者预订图书”的顺序图。
答:(1)该系统中有借阅者、图书管理员、系统管理员参与者。
(2)“借阅者预订图书”的顺序图:成绩指导教师日期2019年10月28日注:请用A4纸书写,不够另附纸。
第页,共页。
广东海洋大学_计算机科学与技术_数据库实验2

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验2数据的查询、更新课程名称数据库系统原理课程号1620072学院(系) 信息学院专业计算机科学与技术班级 1113学生姓名学号实验地点科技楼实验日期04-12实验二数据的查询、更新一、实验目的1、掌握用户自定义数据类型的方法2、掌握用T-SQL语句进行数据的插入、修改、删除的方法3、熟练掌握SELECT语句,能够运用该语句完成各种查询二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验内容1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,长度为20,允许为空。
sp_addtype char20,'varchar(20)',null2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的学生表,课程表,学生选修表,并向各表插入如下相应的数据。
(1) 建立“学生课程数据库”数剧库:CREATE DATABASE学生课程数据库ON PRIMARY(NAME=Student_dat,FILENAME='D:\学生课程数据库.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=10%)LOG ON(NAME=Student_log,FILENAME='D:\学生课程数据库.ldf',SIZE=5MB,FILEGROWTH=10%)GO(2)创建学生表CREATE TABLE Student(Sno INT PRIMARY KEY,Sname CHAR(10),Ssex CHAR(2)CHECK(Ssex='男'OR Ssex='女'),Sage SMALLINT CHECK(Sage BETWEEN 15 AND 30),Sdept CHAR(20));插入数据:INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95001','李敏勇','男',20,'CS') INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95002','刘晨','女',19,'IS')INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95003','王敏','女',18,'MA')INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('95004','张立','男', 18 ,'IS');(2)创建课程表CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(10)NOT NULL,Cpno CHAR(4),Credit INT CHECK(Credit>=0 AND Credit<=100), Teacher char20);插入数据:INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(1,'数据库',5, 4,'王芳')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(2 ,'数学',NULL,2,'刘新')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(3 ,'信息系统',1,4,'刘新')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher) VALUES(4,' 操作系统', 6, 3,'高升')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(5 ,'数据结构',7, 4,'宋明')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(6 ,'数据处理',NULL,2,'张彬')INSERT INTO Course ( Cno,Cname,Cpno,Credit,Teacher)VALUES(7,'Pascal语言',6,4,'李磊');(2)创建学生选修表CREATE TABLE SC(Sno INT FOREIGN KEY REFERENCES Student(Sno),Cno CHAR(4)FOREIGN KEY REFERENCES Course(Cno), Grade INT CHECK( Grade>=0 AND Grade<=100 ), PRIMARY KEY(Sno,Cno));插入数据:INSERT INTO SC ( Sno,Cno,Grade)VALUES('95001','1',92)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95001','2',85)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95001','3',88)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95002','2',90)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95003','2',55)INSERT INTO SC ( Sno,Cno,Grade)VALUES('95004','2',70)3、用T-SQL语句,修改上面所建学生课程数据库中数据:1) 向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('95030','谢非','男',22,'CS')2) 将李敏勇的数据库的成绩改为98分UPDATE SCSET Grade=98WHERE SC.Sno IN(SELECT SC.Sno FROM Student,SCWHERE Student.Sno = SC.Sno AND Student.Sname ='李敏勇')ANDo IN(SELECT o FROM SC,CourseWHERE o = o AND ame='数据库')3) 删除学生表Student中谢非的记录并保存DELETE StudentWHERE Student.Sname ='谢非'4) 能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏, 张立两个学生的记录? DELETE StudentWHERE Student.Sname ='李敏勇'不能删除李敏勇学生的记录:“DELETE 语句与REFERENCE 约束"FK__SC__Sno__07020F21"冲突。
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纸书写,不够另附纸。
第页,共页。
广东海洋大学操作系统.实验(2)

班级:计科1141 学号:201411621110 姓名:邓超荣实验二进程间通信(信号量)实验目的了解信号量在进程控制中所起的重要作用。
实验内容父子两个进程共同完成递增正整数序列(1\2\3\4\5\6\7\8\9\10\11\12\13\14\15\16……100)的显示。
其中一个进程负责显示奇数,另一个进程显示偶数。
请分别编写“不带有信号量不能完成上述任务”和“使用信号量正确完成上述任务”的程序,观察实验结果,进行细致分析。
(1)不带有信号量不能完成上述任务1:#include <stdio.h>2:#include <stdlib.h>:3:#include <sys/types.h>:4:#include <sys/ipc.h>5:#include <sys/sem.h>:6:#include <unistd.h>7:union semun://使用union开辟空间,把定义的数据放到统一个足够大的空间8:{9: int val;//定义val,当执行SETVAL命令时使用10: struct semid_ds *buf;//定义buf,在IPC_STAT/IPC_SET命令时使用11: unsigned short *array;//在使用GETALL/SETALL命令时使用的指针12: struct seminfo *__buf;//在IPC_INFO命令时使用13:};14:int init_semvalue (int id, int v)15;{16: union semun sem_union;//调用union semun 对象17: sem_union.val = v;18: semctl (id, 0, SETVAL, sem_union);//系统调用senmctl用来执行在信号量及上的控制操作;获取关键字值id,设置信号量的数目为0;SETVAL设置信号量集中的一个单独的信号量的值。
广东海洋大学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)在点击退出时,我们我先判断文本是否作过了改动,若改动过,看是否已经保存,保存过了,就直接退出,否则弹框提示是否保存,再点击相应的按钮进行后续的保存或不保存操作。
计科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("数组为:");
广东海洋大学_计算机科学与技术_汇编实验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实验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,程序提示怎样的提示。
最新广东海洋大学编译原理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,每个源文件只有一个类。
广东海洋大学java课程设计任务书

论文(设计)任务书课程编号j1620204课程名称Java程序设计与开发技术课程设计周数 1 实施地点校内班级人数起止时间形式√集中□分散指导教师甘元驹论文(设计)进度安排设计时间为周一到周五,每天上午1-4节。
其它时间自己查资料或在宿舍编程。
周1-周2课程设计项目分析;周3-周5项目具体实现,撰写设计报告。
论文(设计)内容每个学生在后面的题目中选择一个题目作为自己的课程设计,并按照所选择的题目要求,用java语言编程实现所需的功能。
要求(包括纪律要求和报告书要求) 明确题目要求,进行相应的算法分析。
从问题中确定程序的基本功能编程与调试对设计进行系统总结,包括设计心得,收获等完成设计报告注:本表按自然班填写。
于动员时发给学生。
不够纸请另附页。
1、编写一个记事本程序要求:用图形用户界面实现。
至少应实现编辑、保存、另存为、查找替换,以及剪切、复制、粘贴等功能。
提示:使用文件输入输出流。
2、模拟赛马的比赛要求:用图形用户界面实现。
能设置比赛时间,马匹的数量等等。
用户可猜那条马会赢。
在任意时间段内马匹的速度是随机的。
开始比赛之后以动画显示赛马过程。
提示:使用多线程3、学生信息管理系统要求:使用图形用户界面用数据库建立学生信息表,比如学生基本信息,学生课程信息、学生成绩信息等。
(不限使用哪种数据库)。
通过图形界面输入学生基本数据,能连接数据库并实现查询、增加、删、改等功能。
4、图书信息管理系统要求:使用图形用户界面用数据库建立图书信息表与借书人关系的表。
(不限使用哪种数据库)能连接数据库并实现书的查询、增、删、改等功能以及借书人的相关信息表,并可限每人借书量,书到期时可提醒。
5、聊天小程序要求:使用图形用户界面。
能实现一个聊天室中多人聊天。
可以两人私聊。
提示:使用socket通信6、A TM柜员机模拟程序要求:使用图形用户界面。
当输入给定的卡号和密码()时,系统能登录A TM柜员机系统,用户可以按照以下规则进行:1、查询余额:初始余额为10000元2、A TM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
广东海洋大学学生报告书

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语句的嵌套使用。
广东海洋大学学生移动编程实验报告书2

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验二 UI界面设计课程名称移动编程技术课程号16552101学院(系) 信息(软件)学院专业软件工程班级应用1123学生姓名钟炜堂学号201211701131 实验地点钟04002 实验日期15.10.14实验二 UI界面设计实验目的:1.熟悉和掌握界面控件设计2.了解Android界面布局3.掌握控件的事件处理实验内容:1.设计一个图书选购程序,在该程序中,共有5种图书,选中图书后,单击“确定”按钮,则在屏幕的下方显示所选择的图书。
一个条目的布局文件<LinearLayoutandroid:layout_width="fill_parent"android:layout_height="20dp"android:layout_marginTop="2dp"android:orientation="horizontal"><LinearLayoutandroid:layout_height="20dp"android:layout_weight="0.7"android:gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#008c08"android:text="语文书"android:textColor="#ffffff"android:textSize="18dp"/></LinearLayout><LinearLayoutandroid:layout_height="20dp"android:layout_weight="0.3"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#8c0084"android:text="确定"android:textColor="#ffffff"/> </LinearLayout></LinearLayout>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)在点击退出时,我们我先判断文本是否作过了改动,若改动过,看是否已经保存,保存过了,就直接退出,否则弹框提示是否保存,再点击相应的按钮进行后续的保存或不保存操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)
实验名称课程名称课程号
学院(系) 专业班级
学生姓名学号实验地点实验日期
一、实验目的
掌握Java流程控制语句
掌握字符串的定义与使用
二、实验内容
1、超级素数:一个n位超级素数是指一个n位正整数,它的前1位,
前2位, . . . , 前n位均为素数,例如,7331是个4位超级素数,因为7,73,733,7331均为素数。
由键盘输入n (n<9), 然后输出全部的1---n位超级素数.
可参考下面的类
2、编写一加密程序,要求从键盘上输入一个字符串,然后输出加密后的字符串。
加密规则为对每个字母的转换为下一个字母,如对小写字母:a->b, b->c …..,y->z, z->a,对大写字母:A->B,B->C,….,Y->Z,Z->A, 对数字:0->1,1->2,…,8->9,9->0,对于空格或其它字符则不进行变换
三、实验方法及步骤
1、
import java.util.Arrays;
import java.util.Scanner;
public class SuperPrime {
/**
* 判断一个数是不是素数
* 一个大于1的自然数,如果除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数
*/
public static boolean isPrime(long num) {
if (num == 1)
return false;
for (int i = 2; i < Math.sqrt(num); i++) {
if (num % i == 0)
return false;
}
return true;
}
public static boolean findPrime(long a) {
boolean flagPrime = true;
long 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;
else
break;
}
if (flagPrime == true)
return true;
else
return false;
}
public static void Output(long a) {
long array[] = new long[9];
int j = -1;
for (long i = a; i > 0; i /= 10) {
j++;
array[j] = i;
}
/**
* array是个数组,Arrays.sort()是个排序的方法,就是对数组array进行
从小到大的排序
*/
Arrays.sort(array);
for (int k = 0; k < array.length; k++) {
if (array[k] != 0)
System.out.print(array[k] + " , ");
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.print("请输入任意一个数:");
Scanner sc = new Scanner(System.in);
long a;
a = sc.nextLong();
if (isPrime(a) == true && findPrime(a) == true) {
System.out.println("这个数是超级素数!");
System.out.print("全部的1--n位超级素数为:"); Output(a);
} else
System.out.println("这个数不是超级素数!");
}
}
2、
//import java.util.*;
import java.io.*;
public class shiyan2_2 {
public static void main(String[] args) {
while(true){//可以循环多次输入需要加密的字符
String start=null;
InputStreamReader is=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(is);
try{//输入错误判断
System.out.print("请输入需要加密的字符串:");
start=br.readLine();
}catch(Exception e){
e.printStackTrace();
}
password m=new password();
System.out.print("加密后:");
char kk[]=m.jiami(start);
System.out.println(kk);
System.out.print("解密后:");
char aa[]=m.jiemi(start);
System.out.println(aa);
}
}
}
class password{
public char[] jiami(String start){
char finish[]=new char[start.length()];
char a ;
for(int i=0;i<start.length();i++){
a=start.charAt(i);//返回指定索引处的 char 值
if('a'<=a && a<'z'){
a+=1;
}else if('A'<=a && a<'Z'){
a+=1;
}else if('0'<=a && a<'9'){
a+=1;
}else if(a=='z'){
a='a';
}else if(a=='Z'){
a='A';
}else if(a=='9'){
a='0';
}
finish[i]=a;
}
return finish;
}
public char[] jiemi(String start){
char finish[]=new char[start.length()];
char a;
for(int i=0;i<start.length();i++){
a=start.charAt(i);
if('a'<a && a<='z'){
a-=1;
}else if('A'<a && a<='Z'){
a-=1;
}else if('0'<a && a<='9'){
a-=1;
}else if(a=='a'){
a='z';
}else if(a=='0'){
a='9';
}else if(a=='A'){
a='Z';
}
finish[i]=a;
}
return finish;
}
}
四、实验结果及分析
五、实验小结
成绩指导教师日期
注:请用A4纸书写,不够另附纸。
第页,共页。