学生管理系统CLI版
学生管理系统CLI版
学生类
package com.itheima_03;
public class Student {
String sid;
String name;
String age;
String 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;
}
public Student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
public Student() {
}
}
主函数
package com.itheima_03;
import javax.swing.plaf.synth.SynthEditorPaneUI;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager {
public static void main(String[] args) {
//创建一个集合存储学生对象
ArrayList<Student> array = new ArrayList<Student>();
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.print("请输入你的选择:");
//用Scanner录入数据
Scanner sc = new Scanner(System.in);
String choice = sc.nextLine();
switch (choice){
case "1":
System.out.println("********添加学生********");
addStudent(array);
break;
case "2":
System.out.println("********删除学生********");
deleteStudent(array);
break;
case "3":
System.out.println("********修改学生********");
updateStudent(array);
break;
case "4":
System.out.println("********查看所有学生********");
showAllStudent(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);
//录入学生信息
System.out.print("请输入学生学号:");
String sid = sc.nextLine();
while (true) {
if (isUsed(array, sid)) {
System.out.println("您输入的学号已经存在!请重新输入");
sid = sc.nextLine();
}else {
break;
}
}
System.out.print("请输入学生姓名:");
String name = sc.nextLine();
System.out.print("请输入学生年龄:");
String age = sc.nextLine();
System.out.print("请输入学生住址:");
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 void showAllStudent(ArrayList<Student> array){
//判断集合中是否有元素,如果没有给出提示信息
if (array.size() == 0){
System.out.println("目前没有信息,请试试添加一下吧~");
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\t"+s.getAge()+"\t\t\t"+s.getAddress());
}
}
//定义一个方法,用于删除学生信息
public static void deleteStudent(ArrayList<Student> array){
//提示用户输入所要删除学生的学号
Scanner sc = new Scanner(System.in);
System.out.print("请输入你要删除的学生学号:");
String line = sc.nextLine();
//遍历集合,找到对应的学生并删除
//建立一个索引来判断所要删除的学生是否在集合内
int index = -1;
for (int i = 0;i < array.size();i++){
Student s = array.get(i);
if (s.getSid().equals(line)){ //字符串进行比较用equals()
index = i;
break;
}
}
if(index == -1){
System.out.println("该学生不存在!");
}else {
array.remove(index);
//给出提示消息
System.out.println("删除成功!");
}
}
//定义一个方法,用户修改学生信息
public static void updateStudent(ArrayList<Student> array){
//键盘录入要修改的学生学号
Scanner sc = new Scanner(System.in);
System.out.print("请输入你要修改的学生的学号:");
String sid = sc.nextLine();
//创建一个新对象并提示用户输入其信息
Student s_new = new Student();
System.out.print("请输入学生新姓名:");
String name = sc.nextLine();
System.out.print("请输入学生新年龄:");
String age = sc.nextLine();
System.out.print("请输入学生新住址:");
String address = sc.nextLine();
//赋值给新对象
s_new.setSid(sid);
s_new.setName(name);
s_new.setAge(age);
s_new.setAddress(address);
//遍历集合,找到旧对象并用新对象进行替换
for (int i = 0;i < array.size();i++){
Student s = array.get(i);
if (s.getSid().equals(sid)){
array.set(i,s_new);//根据索引用s_new进行替换
break;
}
}
//给出提示信息
System.out.println("修改学生信息成功!");
}
//定义一个方法,用来判断学号是否重复
public static boolean isUsed(ArrayList<Student> array,String sid){
//创建标志位作为返回值
boolean flag = false;
//遍历集合,查找有没有相同的学号
for (int i = 0;i < array.size();i++){
Student s = array.get(i);
if (s.getSid().equals(sid)){
flag = true;
break;
}else {
continue;
}
}
//返回标志位
return flag;
}
}
学生管理系统CLI版的更多相关文章
- 模拟斗地主和学生管理系统 IO 版
1.模拟斗地主 public class PlayCards { public static void main(String[] args) { String[] color = {"黑桃 ...
- C语言学生管理系统完善版
#include<stdio.h>#include<string.h>#include <stdlib.h>#define M 100struct score ...
- Java小例子(学习整理)-----学生管理系统-控制台版
1.功能介绍: 首先,这个小案例没有使用数据库,用集合的形式暂时保存数据,做测试! 功能: 增加学生信息 删除学生信息 修改学生信息 查询学生信息: 按照学号(精确查询) 按照姓名(模糊查询) 打 ...
- python 学生管理系统 文件版 增删改查
# 在程序开始之前完成数据的读取 # 存在着循环 # 循环的内容 # 将操作内容分解为函数 def sel_student(students_list): """ 查看所 ...
- Java 简化版学生管理系统(IO版)
Student management system 学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...
- python开发的学生管理系统
python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管 ...
- 史上最强学生管理系统之IO版
既上一博发布的ArrayList版本之后,新一版的IO版又来了,其实只是在上一个版本里面添加了IO流的内容,将存入更改的信息更新到了文件中而已,这个版本网上仍然很多,本人只是在某些方面稍加修改,因为自 ...
- 学生管理系统(SSM简易版)总结
之前用 Servlet + JSP 实现了一个简易版的学生管理系统,在学习了 SSM 框架之后,我们来对之前写过的项目重构一下! 技术准备 为了完成这个项目,需要掌握如下技术: Java 基础知识 前 ...
- “石家庄铁道大学软件工程系学生学籍管理系统2019版”java小程序制作分享
首先附上完整代码: import java.util.Scanner; public class SocreInformation { public SocreInformation(){}; pub ...
- Java 石家庄铁道大学软件工程系 学生学籍管理系统 2019 版
本系统的作用是简单实现一些学生成绩管理操作:录入,修改,绩点计算,以及系统退出等. 首先建一个主函数实现界面的实现,然后建一个数据类用来定义存放数据.之后建立一个工具类,用来实现所有要进行的操作.首先 ...
随机推荐
- Unity 动态加载图片出现红色问号
因为图片必须是RGB格式的才可以 ,Cao!!!
- fs.access(path[, mode], callback)
- tp5上传图片常规
前端不多说,就是使用input标签的file格式. tp5用request()->file('input的名字')接收图片,是binary格式的数据: $file = request()-> ...
- 使用moment获取本周、前n周、后n周开始结束日期以及动态计算周数
原文地址 https://blog.csdn.net/qq_43432158/article/details/124200343 项目中有一个需求:需要根据学期时间动态的计算出该学期有多少周 通过上网 ...
- abap screen表格控件后续增加栏位
当我们通过screen的表控件(含向导)创建完表格之后,后续想再增加栏位,要先把输入控件拖入表格控件内,再按钮控控件拖进去即可. 注:输入控件的名称和格式要和程序中的一致,否则会显示不出数据 效果图如 ...
- 页面布局 Stack 层叠组件 Stack 与 Align Stack 与 Positioned 实现定位布局
一.Flutter Stack 组件 Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局 属性 说明 ...
- ubuntu20.0.4 安装influxdb
官网:https://docs.influxdata.com/influxdb/v2.3/install/?t=Linux1.命令:# Ubuntu/Debian wget https://dl.in ...
- 2022.11.15 NOIP2022 模拟赛十
炸弹威力 Source:洛谷 P6036. 记 \(f_{i,0/1}\) 表示第 \(i\) 个位置为 \(0/1\) 的答案个数,有 DP 转移: \[\begin{aligned} (1-p_i ...
- UntrimmedNets for weakly supervised action recognition and detection概述
0.前言 相关资料: 论文 github 论文解读(CSDN) 论文基本信息: 领域:动作识别与检测 发表时间:CVPR2017(2017.5.22) 1.针对的问题 这篇论文之前的行为识别方法严重依 ...
- svn提交注释限制
找到svn仓库 目录结构长这样 在hooks下的新建一个名字为pre-commit.bat的可执行文件 注意:findstr后边的.通配符表示一个任意字符,findstr "." ...