zoukankan      html  css  js  c++  java
  • 20155328 《Java程序设计》实验一(Java开发环境的熟悉) 实验报告

    20155328 《Java程序设计》实验一(Java开发环境的熟悉) 实验报告

    一、实验内容及步骤

    (一)使用JDK编译、运行简单的java程序

    • 命令行下的程序开发:
      打开windows下的cmd,输入cd Code进入Code目录,输入mkdir 20155328创建实验目录,再输入cd 20155328进入实验目录,再输入mkdir exp1创建实验一文件夹。最后,输入cd exp1进入实验一目录。

      第二步:用vim编辑器写一个简单的Hello程序,并用命令行编译并运行该Java程序。

    (二)使用IDEA编辑、编译、运行、调试Java程序

    1.新建HelloJDB类,输入以下代码:

    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;
        }
    }
    

    2.在需要设置断点的行数标识右侧单击左键,出现红点。

    3.在Run菜单中的Debug..进入单步调试。

    二、练习:实现学生成绩管理功能,并进行测试。

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

    这个题目看起来很简单而又无从下手,但万事开头难,只要想好学生成绩管理的程序需要实现哪些功能,就可以着手开始一块一块的做了。我想到的是最基本的几个功能:录入学生信息、按成绩高低输出学生信息、由学号查找学生以及删除指定学号的学生。

    使用switch对功能进行划分,当用户输入不同的数字时实现不同的功能,输入0时退出程序。
    以下是我的学生成绩管理的程序:

    package experiment1;
    
    /**
     * Created by lxkj on 2017/4/9.
     */
    import java.util.*;
    public class StudentGrade {
        public static void main(String args[]){
            int i,j,k,l,m,o,p,ID,math,English;
            String name;
           try{
               Scanner in=new Scanner(System.in);
               System.out.println("请输入学生人数:");
               int num=in.nextInt();
               Student[] stu=new Student[num];
               while(true) {
                   System.out.println("请输入您想实现的功能对应的数字:");
                   System.out.println("1:录入学生成绩信息      2:按数学成绩由高到低输出所有学生信息      3:按英语成绩由高到低输出所有学生信息");
                   System.out.println("4:查找学生              5:删除指定学生信息                       0:退出");
                   Scanner request=new Scanner(System.in);
                   int tag=request.nextInt();
                   switch(tag)
                   {
                       case 1:
                       {
                           System.out.println("学号:");
                           ID=in.nextInt();
                           System.out.println("姓名:");
                           name=in.next();
                           System.out.println("数学成绩:");
                           math=in.nextInt();
                           System.out.println("英语成绩:");
                           English=in.nextInt();
    
                           Student stu1=new Student();
                           stu1.setID(ID);
                           stu1.setName(name);
                           stu1.setMath(math);
                           stu1.setEngilsh(English);
    
                           for(i=0;i<num;i++){
                               if (stu[i]==null) break;
                           }
                           stu[i]=stu1;
                           System.out.println("添加成功!");
                           System.out.printf("学号:%d,  姓名: %s,  数学成绩: %d, 英语成绩:%d%n",stu[i].getID(),stu[i].getName(),stu[i].getMath(),stu[i].getEngilsh());
                           break;
                       }
                       case 2:
                       {
                       Student stu2=new Student();
                        for(j=0;j<num;j++){
                            for (k=j+1;k<num;k++){
                                if (stu[j].getMath()<stu[k].getMath()){
                                    stu2=stu[j];
                                    stu[j]=stu[k];
                                    stu[k]=stu2;
                                }
                            }
                        }
                        for (j=0;j<num;j++){
                            System.out.printf("学号: %d   姓名: %s   数学成绩:  %d   英语成绩: %d%n",stu[j].getID(),stu[j].getName(),stu[j].getMath(),stu[j].getEngilsh());
                        }
                        break;
                       }
                       case 3:
                       {
                           Student stu3=new Student();
                           for(l=0;l<num;l++){
                               for(m=l+1;m<num;m++){
                                   if (stu[l].getEngilsh()<stu[m].getEngilsh()){
                                       stu3=stu[l];
                                       stu[l]=stu[m];
                                       stu[m]=stu3;
                                   }
                               }
                           }
                           for (l=0;l<num;l++){
                               System.out.printf("学号: %d   姓名: %s   数学成绩:  %d   英语成绩: %d%n",stu[l].getID(),stu[l].getName(),stu[l].getMath(),stu[l].getEngilsh());
                           }
                           break;
                       }
                       case 4:
                       {
                           System.out.println("请输入想要查找的学号:");
                           int id=in.nextInt();
                           o=0;
                           while(o<num){
                               if (stu[o].getID()==id) {
                                   System.out.printf("学号: %d   姓名: %s   数学成绩:  %d   英语成绩: %d%n",stu[o].getID(),stu[o].getName(),stu[o].getMath(),stu[o].getEngilsh());
                                   break;
                               }
                               o++;
                           }
                           if (o==num) System.out.println("是不是学号输错啦?没有这个人哎~");
                           break;
                       }
                       case 5:
                       {
                           System.out.println("请输入需要删除的学号:");
                           int deleteid=in.nextInt();
                           for(p=0;p<num;p++){
                               if (stu[p].getID()==deleteid){
                                   stu[p]=null;
                                   System.out.println("已经删掉啦~");
                                   break;
                               }
                           }
                           if (p==num) System.out.println("是不是学号输错啦?没有这个人哎~");
                           break;
                       }
                       case 0:
                       {
                           System.out.println("不用啦?下次再见噜~");
                           System.exit(0);
                       }
                       default:System.out.println("嘻嘻输错了吧 只能输1、2、3、4、5或者0");
                   }
               }
           }catch(Exception e){
               System.out.println(e.toString());
           }
        }
    }
    class Student{
        private int ID;
        private String name;
        private int math;
        private int Engilsh;
    
        public int getID(){
            return ID;
        }
        public void setID(int ID){
            this.ID=ID;
        }
    
        public String getName(){
            return name;
        }
        public void setName(String name){
            this.name=name;
        }
    
        public int getMath(){
            return math;
        }
        public void setMath(int math){
            this.math=math;
        }
    
        public int getEngilsh(){
            return Engilsh;
        }
        public void setEngilsh(int Engilsh){
            this.Engilsh=Engilsh;
        }
    
    }
    

    运行结果截图如下:


    练习过程中遇到的问题

    • 问题1:当连续存入两个学生的信息时,存完第一个后报错:

    • 解决方案:看了自己的程序,在用户输入1进行存储后,case1实现后没有加上break。

  • 相关阅读:
    Java并发编程:如何创建线程?
    Java并发编程:volatile关键字解析
    Java并发编程:深入剖析ThreadLocal
    Java并发编程:同步容器
    Java ConcurrentModificationException异常原因和解决方法
    Java并发编程:并发容器之ConcurrentHashMap
    Java并发编程:并发容器之CopyOnWriteArrayList
    Java并发编程:Callable、Future和FutureTask
    rest-framework频率组件
    rest-framework的权限组件
  • 原文地址:https://www.cnblogs.com/zyqzyq/p/6686552.html
Copyright © 2011-2022 走看看