您的位置:首页 > 其它

《软件工程》第2次作业(1、个人项目实践)

2015-09-21 12:58 405 查看
1. 设计一个类(不妨叫做A ),实现对一维数组的指定范围内的元素相加运算。

import java.util.Scanner;     //导入scanner包,用scanner类从键盘输入数据

public class yiwei {
public static void main(String[]args)
{
int[] aa={9680,-3756,-5569,3402,4704,-6267,-2393,3191,-965,-5042,-6951,-6184,-8752,525,2144,6195,541,-3336,6904,-3130,-3261,-4770,-34,-1991,292,3703,4590,7406,2272,5190,-5336,-1521,4381,-1579,4700,269,-1059,-2249,-166,-2553,-1098,-6839,-4172,303,7838,256,-931,-5243,-51,267,-3432,2351,58,49,5963,253,3616,-7918,-4486,1256,-3305,-5528,-5891,3779,-4004,950,-8741,1864,-1158,871,-2899,5178,3183,-784,-7603,-984,-2407,-3411,-1467,4295,1271,-778,-2478,-2442,4041,-1031,1999,973,-3647,3312,-4773,2333,-719,-4644,1092,-4944,4525,3831,4107,-1816};
int sum=0;
Scanner a = new Scanner(System.in);
System.out.println("从第几个开始(<=100):");
int begin = a.nextInt() ;
System.out.println("到第几个结束(<=100):");
int over =a.nextInt();
System.out.println("第"+begin+"个元素到第"+over+"个元素的和为:");

for(int i=begin-1;i<=over-1;i++)//一定要减1,因为第一个是aa[0]
sum+=aa[i];
System.out.println(aa[begin-1]+"+...+"+aa[over-1]+"="+sum);

}
}


注:此时按照表格内行数从176~275 行

运行结果:



验证:



2. 设计一个类(不妨叫做B ),实现对二维数组的指定范围内的元素相加运算。

import java.util.Scanner;
public class erwei {
public static void main(String[]args){
int[][]b={
{9680,-3756,-5569,3402,4704,-6267,-2393,3191,-965,-5042,-6951,-6184,-8752,525,2144,6195,541,-3336,6904,-3130,-3261,-4770,-34,-1991,292,3703,4590,7406,2272,5190,-5336,-1521,4381,-1579,4700,269,-1059,-2249,-166,-2553,-1098,-6839,-4172,303,7838,256,-931,-5243,-51,267,-3432,2351,58,49,5963,253,3616,-7918,-4486,1256,-3305,-5528,-5891,3779,-4004,950,-8741,1864,-1158,871,-2899,5178,3183,-784,-7603,-984,-2407,-3411,-1467,4295,1271,-778,-2478,-2442,4041,-1031,1999,973,-3647,3312,-4773,2333,-719,-4644,1092,-4944,4525,3831,4107,-1816},
{9680,-3756,-5569,3402,4704,-6267,-2393,3191,-965,-5042,-6951,-6184,-8752,525,2144,6195,541,-3336,6904,-3130,-3261,-4770,-34,-1991,292,3703,4590,7406,2272,5190,-5336,-1521,4381,-1579,4700,269,-1059,-2249,-166,-2553,-1098,-6839,-4172,303,7838,256,-931,-5243,-51,267,-3432,2351,58,49,5963,253,3616,-7918,-4486,1256,-3305,-5528,-5891,3779,-4004,950,-8741,1864,-1158,871,-2899,5178,3183,-784,-7603,-984,-2407,-3411,-1467,4295,1271,-778,-2478,-2442,4041,-1031,1999,973,-3647,3312,-4773,2333,-719,-4644,1092,-4944,4525,3831,4107,-1816}
};
int sum=0;
Scanner bb = new Scanner(System.in);
System.out.println("从第几行开始:");//<=2
int beginI = bb.nextInt();
System.out.println("到第几行结束:");//<=2
int overI =bb.nextInt();
System.out.println("从第几列开始:");//<=100
int beginJ = bb.nextInt();
System.out.println("到第几列结束:");//<=100
int overJ =bb.nextInt();
System.out.println("第"+beginI+"行第"+beginJ+"列到第"+overI+"行第"+overJ+"列的和为:");

for(int i=beginI-1;i<=overI-1;i++)//不减1的话2会溢出
{
for(int j=beginJ-1;j<=overJ-1;j++)//不减1的话100会溢出
{
sum+=b[i][j];
}
}
System.out.println(b[beginI-1][beginJ-1]+"+...+"+b[overI-1][overJ-1]+"="+sum);
}
}


注:此时为了节约时间是把第一列的数据用了两遍

运行结果:



3. 设计一个类(不妨叫做C ),实现对三维数组的指定范围内的元素相加运算。

import java.util.Scanner;

public class sanwei {

public static void main(String[]args)
{
int sum=0;
int[][][] cc = new int[][][]
{
{{9680,-3756,-5569,3402,4704,-6267,-2393,3191,-965,-5042,-6951,-6184,-8752,525,2144,6195,541,-3336,6904,-3130,-3261,-4770,-34,-1991,292,3703,4590,7406,2272,5190,-5336,-1521,4381,-1579,4700,269,-1059,-2249,-166,-2553,-1098,-6839,-4172,303,7838,256,-931,-5243,-51,267,-3432,2351,58,49,5963,253,3616,-7918,-4486,1256,-3305,-5528,-5891,3779,-4004,950,-8741,1864,-1158,871,-2899,5178,3183,-784,-7603,-984,-2407,-3411,-1467,4295,1271,-778,-2478,-2442,4041,-1031,1999,973,-3647,3312,-4773,2333,-719,-4644,1092,-4944,4525,3831,4107,-1816},{9680,-3756,-5569,3402,4704,-6267,-2393,3191,-965,-5042,-6951,-6184,-8752,525,2144,6195,541,-3336,6904,-3130,-3261,-4770,-34,-1991,292,3703,4590,7406,2272,5190,-5336,-1521,4381,-1579,4700,269,-1059,-2249,-166,-2553,-1098,-6839,-4172,303,7838,256,-931,-5243,-51,267,-3432,2351,58,49,5963,253,3616,-7918,-4486,1256,-3305,-5528,-5891,3779,-4004,950,-8741,1864,-1158,871,-2899,5178,3183,-784,-7603,-984,-2407,-3411,-1467,4295,1271,-778,-2478,-2442,4041,-1031,1999,973,-3647,3312,-4773,2333,-719,-4644,1092,-4944,4525,3831,4107,-1816}},
{{9680,-3756,-5569,3402,4704,-6267,-2393,3191,-965,-5042,-6951,-6184,-8752,525,2144,6195,541,-3336,6904,-3130,-3261,-4770,-34,-1991,292,3703,4590,7406,2272,5190,-5336,-1521,4381,-1579,4700,269,-1059,-2249,-166,-2553,-1098,-6839,-4172,303,7838,256,-931,-5243,-51,267,-3432,2351,58,49,5963,253,3616,-7918,-4486,1256,-3305,-5528,-5891,3779,-4004,950,-8741,1864,-1158,871,-2899,5178,3183,-784,-7603,-984,-2407,-3411,-1467,4295,1271,-778,-2478,-2442,4041,-1031,1999,973,-3647,3312,-4773,2333,-719,-4644,1092,-4944,4525,3831,4107,-1816},{9680,-3756,-5569,3402,4704,-6267,-2393,3191,-965,-5042,-6951,-6184,-8752,525,2144,6195,541,-3336,6904,-3130,-3261,-4770,-34,-1991,292,3703,4590,7406,2272,5190,-5336,-1521,4381,-1579,4700,269,-1059,-2249,-166,-2553,-1098,-6839,-4172,303,7838,256,-931,-5243,-51,267,-3432,2351,58,49,5963,253,3616,-7918,-4486,1256,-3305,-5528,-5891,3779,-4004,950,-8741,1864,-1158,871,-2899,5178,3183,-784,-7603,-984,-2407,-3411,-1467,4295,1271,-778,-2478,-2442,4041,-1031,1999,973,-3647,3312,-4773,2333,-719,-4644,1092,-4944,4525,3831,4107,-1816}},
{{9680,-3756,-5569,3402,4704,-6267,-2393,3191,-965,-5042,-6951,-6184,-8752,525,2144,6195,541,-3336,6904,-3130,-3261,-4770,-34,-1991,292,3703,4590,7406,2272,5190,-5336,-1521,4381,-1579,4700,269,-1059,-2249,-166,-2553,-1098,-6839,-4172,303,7838,256,-931,-5243,-51,267,-3432,2351,58,49,5963,253,3616,-7918,-4486,1256,-3305,-5528,-5891,3779,-4004,950,-8741,1864,-1158,871,-2899,5178,3183,-784,-7603,-984,-2407,-3411,-1467,4295,1271,-778,-2478,-2442,4041,-1031,1999,973,-3647,3312,-4773,2333,-719,-4644,1092,-4944,4525,3831,4107,-1816},{9680,-3756,-5569,3402,4704,-6267,-2393,3191,-965,-5042,-6951,-6184,-8752,525,2144,6195,541,-3336,6904,-3130,-3261,-4770,-34,-1991,292,3703,4590,7406,2272,5190,-5336,-1521,4381,-1579,4700,269,-1059,-2249,-166,-2553,-1098,-6839,-4172,303,7838,256,-931,-5243,-51,267,-3432,2351,58,49,5963,253,3616,-7918,-4486,1256,-3305,-5528,-5891,3779,-4004,950,-8741,1864,-1158,871,-2899,5178,3183,-784,-7603,-984,-2407,-3411,-1467,4295,1271,-778,-2478,-2442,4041,-1031,1999,973,-3647,3312,-4773,2333,-719,-4644,1092,-4944,4525,3831,4107,-1816}}
};
Scanner c = new Scanner(System.in) ;
System.out.println("请输入beginX(<=3):");
int beginX = c.nextInt() ;
System.out.println("请输入overX(<=3):");
int overX =c.nextInt();
System.out.println("请输入beginY(<=2):");
int beginY = c.nextInt() ;
System.out.println("请输入overY(<=2):");
int overY =c.nextInt();
System.out.println("请输入beginZ(<=100):");
int beginZ = c.nextInt() ;
System.out.println("请输入overZ(<=100):");
int overZ =c.nextInt();
System.out.println("从第"+beginX+"行第"+beginY+"列第"+beginZ+"个到第"+overX+"行第"+overY+"列第"+overZ+"个的和为:");
for(int i=beginX-1;i<=overX-1;i++)
{
for(int j=beginY-1;j<=overY-1;j++)
{
for(int k=beginZ-1;k<=overZ-1;k++)//类比二维数组
{
sum+=cc[i][j][k];

}
}

}
System.out.println(cc[beginX-1][beginY-1][beginZ-1]+"+...+"+cc[overX-1][overY-1][overZ-1]+"="+sum);
}
}


运行结果:



因为这学期电脑重装了系统所以一直没有装编译软件、一直到周末才开始准备这次的编程、所以说基本是为了赶作业而边编写的程序,还有非常多需要改进的地方,希望老师加以指点。

这次编程遇到的编译问题有很多,比如第m行第n列在写循环的时候要写第m-1行第n-1列,最后的结果才对,一开始忘记了,后来用短一点的数据自己算了一下才发现的,因为每行每列开头的标识符是0而不是1,很容易忘记。

错误:



还有很多因为不小心而忽略的细节,自己以后也要加以改正。

这次完成作业前提是看了林杰的编程后有所启发、后期在编译过程中有很多地方,很多地方都是在和曹磊同学一起讨论、细节上共同探讨和完善然后得出结果。在此表示感谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: