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日 实验密级: 非密级 预 ...
随机推荐
- html禁用缓存
<!-- 禁用缓存 --><meta http-equiv="pragma" content="no-cache"><META H ...
- (持续更新) CSS属性持续记录
可以去除ul的li标签自带的圆点list-style-type: none; 可以将自己的光标改变样式:cursor: pointer;
- ROIPooing
暂时不纠结 faster rcnn 最后一步是不是全连接层(gluoncv里面是rcnn层): 说一下feature map 和 anchor (Proposal) 作为输入,怎么计算ROIPooin ...
- 【[POI2014]HOT-Hotels】
魏佬怒嘲我只会做给定一棵树,输出有多少个点这种问题 不过我连这个也不会做 还算一道不错的树上数数题目 但是我一直不会数数 求树上所有的三元组\((u,v,t)\),满足\(dis(u,v)=dis(u ...
- Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案
即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的war包拷贝到Tomcat的w ...
- linq的左连接右连接内连接用法
1.左连接: var LeftJoin = from e in ListOfEmployees join d in ListOfDepartment on e.DeptID equals d.ID i ...
- 利用n 升级工具升级Node.js版本及在mac环境下的坑
一.利用n 升级Node.js 最近在用NPM安装一个nodejs工具时发现,我的nodejs的版本有些旧了.这不是大问题,只要升级就可以了,当然,重新从nodejs.org最新版本是一种方法,但我想 ...
- 改变random.seed()种子值,获取不同的随机值
random.seed() random.seed()是随机数种子,也就是为随机数提供算法,完全相同的种子产生的随机数列是相同的, 所以如果想产生不同的随机数就需要用当前时间作为种子 一般情况下see ...
- 轻量ORM-SqlRepoEx (十七)SqlRepoEx 2.30 版本更新说明
.Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,支持MySQL.SQL Server数据库方言,使用强类型操作数据的轻量级ORM工具,在减少魔法 ...
- BUAA_OO第二单元总结性博客作业——多线程电梯架构
一.设计策略 在第一次作业时,我刚第一次接触多线程这个东西……于是乎对于第一次VIP直上直下一次只接一个人的电梯,我借鉴了指导书中为我们提供的架构,设计了一个输入线程和一个电梯线程,并设置了一个中间类 ...