https://github.com/jzjaerui/Individual-Project/blob/master/TestSushu1

 

《程序设计实践I》

题目:            判断素数                 

 

学校:齐鲁工业大学      

学院:信息学院           

班级:计科(高职)13-1  

学号:201303014034       

姓名:郑丁鹏             

 

 

 

 

 

 

 2015 年  4  月 28 日

实践一基础程序设计实践

一、实践目的

1、掌握基本输入输出。

2、掌握方法定义与调用,理解参数传递方式。

3、掌握数组的声明、定义与初始化,数组的处理。

4、掌握数组作为方法参数和返回值。

二、实践要求

利用方法、数组、基本输入输出等Java基础知识,给出所选项目的基本设计与实现。

三、项目需求

所选项目名称:判断素数

判断一个给定整数是否为素数。要求将判断过程用方法实现,并利用该方法打印输出前100个素数。

四、项目设计方案

为完成项目功能,主要需实现哪些类,对每个类的数据域、方法、构造方法,不同类之间的关系等进行描述,并用UML图表示出来。

TestSushu1

InputStreamReader

isPrimeNumber

main

IOException

BufferedReader

五、核心算法详细设计

对于每个类的主要方法,给出其详细设计的核心算法,如:

1、一次性打印输出前100个素数

根据试验内容可知,此次做的是判断一个给定整数是否为素数,并且要求判断过程用方法实现,利用该方法打印输出前100个素数,:

public static boolean isPrimeNumber(int number) {

for (int j = 2; j <= Math.sqrt(number); j++) {

if (number % j == 0) {

return false;

}

}

return true;

}

}

int num = 1;

int count1 = 2;{

while (count1 < 100) {

if (isPrimeNumber(num)) {

count1++;

System.out.println(num);

}

num++;

}

}

2、判断答案正确性;功能测试

给用户提示输入信息及判断并输出结果!程序结构如下:

System.out.println("请输入一个数字: ");

BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));

String strLine;

int input =0;

int count =0;

try{

strLine = buff.readLine();

input =Integer.parseInt(strLine);

}catch(IOException e){System.out.println("I/O ERR!");}

catch(NumberFormatException e){System.out.println("num format ERR!");}

if(input==1||input ==0)

{

System.out.println(input+"不是素数 ");

}

if(input==2)

{

System.out.println(input+"是素数 ");

}

for(int i=2;i<input;i++)

{

if(input%i==0)

{

System.out.println(input+"不是素数! ");break;

}

count++;

if(count==input-2)

{

System.out.println(input+"是素数! ");

}

}

}

要判断一个整数N是否是素数,只要判定在2到9之间是否有因子就可以了,将N对1到9循环取模,若不为零则表示此数是素数,否则不是素数。

运用java.io包中的BufferedReader类接收用户的整数输入,所以首先创建一个BufferedReader实例。

BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));

运用BufferedReader类中的readLine()方法整行读取保存位String类型,将其转换位int整形厚运用Math类的sqrt()方法取得其平方根,再用上面判断素数的方法进行判断。

程序应先判断用户输入的是否正确,然后程序在用户输入的范围之间循环使用上面的判断素数的方法,将是素数的整数输。

六、完整源码

完整源码:给出完整的源代码。如:

package jae;

/**

文件:TestSushu1.java

功能:判断素数--判断一个给定整数是否为素数。要求将判断过程用方法实现,并利用该方法打印输出前100个素数。

*/

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class TestSushu1 {

public static void main(String [] args)

{

int num = 1;

int count1 = 2;{

while (count1 < 100) {

if (isPrimeNumber(num)) {

count1++;

System.out.println(num);

}

num++;

}

}

System.out.println("请输入一个数字: ");

BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));

String strLine;

int input =0;

int count =0;

try{

strLine = buff.readLine();

input =Integer.parseInt(strLine);

}catch(IOException e){System.out.println("I/O ERR!");}

catch(NumberFormatException e){System.out.println("num format ERR!");}

if(input==1||input ==0)

{

System.out.println(input+"不是素数 ");

}

if(input==2)

{

System.out.println(input+"是素数 ");

}

for(int i=2;i<input;i++)

{

if(input%i==0)

{

System.out.println(input+"不是素数! ");break;

}

count++;

if(count==input-2)

{

System.out.println(input+"是素数! ");

}

}

}

public static boolean isPrimeNumber(int number) {

for (int j = 2; j <= Math.sqrt(number); j++) {

if (number % j == 0) {

return false;

}

}

return true;

}

}

七、使用说明与运行结果截图

使用说明:运行程序,自动打印输出前100个素数;然后根据提示输入数字,程序进行自动判断,并输出判断结果。

运行结果截图:

八、实践总结

在实际操作中,第一次没有输出前一百个素数,后来经过改正后,程序运行成功。

掌握了基本输入输出;掌握方法定义与调用,理解参数传递方式;掌握数组的声明、定义与初始化,数组的处理;掌握数组作为方法参数和返回值。

TestSushu1的更多相关文章

随机推荐

  1. 多个Activity和Intent

    Intent是Android应用程序组件之一,在Android系统当中表示一种意图,Intent中包含了一组信息: 最重要的内容是action(动作)和data(数据) Component name ...

  2. python第四十五课——继承性之多继承

    测试模块 演示多继承的结构和使用: 子类:Child 直接父类(多个):Father.Mother 注意: 由于有多个直接父类,多个父类都要自己给其属性赋值, 避免混淆,我们使用类名.__init__ ...

  3. 通过set-context 控制namespace 进行隔离

    kubernetes RBAC  需要了解 rules  roles  subjects  rolebindings(role绑定) rules 是一组操作 verbs .资源 . api组. 如果只 ...

  4. 卡尔曼滤波跟踪 opencv

    0 卡尔曼OPENCV 预测鼠标位置 卡尔曼滤波不要求信号和噪声都是平稳过程的假设条件.对于每个时刻的系统扰动和观测误差(即噪声),只要对它们的统计性质作某些适当的假定,通过对含有噪声的观测信号进行处 ...

  5. YOLO2 (3) 快速训练自己的目标

    1快速训练自己的目标 在 YOLO2 (2) 测试自己的数据 中记录了完整的训练自己数据的过程. 训练时目标只有一类 car. 如果已经执行过第一次训练,改过一次配置文件,之后仍然训练同样的目标还是只 ...

  6. 转 jeecg3.5中多数据源的配置

    官方微信有介绍通过web界面配置的方法:浅谈jeecg多数据源的使用,没试过不知道能不能用. 如果要手工配置也是可以的 在spring-mvc-hibernate.xml这个配置文件中增加一个数据源, ...

  7. 运行tomcat7w.exe未安装指定的服务

    新安装了tomcat7.042,但是启动tomcat7w.exe是提示未安装指定服务,解决方法如下: 在运行窗口输入cmd,运行DOS,输入以下命令: cd E:\apache-tomcat-7.0. ...

  8. Ubuntu16.04下安装配置phpmyadmin

    在项目配置了阿里的druid,可以监控session,spring和详细sql的执行情况以及具体到表等信息,但是仍然发现不够详细,而且作为一个半吊子dba,一直用linux命令分配权限和管理数据库,效 ...

  9. spring 基于注解的@Scheduled和quartz定时器两种实现

    一.使用quartz 1.由于我的项目jar包使用的maven托管的,在pom文件中加入quartz的依赖就可以 2.配置quartz-context.xml,确保xml文件能被加载到 <?xm ...

  10. @synchronized深入理解

    @synchronized是线程同步锁,易用.可读性高. @synchronized(self) { 临界区 } 利用如下命令将其重写 clang -rewrite-objc file  得到C++实 ...