广东海洋大学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();}}运行的结果是:五、实验总结通过这次实验我学会了如何设计图形界面,我首先按照实验内容要求的界面来编写代码,发现标签、文本框与另一个之间分隔开的是分隔板,不是其他的。
- 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纸书写,不够另附纸。
第页,共页。