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. 17秋 软件工程 团队第五次作业 Alpha Scrum9

    17秋 软件工程 团队第五次作业 Alpha Scrum9 今日完成的任务 世强:APP后端部门申请状态: 港晨:主页面代码实现: 树民:完善超级管理员web后端: 伟航:设置页面和侧边栏的原型: 陈 ...

  2. UVA10129-Play on Words(欧拉路径)

    Problem UVA10129-Play on Words Accept: 2534  Submit: 19477 Time Limit: 3000 mSec Problem Description ...

  3. [NOI2003],[AHOI2006]文本编辑器

    嘟嘟嘟 [NOI2003]的其实就是一个板子--所以我就不说啥了. 唯一需要注意的是读入字符(哎--):题中说"中间可能有空格,请忽略"的意思是要在程序里特判掉,不是不管他-- 输 ...

  4. Difference Between InnoDb and MyISAM(个人觉着是好文章,简单易懂,推荐看)

    原文地址:http://acmeextension.com/difference-between-innodb-and-myisam/ MyISAM and InnoDB are the most c ...

  5. PAT A1123 Is It a Complete AVL Tree (30 分)——AVL平衡二叉树,完全二叉树

    An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...

  6. PAT A1132 Cut Integer (20 分)——数学题

    Cutting an integer means to cut a K digits lone integer Z into two integers of (K/2) digits long int ...

  7. POJ2387(dijkstra堆优化)

    Til the Cows Come Home Bessie is out in the field and wants to get back to the barn to get as much s ...

  8. Html5 标签一(文本)

    1.html编辑器:Sublime Text 2.标签(文本) 一 Sublime Text 作用:html编辑器. 下载地址:http://www.sublimetextcn.com/ 二 文本 总 ...

  9. redis make jemalloc

    zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directoryzmalloc.h:55:2: error: #error ...

  10. linux应用编程之进程间同步

    一.描述 在操作系统中,异步并发执行环境下的一组进程,因为相互制约关系,进而互相发送消息.互相合作.互相等待,使得各进程按一定的顺序和速度执行,称为进程间的同步.具有同步关系的一组并发进程,称为合作进 ...