学生信息管理系统

  • 1.学生信息系统功能:
    • (1.)添加学生信息
    • (2.)删除学生信息
    • (3.)修改学生信息
    • (4.)查询学生信息
  • 2.程序运行结果图
  • 3.该程序分为两个类:
    • (1.)Student类
    • (2.)TestMain类(增、删、改、查功能都写在了测试类TestMain类中)
  • 4.编程中遇到的问题和解决方法

1.学生信息系统功能:

(1.)添加学生信息

(2.)删除学生信息

(3.)修改学生信息

(4.)查询学生信息

2.程序运行结果图

3.该程序分为两个类:

(1.)Student类

package studentmanagement;public class Student {//定义变量学号、姓名、住址private String no;private String name;private String add;private String sex;private int tel;private int age;public Student() {}public Student(String no, String name, String sex,int age,String add,int tel) {this.no = no;this.name = name;this.sex = sex;this.age = age;this.add = add;this.tel = tel;}//学号public void setSNo(String no) {this.no = no;}public String getNo() {return no;}//姓名public void setName(String name) {this.name = name;}public String getName() {return name;}//性别public void setSex(String sex) {this.sex = sex;}public String getSex() {return sex;}//年龄public void setAge(int age) {this.age = age;}public int getAge() {return age;}//住址public void setAdd(String add) {this.add = add;}public String getAdd() {return add;}    //电话public void setTel(int tel) {this.tel = tel;}public int getTel() {return tel;} }

(2.)TestMain类(增、删、改、查功能都写在了测试类TestMain类中)

package studentmanagement;import java.util.ArrayList;
import java.util.Scanner;public class TestMain {public static void main(String[] args) {// ArrayList<参数化类型> list = new ArrayList<参数化类型>();// 使用泛型ArrayList<Student>之后,表示ArrayList集合中只允许存储Student类型的数据// 用泛型指定集合中存储的数据类型// 创建ArrayList集合存储student对象ArrayList<Student> array = new ArrayList<Student>();// 当前可查学生信息Student s1 = new Student("01", "蒋丞", "男", 20,"辽宁",135256);Student s2 = new Student("02", "顾飞", "男", 21,"辽宁",155234);Student s3 = new Student("03", "顾淼", "女", 18,"辽宁",167235);array.add(s1);array.add(s2);array.add(s3);// while(true)无限循环语句,语句块中有break语句才都能跳出循环。while (true) {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("请选择系统功能: ");// 输入管理系统选项Scanner sc = new Scanner(System.in);String choice = sc.nextLine();switch (choice) {case "1":addStudent(array); // 增break;case "2":removeStudent(array); // 删break;case "3":updateStudent(array); // 改break;case "4":findAllStudent(array); // 查break;case "5": // 退出default:System.out.println("谢谢您的使用");System.exit(0);// java虚拟机退出// break;}}}// 1.添加学生信息// public static void main(String[] args) {// ArrayList<Student> array = new ArrayList<Student>();public static void addStudent(ArrayList<Student> array) {Scanner sc = new Scanner(System.in);String No;System.out.println("请输入学生学号:");// String No=sc.nextLine();No = sc.nextLine(); // 输入学号No nextLine返回string类型// 定义标记,判断学生学号是否被占用boolean flag = true;for (int i = 0; i < array.size(); i++) {// 遍历学生信息返回给学生对象Student s = array.get(i);// 获取该学生的学号,和键盘录入的学号进行比较if (s.getNo().equals(No)) {flag = false;// 说明学号被占用System.out.println("该学生已存在,请重新输入!");break;}}if (flag) {System.out.println("请输入学生姓名:");String Name = sc.nextLine();System.out.println("请输入学生住址:");String Add = sc.nextLine();System.out.println("请输入学生性别:");String Sex = sc.nextLine();System.out.println("请输入学生年龄:");int Age = sc.nextInt();System.out.println("请输入学生电话:");int Tel = sc.nextInt();//nextInt必须在nextLine后面// 创建学生对象Student s = new Student();s.setSNo(No);s.setName(Name);s.setAdd(Add);s.setSex(Sex);s.setAge(Age);s.setTel(Tel);// 把学生对象作为元素添加到集合array.add(s);System.out.println("添加成功!");}}// 2.删除学生信息public static void removeStudent(ArrayList<Student> array) {Scanner sc = new Scanner(System.in);System.out.println("请输入你要删除的学生的学号: ");String No = sc.nextLine(); // 键盘录入的学号返回给No// 作为索引int index = -1;// 遍历学生信息for (int i = 0; i < array.size(); i++) {Student s = array.get(i);// 获取该学生的学号,和键盘录入的学号进行比较if (s.getNo().equals(No)) {index = i; // 124行 array.remove(index);break;}}if (index == -1) {System.out.println("您要删除的学生信息不存在,请重新选择: ");} else {array.remove(index); // 删除获取的学生信息System.out.println("删除学生信息成功");}}// 3.修改学生信息public static void updateStudent(ArrayList<Student> array) {Scanner sc = new Scanner(System.in);System.out.println("请输入你要修改的学生的学号: ");String No = sc.nextLine();// 作为索引int index = -1;// 遍历学生信息for (int i = 0; i < array.size(); i++) {Student s = array.get(i);// 获取该学生的学号,和键盘录入的学号进行比较if (s.getNo().equals(No)) {index = i;break;}}if (index == -1) {System.out.println("您要修改的学生信息不存在,请您重新选择: ");} else { // index = i;的时候System.out.println("请输入学生新姓名:");String Name = sc.nextLine();System.out.println("请输入学生性别:");String Sex = sc.nextLine();System.out.println("请输入学生新住址:");String Add = sc.nextLine();System.out.println("请输入学生年龄:");int Age = sc.nextInt();System.out.println("请输入学生电话:");int Tel = sc.nextInt();// 创建学生对象Student s = new Student();// 学生对象s不调用set方法,则修改后的值为nulls.setSNo(No);s.setName(Name);s.setSex(Sex);s.setAge(Age);s.setTel(Tel);s.setAdd(Add);// 修改学生中的集合对象// Arraylist集合中set方法,set(int index,Object o)覆盖元素。array.set(index, s);System.out.println("修改学生信息成功!!");}}// 4.查询学生信息public static void findAllStudent(ArrayList<Student> array) {// 判断学生信息集合的长度,如果等于0,学生信息为空,程序结束if (array.size() == 0) {System.out.println("对不起,当前学生信息为空,请您重新选择: ");return;// 不让程序往下执行}// 学生信息列表System.out.println("学号:\t姓名:\t性别:\t年龄:\t住址:\t电话:");// \t是一个tab键的位置// 遍历集合for (int i = 0; i < array.size(); i++) {Student student = array.get(i);//System.out.println(student.getNo() + "\t" + student.getName() + "\t" + student.getSex() + "\t" +student.getAge() + "\t" + student.getAdd()+ "\t" + student.getTel());}}
}

4.编程中遇到的问题和解决方法

①管理系统使用完其中一个功能后不能继续选择使用其他功能,需要重新运行才能再次使用其他功能。
解决方法:加入while(true)无限循环语句,语句块中有break语句才都能跳出循环。
②在添加学生信息功能中,添加信息相同的学生时,没有信息重复的提示。
解决方法:定义标记boolean flag = true;然后根据判断学生学号是否被占用。先遍历学生信息,获取添加学生的学号,再和键盘输入的学号进行比较,如果输入的学号和获取的学生学号一样,则标记flag=false;,表示学生信息已经存在。如果添加不重复,代码后加上if(flag),里面写要添加学生的相关信息。
③在解决问题①无法循环利用管理系统后,发现退出管理系统功能无法使用,选择退出后还是会弹出学生信息管理系统界面。
解决方法:添加System.exit(0); System是一个Java类,调用exit(0)方法终止虚拟机也就是退出你的Java程序,括号里面的是参数,进程结束的返回值。
④在查询学生信息是否存在中,如果没有查找到要修改或者删除的学生信息该怎么返回给程序
解决方法:添加变量名为index(int index = -1;)作为索引,在数组遍历时,如果没有查到键盘输入信息,返回-1,结束程序,进行下一次循环。
⑤修改学生信息后,再次查询学生信息,发现信息没有改变,修改无效。
解决方法:array.set(index, s);
⑥查询学生信息为空的时候,程序依然向下执行,弹出学号: 姓名: 住址:为空的内容。
解决方法:提示学生信息为空代码后一行加上ruturn;不让程序继续向下执行。
⑦在提供输入管理系统选项的代码中,用到switch方法,返回类型为String,但后面的case语句一直写的是case 1;case 2;…导致代码一直出错
解决方法:switch 使用字符串 String 类型时,同时 case 标签必须为字符串常量或字面 量,将case 1;等改为case “1”;等。
⑧在修改学生信息时,在输入学号、姓名、性别、年龄四项后,直接连续弹出要修改的地址、电话两条信息,先输入要修改的地址,抛出Exception in thread “main” java.util.InputMismatchException的异常。
解决方法:在修改学生信息代码块中自己nextLine()写在了nextInt后,抛出异常。
System.out.println(“请输入学生年龄:”); int Age = sc.nextInt();
System.out.println(“请输入学生新住址:”); String Add = sc.nextLine();
原因:nextLine()不能用在nextInt后面。因为nextLine()方法是返回的是Enter键之前的所有字符,在使用了nextInt() 方法之后在其后输入的空格键、Tab键或Enter键等视为分隔符或结束符,其仍在缓冲区内;若紧接着使用nextLine() ,则nextLine() 自动读取Enter等作为其结束符,则无法从键盘输入值,强行输入会报出InputMismatchException异常。

Java学生信息管理系统(增、删、改、查)相关推荐

  1. python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...

    实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...

  2. python学生信息管理系统-增删改查-根据姓名查询

    学生信息管理系统 增删改查,求平均年龄,退出系统,根据姓名查询 def show_menu():print('*******欢迎使用学生管理系统*************')print('****** ...

  3. JAVA 学生信息管理系统

    java 学生信息管理系统 主要使用的增删改查操作 首先,需要先建一个文件(点击左上角File,选择第一个New里的第一个Java Project) 然后再建一个Javabean包,在这个包里新建一个 ...

  4. 表单的增 删 改 查

    django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...

  5. properties(map)增.删.改.查.遍历

    import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...

  6. JAVA学生信息管理系统课程设计简介以及开发源码介绍

    java学生信息管理系统简介 1.系统简介 主要实现功能:登录,注册,增加,删除,更改,查找,条件查找,查看在线账号,更改密码. 涉及到内容:java mysql8.0 Navicat 可视化工具 2 ...

  7. JAVA学生信息管理系统IO流版

    JAVA学生信息管理系统IO流版 1. Student类 public class Student implements Serializable{//学号private int sid;//姓名pr ...

  8. java学生信息管理系统(GUI+mysql数据库)

    java学生信息管理系统+GUI界面布局+mysql数据库 代码已经更新!,重新设计了UI界面,代码之间的逻辑更加清晰 新的代码不需要手动建立数据库和表,全部由程序自动执行 用户名和密码为你数据库的用 ...

  9. java考勤管理系统源码java学生考勤请假系统java学生考勤管理系统 java考勤系统java学生信息管理系统java学生管理系统

    java考勤管理系统源码java学生考勤请假系统java学生考勤管理系统 java考勤系统java学生信息管理系统java学生管理系统 public Swingtest002() {// 设置标题se ...

最新文章

  1. 【机器学习入门】(7) 线性回归算法:原理、公式推导、损失函数、似然函数、梯度下降
  2. sqlserver2000换成mysql_将Microsoft SQL Server 2000数据库转换成MySQL数据库
  3. Flutter之Widget、Element、renderObject
  4. 仙道服务器维护,5月22日8:00全区停机维护 刺金传说上线
  5. 用eclipse如何解决项目迁移问题
  6. 对自学还是培训的看法
  7. python怎么读取石墨表格_每2秒进行一次statsd xaxis石墨统计 - python
  8. linux 好用的 免费的 数据库管理工具 dbeaver
  9. 使用java实现打印功能_java实现打印功能有没有比较好的方式?
  10. 深度解析HashMap底层实现架构
  11. 深交所与工信部签署优质中小企业上市培育战略合作协议
  12. 【CIKM2020】如何更为合适地评测推荐算法? Top-N物品推荐算法评测设置回顾
  13. Linked List Cycle给定一个链表,判断其中是否有环。
  14. 中国住户收入调查(CHIP)数据及问卷(1988-2008年)
  15. PPT绘图之AI助力论文图
  16. 设置input框只能输入6位为数字的支付密码
  17. 常用颜色RGB表 色值
  18. python中扑克牌类设计_创建扑克牌类Python
  19. NBIOT透传模块在智能公寓锁上的使用2
  20. 华为交换机常用查看命令

热门文章

  1. 软件设计师学习笔记-知识产权
  2. 谈谈Django REST Framework(DRF)中的序列化器
  3. DDD如何设计落地?(库存,产品账示例)
  4. 乐视体感摄像头小白学习笔记(vs2017社区版100%搭环境)
  5. lumina电源维修XLB-650-25-20-R-H激光氙灯电源维修
  6. 汇编程序中的符号或标号地址
  7. 受众同步管理 , 精准再营销
  8. 小米3升级android 6.0,可升级Android 6.0机型一览 小米手机亮了
  9. Nginx 模块开发(学习笔记十八)
  10. 面对管理系统定制开发的巨大需求,这个低代码平台居然免费开放?