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. P4478 [BJWC2018]上学路线

    Description 小B 所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M). 小B 家住在西南角,学校在东北角.现在有T 个路口进行施工,小B 不能通过这些路口.小B ...

  2. luogu P1858 多人背包

    嘟嘟嘟 既然让求前\(k\)优解,那么就多加一维,\(dp[j][k]\)表示体积为\(j\)的第\(k\)优解是啥(\(i\)一维已经优化掉了). 考虑原来的转移方程:dp[j] = max(dp[ ...

  3. windows下手动安装 Apache+php+mysql

    PHP 为什么先说php,因为apache的配置要写入php的一些路径 http://php.net/downloads.php  选择windows donwload 选择Thread Safe的版 ...

  4. java FTP各种操作

    package com.ailk.qw.util; import it.sauronsoftware.ftp4j.*;import org.slf4j.Logger;import org.slf4j. ...

  5. Python-2.7 : 编码问题及encode与decode

    普通的字符串在py2.7中都是以ASCII编码的,例如str=“abc”,若含有中文则会以gbk或者gb2312编码(GB2312是中国规定的汉字编码,也可以说是简体中文的字符集编码;GBK 是 GB ...

  6. java的classloader不求甚解

    先简单介绍下java的classloader,网上资料很多,就说点关键的. Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由 Java 应用开发人员编写的.系统提供的类加载器主 ...

  7. 每个大主播都是满屏弹幕,怎么做到的?Python实战无限刷弹幕!

    anmu 是一个开源的直播平台弹幕接口,使用他没什么基础的你也可以轻松的操作各平台弹幕.使用不到三十行代码,你就可以使用Python基于弹幕进一步开发.支持斗鱼.熊猫.战旗.全民.Bilibili多平 ...

  8. ADO.NET分享

    看到<c#从入门到精通(第三版)>书中对ado.net里几种方法打的比方,很有意思就发一下. 1)这张图中,把数据比作水,储存了大量数据. 2)Connection对象好像进水龙头,插在水 ...

  9. vbox虚拟机和vm虚拟机 虚拟机网络不通的解决方法

    vm网络不通的情况: 第一步 :打开物理机, 选中“计算机”*(,右键—管理—服务,找到以VM开头的服务,选中后,右键—启动,就可以了.如图: 第二步: 这样基本就可以了,如果还不行 如果重启失效了, ...

  10. SSIS ->> Excel Destination无法接受大于255个字符长度的字符字段(转载)

    从下文的链接中找到一些背景,因为Excel会以前8行作为参考,如果某个字段前8行的最长长度没有超过255个字符,就会报错.如果知道某个字段属于描述性字段,而且字段的数据长度很可能超过255个字符长度, ...