088Java课程大作业-使用线程技术完成计算1至100000之间的所有素数样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
本系统开发工具:JAVA
本设计包含内容:源代码+毕业论文+开题报告+答辩稿
论文大概:
2.1.
论述题目的需求。
根据题目所要求的,需要把1~100000之间的素数使用线程的方法计算出来,本程序把1~100000平均分成8组,即利用8个线程分别计算出个组中所包含的素数。利用线程并行运行,可以充分利用系统资源,提高程序的运行效率。
2.2.程序的功能,对各个功能及其分解成的子功能作出相应阐述。
本程序是利用多线程技术制作的一个素数计算模块,在建立线程的方法上采用了之间方式:extends
Thread,即作为线程运行的类不需要从其他类中衍生出来,可以直接从Thread类衍生出来。
2.2.1.首先需要一个计算判断何为素数的组件,即Prime.java。构造方法如下:
public Prime()
{
}
public boolean
isPrime(int X)
{
if (X ==
1)
return
false;
else
for (int Y =2; Y <=(X - 1);
Y++)
if (X % Y ==
0)
return
false;
return true;
}
}
2.2.2.然后需要一个求各线程区间素数的组件,即PrimeThread.java。线程执行的代码为:public void
run()。其线程的随机睡眠时间调至5秒。其程序如下:
try {
Thread.currentThread().sleep(
(int) (Math.random() * 5));
2.2.3.为了能把结果显示在多个面板的多行文本框中,需要一个面板组件,即DisplayPrimeJPanel.java。由于数值比较大,为了避免长时间短的等待计算结果,本程序把线程的随机睡眠时间调至1秒。其程序如下:
try
{
Thread.currentThread().sleep(
(int)(Math.random()*1));
2.2.4.为了能使用DisplayPrimeJPanel.java这个组件,还需要建立一个框架组件,即DisplayPrimeJFrame.java。同时由于使用的是八个线程,需要八个框架,为了使框架能同时展开在桌面上而不会重叠或超出桌面范围,由于本程序的开发的平台的分辨率为1280*800,故设定每个框架的大小为300*200,分两行排列,具体坐标分别为:
frame1.setLocation(50,100);
frame2.setLocation(350,100);
frame3.setLocation(650,100);
frame4.setLocation(950,100);
frame5.setLocation(50,380);
frame6.setLocation(350,380);
frame7.setLocation(650,380);
frame8.setLocation(950,380);
2.3.
绘制程序功能层次图和程序结构流程图。
2.4.本程序的开发平台为Windows
XP;
开发环境为JDK1.5;
开发软件为JBuilder2006;
1.1 三、测试分析
3.1.程序运行结果如下:
3.2.
典型测试数据的构建,说明不同的测试数据所对应的测试目的。
如果修改了线程的随机睡眠时间,则整个程序的总运行时间将会发生变化。
虽然题目的要求是1~100000之间的素数,实际上是可以根据不同的需要,设定所需的范围,只需在DisplayPrimeJFrame.java中进行修改。
3.3.
本程序的测试情况,包括各功能运作是否正常;必须包含程序各个功能的界面截图及其相应的解释。
因为本程序需要用到Prime这一组件,所以为了验证这一组件能否正常使用,特建立了PrimeDemo.java文件,
所运行的情况如下图:(设定的范围是1~100之间的素数)