zoukankan      html  css  js  c++  java
  • 20145303 实验一 Java开发环境的熟悉(Linux + Eclipse)

    20145303 实验一 Java开发环境的熟悉(Linux + Eclipse)

    实验题目(4):实现学生成绩管理功能,并进行测试

    思路:

    对于实现学生成绩管理(student performance management system)功能,我的理解是在获取到学生成绩以后,对学生进行排名并打印。
    通过利用Scanner获取控制台输入的学生姓名、人数、成绩,课程名字、数目等,然后计算总分、平均分,得到学生名次,最后输出数据。

    代码及注释:

    import java.util.Scanner;
    public class SPMS {
    	public static void main(String[] args) {
    		Scanner input=new Scanner(System.in);            			//创建一个Scanner,等待输入内容
    		
    		System.out.println("请输入学生的人数:");
    		int number=0;
    		number=input.nextInt();            			                //获取学生人数
    		
    		System.out.println("请输入课程的数目:");
    		int courses=0;
    		courses=input.nextInt();									//获取课程数目
    		
    		String [] coursesname=new String[courses];					//课程的名字(字符串)
    		for(int i=0;i<coursesname.length;i++){
    			System.out.println("请输入第"+(i+1)+"门课的名字:");
    			coursesname[i]=input.next();							//获取课程名字
    		}
    		
    		String [] name=new String[number];							//学生的名字
    		int [][] score=new int[number][courses];					//学生的科目成绩(二维数组)
    		for(int i=0;i<name.length;i++){
    			System.out.println("请输入第"+(i+1)+"个学生的名字:");
    			name[i]=input.next();									//获取学生名字
    			for(int j=0;j<coursesname.length;j++){
    				System.out.println("请输入"+name[i]+coursesname[j]+"的成绩:");
    				score[i][j]=input.nextInt();						//获取第(i+1)学生第j科目成绩
    			}
    		}
    		int sum=0;													//每个学生的成绩总分
    		int [] scoreSum=new int [number];
    		int [] ci=new int[number];									//学生的名次
    		for(int i=0;i<number;i++){
    			for(int j=0;j<courses;j++){
    				sum+=score[i][j];
    			}
    			scoreSum[i]=sum;
    			ci[i]=sum;
    			sum=0;
    		}
    		
    		for(int i=0;i<number-1;i++){
    			for(int j=i+1;j<number;j++){
    				if(ci[i]<ci[j]){
    					int temp=ci[j];
    					ci[j]=ci[i];
    					ci[i]=temp;
    				}
    					
    			}
    		}														//根据总分对名次排序
    		
    		
    		System.out.print("学生	");
    		for(int i=0;i<courses;i++){
    			System.out.print(coursesname[i]+"	");
    		}
    		System.out.print("总分	");
    		System.out.print("平均分	");
    		System.out.print("排行榜");
    		System.out.print("
    ");
    		
    		int[]  temp=new int[number];
    		for(int i=0;i<temp.length;i++){
    			for(int j=0;j<scoreSum.length;j++){
    				if(ci[i]==scoreSum[j]){
    					temp[i]=j;
    				}
    			}
    		}														//根据名次打印学生名字
    		
    		for(int i=0;i<number;i++){
    			System.out.print(name[temp[i]]+"	");				//学生名字打印
    			for(int j=0;j<courses;j++){
    				System.out.print(score[temp[i]][j]+"	");
    			}													//分数打印
    			
    			System.out.print(scoreSum[temp[i]]+"	");			//总分
    			System.out.print((scoreSum[temp[i]]/courses)+"	"); //平均分
    			System.out.print("第"+(i+1)+"名");				  //名次排行
    			System.out.print("
    ");
    		}
    	}
    }
    

    测试结果:

    难点及自己的理解:

    在这次实验中,遇到的最大问题在获取控制台输入的时候。
    解决的时候可以通过new Scanner(System.in)创建一个Scanner,调用nextInt()方法调用获取输入的内容。相比于其他的API方法,要容易得多。
    在遇到题目时,首先要对自己预期实现的目的做一个设想,根据这个设想思考如何实现的方法,在最后敲代码就要简单得多。

    PSP

    步骤 耗时 百分比
    需求分析 30min 30
    设计 20min 20
    代码实现 20min 20
    测试 10min 10
    分析总结 20min 20
  • 相关阅读:
    swift 对于NSDate日期获取年月日及其他操作
    Swift 的 NSDate 初学者指南
    swift之Mac中NSSlider的使用
    oc之mac中自定义NSSlider
    oc及swift之mac中NSPopUpButton
    swift之NSComboBox
    oc之NSComboBox输入字符时自动打开下拉菜单并匹配
    swift之Mac中NSScrollView的用法即滚动条隐藏和禁止滚动
    iOS 设置图片的透明度
    iOS 对象数组生成jsonarray
  • 原文地址:https://www.cnblogs.com/ljq007/p/5376586.html
Copyright © 2011-2022 走看看