20145328 《Java程序设计》实验一实验报告

实验名称

Java开发环境的熟悉(Windows + IDEA)

实验内容

  1. 使用JDK编译、运行简单的Java程序;
  2. 使用IDEA 编辑、编译、运行、调试Java程序。

实验步骤

(一)命令行下Java程序开发

  1. 在键盘上使用win + R打开运行,输入cmd进入命令行模式,如下图所示

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

(二)IDEA下Java程序开发、调试

  1. 在IDEA下新建项目如下图1所示,然后在下图2直接点击next,然后到了下图3中的时候自行设置项目路径以及项目名即可

  1. 在新建的项目中新建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编译方便很多,上面代码的运行结果如下图所示

  1. 建立断点并进行调试,在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程序设计》实验一实验报告的更多相关文章

  1. 20145330《Java程序设计》第一次实验报告

    20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...

  2. 20145320《Java程序设计》第一次实验报告

    20145320<Java程序设计>第一次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 18: ...

  3. 20145317彭垚 《Java程序设计》第一次实验实验报告

    20145317彭垚 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验名称:Java开发环境的 ...

  4. 20155339《java程序设计》第一次实验报告

    20155339<java程序设计>第一次实验报告 实验一 java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序: 2.使用IDEA编辑.编译.运行.调试java程 ...

  5. 20144303 《Java程序设计》第一次实验实验报告

    20144303 <Java程序设计>第一次实验实验报告 北京电子科技学院(besti)实验报告 课程:java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 ...

  6. 20145240 《Java程序设计》第一次实验报告

    20145240 <Java程序设计>第一次实验报告 实验内容 一.命令行下java程序开发 1.建立Code目录,输入mkdir 20145240命令建立实验目录,并使用dir命令查看目 ...

  7. 《Java程序设计》课程实验要求

    目录 <Java程序设计>课程实验要求 注册实验楼账号 实验一 Java开发环境的熟悉 实验二<Java面向对象程序设计> 实验三 <敏捷开发与XP实践> 实验四 ...

  8. 20145127《java程序设计》第一次实验

    <java程序设计>第一次实验 实验内容及其步骤 1.使用JDK编写简单的Java小程序: Java编译的方法有很多,最基础最简单的就是使用命令行,记事本,Java虚拟机直接进行编译,下面 ...

  9. #《JAVA程序设计》 20155214 实验五 网络编程与安全

    <JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...

  10. 《JAVA程序设计》 20155208 实验四 Android程序设计

    <JAVA程序设计> 20155208 实验四 Android程序设计 实验一: 实验要求: Android Stuidio的安装测试: 参考<Java和Android开发学习指南( ...

随机推荐

  1. android-修改TextView中部分文字的颜色

    :

  2. kafka服务器搭建与测试

    kafka服务器搭建 kafka自身集群信息的管理以及对producer和consumer的信息管理是通过zookeeper实现的,zookeepr是kafka不可分割的一部分,所以搭建zookeep ...

  3. [LintCode] 寻找缺失的数

    class Solution { public: /** * @param nums: a vector of integers * @return: an integer */ int findMi ...

  4. Hadoop伪分布安装详解(四)

    目录: 1.修改主机名和用户名 2.配置静态IP地址 3.配置SSH无密码连接 4.安装JDK1.7 5.配置Hadoop 6.安装Mysql 7.安装Hive 8.安装Hbase 9.安装Sqoop ...

  5. #include <sys/epoll.h> epoll - I/O event notification facility 服务器端 epoll(7) - Linux manual page http://www.man7.org/linux/man-pages/man7/epoll.7.html

    epoll使用详解(精髓) - Boblim - 博客园 https://www.cnblogs.com/fnlingnzb-learner/p/5835573.html epoll使用详解(精髓) ...

  6. MySQL给一个字段递增赋值

    https://blog.csdn.net/kriszhang/article/details/72125203 首先设置一个变量,初始值为0: set @r:=0; 1 然后更新表中对应的ID列: ...

  7. kettle配置命名参数

    bat 调度文件如下 cd D:/Program Files/kettle700/data-integrationKitchen.bat /rep repository /dir /TEST /job ...

  8. vs git 推送远程会失败.

    Gitblit使用admin创建版本库.   使用VS无法推送到远程服务器. VS 2017 Git failed with a fatal error 可能是帐号不应不上.   本地上帐号与服务器的 ...

  9. 一次http请求中的信息

    什么是Http 一次http传输,是由请求报文和响应报文来完成的 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World W ...

  10. MySQL 温故知心(三)

    MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level loc ...