您的位置:首页 > 运维架构 > Linux

20155233 实验一 Java开发环境的熟悉(Linux + IDEA)

2017-04-08 20:04 579 查看

20155233 实验一 Java开发环境的熟悉(Linux + IDEA)

实验内容

1.使用JDK编译、运行简单的Java程序;

2.使用IDEA编辑、编译、运行、调试Java程序。

实验步骤

(一)使用JDK编译、运行简单的java程序

1.命令行下的程序开发

1.新建文件夹:

打开Linux下的终端控制(
Ctrl+Alt+T
) → 输入cd 20155233命令进入20155233目录 → 输入md 20155233建立以自己学号命名的文件夹 → 输入cd 20155233进入文件夹 → 输入md exp1建立“实验一”文件夹 → 输入cd exp1进入“实验一”文件夹

2.新建代码、编辑、运行:

输入
gedit Hello.java
,编辑代码:

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 + " !");
}
}

保存后退出,输入
javac Hello.java
编译产生
Hello.class
,

输入
java Hello
产生以下画面:



(二)使用IDEA编辑、编译、运行、调试Java程序

1.打开Linux终端,输入
./idea/bin/idea.sh
打开IDEA,新建一个项目,放在
HOME/20155233/20155233/exp1
下。

2.新建一个
HelloWorld
类,输入以下代码:

public class HelloWorld {
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;
}
}

3.断点调试:

在需要设置断点的一行左侧单击鼠标,出现红色圆点。在上方
Run
菜单中找到
Debug
进行调试(参考下图)。



(三)实现学生成绩管理功能,并进行测试

1.设计思路,分布实现学生成绩管理中的各个功能,包括添加学生、删除学生、修改学生、查询学生、排序学生等。

2.设计步骤:

<1>设计
Student
类:

class Student {

String name;

String studentId;

String sex;

int grade;

public Student(String name,String studentId,String sex,int grade){

this.name= name;

this.studentId= studentId;

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 getStudentId(){

return studentId;

}

}

这里面定义了一些得到当前学生对象数据的一些get方法,和成绩修改的set方法。

<2>做一个比较简单的界面:

System.out.println("***************");

System.out.println("*欢迎来到学生管理系统 *");

System.out.println("*1:增加学生                    *");

System.out.println("*2:删除学生                    *");

System.out.println("*3:修改成绩                    *");

System.out.println("*4:查询成绩                    *");

System.out.println("*5:成绩排序                    *");

System.out.println("***************");

System.out.println("您想选择的操作是:");

<3>各功能的实现

添加学生信息

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 studentId = SId.nextLine();

System.out.print("请输入学生的成绩:");

Scanner Sgrade = new Scanner(System.in);

int grade = Sgrade.nextInt();

StudentList.add(new Student(name,studentId,sex,grade));

System.out.println("添加成功!!!!!");

删除学生信息

System.out.print("请告诉我需要删除学生的学号:");

Scanner Sid = new Scanner(System.in);

String SstudentId = Sid.nextLine();

boolean isfindDelete = false;

for (int i = 0; i < StudentList.size(); i++) {

if(SstudentId.equals(StudentList.get(i).getStudentId())){

System.out.println("发现了该学生,正在删除...");

StudentList.remove(i);

System.out.println("删除成功!!!");

isfindDelete =true;

}

}

if(!isfindDelete){

System.out.println("抱歉,没有找到");

}

修改学生成绩

System.out.print("请告诉我需要修改成绩学生的学号:");

Scanner GId = new Scanner(System.in);

String GstudentId = GId.nextLine();

boolean isfindChange = false;

for (int j = 0; j < StudentList.size(); j++) {

if(GstudentId.equals(StudentList.get(j).getStudentId())){

System.out.println("发现了该学生,正在修改...");

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;

查询学生信息

System.out.print("请告诉我需要查询学生的学号:");

Scanner CId = new Scanner(System.in);

String CstudentId = CId.nextLine();

boolean isfindData = false;

for (int i = 0; i < StudentList.size(); i++) {

if(CstudentId.equals(StudentList.get(i).getStudentId())){

System.out.println("名字:"+StudentList.get(i).getName());

System.out.println("性别:"+StudentList.get(i).getSex());

System.out.println("学号:"+StudentList.get(i).getStudentId());

System.out.println("成绩:"+StudentList.get(i).getGrade());

isfindData = true;

}

}

if(!isfindData){

System.out.println("抱歉,没有找到");

}

排序学生成绩

这个功能目前没有实现,将在后续的学习在完善并补充。

System.out.print("排序结果为:");
for (int i = 0; i < StudentList.size(); i++) {
for (int j = i+1; j < StudentList.size(); j++) {
if(StudentList.get(i).getGrade()<StudentList.get(j).getGrade())
XXX;(排序算法)
}
}

for (int i = 0; i < StudentList.size(); i++) {

System.out.printf("名字:"+StudentList.get(i).getName());

System.out.printf("   ");

System.out.printf("性别:"+StudentList.get(i).getSex());

System.out.printf("   ");

System.out.printf("学号:"+StudentList.get(i).getStudentId());

System.out.printf("   ");

System.out.println("成绩:"+StudentList.get(i).getGrade());

}

实验感想

本次实验是对java基础的一次总结,以及对Linux基础的一次掌握,在实现学生成绩管理功能过程中遇到好多问题,主要包括以下:

1.各功能之间如何循环进入:把所有的实现过程全部放在select();方法中,这样可以避免选择完了一个操作后不能继续其他操作。大部分的操作都是依靠for循环来遍历操作,方便快捷。

2.学生信息如何存取、添加:通过
static List<Student> StudentList = new LinkedList<Student>()
建立链表存储信息。

3.在实现排序成绩中遇到以下问题:

for (int i = 0; i < StudentList.size(); i++) {
for (int j = i+1; j < StudentList.size(); j++) {
if(StudentList.get(i).getGrade()<StudentList.get(j).getGrade())

Collections.swap(StudentList.get(i),StudentList.get(j));
}
}

采用Collections中的swap,但在调用中出现编译不通过,该问题通过参考书中的第9章以及多方修改,但未能解决,打算在以后的学习中再进行添加。

总结:磨刀不误砍柴工,在实验前一定要养成一个很好的预习,通过参考、搜索网络等要预先掌握解决问题的要点。本次实验在实现学生成绩功能上,主体框架参考网络,我通过修改达到自己所需的目的,从而减小了设计用时,效率明显增加。

PSP(Personal Software Process)时间:

步骤耗时百分比
需求分析5min3.6%
设计10min7.1%
代码实现90min64.3%
测试20min14.3%
分析总结15min10.7%
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐