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("学生\t");
for(int i=0;i<courses;i++){
System.out.print(coursesname[i]+"\t");
}
System.out.print("总分\t");
System.out.print("平均分\t");
System.out.print("排行榜");
System.out.print("\n"); 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]]+"\t"); //学生名字打印
for(int j=0;j<courses;j++){
System.out.print(score[temp[i]][j]+"\t");
} //分数打印 System.out.print(scoreSum[temp[i]]+"\t"); //总分
System.out.print((scoreSum[temp[i]]/courses)+"\t"); //平均分
System.out.print("第"+(i+1)+"名"); //名次排行
System.out.print("\n");
}
}
}

测试结果:

难点及自己的理解:

在这次实验中,遇到的最大问题在获取控制台输入的时候。

解决的时候可以通过new Scanner(System.in)创建一个Scanner,调用nextInt()方法调用获取输入的内容。相比于其他的API方法,要容易得多。

在遇到题目时,首先要对自己预期实现的目的做一个设想,根据这个设想思考如何实现的方法,在最后敲代码就要简单得多。

PSP

步骤 耗时 百分比
需求分析 30min 30
设计 20min 20
代码实现 20min 20
测试 10min 10
分析总结 20min 20

20145303 实验一 Java开发环境的熟悉(Linux + Eclipse)的更多相关文章

  1. 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)

    20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...

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

    学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...

  3. 20145203盖泽双实验一 Java开发环境的熟悉(Linux + Eclipse)

    实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...

  4. 20155235 《Java程序设计》 实验一 Java开发环境的熟悉(Linux + Eclipse)

    20155235 <Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编 ...

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

    北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 石亚鑫 学号:20162303 成绩: 2分 指导教师:娄嘉鹏 王志强 实验日期:3月17日 实验密 ...

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

    北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 王彪 学号:20162321 指导教师:娄嘉鹏 王志强 实验日期:3月25日 实验密级: 非密级 预 ...

  7. 20145219 《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)实验报告

    20145219 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA 编辑. ...

  8. #20175201 实验一 Java开发环境的熟悉(Linux + Eclipse)

    一.实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. (一)命令行下Java程序开发 1.过程 2.结果 调试代码遇到的问题: 解决 ...

  9. 20145234黄斐《Java程序设计》实验一—Java开发环境的熟悉(Linux + Eclipse)

    实验步骤 由于实验时间比较紧张,这里只有最终结果的截图 (一)命令行下Java程序开发 (二)Eclipse下Java程序开发.调试 (三)练习 实现求正整数1-N之间所有质数的功能,并进行测试 实验 ...

随机推荐

  1. Fragment、FragmentTabHost以及RadioGroup框架

    package com.dotfive.chuanbang.activity; import test.Fragment1; import test.Fragment1.OnBackListener; ...

  2. Java Swing 日历 控件

    这是我改写的网上的DateChooser代码后的作品,使用效果如图所示.用法参考备注,以及Main函数中用法. /** * * Copyright: Ares. * All Rights Reserv ...

  3. response.setContentType()的String参数及对应类型(转)

    response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据. 例如web浏览器就是通过MI ...

  4. PHP之冒号、endif、endwhile、endfor 是什么鬼?f

    解释:其实这些都是PHP的语法,只不过不常用而已,这些都是PHP流程控制的替代语法. 冒号(:)相当于是 左大括号---->{ endif.endwhile.endfor.endforeach- ...

  5. Boss Group Worker Group NioEventLoopGroup

    宜人贷蜂巢API网关技术解密之Netty使用实践 - honeycomb2017的博客 - CSDN博客 https://blog.csdn.net/honeycomb2017/article/det ...

  6. Zipline Risk and Performance Metrics

    Risk and Performance Metrics 风险和性能指标 The risk and performance metrics are summarizing values calcula ...

  7. 病毒侵袭---hdu2896(AC自动机)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2896 输入的字符是所有可见的ASCII码(共有127个)所以要注意一下: 把结果存到一个数组中,然后输 ...

  8. 19.Delete Documents-官方文档摘录

    1 插入例子 db.inventory.insertMany( [ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: & ...

  9. zabbix详解(一)

    zabbix简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供柔软的通知机制以让系统管 ...

  10. 001-linux scp文件拷贝

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...