实验一 Java开发环境的熟悉
Java开发环境的熟悉(一)——命令行下Java程序开发
实验内容
-
1.使用JDK编译、运行简单的Java程序;
实验步骤
- 1.首先双击桌面上的终端图标,单击终端图标,打开终端(类似Windows下的cmd),之后会自动运行shell程序
- 2.输入
cd Code
命令进入Code(注意C要大写)目录,进入Code目录 - 3.输入
mkdir 20135100
命令建立实验目录,注意目录名一定是自己的学号(学号要体现在实验报告截图中),可以使用ls命令或dir命令查看建立的目录情况; 4.输入
cd 20135100
命令进入实验目录,再输入类似mkdir exp1
建立第一个实验目录,然后输入cd exp1
进入实验一目录,可以输入pwd
命令查看当前工作路径,如下图所示:- 5.输入
gedit Hello.java
(注意把代码保存到exp1目录中)或vim Hello.java
(建议大家花点时间学习一下Vim)编辑Hello.java
,并输入以下代码:
package ljp;
import java.util.Scanner;
public class Hello{
public static void main(String[] args){
System.out.println("Input your first name, please:");
Scanner s = new Scanner(System.in);
String name = s.next();
System.out.println("Hello " + name + " !");
}
}
- 6.注意代码第二行,我们使用到Java类库中的类时,要用import导入相关的类(你可以暂时理解为C语言中include的功能),导入路径可以查看JDK帮助文档,比如我们使用到了Scanner类
-
7.输入
javac -d . Hello.java
命令编译代码,输入java ljp.Hello
命令运行程序。结果如下图所示:
-注意:代码中有package时,使用javac编译代码时一定要加-d参数,运行代码时一定要加包名前缀。Java开发环境的熟悉(二)——Java程序开发、调试
实验内容
-
.使用IDEA 编辑、编译、运行、调试Java程序。
实验步骤
- 1.在自己的项目中,新建「HelloJDB」类,输入如下代码:
public class HelloJDB {
public static void main(String[] args) {
int i = 5;
int j = 6;
int sum = add(i, j);
System.out.println(sum);
sum = 0;
for(i=0; i< 100; i++)
sum += i;
System.out.println(sum);
}
public static int add(int augend, int addend){
int sum = augend + addend;
return sum;
}
}
2.调试程序首先要会设置断点和单步运行。设置断点比较简单,在要设置断点的行号旁用鼠标单击一下就行了(或使用Ctrl+F8快捷键),我们在第5行设了个断点:
3.然后单击菜单「Run」->「Debug...」(或使用Alt+Shift+F9快捷键)开始调试Java程序,我们可以看到程序停留在了第5行,注意,此时第5行代码并没有执行,我们看到变量sum的值并不是11,我们通过单步运行让程序运行到第6行,单步运行有两种:
Step Into
(快捷捷F7)和Step Over
(快捷捷F8),这两种单步运行功能在运行语句时没有区别,在执行方法调用语句时,Step Into
会跳入方法实现,Step Over
会直接执行完方法,实际使用中我们优先使用Step Over
,只有方法执行出错了,说明程序问题在被调用方法中,这时再回来通过Step Into
进入方法进行调试。我们单击一下Step Over
图标(或F8),程序停在了第5行,这时查看变量i的值,会看到sum等于11。如下图所示
Java开发环境的熟悉(三)——练习
实验内容
-
实现学生成绩管理功能(增删改,排序,查找),并进行测试(正常情况,异常情况,边界情况)
实验代码
public class Student {
String name;
String number;
String sex;
int grade;
public Student(String name,String number,String sex,int grade){
this.name= name;
this.number= number;
this.sex = sex;
this.grade = grade;
}
public int getGrade(){
return grade;
}
public String getName(){
return name;
}
public String getSex(){
return sex;
}
public void setGrade(int g){
this.grade = g;
}
public String getnumber(){
return number;
}
}
import java.util.*;
public class StudentSystem {
static List<Student> StudentList = new LinkedList<Student>();
public static void main(String[] agrs){
select(StudentList);
}
private static void select(List<Student> StudentList ){
System.out.println("1:增加学生");
System.out.println("2:删除学生");
System.out.println("3:修改成绩");
System.out.println("4:查询成绩");
System.out.println("若要退出系统,请输入1、2、3、4外的其他数字!!!");
System.out.println("请输入选择的操作序号:");
Scanner x = new Scanner(System.in);
int choice = x.nextInt();
switch(choice){
//增加学生
case 1:
System.out.print("请输入学生的姓名:");
Scanner Sname = new Scanner(System.in);
String name = Sname.nextLine();
System.out.print("请输入学生的性别:");
Scanner Ssex = new Scanner(System.in);
String sex = Ssex.nextLine();
System.out.print("请输入学生的学号:");
Scanner SId = new Scanner(System.in);
String number = SId.nextLine();
System.out.print("请输入学生的成绩:");
Scanner Sgrade = new Scanner(System.in);
int grade = Sgrade.nextInt();
StudentList.add(new Student(name,number,sex,grade));
System.out.println("添加成功!!!");
select(StudentList);
break;
//删除学生成绩
case 2:
System.out.print("请输入需要删除学生的学号:");
Scanner Sid = new Scanner(System.in);
String Snumber = Sid.nextLine();
boolean isfindDelete = false;
for (int i = 0; i < StudentList.size(); i++) {
if(Snumber.equals(StudentList.get(i).getnumber())){
StudentList.remove(i);
System.out.println("删除成功!!!");
isfindDelete =true;
}
}
if(!isfindDelete){
System.out.println("抱歉,没有找到");
}
select(StudentList);
break;
//修改学生成绩
case 3:
System.out.print("请告诉我需要修改成绩学生的学号:");
Scanner GId = new Scanner(System.in);
String Gnumber = GId.nextLine();
boolean isfindChange = false;
for (int j = 0; j < StudentList.size(); j++) {
if(Gnumber.equals(StudentList.get(j).getnumber())){
System.out.println("学生原成绩为"+StudentList.get(j).getGrade());
System.out.print("请输入修改后学生的成绩:");
Scanner Ggrade = new Scanner(System.in);
int grade2 = Ggrade.nextInt();
StudentList.get(j).setGrade(grade2);
System.out.println("修改成功!!!");
isfindChange =true;
}else{
}
}
if(!isfindChange){
System.out.println("没有该名学生!");
}
select(StudentList);
break;
//查看学生成绩
case 4:
System.out.print("请告诉我需要查询学生的学号:");
Scanner CId = new Scanner(System.in);
String Cnumber = CId.nextLine();
boolean isfindData = false;
for (int i = 0; i < StudentList.size(); i++) {
if(Cnumber.equals(StudentList.get(i).getnumber())){
System.out.println("名字:"+StudentList.get(i).getName());
System.out.println("性别:"+StudentList.get(i).getSex());
System.out.println("学号:"+StudentList.get(i).getnumber());
System.out.println("成绩:"+StudentList.get(i).getGrade());
isfindData = true;
}
}
if(!isfindData){
System.out.println("没有该名学生!");
}
select(StudentList);
break;
default:
System.out.println("退出系统!!!");
break;
}
}
}