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开发学习指南( ...
随机推荐
- 技术宅之flappy bird 二逼鸟
师雪坤和刘阳 风靡一时的虐心小游戏<Flappy Bird>,以玩法简单.难度超高著称,不过,最近这款让全世界玩家几欲怒摔手机的游戏,被两位中国技术宅设计的"玩鸟机器人" ...
- 160513、nginx+tomcat集群+session共享(linux)
第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc open ...
- QBC检索和本地SQL检索
细说QBC:QBC(Query By Criteria) 查询:这种方式比较面向对象方式,因为是面向对象,所以查询时参数名就是所查询的类的属性名并不是数据库的表的列名重点是有三个描述条件的对象:Res ...
- web.xml 中以编码方式添加filter并设置初始化参数AbstractAnnotationConfigDispatchServletInitializer
web.xml中配置filter <?xml version="1.0" encoding="UTF-8"?> <web-app versio ...
- UITextView 的 return响应事件
在UITextView里没有UITextField里的- (BOOL)textFieldShouldReturn:(UITextField *)textField;直接的响应事件;那么在TextVie ...
- linux 将同后缀名的文件统一移至另一个文件夹
w
- Python中的高级数据结构(转)
add by zhj: Python中的高级数据结构 数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数 ...
- 3.Github介绍
很多人都知道,Linus在1991年创建了开源的Linux.从此,Linux系统不断发展,已经成为最大的服务器系统软件了.Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的 ...
- python学习笔记(三)函数
一.定义函数 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参 ...
- CF519 ABCD D. A and B and Interesting Substrings(map,好题)
A:http://codeforces.com/problemset/problem/519/A 水题没什么好说的. #include <iostream> #include <st ...