今天分享一个简单的Java面向对象编程练习---学生管理系统

首先我们要写一个学生类,属性包含学号,姓名,年龄,居住地,有参无参的构造方法(此处可以Alt+insert(有些电脑需要加fn)直接进行构造~会让你节省很多时间),代码如下

package com.one;
/*
学生类   Alt+insert+fn*/
public class Student {//学号private String sid;//姓名private String name;//年龄private String age;//居住地private String address;public Student() {}public Student(String sid, String name, String age, String address) {this.sid = sid;this.name = name;this.age = age;this.address = address;}public String getSid() {return sid;}public void setSid(String sid) {this.sid = sid;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}

2.第二步就是去编写学生管理系统啦

  1. 创建学生对象,用于存储学生数据
 ArrayList<Student>array=new ArrayList<Student>();

2.主页面的编写(注意:用到循环是为了选择之后能够再次回到主页面)

 while (true) {//1.用输出语句完成主界面的编写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("请输入你的选择");

3.键盘录入数据,通过switch语句完成操作的选择

  // 2.用scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//3.用swith语句完成操作的选择switch (line) {case "1":
//                    System.out.println("添加学生");addStudent(array);break;case "2":
//                    System.out.println("删除学生");deleteStudent(array);break;case "3":
//                    System.out.println("修改学生");updateStudet(array);break;case "4":
//                    System.out.println("查看所以学生");FindallStudent(array);break;case "5":System.out.println("谢谢使用");
//                    break;System.exit(0); //JVM退出

可以看到case有方法调用,这里就是我们学生管理系统的功能了,分别是增删改查的简单功能,    这里我选择把方法直接写在本类里,废话少说,直接看代码吧!

(1)添加学生

 public static void addStudent(ArrayList<Student> array) {//键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息Scanner sc=new Scanner(System.in);//为了让sid在while循环外面被访问到,我们就把他定义在循环外String sid;//为了让程序能够回到这里,我们用循环来实现while (true) {System.out.println("请输入学生学号");sid=sc.nextLine();boolean flag=isUsed(array,sid);if (flag) {System.out.println("你输入的学号已经被占用,请重新输入");} else {break;}}System.out.println("请输入学生姓名");String name=sc.nextLine();System.out.println("请输入学生年龄");String age=sc.nextLine();System.out.println("请输入学生居住地");String address=sc.nextLine();//创建学生对象,把键盘录入的数据赋值给学生对象的成员变量Student s=new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//将学生对象添加到集合中去array.add(s);//给出添加成功提示System.out.println("添加学生成功");}

注意:当我们去添加学生信息时,需要输入该学生学号,但是如果输入的学号重复,就会造成系统信息出错,此时我们需要定义一个判断学号是否被占用的方法。

 //定义一个方法,判断学号是否被使用public static boolean isUsed(ArrayList<Student> array,String sid) {//如果与集合中的某一个学生学号相同,返回true,反之falseboolean flag=false;for (int i=0;i< array.size();i++) {Student s=array.get(i);if (s.getSid().equals(sid)) {flag=true;break;}}return flag;}

(2)删除学生的方法

 //定义一个方法,用于删除学生public  static void deleteStudent(ArrayList<Student> array) {//键盘录入要删除的学生学号,显示提示信息Scanner sc=new Scanner(System.in);System.out.println("请输入你要删除的学生的学生学号");String sid=sc.nextLine();//在删除/修改学生操作之前,对学号是否存在进行判断//如果存在,显示学生信息//如果不存在,执行删除操作int index=-1;for (int i=0;i< array.size();i++) {Student s=array.get(i);if (s.getSid().equals(sid)) {index=i;break;}}if (index==-1) {System.out.println("该信息不存在,请重新输入");} else {array.remove(index);//给出删除学生的提示System.out.println("删除学生成功");}}

(3)修改学生的方法

//定义一个方法,用于修改学生public  static void updateStudet(ArrayList<Student> array) {Scanner sc=new Scanner(System.in);System.out.println("请输入你要修改的学生的学号:");String sid= sc.nextLine();//键盘录入要修改的学生信息System.out.println("请输入学生新姓名:");String name= sc.nextLine();System.out.println("请输入学生新年龄:");String age= sc.nextLine();System.out.println("请输入学生新居住地:");String address= sc.nextLine();//创建学生对象Student s=new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//遍历集合修改对应的学生信息for (int i=0;i< array.size();i++) {Student student=array.get(i);if (student.getSid().equals(sid)) {array.set(i,s);break;}}System.out.println("修改学生成功");}

好啦,我们的学生管理系统就算写完了!!

完整代码如下

package com.one;//学生管理系统import java.util.ArrayList;
import java.util.Scanner;/*主页面的代码编写1.用输出语句完成主界面的编写2.用scanner实现键盘录入数据3.用switch语句完成操作的选择4.用循环再次回到主界面*/
public class StudentManager {public static void main(String[] args) {//创建学生对象,用于存储学生数据ArrayList<Student>array=new ArrayList<Student>();//4.用循环再次回到主界面while (true) {//1.用输出语句完成主界面的编写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("请输入你的选择");// 2.用scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//3.用swith语句完成操作的选择switch (line) {case "1":
//                    System.out.println("添加学生");addStudent(array);break;case "2":
//                    System.out.println("删除学生");deleteStudent(array);break;case "3":
//                    System.out.println("修改学生");updateStudet(array);break;case "4":
//                    System.out.println("查看所以学生");FindallStudent(array);break;case "5":System.out.println("谢谢使用");
//                    break;System.exit(0); //JVM退出}}}//定义一个方法,用于添加学生信息public static void addStudent(ArrayList<Student> array) {//键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息Scanner sc=new Scanner(System.in);//为了让sid在while循环外面被访问到,我们就把他定义在循环外String sid;//为了让程序能够回到这里,我们用循环来实现while (true) {System.out.println("请输入学生学号");sid=sc.nextLine();boolean flag=isUsed(array,sid);if (flag) {System.out.println("你输入的学号已经被占用,请重新输入");} else {break;}}System.out.println("请输入学生姓名");String name=sc.nextLine();System.out.println("请输入学生年龄");String age=sc.nextLine();System.out.println("请输入学生居住地");String address=sc.nextLine();//创建学生对象,把键盘录入的数据赋值给学生对象的成员变量Student s=new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//将学生对象添加到集合中去array.add(s);//给出添加成功提示System.out.println("添加学生成功");}//定义一个方法,判断学号是否被使用public static boolean isUsed(ArrayList<Student> array,String sid) {//如果与集合中的某一个学生学号相同,返回true,反之falseboolean flag=false;for (int i=0;i< array.size();i++) {Student s=array.get(i);if (s.getSid().equals(sid)) {flag=true;break;}}return flag;}//定义一个方法,用于查看所有学生信息public static void FindallStudent(ArrayList<Student> array) {//判断集合中是否有数据,如果没有显示提示信息if (array.size()==0){System.out.println("无信息,请先添加信息在查询");//为了让程序不在往下执行,给出return;return;}//显示表头信息System.out.println("学号\t\t\t姓名\t\t年龄\t\t居住地");//将集合中的数据取出按照对应的格式显示学生信息,年龄显示补充“岁”for (int i=0;i< array.size();i++) {Student s= array.get(i);System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"岁\t\t"+s.getAddress());}}//定义一个方法,用于删除学生public  static void deleteStudent(ArrayList<Student> array) {//键盘录入要删除的学生学号,显示提示信息Scanner sc=new Scanner(System.in);System.out.println("请输入你要删除的学生的学生学号");String sid=sc.nextLine();//在删除/修改学生操作之前,对学号是否存在进行判断//如果存在,显示学生信息//如果不存在,执行删除操作int index=-1;for (int i=0;i< array.size();i++) {Student s=array.get(i);if (s.getSid().equals(sid)) {index=i;break;}}if (index==-1) {System.out.println("该信息不存在,请重新输入");} else {array.remove(index);//给出删除学生的提示System.out.println("删除学生成功");}}//定义一个方法,用于修改学生public  static void updateStudet(ArrayList<Student> array) {Scanner sc=new Scanner(System.in);System.out.println("请输入你要修改的学生的学号:");String sid= sc.nextLine();//键盘录入要修改的学生信息System.out.println("请输入学生新姓名:");String name= sc.nextLine();System.out.println("请输入学生新年龄:");String age= sc.nextLine();System.out.println("请输入学生新居住地:");String address= sc.nextLine();//创建学生对象Student s=new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//遍历集合修改对应的学生信息for (int i=0;i< array.size();i++) {Student student=array.get(i);if (student.getSid().equals(sid)) {array.set(i,s);break;}}System.out.println("修改学生成功");}}

运行的效果图

有问题可以留言哦,看到就会解答!!我们一起共同进步

JAVA面向对象编程---学生管理系统相关推荐

  1. JAVA面向对象编程——学生喂养三种宠物:猫、狗和鸟

    学生喂养三种宠物:猫.狗和鸟 编程代码 1.创建动物类 2.继承动物类,创建猫类 3.继承动物类,创建狗类 4.继承动物类,创建鸟类 5.创建学生类 6.创建测试学生类 7.查看运行结果

  2. 【Java面向对象编程——名片管理系统】

    文章目录 (一)编程实现 1.创建名片实体类 2.创建名片管理类 (1)创建主菜单 (2)创建登录方法 (3)创建名片管理方法 (4)创建添加名片方法 (5)创建保存名片方法 (6)创建读取名片文件方 ...

  3. java面向对象编程基础

    java面向对象编程基础 前言:什么是java 是咖啡飘香的清晨 - 是斯坦福校园意浓情深 - 是James的思想睿智 是剁手党双十一挥舞的利刃 是大数据云计算驰骋的平台 - 是ATM上吐出的钞票 - ...

  4. Java面向对象编程篇2——面向对象三大特点

    Java面向对象编程篇2--面向对象三大特点 1.封装 1.1.封装的概念 通常情况下可以在测试类给成员变量赋值一些合法但不合理的数值,无 论是编译阶段还是运行阶段都不会报错或者给出提示,此时与现实生 ...

  5. 【Java】《Java面向对象编程的三大特性》阅读笔记

    前言 偶然读到这篇文章(<Java面向对象编程的三大特性>),想来这也算论文?这种还不满网络都是?读罢觉得写得还真不错,这里以我愚见,简单点评一二,不足之处还望指教. 阅读笔记 笔记1 文 ...

  6. 面向对象案例:学生管理系统

    软件开发的大致流程 产品经理:将用户的需求,写成产品规格说明文档 程序员:需求分析–>架构设计(概要设计/详细设计)–>编码–>单元(类/函数)测试 测试员:自动化测试 上线/维护 ...

  7. java面向对象编程_包_继承_多态_重载和重写_抽象类_接口_this和super

    目录点击跳转 包 包的命名方法 导入包中的类 系统包的介绍 **注意事项** 继承 基础知识 构造方法 **基础语法** `protected`修饰符 组合 `this`和`super`关键字 `th ...

  8. java面向对象编程精讲

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.包 1.1导入包中的类 1.2静态导入 1.3将类放到包中 1.4包的访问权限控制 1.5常见的系统包 二.继承 ...

  9. 能听懂的Java面向对象编程-雷伟-专题视频课程

    能听懂的Java面向对象编程-2605人已学习 课程介绍         通过本课程的学习,学生能掌握面向对象的程序设计思想,并能运用Java技术和相关开发工具进行计算机软件代码的设计. 课程内容并非 ...

  10. java面向对象编程知识点总结

    一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...

最新文章

  1. vlan配置实例详解_【精品网络干货】二层MSTP防环技术详解
  2. js实现旋转木马轮播图
  3. 2009年9月三级网络技术51CTO版考前压轴试题
  4. centos7启动dhcp失败_CentOs 7 搭建DHCP服务器 启动报错
  5. 王兴:互联网化是企业家最大的机会
  6. 经典C语言程序100例之八四
  7. 关于[一个基于WF的业务流程平台]表设计的说明
  8. eclipse3.4 SVN插件安装
  9. ASP.NETWebPage应用深入探讨
  10. Prometheus监控学习笔记之360基于Prometheus的在线服务监控实践
  11. 2017《JAVA》预备作业 计科1501班 王奕开
  12. easyui-combobox实现placeholder提示效果
  13. undefined reference to `crypto_get_random'
  14. Openwrt安装transmission离线下载
  15. MSM8937-Kernel 内存分布情况
  16. 用LNMP+wordpress搭了一个网站
  17. 嵌入式工程师必备开发工具
  18. 通过js批量下载地图TopoJson数据
  19. 纷享销客订货通:B2B渠道管理专属的经销商订货平台
  20. 用户画像 各维度表的结构图

热门文章

  1. 如何查询目标计算机的ip地址,基于Wireshark获取目标ip地址
  2. FileZilla Server1.5使用入门
  3. 假日活动的背后,酷开网络再造OTT营销的“价值高地”
  4. linux编译ko文件
  5. CI框架源码解析五之钩子类文件Hooks.php
  6. WPS Office 11.5.5 for Android 8848钛金
  7. 2008考研数学辅导讲义理工类高等数学部分-蔡燧林
  8. 示波器触发功能中的释抑
  9. 计算机仿真技术交通灯设计,交通灯的设计心得体会总结
  10. 敏捷软件开发与极限编程