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. 三叔学FPGA系列之二:Cyclone V中的POR、配置、初始化,以及复位

    对于FPGA内部的复位,之前一直比较迷,这两天仔细研究官方数据手册,解开了心中的诸多疑惑,感觉自己又进步了呢..... 原创不易,转载请转原文,注明出处,谢谢.   一.关于POR(Power-On ...

  2. Activiti工作流搭建---初始化数据库

    Activiti介绍 Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执 ...

  3. [ADS]An installation support file could not be installed

    ADS:ARM Developer Suits 错误:An installation support file could not be installed 描述: 之前安装了一个不能用的ADS的版本 ...

  4. 泰泽智能电视(Tizen smart TV)问世

        6月2日至4日,泰泽开发人员大会(TDC)在美国洛杉矶举行,会上韓国三星公司展出了一台泰泽智能电视(原型机).        智能电视(Smart TV not to be confused ...

  5. P2347 砝码称重 (01背包)

    题目描述 设有 1g1g1g . 2g2g2g . 3g3g3g . 5g5g5g . 10g10g10g . 20g20g20g 的砝码各若干枚(其总重 ≤1000 \le 1000≤1000 ), ...

  6. linux永久配置ip地址

    vi /etc/sysconfig/network-scripts/ifcfg-eth0 i修改 DEVICE=eth() BOOTPROTO=static ONBOOT=yes IPADDR=192 ...

  7. 第一行代码 -3-1 软件也要拼脸蛋-UI界面

    <ListView android:id="@+id/list_view" android:layout_width="match_parent" and ...

  8. linux计划任务(转)

    文章转自https://blog.csdn.net/jixieyang3701/article/details/79410725 linux 系统则是由 cron (crond) 这个系统服务来控制的 ...

  9. javascript 深度克隆对象

    js一般有两种不同数据类型的值: 基本类型(包括undefined,Null,boolean,String,Number),按值传递: 引用类型(包括数组,对象),按址传递,引用类型在值传递的时候是内 ...

  10. PAT A1102 Invert a Binary Tree (25 分)——静态树,层序遍历,先序遍历,后序遍历

    The following is from Max Howell @twitter: Google: 90% of our engineers use the software you wrote ( ...