20155233 实验一 Java开发环境的熟悉(Linux + IDEA)
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)时间:
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 5min | 3.6% |
设计 | 10min | 7.1% |
代码实现 | 90min | 64.3% |
测试 | 20min | 14.3% |
分析总结 | 15min | 10.7% |
20155233 实验一 Java开发环境的熟悉(Linux + IDEA)的更多相关文章
- 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程序. 实 ...
- 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然
https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...
- 20145203盖泽双实验一 Java开发环境的熟悉(Linux + Eclipse)
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 《JAVA程序设计》20155214 实验一 Java开发环境的熟悉(Linux + IDEA)
<JAVA程序设计> 实验一 Java开发环境的熟悉(Linux + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...
- 20155235 《Java程序设计》 实验一 Java开发环境的熟悉(Linux + Eclipse)
20155235 <Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编 ...
- 20145303 实验一 Java开发环境的熟悉(Linux + Eclipse)
20145303 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验题目(4):实现学生成绩管理功能,并进行测试 思路: 对于实现学生成绩管理(student performanc ...
- 20162303 实验一 Java开发环境的熟悉(Linux + Eclipse)
北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 石亚鑫 学号:20162303 成绩: 2分 指导教师:娄嘉鹏 王志强 实验日期:3月17日 实验密 ...
- 20162321 实验一 Java开发环境的熟悉(Linux + Eclipse)
北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 王彪 学号:20162321 指导教师:娄嘉鹏 王志强 实验日期:3月25日 实验密级: 非密级 预 ...
随机推荐
- JSON与对象的序列化与反序列化
一.利用JavaScriptSerializer 类 System.Web.Script.Serialization空间,位于System.Web.extensions.dll中. JavaScrip ...
- LINUX下OA搭建
- scala当中的继承
1.Scala中继承(extends)的概念 Scala 中,让子类继承父类,与 Java 一样,也是使用 extends 关键字: 继承就代表,子类可继承父类的 field 和 method ,然后 ...
- VM安装CentOs7虚拟机后无法上网之解决方法
最近在研究DC/OS的安装,读了很多安装方法后决定先从docker的安装入手,由于DC/OS的安装必须在CentOs7版本以上,所以就在VM下安装了CentOs7,殊不知安装后并不能上网,于是乎又转到 ...
- struct class 内存结构初探-内存模型顺序和变量的实际添加顺序一致
typedef struct structTest { char xchar; int xint; int yint; }xStruct; @interface ViewController () { ...
- 9、Dubbo-配置(4)
本地存根 远程服务后,客户端通常只剩下接口,而实现全在服务器端,但提供方有些时候想在客户端 也执行部分逻辑,比如:做 ThreadLocal 缓存,提前验证参数,调用失败后伪造容错数据等 等,此时就需 ...
- UVA - 11987 Almost Union-Find(带删除的并查集)
I hope you know the beautiful Union-Find structure. In this problem, you’re to implement something s ...
- cloudstack 用admin 账号创建虚拟机只是提示insufficient resource
报错: com.cloud.exception.ResourceUnavailableException: Resource [DataCenter:1] is unreachable: Unable ...
- 使用Docker遇到的基本命令及问题小结
当遇到Cannot connect to the Docker daemon. Is the docker daemon running on this host?导致Docker无法启动时,重启Do ...
- 【CSS3基础-Flex布局】
关于Flex 背景 在flex布局出现以前,常用的水平和垂直居中对齐方式有很多.flex布局的出现基本规范了这一过程. 通过justify-content和align-items两个属性即解决了水平居 ...