北京电子科技学院(BESTI)实验报告

课程:Java程序设计

班级:1452

指导教师:娄嘉鹏

实验日期:2016.04.08

实验名称:Java开发环境的熟悉(Linux + Eclipse)

实验内容:

1.使用JDK编译、运行简单的Java程序;

2.使用Eclipse 编辑、编译、运行、调试Java程序。

实验目的与要求:

1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;

2.完成实验、撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);

3.实验报告中统计自己的PSP(Personal Software Process)时间:

步骤 耗时 百分比
需求分析 一小时 20% 400小时
设计 两小时 40% 20/20
代码实现 40分钟 15% 18/38
测试 40分钟 15% 22/60
分析总结 30分钟 10% 30/90

实验内容、步骤与体会

实验内容

1.使用JDK和IDE编译、运行简单的Java程序:

2.练习题目:实现学生成绩管理功能,并进行测试。

  • 程序设计思路

    学生管理系统需要有许多功能,最基本的要有输入学生姓名学号等信息、学生查询、成绩查询、成绩输入、按成绩排序等功能。存储这些信息就要用到数组以及接口的知识。其实学生成绩管理系统看似复杂,实现起来并不是很难,只要按部就班的按照功能编写,就会发现每个功能的代码都是差不多的。只需要将每个学生的信息对应储存到相应的数组中。

  • 实验感想

    其实之前学习时都能看懂书上或者练习的代码,但是自己编的时候确实很费力,只能先找到相似的代码,看懂之后再一点点的凭借记忆去写符合实验要求的代码。学生成绩管理系统听起来确实很复杂,但是自己开始编之后就发现要是找到代码之间的规律,就可以编出很多功能,其原理都是一样的。

  • 练习代码


import java.util.*;
public class Test {//主程序
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("------请定义学生的人数:------");
Student[] stuArr = new Student[in.nextInt()];
Admin adminStu = new Admin();
while(true){
System.out.println("-----请选择你要执行的功能-----");
System.out.println("01:添加一个学生");
System.out.println("02:查找一个学生");
System.out.println("03:根据学生编号更新学生基本信息");
System.out.println("04:根据编号输入学生各门成绩");
System.out.println("05:根据某门成绩进行排序");
System.out.println("06:根据总分进行排序");
System.out.println("07:退出系统"); String number = in.next();
if(number.equals("01")){
System.out.println("请输入学生的编号:");
int num = in.nextInt();
System.out.println("请输入学生的姓名:");
String name = in.next();
System.out.println("请输入学生的年龄:");
int age = in.nextInt();
adminStu.Create(num,name,age,stuArr);//添加学生
}else if(number.equals("02")){
System.out.println("请输入学生的编号进行查找:");
int num = in.nextInt();
adminStu.find(num,stuArr);//查找学生
}else if(number.equals("03")){
System.out.println("请输入学生的编号:");
int num = in.nextInt();
System.out.println("请输入学生的姓名:");
String name = in.next();
System.out.println("请输入学生的年龄:");
int age = in.nextInt();
adminStu.update(num,name,age,stuArr);//更新学生基本信息
}else if(number.equals("04")){
System.out.println("执行输入成绩操作");
System.out.println("请输入学生编号:");
int num = in.nextInt();
adminStu.input(num, stuArr);//输入成绩
}else if(number.equals("05")){
System.out.println("执行根据某科目成绩排序操作");
System.out.println("请选择需要排序的科目名(1.java 2.math):");
int num = in.nextInt();
adminStu.courseSort(num,stuArr);//按科目排序
}else if(number.equals("06")){
System.out.println("执行根据总分排序操作");
adminStu.sumSort(stuArr);//按总分排序
}else if(number.equals("07")){
System.out.println("程序已退出");
//break;
System.exit(0);
}
}
}
} public class Student {
private int num;
private String name;
private int age;
private int java;
private int math;
private int sum;
private int avg; public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getJava() {
return java;
}
public void setJava(int java) {
this.java = java;
}
public int getmath() {
return math;
}
public void setmath(int math) {
this.math = math;
}
public int getSum() {
return sum;
}
public void setSum() {
this.sum = this.java+this.math;
}
public int getAvg() {
return avg;
}
public void setAvg() {
this.avg = this.sum/2;
}
public String toString(){
String str = "\t"+ this.num+"\t"+ this.name+"\t"+ this.age+"\t"
+ this.java+"\t"+ this.math +"\t"+ this.sum+"\t"+ this.avg;
return str;
}
} import java.util.*;
public class Admin {//用来管理学生的一个类
String msg = "\t编号\t姓名\t年龄\tjava\tmath\t总分\t平均分";
public void print(Student[] arr){//刷新数据的方法
System.out.println(msg);
for(int i=0;i<arr.length;i++){
if(arr[i]!=null){
arr[i].setSum();
arr[i].setAvg();
System.out.println(arr[i]);
}
}
}
public boolean exist(int num,Student stu){//判断学生是否存在的方法
if(stu!=null){
if(stu.getNum()==num){
return true;
}else{
return false;
}
}
return false;
}
public void Create(int num,String name,int age,Student[] arr){//添加学生的方法
Student stu = new Student();
stu.setNum(num);
stu.setName(name);
stu.setAge(age);
int i = this.setIndex(arr);
if(i==99999){
System.out.println("学生人数已添满,不能再添加了");
}else{
arr[i]=stu;
}
this.print(arr);
}
public int setIndex(Student[] arr){//返回数组为空的下标
for(int i=0;i<arr.length;i++){
if(arr[i]==null){
return i;
}
}
return 99999;
}
public void find(int num,Student[] arr){//查询学生的方法
for(int i=0;i<arr.length;i++){//判断学生是否存在
if(this.exist(num,arr[i])==true){
System.out.println(msg);
System.out.println(arr[i]);
return;
}
}
System.out.println("没有这个学生的存在");
}
public void update(int num,String name,int age,Student[] arr){//更新学生基本信息的方法
for(int i=0;i<arr.length;i++){
if(this.exist(num, arr[i])==true){
arr[i].setName(name);
arr[i].setAge(age);
System.out.println("更新学生信息成功!");
this.print(arr);
return;
}
}
System.out.println("没找到这个学生更新信息失败");
}
public void input(int num,Student[] arr){//输入学生成绩的方法
for(int i=0;i<arr.length;i++){
if(this.exist(num, arr[i])){
Scanner in = new Scanner(System.in);
System.out.println("请输入"+arr[i].getName()+"java的成绩:");
if(in.hasNextInt()){//输入非整形数则不执行
arr[i].setJava(in.nextInt());
}else{
return;
}
System.out.println("请输入"+arr[i].getName()+"math的成绩:");
if(in.hasNextInt()){
arr[i].setmath(in.nextInt());
}else{
return;
}
this.print(arr);
return;
}
}
}
public void courseSort(int num,Student[] arr){//根据指定科目排序的方法
if(num==1){
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]!=null&&arr[j]!=null){
if(arr[i].getJava()<arr[j].getJava()){
Student t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
}
}else if(num==2){
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]!=null&&arr[j]!=null){
if(arr[i].getmath()<arr[j].getmath()){
Student t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
}
}
this.print(arr);
}
public void sumSort(Student[] arr){//根据总分排序的方法
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]!=null&&arr[j]!=null){
if(arr[i].getSum()<arr[j].getSum()){
Student t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
}
this.print(arr);
}
}
  • 实验截图

20145218 《Java程序设计》第01次实验报告的更多相关文章

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

    20145330<Java程序设计>第二次实验报告 实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承多态 3.初步掌握UM ...

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

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

  3. 《Java程序设计》第二次实验报告

    20145220 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测 ...

  4. 20145333 《Java程序设计》第二次实验报告

    2014333 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测试 ...

  5. 20145240 《Java程序设计》第二次实验报告

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

  6. Java程序设计第四次实验报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:java程序设计 班级:1352  姓名:何伟钦  学号:20135223 成绩:            指导教师:娄嘉鹏 ...

  7. 20145216史婧瑶《Java程序设计》第二次实验报告

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  8. 20145231《Java程序设计》第二次实验报告

    实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD: 理解并掌握面向对象三要素: 初步掌握UML建模: 熟悉S.O.L.I.D原则: 了解设计模式: 实验要求 实现并体会例子中代码的 ...

  9. 20145211 《Java程序设计》实验报告五————Java网络编程及安全实验报告

    实验内容 1.掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验步骤 这一部分是与我的partner合作的,详见他的博客- [20145326 <Java程序设计> ...

  10. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

随机推荐

  1. 建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理。

    package exception; public class TestException { public static void main(String[] args) { for(int i=0 ...

  2. CF 321B Ciel and Duel(费用流)

    题目链接:http://codeforces.com/problemset/problem/321/B 题意:两个人,分别有n.m张牌.每张牌有两个属性类型和能力,类型为攻击或者防守.B的m张牌的属性 ...

  3. 图片格式转换之ImageMagick

    项目中需要实现一些图片文件到TIFF文件的转换,去网上下载了一些第三方软件. 好的软件需要收费,免费的存在各种问题. 自己动手,丰衣足食! 众里寻他千百度,蓦然回首,那人就是ImageMagick. ...

  4. web后门top

    看到了一个博客  觉得关键点很有用 1)出现频率最高的DDoS后门文件名 abc.php, xl.php, Xml.php, dedetag.class.php, counti.php, plase. ...

  5. sencha touch之store

    store相当于数据库的表,是模型实例的集合.(是不是可以看成结构体数组) 可以对模型实例进行新建.更新.读取.删除.排序和过滤等操作. 创建store 由于store是表,必须要有模型或者定义字段, ...

  6. 04_IOC容器装配Bean(xml方式)

    IOC容器装配Bean(xml方式) 1.Spring 提供配置Bean三种实例化方式 1)使用类构造器实例化(默认无参数) <bean id="bean1" class=& ...

  7. run a Freight robot (2)

    3.  Network Setup Connecting Freight to a Monitor The easiest way to configure the wireless networki ...

  8. 预习 jQuary

    一.jQuary简介 1.jQuery 库 - 特性 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操作 HTM ...

  9. windows下的Git简单入手

    现在再搞golang,用go get github.com/xxx 命令使需要git.提交新项目到github.com也要git,老东西了,呵呵现在也要学习一下. 下载windows版的git. ·准 ...

  10. codevs 1294 全排列 next_permuntation

    #include<bits/stdc++.h> using namespace std; #define ll long long #define pi (4*atan(1.0)) #de ...