20145218 《Java程序设计》第01次实验报告

北京电子科技学院(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);
    }
}

  • 实验截图

posted @ 2016-04-10 15:19  20145218  阅读(229)  评论(1编辑  收藏  举报