2018.4.2 学生信息管理系统(集合版) 完整篇

学生信息管理系统(集合版)

Student.java

package com.lanqiao.demo;

/**
 * 学生类
 *
 * @author qichunlin
 *
 */
public class Student {
    private String name;// 姓名
    private double[] score = new double[3];// 三门课程成绩

    // get set
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double[] getScore() {
        return score;
    }

    public void setScore(double[] score) {
        this.score = score;
    }

    // 有参构造方法
    public Student(String name2, double[] score2) {
        super();

        // 传入的参数跟类里定义的属性区分开
        this.name = name2;
        this.score = score2;
    }

    // 无参构造方法
    public Student() {
        super();
    }

    // 有参构造函数
    public String toString() {
        return "\t" + this.name + "\t" + this.score[0] + "\t" + this.score[1] + "\t" + this.score[2];
    }

}

Manager.java

package com.lanqiao.demo;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Manager {
    List stuList = new ArrayList();

    Scanner input = new Scanner(System.in);

    public void menu() {
        System.out.println("======学生信息管理系统======");
        System.out.println("1.添加学生");
        System.out.println("2.查询学生");
        System.out.println("3.修改学生");
        System.out.println("4.删除学生");
        System.out.println("5.退出系统");

        System.out.println("请选择:");
        int num = input.nextInt();

        switch (num) {
        case 1:
            System.out.println("添加学生");

            //创建学生对象
            Student stu = new Student();

            //录入学生姓名
            System.out.print("请输入学生姓名:");
            String name = input.next();

            double[] scores = stu.getScore();
            for (int i = 0; i < scores.length; i++) {
                System.out.print("请输入学生"+(i+1)+"门成绩:");
                scores[i] = input.nextDouble();
            }

            //将信息保存在学生对象里面
            stu.setName(name);
            stu.setScore(scores);

            //再把学生对象放进去集合里面
            input(stu);
            break;

        case 2:
            display();
            break;

        case 3:
            System.out.println("修改学生");
            display();
            System.out.println("请输入需要修改学生的编号:");
            int n = input.nextInt();
            update(n);
            break;

        case 4:
            System.out.println("删除学生");
            System.out.println("请选择删除的方式(1.根据编号  2.根据姓名)");
            int key = input.nextInt();

            //删除操作之前显示一下学生信息
            display();

            //选择删除方式
            switch (key) {
            case 1:

                System.out.println("请输入删除的编号 ");
                int index = input.nextInt();

                //在方法中定义了异常  数组下标越界的问题
                try {
                    delete(index);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                break;

            case 2:
                System.out.println("请输入需要删除的学生姓名");
                String delName = input.next();
                delete(delName);
                break;

            default:
                break;
            }

            break;
        case 5:
            System.exit(0);
            System.out.println("Welcome to use this system Next");
            break;

        default:
            break;
        }

        System.out.println("是否继续(Y/N):");
        String flag = input.next();
        if(flag.equalsIgnoreCase("y")) {
            menu();
        }else {
            System.out.println("Welcome to use this system Next");
        }
    }

    // 学生成绩录入方法,参数stus为待录入信息学生集合
    public void input(Student stus) {
        System.out.println();
        stuList.add(stus);
    }

    // 学生成绩修改方法,参数index为修改的学生信息索引,另外本方法会在修改前显示该学生信息
    public void update(int index) {
        Student s = (Student)stuList.get(index);
        System.out.println("请输入修改后的名字");
        String name = input.next();
        s.setName(name);
        stuList.set(index, s);
        System.out.println("==========修改后显示成绩信息==========");
        System.out.println(s.getName()+"\t"+s.getScore()[0]+"\t"+s.getScore()[1]+"\t"+s.getScore()[2]);
    }

    // 显示所有学生成绩信息方法
    public void display() {
        System.out.println("编号\t"+"姓名\t"+"成绩1\t" +"成绩2\t" +"成绩3\t");
        for (int i = 0; i < stuList.size(); i++) {
            Student s = (Student) stuList.get(i);
            System.out.println(i+"\t"+s.getName()+"\t"+s.getScore()[0]+"\t"+s.getScore()[1]+"\t"+s.getScore()[2]);
        }
    }

    // 根据索引删除在集合中删除学生的方法
    public void delete(int index) throws Exception {
        if(index>=0 && index<stuList.size()) {
            stuList.remove(index);
        }else {
            throw new Exception("你输入的编号有误,请重新输入!!!");
        }
    }

    // 根据姓名删除在集合中删除学生的方法
    public void delete(String name) {
        for (int i = 0; i < stuList.size(); i++) {
            Student st = (Student) stuList.get(i);
            if(st.getName().equals(name)) {
                stuList.remove(st);
            }
        }
    }

}

Test.java

package com.lanqiao.demo;

/**
 * @author qichunlin
 *
 */
public class Test {
    public static void main(String[] args) {

        //创建管理类对象
        Manager m = new Manager();
        m.menu();
    }
}

原文地址:https://www.cnblogs.com/qichunlin/p/8708420.html

时间: 2024-10-12 15:46:13

2018.4.2 学生信息管理系统(集合版) 完整篇的相关文章

学生信息管理系统JAVASE版--1.1.1

现在终于可以写出实用一点的程序了.虽然这个程序的功能非常之简陋,而且还有BUG.不过最起码已经可以使用了. 功能预览和下一步的目标 程序主界面 查询功能: 目前只做了一个表的增.删.改.查.下一步应该就是把功能完善,比如加入错误处理,比如加入成绩部分.完成一个班级内的学生信息管理的功能,应该具有学生的基本信息查询,成绩管理这两个功能 不过有一个问题就是,在表格更新这一部分,每更新一次,就要创建一个tabliModel对象,感觉可以改进.再有就是MVC模式,其实也就接触设计模式.还有就是整成那种可

Java_学生信息管理系统——数组版——初次编写

Java练习学生信息管理系统,第一次写,对于类要怎么弄,函数要干嘛,main方法静态不能用非静态的等等很是烦恼了好大一阵. 幸好ArrayList做参数时,是引用传递...C++用&就可以引用传递,Java呢? 1 package Student; 2 3 public class Student 4 { 5 private String stunumber; 6 private String name; 7 private int age; 8 private boolean sex;//ma

学生信息管理系统-初级版

main.c 文件 #include"func.h" int main(int argc,char *argv[]){ char a[20]; char b; int i,num=0; char c[500]; char key[20]; pUSR_ACCOUNT phead_account=NULL; pUSR_ACCOUNT ptail_account=NULL; pUSR_INFOR phead_infor=NULL; pUSR_INFOR ptail_infor=NULL; p

学生信息管理系统JAVASE版--第0阶段之CMD版--0.1.3 版

这个程序是一个有进步也有失败的程序 比如没有做好多表查询,也没有做好主类中的逻辑处理.总之又要去复习了. 改进: 1.使用第三工具dbutils对数据库操作部分进行了封装 2.把URL等变量改为属性文件的形式 代码: MYSQL: student表: CREATE TABLE student( stuId INT PRIMARY KEY AUTO_INCREMENT, -- 学生编号 stuName VARCHAR(20) NOT NULL DEFAULT '', -- 学生姓名 stuAge

学生信息管理系统1(数据库设计篇)

1.系统概述 本次是做一个学生管理系统,在学了数据库之后,希望通过这个系统把所学知识应用与实际项目中去.加强自己的熟练程度. 开发背景:具备数据库,C#的相关知识储备,掌握基本的html知识. 用途:仅作练习用.通过一门语言,将数据库展现出来. 2.功能需求分析 系统概念层设计:功能用例图如下 1. 登录功能:用于身份认证 2. 数据操作:信息查询,数据的增删改.a) 数据操作里,管理员具备所有的操作权限.学生具有选课和查看的功能.以及可以修改自己的个人信息.3. UI设计 3.数据库设计 E-

学生信息管理系统 1.0

学生信息管理系统V1.0 1.实现用户的注册与登录功能. 1.1:注册时检测用户名,如果有重复则需要重新输入,用户信息存入数据库. 1.2:登录时,有验证码验证. 2.实现用户查询学生表的基本信息. 3.用户可以更改.删除学生表信息. 4.系统可以正确显示系统时间. 5.系统正确显示用户权限(功能暂未实现). 因为很多东西还没有学到,只能用最基础的代码实现功能. 1)欢迎页面 1 <%@ page language="java" contentType="text/ht

python 04 学生信息管理系统

今天任务不多,做了学生信息管理系统1.0,使用字典存储学生个体信息,列表存储学生字典.注意dict定义要在循环体内,若定义成全局变量或循环体外,则旧数据会被新数据覆盖.dict属于可变类型数据,内容改变时引用不会变.dict = {},给dict赋新值(直接换内容了),字典的地址会发生改变:dict.clear(),将字典的内容清空(对内容修改),引用不变. 1 def log2(): 2 # info_dict = {} # 不能定义在循环体外 3 info_list = [] 4 num =

c#简易学生信息管理系统

在近期的学习中,我们学习了泛型及泛型集合的概念和使用,泛型是c#中的一个重要概念,为了巩固我们学习的成果,我们可以使用一个实例来进行练习 题目及要求 要求使用Windows窗体应用程序,制作出如上图的界面,并实现增删改查的功能 StuInfo类的编写 同往常一样,在编写窗体的代码前,我们需要先编写一个StuInfo类用来存放学生的信息 StuInfo.cs代码如下: 1 using System; 2 using System.Collections.Generic; 3 using Syste

学生信息管理系统java测试报告

package studentinformation; /**姓名 胡海靖 * 学号 20183609 * 班级 信1805-2 */ class ScoreInformation { private String stunumber;//学号 private String name;//姓名 private double mathematicsscore;//高等数学成绩 private double englishiscore;//大学英语成绩 private double networks