20145223《Java程序程序设计》实验一实验报告
实验一 Java开发环境的熟悉(Windows + IDE)
实验内容
1.使用JDK编译、运行简单的Java程序;
2.使用IDE 编辑、编译、运行、调试Java程序。
实验步骤
(一)命令行下Java程序开发
(1)首先打开cmd(Windows系统下),然后输入cd\workpace进入到workspace。
(2)输入md 20145223建立一个目录名为自己学号的实验目录,再输入cd 20145223进入到实验目录中。
(3)在此目录下输入cd exp1建立实验1目录,并且输入cd exp1进入
(4)将实现写好的代码保存到exp1后,使用javac HelloJava.java编译代码
(5)编译完后,再使用java HelloJava 运行代码
(二)IDE下Java程序开发、编译、运行、调试
(1)创建一个九九乘法表的项目
(2)实验代码:
package 九九乘法;
public class 九九乘法 {
public static void main(String[] args) {
for(int i=1;i<10;i++)
{
for(int j=1;j<10;j++)
{
if(i>=j){
System.out.printf("%d*%d=%2d ",j,i,i*j);
}
}
System.out.printf("%n");
}
}
}
(3)代码调试
·当你的代码出现错误,Netbeans会在出现错误的代码最左端给你提示,并且告诉你出现的错误是什么
(4)运行程序结果:
练习
在netbeans下实现学生成绩管理功能,并进行测试。
·实验代码如下:
package 学生成绩管理系统;
import java.util.Scanner;
public class 学生成绩管理系统 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入学生的人数:");
int number; //学生的人数
number=input.nextInt();
System.out.println("请输入课程的数目:");
int courses; //课程的数目
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(); }
}
int sum=0;//每个学生的成绩总分
int avg=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");
}
}
}
·运行过程:
(1)按照步骤,先输入学生人数,课程门数,再依次输入每个学生的姓名,每门课程的成绩
(2)输入所有的数据之后,运行的结果如下:
实验的PSP(Personal Software Process)时间:
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 1h | 20% |
设计 | 1h | 20% |
代码实现 | 2h | 40% |
测试 | 95min | 15% |
分析总结 | 15min | 5% |
实验总结和心得体会
这次的实验题目一开始我觉得很难,怎么实现一个学生成绩管理系统呢?我仔细分析了一下这个实验题目,发现实际上就是要求我们用所学的知识,分别去解决几个方面的问题。我的实验设计包括了多名学生名字的输入、存储、以及各项成绩的输入存储,最后计算各个学生的平均分和总分,在此基础上又加上了排序的内容将学生成绩进行了一个排名。这么一分析,我觉得其实这些内容其实并不难,在我现有的能力基础之上都可以解决。
总的来说,这次实验的解题思路还是比较清晰的,并没有碰到什么大的问题。但是我觉得我的实验设计还可以进一步提高,比如增加一些查找、删改之类的新功能,甚至还能将程序做的更加人性化。不管怎么样,只有自己不断尝试新的东西,才能不断提高自己。