第二次作业(个人项目实践)
1. 设计一个类(不妨叫做A ),实现对一维数组(a[100])的指定范围内的元素相加运算。 [课堂讲解过] 数组长度:100,范围:实验数据A列:1~100,CSV 格式则填充 前100个数据
package AAA; import java.util.Scanner; public class a { public static void main(String[]args) { int[] b= {-2574,-4010,8243,771,2447,-5197,2556,8044,3314,3617,6065,-2817,3131,6318,2186,-113,629,-2582,-37,-1520,164,2055,-5936,5912,1717,5988,4781,5757,892,-4394,8034,2213,-1080,-2080,5364,106,2657,566,3940,-5116,4583,1806,6555,2621,-7197,528,1626,18,1049,6243,3198,4397,-1325,9087,936,-6291,662,-178,135,-3473,-2385,-165,1713,-7949,-4234,1138,2212,104,6968,-3632,3801,1137,-1296,-1215,4272,6223,-5922,-7723,7044,-2938,-8180,1356,1159,-4022,-3713,1158,-8715,-4081,-2541,-2555,-2284,461,940,6604,-3631,3802,-2037,-4354,-1213,767}; int sum=0; Scanner sc = new Scanner(System.in) ; System.out.println("从第m个开始:");//<=100 int start = sc.nextInt() ; System.out.println("到第n个结束:");//<=100 int end =sc.nextInt(); System.out.println("第"+start+"个到第"+end+"个的和为:"); for(int i=start;i<=end;i++)//for语句 sum+=b[i]; System.out.println(b[start-1]+"+...+"+b[end-1]+"="+sum); } }
2. 设计一个类(不妨叫做B ),实现对二维数组(a[N][M])的指定范围内的元素相加运算。 数组长度:(N*M 约等于200),范围:实验数据A、B列:1~100,CSV格式则填充前N*M个数据;
package AAA; import java.util.Scanner; public class aa { public static void main(String[]args){ int[][] b={{-2574,-4010,8243,771,2447,-5197,2556,8044,3314,3617,6065,-2817,3131,6318,2186,-113,629,-2582,-37,-1520,164,2055,-5936,5912,1717,5988,4781,5757,892,-4394,8034,2213,-1080,-2080,5364,106,2657,566,3940,-5116,4583,1806,6555,2621,-7197,528,1626,18,1049,6243,3198,4397,-1325,9087,936,-6291,662,-178,135,-3473,-2385,-165,1713,-7949,-4234,1138,2212,104,6968,-3632,3801,1137,-1296,-1215,4272,6223,-5922,-7723,7044,-2938,-8180,1356,1159,-4022,-3713,1158,-8715,-4081,-2541,-2555,-2284,461,940,6604,-3631,3802,-2037,-4354,-1213,767},{2740,-4182,-5632,-2966,-1953,567,-8570,1046,2211,1572,-2503,-1899,3183,-6187,3330,3492,-464,-2104,316,8136,470,50,466,-1424,5809,2131,6418,-3018,6002,-8379,1433,1144,2124,1624,-602,-5518,5872,870,-5175,-3961,-427,-6284,2850,481,6175,141,-766,-1897,-748,-4248,366,4823,3003,1778,3256,2182,2253,5076,5540,-2650,2451,-1875,5482,-6881,-329,-969,-8032,-2093,612,1524,-5492,5758,-7401,-5039,3241,6338,3581,4321,-1072,4942,2131,210,-7045,-7514,7450,-1142,-2666,-4485,-639,2121,-5298,-3805,-1686,-2520,-1680,2321,-4617,-1961,2076,7309}}; int sum=0; Scanner sc = new Scanner(System.in); System.out.println("行开始x1:");//<=2 int startX = sc.nextInt(); System.out.println("行结束x2:"); int endX =sc.nextInt(); System.out.println("列开始y1:");//<=100 int startY = sc.nextInt(); System.out.println("列结束y2:"); int endY =sc.nextInt(); for(int i=startX-1;i<=endX-1;i++) { for(int j=startY-1;j<=endY-1;j++) { sum+=b[i][j]; } } System.out.println(b[startX-1][startY-1]+"+...+"+b[endX-1][endY-1]+"="+sum); } }
3.设计一个类(不妨叫做C ),实现对三维数组(a[N][M][K])的指定范围内的元素相加运算。 数组长度:(N*M*K 约等于300),范围:实验数据A、B、C列:1~100, CSV格式则填充前N*M*K个数据;
package AAA; import java.util.Scanner; public class aaa { public static void main(String[]args) { int sum=0; int[][][] c = new int[][][] { {{-2574,-4010,8243,771,2447,-5197,2556,8044,3314,3617,6065,-2817,3131,6318,2186,-113,629,-2582,-37,-1520,164,2055,-5936,5912,1717,5988,4781,5757,892,-4394,8034,2213,-1080,-2080,5364,106,2657,566,3940,-5116,4583,1806,6555,2621,-7197,528,1626,18,1049,6243,3198,4397,-1325,9087,936,-6291,662,-178,135,-3473,-2385,-165,1713,-7949,-4234,1138,2212,104,6968,-3632,3801,1137,-1296,-1215,4272,6223,-5922,-7723,7044,-2938,-8180,1356,1159,-4022,-3713,1158,-8715,-4081,-2541,-2555,-2284,461,940,6604,-3631,3802,-2037,-4354,-1213,767}}, {{2740,-4182,-5632,-2966,-1953,567,-8570,1046,2211,1572,-2503,-1899,3183,-6187,3330,3492,-464,-2104,316,8136,470,50,466,-1424,5809,2131,6418,-3018,6002,-8379,1433,1144,2124,1624,-602,-5518,5872,870,-5175,-3961,-427,-6284,2850,481,6175,141,-766,-1897,-748,-4248,366,4823,3003,1778,3256,2182,2253,5076,5540,-2650,2451,-1875,5482,-6881,-329,-969,-8032,-2093,612,1524,-5492,5758,-7401,-5039,3241,6338,3581,4321,-1072,4942,2131,210,-7045,-7514,7450,-1142,-2666,-4485,-639,2121,-5298,-3805,-1686,-2520,-1680,2321,-4617,-1961,2076,7309}}, {{302,-7944,-6551,6648,-884,-6332,1188,-248,3902,-2171,-3782,-3510,6203,-636,-4605,4497,3187,-6278,1198,-7963,7647,-3022,-8267,7995,-1998,-4171,730,-8117,-1706,7601,-2454,-6161,-1810,243,-2841,-5377,2985,2328,177,5622,3596,3057,2830,-1151,6566,2254,6972,-3060,4063,367,84,3156,3880,-1530,5272,1385,-565,-1736,1267,-3863,-229,2072,2423,-7449,9555,2844,-1278,-3613,-919,4153,-4232,4032,-5732,199,4792,2498,-3344,-4193,2650,-579,3416,-3575,1822,-6936,-2661,-1873,414,2314,6844,7613,-7844,6680,5974,2208,-3597,6302,4396,-141,-1864,1939}} }; Scanner sc = new Scanner(System.in) ; System.out.println("开始x1:");//<=3 int startX = sc.nextInt() ; System.out.println("结束x2:"); int endX =sc.nextInt(); System.out.println("开始y1:");//<=2 int startY = sc.nextInt() ; System.out.println("结束y2:"); int endY =sc.nextInt(); System.out.println("开始z1:");//<=100 int startZ = sc.nextInt() ; System.out.println("结束z2:"); int endZ =sc.nextInt(); for(int i=startX-1;i<=endX-1;i++) { for(int j=startY-1;j<=endY-1;j++) { for(int k=startZ-1;k<=endZ-1;k++) { sum+=c[i][j][k]; } } } System.out.println(c[startX-1][startY-1][startZ-1]+"+...+"+c[endX-1][endY-1][endZ-1]+"="+sum); } }
个人小结:
这次作业完成的有点迟,因为最初不懂题目的意思,后来在老师的进一步分析以及同学间的探讨中,才有了思路。
这次作业中运用了Scanner类的nextInt()方法和Java中学习过的for语句,由于先前基础没有打好,这次作业前便去翻书查看了好久。尽管老师要求我们要从文件中读取数据,但询问了周边的同学,也没有找到解决办法,所以还是借鉴了张振渊同学的方法,采取了人工导入数据。虽然之前学得并不好,但感觉每一次作业或多或少都能有点收获,并能帮助我们去温习过去学过的知识,还是挺珍惜每次作业机会的。