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

丁小喜の兵器谱(学生管理系统)

我的第一个独立看需求完成项目,虽然很简单(笑)

建立一个可以增加,修改,删除,展示学生信息的系统

首先是一个界面,让你决定进行哪个操作

1.2.3.4.5分别对应不同的操作,switch与这一操作完美契合,在switch语句里调用对应操作的函数

            Scanner sc = new Scanner(System.in);String choose = sc.next();switch (choose){case "1": addStudent(list);break;case "2": deleteStudent(list);break;case "3": change(list);break;case "4": look(list);break;case "5": System.out.println("退出成功");break quit;default:System.out.println("你输入的什么玩意");}

接着考虑用什么盛装对应的学生信息,如果用数组的话不确定有多少个学生信息,所以集合ArrayList是最好的选择。

ArrayList<student> list = new ArrayList<>();

然后就是界面了很简单,想做成什么样式的就做成什么什么样式的,我就做成了百晓生,啊不,丁小喜的兵器谱(笑)

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("请做出你的选择吧!");

再就是不能只进行一次操作吧?所以加上while true循环。那怎么退出呢?自然是用break跳出指定循环的办法了呀。所以最好main函数是长这样的:

   public static void main(String[] args) {ArrayList<student> list = new ArrayList<>();quit: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": change(list);break;case "4": look(list);break;case "5": System.out.println("退出成功");break quit;default:System.out.println("你输入的什么玩意");}}}

然后是操作的写法

3展示学生编号:

当集合里没有对象时,直接返回,没有学生信息还展示个锤子

public static void look(ArrayList<student> list){if(list.size()==0) {System.out.println("还有没有高手你心里没有点ac数?");return;}System.out.println("绰号"+'\t'+'\t'+"姓名"+'\t'+'\t'+"年龄"+'\t'+'\t'+"籍贯");for (int i = 0; i < list.size(); i++) {System.out.printf(list.get(i).getId()+"\t\t");System.out.printf(list.get(i).getName()+"\t\t");System.out.printf(list.get(i).getAge()+"\t\t");System.out.printf(list.get(i).getPlace()+"\t\t");System.out.println("");}}

1添加学生对象:

进来首先判断输入的id是否之前有过,就像武林高手不能有同一个绰号,如果之前有过就让他从新添加,判断是否相同就用list.get(i).getId().equals(id)就行了。首先list.get(i)获取编号为i的student对象。list.get(i).getId()获取该对象的id值再.equals(id)就比较了两个id是否相同。

不同就创建一个新的对象。

 public static void addStudent(ArrayList<student> list){Scanner sc = new Scanner(System.in);String id = null;re:while (true) {System.out.println("请输入高手的绰号:");id = sc.next();for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {System.out.println("已经有高手起这个绰号了,给爷重新起");continue re;}}break;}System.out.println("请输入高手的姓名:");String name = sc.next();System.out.println("请输入高手的籍贯:");String place = sc.next();System.out.println("请输入高手的年龄:");int age = sc.nextInt();student a = new student(name,id,age,place);list.add(a);
}

2删除一个学生信息:

和之前一样先判断有没有学生信息。如果有直接list.remove(i)就完事了。

如果输错id怎么办呢?很简单,在for循环的过程中如果发现id相同,直接删除跑路了,那没跑路说明就没有你提供的id!!!

public static void deleteStudent(ArrayList<student> list){if(list.size()==0){System.out.println("一个高手也没,你除个锤子名");return;}System.out.println("请输入要除名的高手绰号:");Scanner sc = new Scanner(System.in);String id = sc.next();for (int i = 0; i < list.size(); i++) {if(list.get(i).getId().equals(id)) {list.remove(i);System.out.println("除名成功");return;}}System.out.println("你tm故意找茬是吧!!!");}

4修改学生编号:

和删除大差不差,简直就是删除和插入的拼接操作

public static void change(ArrayList<student> list){Scanner sc = new Scanner(System.in);if(list.size()==0){System.out.println("一个高手也没,你改个锤子名");return;}System.out.println("请输入要替换的高手绰号:");String id = sc.next();for (int i = 0; i < list.size(); i++) {if(list.get(i).getId().equals(id)) {System.out.println("请输入高手的新绰号:");id = sc.next();System.out.println("请输入高手的姓名:");String name = sc.next();System.out.println("请输入高手的籍贯:");String place = sc.next();System.out.println("请输入高手的年龄:");int age = sc.nextInt();student stu = new student(name,id,age,place);list.set(i,stu);System.out.println("替换成功");return;}}System.out.println("查无此人");}

最后别忘了写student的JavaBean类哦。

最后把相同代码段合并写成一个函数就可以了:

public class studentTest {public static void main(String[] args) {ArrayList<student> list = new ArrayList<>();quit: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": change(list);break;case "4": look(list);break;case "5": System.out.println("退出成功");break quit;default:System.out.println("你输入的什么玩意");}}}public static void addStudent(ArrayList<student> list){Scanner sc = new Scanner(System.in);String id = null;re:while (true) {System.out.println("请输入高手的绰号:");id = sc.next();for (int i = 0; i < list.size(); i++) {if (list.get(i).getId().equals(id)) {System.out.println("已经有高手起这个绰号了,给爷重新起");continue re;}}break;}list.add(gai(list,id));}public static void deleteStudent(ArrayList<student> list){if(list.size()==0){System.out.println("一个高手也没,你除个锤子名");return;}System.out.println("请输入要除名的高手绰号:");Scanner sc = new Scanner(System.in);String id = sc.next();for (int i = 0; i < list.size(); i++) {if(list.get(i).getId().equals(id)) {list.remove(i);System.out.println("除名成功");return;}}System.out.println("你tm故意找茬是吧!!!");}public static void look(ArrayList<student> list){if(list.size()==0) {System.out.println("还有没有高手你心里没有点ac数?");return;}System.out.println("绰号"+'\t'+'\t'+"姓名"+'\t'+'\t'+"年龄"+'\t'+'\t'+"籍贯");for (int i = 0; i < list.size(); i++) {System.out.printf(list.get(i).getId()+"\t\t");System.out.printf(list.get(i).getName()+"\t\t");System.out.printf(list.get(i).getAge()+"\t\t");System.out.printf(list.get(i).getPlace()+"\t\t");System.out.println("");}}public static void change(ArrayList<student> list){Scanner sc = new Scanner(System.in);if(list.size()==0){System.out.println("一个高手也没,你改个锤子名");return;}System.out.println("请输入要替换的高手绰号:");String id = sc.next();for (int i = 0; i < list.size(); i++) {if(list.get(i).getId().equals(id)) {System.out.println("请输入高手的新绰号:");id = sc.next();list.set(i,gai(list,id));System.out.println("替换成功");return;}}System.out.println("查无此人");}public static student gai(ArrayList<student> list,String id){Scanner sc = new Scanner(System.in);System.out.println("请输入高手的姓名:");String name = sc.next();System.out.println("请输入高手的籍贯:");String place = sc.next();System.out.println("请输入高手的年龄:");int age = sc.nextInt();student a = new student(name,id,age,place);return a;}}
http://www.lryc.cn/news/22011.html

相关文章:

  • linux:字符串拷贝的五种方法:使用指针下标,指针变量加偏移量,指针变量自加等
  • cesium常用方法汇集(工具篇)
  • 分布式一致性与共识算法(一)
  • C++---最长上升子序列模型---怪盗基德的滑翔翼(每日一道算法2023.2.27)
  • Python 之 Pandas 文件操作和读取 CSV 参数详解
  • 微服务的异步通信技术RabbitMQ
  • Word处理控件Aspose.Words功能演示:使用 C++ 在 Word (DOC/DOCX) 中添加或删除水印
  • chatGPT模型原理
  • 四、阻塞队列
  • 企业电子招投标采购系统源码之登录页面
  • SQL零基础入门学习(十三)
  • Java实现简单KV数据库
  • 【Spark分布式内存计算框架——Spark Streaming】5. DStream(上)
  • Spring系列-9 Async注解使用与原理
  • Python自动化测试实战篇(6)用PO分层模式及思想,优化unittest+ddt+yaml+request登录接口自动化测试
  • Linux 进程:父子进程
  • Unity 之 实现读取代码写进Word文档功能实现 -- 软著脚本生成工具
  • Typora图床配置:Typora + PicGo + 阿里云OSS
  • 二进制搭建以太坊2.0节点-2023最新详细版文档
  • 如何简化跨网络安全域的文件发送流程,大幅降低IT人员工作量?
  • 带你深入了解c语言指针后续
  • 借助Intune无感知开启Bitlocker
  • 零基础该如何转行Python工程师?学习路线是什么?
  • Go项目(商品微服务-1)
  • 机器学习——集成学习
  • VS编译系统 实用调试技巧
  • 【华为OD机试模拟题】用 C++ 实现 - GPU 调度(2023.Q1)
  • 腾讯前端必会react面试题合集
  • Linux搭建SVN服务器,并内网穿透实现公网远程访问
  • C++STL之list的模拟实现