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. 【BZOJ2095】[Poi2010]Bridges 动态加边网络流

    [BZOJ2095][Poi2010]Bridges Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个 ...

  2. [SharePoint 2010] 如何在小組網站內頁面上撥放影片或是音效檔

    在SharePoint 2010中, 我們可以像是Youtube一樣在網頁上撥放影片或是音效檔案. 影片或音效是採取串流的方式來撥放. 也就是說我們不需要把整個檔案都下載回來才開始撥放. 點選沒多久我 ...

  3. ng2-file-upload上传附件同时传参

    由于业务需要,需要的场景是发某条公告的时候能够上传附件,不只是图片,图片的话可以直接用base64传给后台,但上传附件这个就不能这样干了, 与此同时,每条公告都有一个对应的唯一标识id, 附件以文件流 ...

  4. Ubuntu 16.04修改配置静态IP和DNS

    Ubuntu 16.04修改配置静态IP和DNS 1.修改interfaces 文件 sudo gedit /etc/network/interfaces 2.添加 例如: auto enp0s25 ...

  5. 每日集成CruiseControl.NET + SVN + Msbuild + NAnt

    CruiseControl.NET-1.8.4.0-Setup.exe              是服务器,安装时可以选择生成windows service以便开启,建议测试时不用windows se ...

  6. linux下安装mysql-5.7.25

    1.下载对应安装包 https://dev.mysql.com/downloads/mysql/ 2.卸载旧版本mysql 列出旧版本MySql的组件列表  rpm -qa | grep mysql ...

  7. 使用Ansible自动配置JDK环境

    1.首先安装好Ansible环境,具体步骤请见Ansible安装 2.先创建hosts文件(为后面编写脚本安装JDK做铺垫) [root@localhost /]# vi hosts [jdktest ...

  8. Oracle Java Mission Control MBean 服务器 飞行记录器

    Oracle Java Mission ControlMBean 服务器飞行记录器

  9. 01. Java序列化与反序列化简介

    Java对象的序列化与反序列化 ; 给大家讲解一下什么是序列化 & 反序列化  当两个进程进行远程通讯的时候,彼此相互可以发送各种类型的数据,如文本,图片,语音和视频等无论是任何类型,最终都会 ...

  10. 3.2 - FTP文件上传下载

    题目:开发一个支持多用户同时在线的FTP程序要求:1.用户加密认证2.允许同时多用户登录3.每个用户有自己的家目录,且只能访问自己的家目录4.对用户进行磁盘配额,每个用户的可用空间不同5.允许用户在f ...