java面向对象之学生信息管理系统

通过学习的一系列知识点综合的小案例,通过控制台来完成一系列的增删查改的操作。

准备工作

开发工具IDEA2019.1.4,jdk13

思路

一共三个类,一个接口

  • Student类:封装数据
  • StudentManager类:用于管理增删查改等方法体
  • StudentView类:用于主界面的视图
  • StudentInterface接口:用于编写抽象方法体,用于继承

java面向对象之学生信息管理系统

存放学生数据用我们学过的ArrayList,由于类是一种引用数据类型,所以我们可以将泛型指代成Student

编写逻辑

业务层调用逻辑层,逻辑层调用数据层

知识点

面向对象,ArrayList,泛型,循环,迭代,switch

具体代码实现

Student.java

package com.zxy.bean;

public class Student {
 private int id;
 private String name;
 private int age;
 private String addr;

 public Student(){
 // 无参构造方法,防止出错
 }
 public Student(int id,String name,int age,String addr){
 this.id=id;
 this.name=name;
 this.age=age;
 this.addr=addr;
 }

 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 getAge() {
 return age;
 }

 public void setAge(int age) {
 this.age = age;
 }

 public String getAddr() {
 return addr;
 }

 public void setAddr(String addr) {
 this.addr = addr;
 }

 @Override
 public String toString() {
 return "{ID: "+this.id+",name: "+this.name+",age: "+this.age+",addr: "+this.addr+"}";
 }
}

StudentManager.java

package com.zxy.bean;

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

public class StudentManager implements StudentInterface {
 @Override
 public void addStudent(ArrayList<Student> list) {
 Scanner sc=new Scanner(System.in);
 System.out.println("请输入学号:");
 int id=sc.nextInt();

 System.out.println("请输入姓名:");
 String name=sc.next();

 System.out.println("请输入年龄:");
 int age=sc.nextInt();

 System.out.println("请输入地址:");
 String addr=sc.next();

 list.add(new Student(id,name,age,addr));

 System.out.println("添加完成");
 }

 @Override
 public void delStudent(ArrayList<Student> list) {
 // 首先删除之前还是要判断一下有没有信息
 Scanner sc=new Scanner(System.in);

 if (list.size()==0){
  // 如果为0,则说明list中没有学生信息
  System.out.println("没有学生信息");
  return;
 }
 findStudent(list);
 System.out.println("输入要删除的学号:");
 // 输入要删除的学号
 int id=sc.nextInt();

 // 判断要删除的id是不是在list中
 for (int i=0;i<list.size();i++){
  if (list.get(i).getId()==id){
  Object string = list.remove(i);
  System.out.println("删除成功,你删除的是:"+string);
  }
 }
 }

 @Override
 public void findStudent(ArrayList<Student> list) {
 if (list.size()==0){
  System.out.println("没有学生信息");
 }
 // 查询全部学生信息
 for (Student student:list){
  System.out.println(student.toString());
  System.out.println("信息已展示");
 }
 return;
 }

 @Override
 public void changeStudent(ArrayList<Student> list) {
 // 修改学生信息
 Scanner sc=new Scanner(System.in);

 if (list.size()==0){
  System.out.println("当前没有学生信息");
  return;// 这样会直接终止当前语句,不会执行下面的语句了
 }
 System.out.println("输入要修改的学生的学号:");
 int id=sc.nextInt();

 // 判断id是否在list中,如果在,就修改
 boolean flag=false;// 如果boolean为false,那么说明没有在这个人
 for (int i=0;i<list.size();i++){
  if (list.get(i).getId()==id){
  // 如果存在,就输入新的学号、姓名、年龄、地址
  System.out.println("输入新的学号:");
  int idNew=sc.nextInt();

  System.out.println("输入新的姓名:");
  String nameNew=sc.next();

  System.out.println("输入新的年龄:");
  int ageNew=sc.nextInt();

  System.out.println("输入新的地址:");
  String addrNew=sc.next();

  list.set(i,new Student(idNew,nameNew,ageNew,addrNew));

  System.out.println("修改成功");
  return;
  }
 }
 if (flag==false){
  System.out.println("没有找到该学生呢,亲");
 }
 }

 @Override
 public void findOnlyStudent(ArrayList<Student> list) {
 Scanner sc=new Scanner(System.in);
 System.out.println("输入要查找的学生id:");
 int id=sc.nextInt();

 for (Student stu:list){
  if (stu.getId()==id){
  System.out.println(stu.toString());
  }else {
  System.out.println("你输入的id不存在");
  return;
  }
 }
 }
}

StudentView.java

package com.zxy.bean;

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

public class StudentView {

 public static void main(String[] args) {

 menu();
 }
 // 封装一个主菜单的方法
 public static void menu(){
 // 数组保存学生信息,类型使用Student类型
 ArrayList<Student> list=new ArrayList<>();
 StudentManager stu=new StudentManager();
 boolean flag=true;
 while (flag){
 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("******* 6.退出  *********");
 System.out.println("**********************************");
 System.out.println("请输入您要操作的序号: ");
 // 序号选择
 int choice=new Scanner(System.in).nextInt();
  switch (choice){
  case 1:
   // 查询学生
   stu.findStudent(list);
   break;
  case 2:
   // 查询单个学生
   stu.findOnlyStudent(list);
   break;
  case 3:
   // 添加学生
   stu.addStudent(list);
   break;
  case 4:
   // 修改学生
   stu.changeStudent(list);
   break;
  case 5:
   // 删除学生
   stu.delStudent(list);
   break;
  case 6:
   // 退出程序
   flag=false;
   System.out.println("程序退出成功,欢迎下次使用");
   break;
  }
 }
 }
}

StudentInterface.java

package com.zxy.bean;

import java.util.ArrayList;

public interface StudentInterface {
 void addStudent(ArrayList<Student> list);
 void delStudent(ArrayList<Student> list);
 void findStudent(ArrayList<Student> list);
 void changeStudent(ArrayList<Student> list);
 void findOnlyStudent(ArrayList<Student> list);
}

运行截图

java面向对象之学生信息管理系统

java面向对象之学生信息管理系统

java面向对象之学生信息管理系统

java面向对象之学生信息管理系统

java面向对象之学生信息管理系统

java面向对象之学生信息管理系统

关于管理系统的更多内容请点击《管理系统专题》进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2020-03-27

javaWeb实现学生信息管理系统

本文为大家分享了javaWeb实现学生信息管理系统,供大家参考,具体内容如下 初始版 初始版是没有加分页的.因为没怎么学过前端,界面很丑陋.主要技术:JSP,JavaBean,servlet,JDBC主要页面如下: 登录页面 主页 添加学生 查看所有学生 查询学生 工程目录 数据库 两个表,user表和student表.为了使用DBUtils工具,一定要注意数据库表的属性的命名和JavaBean的get(),set() 方法的匹配.比如t_user表里的uname,在JavaBean中是:pri

java学生管理系统界面简单实现(全)

学生管理系统简单的实现,供初学Java Swing同学学习使用. import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import jav

Java+Mysql学生管理系统源码

最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具:eclipse 开发此案例,首先得在电脑上有java开发环境和Mysql, java开发环境与Mysql的搭建,就不再叙述了,如果需要,请联系我最下面的联系方式:dingyelf@aliyun.com 此次系统比较简易:数据库中只有一个表:stu;功能:能够对学生增加.删除.修改. 开发步骤:  

Java基于MySQL实现学生管理系统

本文为大家分享了Java基于MySQL实现学生管理系统,供大家参考,具体内容如下 因为实验室要交作业然后就做了一个学生管理系统,贴个代码纪念一下,做的太急界面什么的也比较差. 还有一些小细节没有完善不过还是能实现主要的功能的. Window是主界面 package First; import java.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Window { pub

java学生信息管理系统源代码

本文实例为大家分享了java学生信息管理系统的具体代码,实现学生信息: 增加 int[] a=new int[9] .删除 .查找.更改,供大家参考,具体内容如下 /*学生信息管理系统,实现学生信息: *增加 int[] a=new int[9] *删除 *查找 *更改 */ import java.util.Scanner;//导入java输入流 import java.lang.*; import java.io.*; class Student { private static Stude

java+SQL server2008学生信息管理系统源码

本文实例为大家分享了java学生信息管理系统源码的具体代码,供大家参考,具体内容如下 1.StudetManage类(主界面) package com.sms3; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class StudentManage extends JFrame implements ActionListener { /** * @param args */ public stat

简单实现Java版学生管理系统

本文实例为大家分享了Java实现学生管理系统的具体代码,供大家参考,具体内容如下 package BookDemo_1; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Test { public static void main(String[] args) { StudentSys stuSys=new StudentSys("学生管理系统"); stuSys.initWi

java(swing)+ mysql实现学生信息管理系统源码

本文实例为大家分享了java实现学生信息管理系统源码,供大家参考,具体内容如下 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import

Java+MySQL实现学生信息管理系统源码

基于Java swing+MySQL实现学生信息管理系统:主要实现JDBC对学生信息进行增删改查,应付一般课设足矣,分享给大家.(由于篇幅原因,代码未全部列出,如有需要留下邮箱) 鉴于太多同学要源码,实在发不过来,上传到github上 https://github.com/ZhuangM/student.git 1. 开发环境:jdk7+MySQL5+win7 代码结构:model-dao-view 2. 数据库设计--建库建表语句: CREATE DATABASE student; DROP

Java GUI实现学生成绩管理系统

学习java有一年多了,一直在做web方面的练习,在一个项目中发现需要用到GUI的相关知识,结果没法做出来,网上这方面的文章又不是很多,所有只好自己硬着头皮从头再学一遍了,不过学习后发现,其实GUI是非常有趣的,他并不像WEB程序一样依赖互联网,而且还有许多布局和android相差不是很大,这才发现自己竟又爱上GUI的开发了,不多说了,直接上代码吧,相信有过android或相关界面开发的都明白这其中的道理. 先看看效果吧 1.登录主界面 package edu.gzu.stuManager; i

JSP学生信息管理系统

本文实例为大家分享了JSP学生信息管理系统源码,JSP+Servlet+Javabean+JDBC+MySQL,供大家参考,具体内容如下 1.service层,进行数据库操作     package com.service; /** * 负责学生信息的所有数据库操作,增删改查 */ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQ

Winform学生信息管理系统主页面设计(2)

在上次的学生登录窗口的设计(Winform学生信息管理系统登陆窗体设计(1))中,需要修改的地方为: 1.登录窗口的最大化和最小化,这个一般的登录窗口不需要,因此我们也不做,单击学生信息管理系统的窗体设计找到属性MaximizeBox和属性(窗口的最大化)和MinimizBox(窗口的最小化)是True,把它们改为False. 2.登录窗口设计的属性AcceptButton将其改为确定按钮的唯一名字(也就是button1),因此在按下回车键后我们也能登录到学生信息管理系统主页面. 3.在登录名称

PHP基于方差和标准差计算学生成绩的稳定性示例

本文实例讲述了PHP基于方差和标准差计算学生成绩的稳定性.分享给大家供大家参考,具体如下: 项目中的学生端有处个人成长档案模块,要求依据学生近期十次考试成绩通过波动采集分析学生的成绩稳定性.学过数学都知道,这处应该利用数学中的方差来实现.由于是个数学渣,不得不网上看了下相关的说明和公式,见下图 好了,有了公式,那就好办了,接下来就是套公式了. $arr1 = array(50, 100, 100, 60, 50); $arr2 = array(73, 70, 75, 72, 70); funct

C++学生信息管理系统

本文实例为大家分享了C++学生信息管理系统源码,供大家参考,具体内容如下 1. tea_list.c #include<stdio.h> #include<stdlib.h> #include<string.h> #include"teacher.h" int sq_tea ; PTEA head = NULL ; FILE *fp ; int tea_llopen(const char* path)//打开文件 { fp=fopen(path,&q

Winform学生信息管理系统登陆窗体设计(1)

对这块的知识学习早已期待已久,感觉学习的进度还是慢了,最近一直在学习Winform,不得不说一些登陆窗体的设计,这几天算是小有收获,自己也看了许多这方面的知识,知道了要想做学生信息管理系统是一个漫长的过程,但是从今天起就来慢慢地进行学生信息管理系统的构建,此外还用到数据库的知识,打算着自己开始学数据库的知识,今天就来看看学生信息管理系统登录窗口的设计.下面图片的是样例: 这方面的知识还是基于C#语言和.NET Framework平台的.自己所用的还是熟悉的开发环境VS2012,感觉VS2013和

Winform学生信息管理系统各子窗体剖析(3)

先来补充一下学生信息管理系统登录窗体,在完成的过程中总是遇到各种各样的问题,对于登录窗体的设计还是存在着一些弊端,那就是需要登录学生信息管理系统时如果输入的数据出错不必一个个删除,就需要在窗体上再添加一个清空写入数据的button控件,将其属性Text改为重置.还有一个与登录窗口设计的属性AcceptButton将其改为确定按钮的唯一名字(也就是button1),因此在按下回车键后我们也能登录到学生信息管理系统主页面相对应的CancelButton将其改为取消按钮的唯一名字(也就是button2

Java TreeSet实现学生按年龄大小和姓名排序的方法示例

本文实例讲述了Java TreeSet实现学生按年龄大小和姓名排序的方法.分享给大家供大家参考,具体如下: import java.util.*; class Treeset { public static void main(String[] args) { TreeSet t = new TreeSet(); t.add(new student("a1",15)); t.add(new student("a2",15)); t.add(new student(&

Java GUI编程之贪吃蛇游戏简单实现方法【附demo源码下载】

本文实例讲述了Java GUI编程之贪吃蛇游戏简单实现方法.分享给大家供大家参考,具体如下: 例子简单,界面简陋 请见谅 项目结构如下 Constant.jvava 代码如下: package snake; /** * * @author hjn * */ public class Constant { /** * 蛇方移动方向:左边 */ public static final int LEFT = 0; /** * 蛇方移动方向:右边 */ public static final int R

JAVA GUI自定义JPanel画板背景

自定义JPanel面板背景 一.前言 1.GUI全称是Graphical User Interface,就是图形用户界面.JAVA的GUI应用广泛在我们生活中也很常见.很多应用使用该GUI编程设计,像点击QQ图标弹出对应的登录窗体. 一般程序与用户的交互都基于对应程序的运行界面. 2.JPanel面板是SWING下的一个面板容器类.该面板支持嵌套,可设置布局方式,设置不同的布局管理器可添加其他控件像JButton按钮,JTextField文本框等.来设计完善一个程序界面窗体. 作为绘制面板支持s