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. Linux 小知识翻译 - 「桌面环境」

    这次聊聊桌面环境. 上次聊了 X Window System 相关的内容,虽然令人意外,但X Window System 和桌面环境不是一回事.请大家稍微考虑一下. X Window System 是 ...

  2. February 3rd, 2018 Week 5th Saturday

    Life takes on the meaning that you give it. 你赋予生活什么,生活就是什么样子. I always wonder why on earth I am here ...

  3. 实用的php清除html,php去除空格与换行,php清除空白行和换行,提取页面纯文本

    实用的php清除html,换行,空格类,php去除空格与换行,php清除空白行和换行,提取页面纯文本内容 方法一: function DeleteHtml($str) { $str = trim($s ...

  4. 使用sublime编写python、php代码前的一些配置

    1.使用sublime编写python代码 打开sublime软件,Tools —> Build System —> New Build System,得到后缀名为“sublime-bui ...

  5. Spark本地运行成功,集群运行空指针异。

    一个很久之前写的Spark作业,当时运行在local模式下.最近又开始处理这方面数据了,就打包提交集群,结果频频空指针.最开始以为是程序中有null调用了,经过排除发现是继承App导致集群运行时候无法 ...

  6. Spring AOP失效之谜

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code 什么是AOP1 AOP(Aspect Oriented Programming),即面向切面编 ...

  7. solidity数据位置-memory,storage和calldata

    有三种类型,memory,storage和calldata,一般只有外部函数的参数(不包括返回参数)被强制指定为calldata.这种数据位置是只读的,不会持久化到区块链 storage存储或memo ...

  8. Mysql主从同步(复制)(转)

    文章转自:https://www.cnblogs.com/kylinlin/p/5258719.html 目录: mysql主从同步定义 主从同步机制 配置主从同步 配置主服务器 配置从服务器 使用主 ...

  9. 如何使用zabbix初级监控

    如何用zabbix监控(初步使用)? 前提:必须启动mysql 和zabbix目录下的sbin中的zabbix_agentd zabbix_server,还有nginx以及php否则会报错,因为zab ...

  10. MATLAB——线性神经网络

     这个函数默认使用最小二乘,所以不需要训练 % example5_1.m x=-:; y=*x-; % 直线方程为 randn(); % 设置种子,便于重复执行 y=y+randn(,length(y ...