20145328 《Java程序设计》实验一实验报告
20145328 《Java程序设计》实验一实验报告
实验名称
Java开发环境的熟悉(Windows + IDEA)
实验内容
- 使用JDK编译、运行简单的Java程序;
- 使用IDEA 编辑、编译、运行、调试Java程序。
实验步骤
(一)命令行下Java程序开发
- 在键盘上使用
win + R打开运行,输入cmd进入命令行模式,如下图所示

- 进入工作路径,创建实验路径
20145328,进入实验路径,建立实验一路径exp1,用记事本建立Hello.java文件并保存,对Hello.java文件进行编译并运行,过程以及运行结果如下图所示

(二)IDEA下Java程序开发、调试
- 在IDEA下新建项目如下图1所示,然后在下图2直接点击next,然后到了下图3中的时候自行设置项目路径以及项目名即可



- 在新建的项目中新建package,新建java class文件,在打开的文件中输入如下代码
package experiment_1;
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;
}
}
因为若在新建的package下新建java class文件,IDEA会自动在java文件中编写好package,所以第一行中的package名会根据新建的package名不一样而不同,会比直接用JDK编译方便很多,上面代码的运行结果如下图所示

- 建立断点并进行调试,在IDEA中可以直接点击需要设置断点的代码行最左端,设置好断点后,点击右上角瓢虫图标,或点击
Run-Debug便可对程序进行调试,设置断点后,程序会直接运行到断点处停下。在调试界面下,会在每一行代码的右端显示变量的情况。而下方显示的调试结果的上面会有一行工具栏,可以在里面进行逐步运行等操作

练习4
package experiment_1;
/**
* Created by Administrator on 2016/4/10.
*/
import java.lang.*;
import java.io.*;
import experiment_1.*;
public class Main
{
public static void main(String[] args)
{
while(true)
{
Menu.paint();
int ctrlTag = Console.readInt();
switch(ctrlTag)
{
case 1:
{
Menu.action1();
break;
}
case 2:
{
Menu.action2();
break;
}
case 3:
{
Menu.action3();
break;
}
case 4:
{
Menu.action4();
break;
}
case 0:
{
System.exit(0);
break;
}
}
}
}
}
class Student
{
private int number;
private String name;
private int english;
private int math;
private int computer;
private int average;
private int total;
public Student()
{
}
public Student(int number, String name, int english, int math, int computer)
{
this.number = number;
this.name = name;
this.english = english;
this.math = math;
this.computer = computer;
total = english + math + computer;
average = total/3;
}
public int getNumber()
{
return number;
}
public String getName()
{
return name;
}
public int getEnglish()
{
return english;
}
public int getMath()
{
return math;
}
public int getComputer()
{
return computer;
}
public int getAverage()
{
return average;
}
public int getTotal()
{
return total;
}
}
class StudentSet
{
private static final int maxLen = 1000;
private static int len = 0;
private static Student[] data = new Student[maxLen];
public static int getMaxLen()
{
return maxLen;
}
public static int getLen()
{
return len;
}
public static Student getData(int index)
{
return data[index];
}
public static int addData(Student newData)
{
if (len < maxLen)
{
data[len] = newData;
len++;
return 0;
} else
{
return -1;
}
}
public static int search(int number)
{
for(int i = 0; i < len; i++)
{
if (data[i].getNumber() == number)
{
return i;
}
}
return -1;
}
public static int delete(int number)
{
for (int i = 0; i < len; i++)
{
if (data[i].getNumber() == number)
{
for (int j = i + 1; j < len; j++)
{
data[j-1] = data[j];
}
len--;
return 0;
}
}
return -1;
}
}
class Console
{
public static int readInt()
{
int result = 0;
try{
String temp =new BufferedReader(new InputStreamReader(System.in)).readLine();
result = Integer.parseInt(temp);
} catch (Exception e)
{
System.out.println("Error: "+e);
}
return result;
}
public static String readSting()
{
String result = null;
try{
result = new BufferedReader(new InputStreamReader(System.in)).readLine();
} catch (Exception e)
{
System.out.println("Error: "+e);
}
return result;
}
}
class Menu
{
public static void paint()
{
clrscr();
for (int i = 0; i < 80; i++)
{
System.out.print('=');
}
System.out.println();
System.out.println(" 学生成绩管理系统 ");
System.out.println();
System.out.println(" 1 输入记录 2 输出所有记录");
System.out.println(" 3 删除记录 4 查找记录");
System.out.println(" 0 退出");
for (int i = 0; i < 80; i++)
{
System.out.print('=');
}
System.out.println();
System.out.print("请输入命令:");
}
public static int action1()
{
while(true)
{
clrscr();
System.out.print("待输入记录的学号(输入“-1”退出):");
int number = Console.readInt();
if (number != -1)
{
System.out.print(" *姓名:");
String name = Console.readSting();
System.out.print(" *英语:");
int english = Console.readInt();
System.out.print(" *数学:");
int math = Console.readInt();
System.out.print(" *计算机:");
int computer = Console.readInt();
Student newData = new Student(number, name, english, math, computer);
if (StudentSet.addData(newData) == -1)
{
System.out.println("数据溢出!");
return -2;
}
} else
{
return -1;
}
}
}
public static void action2()
{
clrscr();
if (StudentSet.getLen() == 0)
{
System.out.println("没有记录!");
} else
{
System.out.println(" 数学|英语|计算机|平均|总计");
for (int i = 0; i < StudentSet.getLen(); i++)
{
System.out.println("学号:"+StudentSet.getData(i).getNumber()+" 姓名:"+StudentSet.getData(i).getName());
System.out.println(" "+StudentSet.getData(i).getMath()+" "+StudentSet.getData(i).getEnglish()+
" "+StudentSet.getData(i).getComputer()+" "+StudentSet.getData(i).getAverage()+" "+StudentSet.getData(i).getTotal());
}
}
}
public static void action3()
{
while(true)
{
clrscr();
System.out.print("请输入要删除记录的学号(输入“-1”退出):");
int number = Console.readInt();
if (number != -1)
{
if(StudentSet.delete(number) == -1)
{
System.out.println("没有找到相应的记录!");
return;
} else
{
System.out.println("删除记录成功!");
}
} else
{
return;
}
}
}
public static void action4()
{
clrscr();
System.out.print("请输入要查找记录的学号:");
int number = Console.readInt();
int i;
if ((i = StudentSet.search(number)) != -1)
{
clrscr();
System.out.println(" 数学|英语|计算机|平均|总计");
System.out.println("学号:"+StudentSet.getData(i).getNumber()+" 姓名:"+StudentSet.getData(i).getName());
System.out.println(" "+StudentSet.getData(i).getMath()+" "+StudentSet.getData(i).getEnglish()+
" "+StudentSet.getData(i).getComputer()+" "+StudentSet.getData(i).getAverage()+" "+StudentSet.getData(i).getTotal());
} else
{
System.out.println("没有找到相应的记录!");
}
}
public static void clrscr()
{ //temp function
System.out.println();
System.out.println();
}
}
运行结果如下



心得体会
PSP(Personal Software Process)时间:
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 1h30min | 42.8% |
| 设计 | 30min | 14.2% |
| 代码实现 | 1h | 28.5% |
| 测试 | 20min | 9.6% |
| 分析总结 | 10min | 4.9% |
说实话,本次实验里,如果单单参照实验内容的话,那么本次实验算是比较简单的,最多也就是之前没有使用过断点进行程序调试,都是直接进行运行并对照着运行结果来进行调试。所以总体来说单就实验内容而言,并没有什么难度。
难度最大的也就是所做的练习,而这个练习说简单也简单,说难也难,毕竟学生成绩管理系统这个东西,能大能小,大了可以连图形界面都做出来,小了的话完全可以只用一个数组让输入字符以及成绩,然后输出。
所以最开始在实验内容完成开始做练习进行需求分析的时候就耗费了很长的时间,因为实在是在纠结这个题目的大小,最后思考许久决定这次的练习只做出最简单的增删查改,毕竟这样才能算是实现管理这个功能。
20145328 《Java程序设计》实验一实验报告的更多相关文章
- 20145330《Java程序设计》第一次实验报告
20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...
- 20145320《Java程序设计》第一次实验报告
20145320<Java程序设计>第一次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 18: ...
- 20145317彭垚 《Java程序设计》第一次实验实验报告
20145317彭垚 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验名称:Java开发环境的 ...
- 20155339《java程序设计》第一次实验报告
20155339<java程序设计>第一次实验报告 实验一 java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序: 2.使用IDEA编辑.编译.运行.调试java程 ...
- 20144303 《Java程序设计》第一次实验实验报告
20144303 <Java程序设计>第一次实验实验报告 北京电子科技学院(besti)实验报告 课程:java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 ...
- 20145240 《Java程序设计》第一次实验报告
20145240 <Java程序设计>第一次实验报告 实验内容 一.命令行下java程序开发 1.建立Code目录,输入mkdir 20145240命令建立实验目录,并使用dir命令查看目 ...
- 《Java程序设计》课程实验要求
目录 <Java程序设计>课程实验要求 注册实验楼账号 实验一 Java开发环境的熟悉 实验二<Java面向对象程序设计> 实验三 <敏捷开发与XP实践> 实验四 ...
- 20145127《java程序设计》第一次实验
<java程序设计>第一次实验 实验内容及其步骤 1.使用JDK编写简单的Java小程序: Java编译的方法有很多,最基础最简单的就是使用命令行,记事本,Java虚拟机直接进行编译,下面 ...
- #《JAVA程序设计》 20155214 实验五 网络编程与安全
<JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...
- 《JAVA程序设计》 20155208 实验四 Android程序设计
<JAVA程序设计> 20155208 实验四 Android程序设计 实验一: 实验要求: Android Stuidio的安装测试: 参考<Java和Android开发学习指南( ...
随机推荐
- 转载 Mixed Content Page
网站配置了https之后,网页上的百度地图无法正常显示,报错类似于: Mixed Content: The page at 'https://url_1' was loaded over HTTPS, ...
- LeetCode 笔记系列 14 N-Queen II [思考的深度问题]
题目: Follow up for N-Queens problem. Now, instead outputting board configurations, return the total n ...
- ThreadLocal分析总结:
1.ThreadLocal 是什么 它是一个数据结构,像 HashMap,可保存 "key : value" 键值对:ThreadLocal 有一个内部类ThreadLocalMa ...
- PHP使用 DOMDocument创建和解析xml文件
<!-- DOMDocument生成XML文件 --><?php//声明一个DOMDocument对象$_doc=new DOMDocument('1.0', 'utf-8'); / ...
- 2018-2019-1 20165330 《信息安全系统设计基础》第六周课上测试ch02&课下作业
课上测试 测试-3-ch02 任务详情 编写一个程序 "week0203学号.c",运行下面代码: 1 short int v = -学号后四位 2 unsigned short ...
- TCP implements its own acknowledgment scheme to guarantee successful data delivery
wTCP本身已经确保传输的成功性. HTTP The Definitive Guide 4.2.4 Delayed Acknowledgments Because the Internet itsel ...
- 剖析Docker文件系统:Aufs与Devicemapper
http://www.infoq.com/cn/articles/analysis-of-docker-file-system-aufs-and-devicemapper Docker镜像 典型的Li ...
- echarts学习心得1---模块化单文件引入和标签式单文件引入
一.模块化单文件引入 1. 为ECharts准备一个具备大小(宽高)的Dom(当然可以是动态生成的) <div id="main" style="height:40 ...
- 用于金融分析的Python包
1. NumPy:实现各种数组对象函数和傅立叶变换等等科学计算模块.2. SciPy:提供更多科学计算功能,包括矩阵,求解线性方程组,积分运算,优化等.3. matplotlib:一个跨平台的数值绘图 ...
- TCP和UDP的区别?
答:TCP提供面向连接的.可靠的数据流传输,而UDP提供的是非面向连接的.不可靠的数据流传输.TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报.TCP注重数据安全性,UDP数据传输快,因为 ...