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("学生\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)的更多相关文章
- 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)
20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...
- 实验一 Java开发环境的熟悉(Linux + Eclipse)
学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...
- 20145203盖泽双实验一 Java开发环境的熟悉(Linux + Eclipse)
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20155235 《Java程序设计》 实验一 Java开发环境的熟悉(Linux + Eclipse)
20155235 <Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编 ...
- 20162303 实验一 Java开发环境的熟悉(Linux + Eclipse)
北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 石亚鑫 学号:20162303 成绩: 2分 指导教师:娄嘉鹏 王志强 实验日期:3月17日 实验密 ...
- 20162321 实验一 Java开发环境的熟悉(Linux + Eclipse)
北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 王彪 学号:20162321 指导教师:娄嘉鹏 王志强 实验日期:3月25日 实验密级: 非密级 预 ...
- 20145219 《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)实验报告
20145219 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA 编辑. ...
- #20175201 实验一 Java开发环境的熟悉(Linux + Eclipse)
一.实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. (一)命令行下Java程序开发 1.过程 2.结果 调试代码遇到的问题: 解决 ...
- 20145234黄斐《Java程序设计》实验一—Java开发环境的熟悉(Linux + Eclipse)
实验步骤 由于实验时间比较紧张,这里只有最终结果的截图 (一)命令行下Java程序开发 (二)Eclipse下Java程序开发.调试 (三)练习 实现求正整数1-N之间所有质数的功能,并进行测试 实验 ...
随机推荐
- Android得到SD卡文件夹大小以及删除文件夹操作
float cacheSize = dirSize(new File(Environment.getExternalStorageDirectory() + AppConstants.APP_CACH ...
- Maven的安装配置及初次创建项目与java单元测试工具JUnit
Maven 安装 1.把maven安装包解压到某个位置 2.配置M2_HOME环境变量指向这个位置 3.在path环境变量中添加;%M2_HOME%\bin 配置镜像 国内的阿里云镜 ...
- 启动phpstyle Apache的80端口被win7的System PID=4的进程占用的解决方法 以及 如何在phpStyle里发布程序
学习前端是,用到Ajax,php语言,操作mysql数据库,浏览器无法解析php代码(把源码输出):原因,我之前用的是tomcat服务器写jsp,servlet,php用的是apache服务器,没有配 ...
- QBC检索和本地SQL检索
细说QBC:QBC(Query By Criteria) 查询:这种方式比较面向对象方式,因为是面向对象,所以查询时参数名就是所查询的类的属性名并不是数据库的表的列名重点是有三个描述条件的对象:Res ...
- Code Forces 645B Mischievous Mess Makers
It is a balmy spring afternoon, and Farmer John's n cows are ruminating about link-cut cacti in thei ...
- POJ3150—Cellular Automaton(循环矩阵)
题目链接:http://poj.org/problem?id=3150 题目意思:有n个数围成一个环,现在有一种变换,将所有距离第i(1<=i<=n)个数小于等于d的数加起来,对m取余,现 ...
- odex反编译dex异常 Cannot locate boot class path file /system/framework/core.odex
为了将ROM中system/app下的CertInstaller.odex反编译为CertInstaller.dex,输入命令: "java -jar baksmali.jar -x C ...
- MySQL给一个字段递增赋值
https://blog.csdn.net/kriszhang/article/details/72125203 首先设置一个变量,初始值为0: set @r:=0; 1 然后更新表中对应的ID列: ...
- Android技巧小结之新旧版本Notification
最近开发用到了通知功能,但有几个地方老是提示deprecated,然后就找了篇文章学习了下新旧版本的不同. Notification即通知,用于在通知栏显示提示信息. 在较新的版本中(API leve ...
- 剑指Offer——求1+2+3+...+n
题目描述: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 分析: 递归实现. 代码: class So ...