20165321实验一 Java开发环境的熟悉
一、idea调试:


二、实验内容:
4. 实现学生成绩管理功能(增删改,排序,查找),并进行测试(正常情况,异常情况,边界情况)。
运行截图:




代码:
public class Student {
String name;
String studentId;
String sex;
int grade;
public Student(String name,String studentId,String sex,int grade){
    this.name= name;
    this.studentId= studentId;
    this.sex = sex;
    this.grade = grade;
}
public int getGrade(){
    return grade;
}
public String getName(){
    return name;
}
public String getSex(){
    return sex;
}
public void setGrade(int g){
    this.grade = g;
}
public String getStudentId(){
    return studentId;
}
}
import java.util.*;
public class StudentSystem {
static List<Student> StudentList = new LinkedList<Student>();
public static void main(String[] agrs){
    select(StudentList);        
}
private static void select(List<Student> StudentList ){
    System.out.println("***************");
    System.out.println("*欢迎来到学生管理系统 *");
    System.out.println("*1:增加学生                    *");
    System.out.println("*2:删除学生                    *");
    System.out.println("*3:修改成绩                    *");
    System.out.println("*4:查询成绩                    *");
    System.out.println("***************");
    System.out.println("若要退出系统,请输入1、2、3、4外的其他数字!!!");
    System.out.println("您想选择的操作是:");
    Scanner sc = new Scanner(System.in);
    int choice = sc.nextInt();
    switch(choice){
    //增加学生
    case 1:
        System.out.print("请输入学生的姓名:");
        Scanner Sname = new Scanner(System.in);
        String name = Sname.nextLine();
        System.out.print("请输入学生的性别:");
        Scanner Ssex = new Scanner(System.in);
        String sex = Ssex.nextLine();
        System.out.print("请输入学生的学号:");
        Scanner SId = new Scanner(System.in);
        String studentId = SId.nextLine();
        System.out.print("请输入学生的成绩:");
        Scanner Sgrade = new Scanner(System.in);
        int grade = Sgrade.nextInt();
        StudentList.add(new Student(name,studentId,sex,grade));
        System.out.println("添加成功!!!");
        select(StudentList);
        break;
    //删除学生成绩
    case 2:
        System.out.print("请告诉我需要删除学生的学号:");
        Scanner Sid = new Scanner(System.in);
        String SstudentId = Sid.nextLine();
        boolean isfindDelete = false;
        for (int i = 0; i < StudentList.size(); i++) {
            if(SstudentId.equals(StudentList.get(i).getStudentId())){
                StudentList.remove(i);
                System.out.println("删除成功!!!");
                isfindDelete =true;
            }
        }
        if(!isfindDelete){
            System.out.println("抱歉,没有找到");
        }
        select(StudentList);
        break;
    //修改学生成绩
    case 3:
        System.out.print("请告诉我需要修改成绩学生的学号:");
        Scanner GId = new Scanner(System.in);
        String GstudentId = GId.nextLine();
        boolean isfindChange = false;
        for (int j = 0; j < StudentList.size(); j++) {
            if(GstudentId.equals(StudentList.get(j).getStudentId())){
                System.out.println("学生原成绩为"+StudentList.get(j).getGrade());
                System.out.print("请输入修改后学生的成绩:");
                Scanner Ggrade = new Scanner(System.in);
                int grade2 = Ggrade.nextInt();
                StudentList.get(j).setGrade(grade2);
                System.out.println("修改成功!!!");
                isfindChange =true;
            }else{
            }
        }
        if(!isfindChange){
            System.out.println("没有该名学生!");
        }
        select(StudentList);
        break;
    //查看学生成绩
    case 4:
        System.out.print("请告诉我需要查询学生的学号:");
        Scanner CId = new Scanner(System.in);
        String CstudentId = CId.nextLine();
        boolean isfindData = false;
        for (int i = 0; i < StudentList.size(); i++) {
            if(CstudentId.equals(StudentList.get(i).getStudentId())){
                System.out.println("名字:"+StudentList.get(i).getName());
                System.out.println("性别:"+StudentList.get(i).getSex());
                System.out.println("学号:"+StudentList.get(i).getStudentId());
                System.out.println("成绩:"+StudentList.get(i).getGrade());
                isfindData = true;
            }
        }
        if(!isfindData){
        System.out.println("没有该名学生!");
        }
        select(StudentList);
        break;
    default:
        System.out.println("退出系统!!!");
        break;
    }
}
}
感想:
  一开始,当我得知我抽到的实验是几乎最难、代码也最长的实验的时候,我还有点丧气。但是,转念一想,以前在学习C语言的时候,我曾经编写过类似的学生成绩管理系统,这次只不过是换了一种语言而已,而且用Java语言来编写这种程序说不定比用C语言来编写还要简单,于是终究还是开始着手写代码。一开始,自然而然地想到创建一个用于存放学生信息的student类,后来,又想到可以把输入信息的函数放进student类里面。一开始我不知道如何删除学生,在参考了一些其他程序之后,终于是写出来。
  由于自己的Java功底还不到家,所以在参考了一部分程序后,才艰难地写出了代码。
| 步骤 | 耗时 | 百分比 | 
|---|---|---|
| 需求分析 | 10 | 4% | 
| 设计 | 20 | 8% | 
| 代码实现 | 180 | 72% | 
| 测试 | 10 | 4% | 
| 分析总结 | 20 | 8% | 
20165321实验一 Java开发环境的熟悉的更多相关文章
- 20165321 实验一Java开发环境的熟悉-2
- 20165321实验一Java开发环境的熟悉-1
- 20145205 实验一 Java开发环境的熟悉
		实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ... 
- 实验一 Java开发环境的熟悉
		实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ... 
- 20145308刘昊阳 《Java程序设计》实验一  Java开发环境的熟悉 实验报告
		20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ... 
- 实验一Java开发环境的熟悉
		实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ... 
- 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)
		20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ... 
- 20145208实验一 Java开发环境的熟悉
		20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ... 
- 实验一 Java开发环境的熟悉(Linux + Eclipse)
		学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ... 
随机推荐
- Flask web开发之路十二
			ge请求和post请求 ### get请求和post请求:1. get请求: * 使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使用get请求. * 传参:get请求传参是放 ... 
- 拦截$.ajax方法实现登录过期登录
			jQuery(function ($) { var CreateLoginWindows = function (callback) { var h = 300; $('#CreateLoginWin ... 
- 泡泡一分钟:Towards real-time unsupervised monocular depth estimation on CPU
			Towards real-time unsupervised monocular depth estimation on CPU Matteo Poggi , Filippo Aleotti , Fa ... 
- Imu_tk算法流程及数据采集要求和标定程序参数设置
			Imu_tk算法流程 由于VIO中,普遍使用的是精度较低的imu,所以其需要一个较为准确的内参数和noise的估计.Noise大家通常使用Allan方差进行估计可以得到较为可信的结果,这里不赘述了.内 ... 
- POJ 2449 - Remmarguts' Date - [第k短路模板题][优先队列BFS]
			题目链接:http://poj.org/problem?id=2449 Time Limit: 4000MS Memory Limit: 65536K Description "Good m ... 
- [No0000138]软件开发基础知识
			1. 本文目的 本文目的在于,介绍软件开发的各种基础知识 以实现,看了之后,对于软件开发的很多领域的基础知识有所了解 如此在进行后续的真正的软件开发时,遇到各种细节知识,才会明白由来和背景知识 第 1 ... 
- [No0000117]visual studio 调试WebForm 显示 HTTP Error 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。
			调试界面如下: 解决办法1:右键设置起始页. 影响文件: 解决方案2:Web.config中添加默认页面配置: <system.webServer> <defaultDocument ... 
- Zend 缓存
			一. Zend Optimizer 和 Zend Guard Loader 作用和区别 两者的功能一样. Zend Optimizer 在PHP5.3以前的版本使用,解密和代码优化,提高PHP应用程序 ... 
- 单周期CPU设计的理论基础
			写在前面:本博客内容为本人老师原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法UR ... 
- 把MP3保存到数据库中
			使用JdbcUtils得到连接con java.sql包下的Interface Blob----其实现类SerialBlob Blob是一个可以存储二进制文件的容器. BLOB常常是数据库中用来存储二 ... 
