当前位置: 首页 > news >正文

(Java入门)学生管理系统

一.基础的学管理系统:

写项目:需求文档(写出要求的所有业务操作)

需求:采取控制台的方式去书写学生管理系统

需求文档:

 

控制台的数据是程序员看的,用户看的是直接浏览器的内容 

阅读需求文档,画出业务流程图

 

写代码:写一部分,测一部分

先写出了查询代码:

package com.itheoma.studentsystem;import java.util.ArrayList;
import java.util.Scanner;public class StudentSystem {public static void main(String[] args) {ArrayList<Student> list = new ArrayList<>();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 choose = sc.next();switch (choose) {case "1":{addStudent(list);break;}case "2":{deleteStudent(list);break;}case "3":{updateStudent(list);}case "4":{queryStudent(list);break;}case "5": {System.out.println("退出");
//                    break loop;//loop:跳出loop循环System.exit(0);//停止虚拟机运行}default:System.out.println("没有这个选项");}}}public static void addStudent(ArrayList<Student> list) {Student s=new Student();Scanner sc=new Scanner(System.in);while (true) {System.out.println("请输入学生的id");String id=sc.next();boolean flag =contains(list,id);if(flag){System.out.println("id已存在,重新录入");}else{s.setId(id);break;}}System.out.println("请输入学生的姓名");String name=sc.next();s.setName(name);System.out.println("请输入学生的年龄");int age=sc.nextInt();s.setAge(age);System.out.println("请输入学生的家庭住址");String address=sc.next();s.setAddress(address);//把学生对象添加到集合当中list.add(s);System.out.println("学生信息添加成功");}public static void deleteStudent(ArrayList<Student> list) {System.out.println("删除学生");}public static void updateStudent(ArrayList<Student> list) {System.out.println("修改学生");}public static void queryStudent(ArrayList<Student> list) {if (list.size() == 0) {System.out.println("当前无学生信息,请添加后查询");return;}//打印表头信息System.out.println("id\tname\tage\taddress");for (int i = 0; i < list.size(); i++) {Student stu = list.get(i);System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());}}//id要求唯一--循环遍历集合得到里面的每一个学生对象,拿到学生对象后,获取id并进行判断,// 存在返回true 不存在返回falsepublic static boolean contains(ArrayList<Student> list,String id){for (int i = 0; i < list.size(); i++) {Student stu=list.get(i);String sid=stu.getId();if (sid.equals(id)){return true;}}return false;}
}

对方法的添加和修改: 

public static boolean contains(ArrayList<Student> list,String id){return getIndex(list,id)>=0;}//通过id获取索引的方法public static int getIndex(ArrayList<Student> list,String id){for (int i = 0; i < list.size(); i++) {Student stu=list.get(i);String sid=stu.getId();if(sid.equals(id)){return i;}}return -1;}

删除的方法: 

public static void deleteStudent(ArrayList<Student> list) {Scanner sc=new Scanner(System.in);System.out.println("请输入要删除的id");String id=sc.next();int index=getIndex(list,id);if(index>=0){list.remove(index);System.out.println("删除成功");}else{System.out.println("id"+id+"不存在,删除失败");}}

修改的方法: 

public static void updateStudent(ArrayList<Student> list) {Scanner sc=new Scanner(System.in);System.out.println("请输入要修改学生的id:");String id=sc.next();int index=getIndex(list,id);if(index==-1){System.out.println("要修改的id"+id+"不存在,重新输入");return;}Student stu=list.get(index);System.out.println("请输入要修改的id");String newId=sc.next();stu.setId(newId);System.out.println("请输入要修改的姓名");String newName=sc.next();stu.setName(newName);System.out.println("求输入要修改的年龄");int newAge=sc.nextInt();stu.setAge(newAge);System.out.println("请输入要修改的地址");String newAddress=sc.next();stu.setAddress(newAddress);System.out.println("学生信息修改成功");}

二.升级版的学生管理系统:

 需求文档:

注册:

登录: 

忘记密码:

相关文章:

  • 记忆化搜索【下】
  • 【论文阅读】CiteTracker: Correlating Image and Text for Visual Tracking
  • 输送线相机拍照信号触发(博途PLC高速计数器中断立即输出应用)
  • 解决npm i 安装报npm ERR! code E401
  • 2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)
  • mybatis框架基础以及自定义插件开发
  • 极米科技:走出舒适圈,推动数据架构现代化升级 | OceanBase 《DB大咖说》
  • JavaScript 根据关键字匹配数组项
  • 算法练习题17——leetcode54螺旋矩阵
  • Go语言设计与实现 学习笔记 第六章 并发编程(3)
  • python基础语法十一-赋值、浅拷贝、深拷贝
  • 零知识证明在BSV网络上的应用
  • YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)
  • Flask中实现WebSocket需要什么组件
  • 如何在mac上玩使命召唤手游?苹果电脑好玩的第一人称射击游戏推荐
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • [NodeJS] 关于Buffer
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • DataBase in Android
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JAVA 学习IO流
  • JavaScript 奇技淫巧
  • Objective-C 中关联引用的概念
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • ------- 计算机网络基础
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 在Mac OS X上安装 Ruby运行环境
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​MySQL主从复制一致性检测
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #java学习笔记(面向对象)----(未完结)
  • $.ajax()参数及用法
  • $.ajax()方法详解
  • (1)虚拟机的安装与使用,linux系统安装
  • (6)添加vue-cookie
  • (7)摄像机和云台
  • (C++17) optional的使用
  • (备份) esp32 GPIO
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (十一)手动添加用户和文件的特殊权限
  • (学习日记)2024.02.29:UCOSIII第二节
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET 反射的使用
  • .net打印*三角形
  • .NET业务框架的构建
  • .Net中ListT 泛型转成DataTable、DataSet
  • /etc/fstab 只读无法修改的解决办法
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)