学生管理系统Java版

简单的学生管理系统

主界面编写:
1.用输出语句完成主界面的编写
2.用Scanner语句实现键盘的录入
3.用swich语句完成操作的选择
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("-----------------------------------");System.out.print("请输入你的选择:");//2.用Scanner语句实现键盘的录入Scanner sc = new Scanner(System.in);String num = sc.nextLine();//3.用swich语句完成操作的选择switch (num) {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("查看所有学生");findAllstudent(array);break;case "5":System.out.println("感谢使用学生管理系统");return;//System.exit(0); JVM退出//把while循环改为while(flag),在while循环前置flag=true,//在case5 这里让flag=false}

实现效果:在这里插入图片描述
一、添加学生
1.定义一个方法,用于添加学生信息
2.键盘录入学生对象所需要的数据,显示提示信息,提示输入何种信息
3.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
4.将学生对象添加到集合中
5.给出提示信息"添加学生成功"
注意:在添加学生前先定义一个方法用于判断学生是否存在
代码实现:

//定义一个方法,判断添加的学生学号是否存在
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;}}return flag;
}
public static void addStudent(ArrayList<student> array) {Scanner sc = new Scanner(System.in);//为了让sid在while循环外被访问到,把它定义在循环外String sid;//为了让程序能够回到这里,我们使用循环实现while (true) {System.out.println("请输入学生学号:");//  String sid = sc.nextLine();//上面定义了sid,这里不用Stringsid = 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("添加学生成功");}

二、查看学生
(用键盘录入选择查看所有学生信息)
1.定义一个方法,用于查看学生信息。
2.判断集合中是否有数据,如果没有显示提示信息。
3.显示表头信息。
4.将集合中数据取出按照格式显示学生信息,年龄显示补充“岁”。
5.调用方法
注意:在查看学生前也要判断学生是否存在。
代码实现:

//定义一个方法,用于查看所有学生信息
public static void findAllstudent(ArrayList<student> array) {//判断集合中是否有数据,如果没有数据显示提示信息if (array.size() == 0) {System.out.println("没有学生信息,请添加学生信息后查询");}//2.显示表头信息System.out.println("学号\t\t姓名\t年龄\t居住地");for (int i = 0; i < array.size(); i++) {student s = array.get(i);System.out.println(s.getSid() + "\t\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress());}
}

三、删除学生
1.定义一个方法,用于删除学生信息
2.键盘输入要删除学生的学号,显示提示信息
3.遍历集合将对应学生对象从集合中删除
4.给出删除成功提示信息
5.调用方法
注意:在删除学生时也要判断学生是否存在
代码实现:

//定义一个方法,用于删除学生信息
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("删除学生成功");}
}

四、修改学生信息
1.键盘录入要修改的学生学号,显示提示信息
2.键盘录入要修改的学生信息
3.创建学生对象
4.遍历集合修改对应的学生信息
5.给出修改成功提示
6.调用方法
注意:在修改学生时也要判断要修改的学生是否存在
代码实现:

//定义一个方法,用于修改学生信息
public static void updatestudent(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);int index = -1;for (int i = 0; i < array.size(); i++) {student student = array.get(i);if (student.getSid().equals(sid)) {index = i;break;}}if (index == -1) {System.out.println("你输入的学生不存在,请重新输入");} else {array.set(index, s);System.out.println("修改学生成功");}}

最后附上完全代码:

package StudentManager;import java.util.ArrayList;
import java.util.Scanner;/*学生管理系统主界面编写:1.用输出语句完成主界面的编写2.用Scanner语句实现键盘的录入3.用swich语句完成操作的选择4.用循环完成再次回到主界面一、添加学生1.定义一个方法,用于添加学生信息2.键盘录入学生对象所需要的数据,显示提示信息,提示输入何种信息3.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量4.将学生对象添加到集合中5.给出提示信息"添加学生成功"二、查看学生(用键盘录入选择查看所有学生信息)1.定义一个方法,用于查看学生信息2.判断集合中是否有数据,如果没有显示提示信息3.显示表头信息4.将集合中数据取出按照格式显示学生信息,年龄显示补充“岁”5.调用方法三、删除学生1.定义一个方法,用于删除学生信息2.键盘输入要删除学生的学号,显示提示信息3.遍历集合将对应学生对象从集合中删除4.给出删除成功提示信息5.调用方法四、修改学生信息1.键盘录入要修改的学生学号,显示提示信息2.键盘录入要修改的学生信息3.创建学生对象4.遍历集合修改对应的学生信息5.给出修改成功提示6.调用方法五、解决删除/修改学生学号不存在问题1.在删除/修改学生操作钱,对学号是否存在进行判断如果不存在,显示提示信息如果存在,执行删除/修改操作六、解决添加学生学号重复问题1.定义一个方法,对学号是否杯使用进行判断如果与集合中的学生学号相同返回true如果不相同,返回false2.在添加学生录入学号后调用该方法如果返回true,弹出提示,重新输入学号如果返回false,正常添加学生对象*/public class MyStudentManagerment {//主界面操作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("-----------------------------------");System.out.print("请输入你的选择:");//2.用Scanner语句实现键盘的录入Scanner sc = new Scanner(System.in);String num = sc.nextLine();//3.用swich语句完成操作的选择switch (num) {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("查看所有学生");findAllstudent(array);break;case "5":System.out.println("感谢使用学生管理系统");return;//System.exit(0); JVM退出//把while循环改为while(flag),在while循环前置flag=true,//在case5 这里让flag=false}}}//定义一个方法,判断添加的学生学号是否存在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;}}return flag;}//定义一个方法,用于添加学生信息public static void addStudent(ArrayList<student> array) {Scanner sc = new Scanner(System.in);//为了让sid在while循环外被访问到,把它定义在循环外String sid;//为了让程序能够回到这里,我们使用循环实现while (true) {System.out.println("请输入学生学号:");//  String sid = sc.nextLine();//上面定义了sid,这里不用Stringsid = 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 void findAllstudent(ArrayList<student> array) {//判断集合中是否有数据,如果没有数据显示提示信息if (array.size() == 0) {System.out.println("没有学生信息,请添加学生信息后查询");}//2.显示表头信息// \t(制表符) 其实就是tab键的位置System.out.println("学号\t\t姓名\t年龄\t居住地");//3.将集合中数据取出按照格式显示学生信息,年龄显示补充“岁”for (int i = 0; i < array.size(); i++) {student s = array.get(i);System.out.println(s.getSid() + "\t\t" + s.getName() + "\t" + s.getAge() + "岁\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 updatestudent(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);int index = -1;for (int i = 0; i < array.size(); i++) {student student = array.get(i);if (student.getSid().equals(sid)) {index = i;break;}}if (index == -1) {System.out.println("你输入的学生不存在,请重新输入");} else {array.set(index, s);System.out.println("修改学生成功");}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dubbo 配置文件详解

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、dubbo常用配置 <dubbo:service/> 服务配置&#xff0c;用于暴露一个服务&#xff0c;定义服务的元信息&#xff0c;一个服务可…

ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路

一、前言 最近一段时间自己主要的学习计划还是按照毕业后设定的计划&#xff0c;自己一步步的搭建一个前后端分离的 ASP.NET Core 项目&#xff0c;目前也还在继续学习 Vue 中&#xff0c;虽然中间断了很长时间&#xff0c;好歹还是坚持下来了&#xff0c;嗯&#xff0c;看了看…

学以致用十三-----Centos7.2+python3+YouCompleteMe成功历程

历经几天的摸索&#xff0c;趟过几趟坑之后&#xff0c;终于完成YouCompleteMe的安装配置。 今天同样是个不能忘记的日子&#xff0c;国耻日&#xff0c;勿忘国耻。&#xff08;9.18&#xff09; 服务器安装好&#xff0c;基本配置配置好后&#xff0c;开始安装。 一、检查服务…

记录 Duplicate spring bean id dubbo

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 启动工程 报错如题&#xff1a; Duplicate spring bean id dubbo &#xff0c;意思是id 重复。 原因是我在加载配置文件时加载了两个…

1.KafKa-介绍

转载于:https://www.cnblogs.com/v-lcc/p/9674975.html

研究显示每天工作超8小时得心脏病概率增加80%,生命很重要,工作不要那个累。

每天工作超过8小时的人患心脏病的风险最高可增加80%(资料图) 据英国《每日邮报》9月12日报道&#xff0c;芬兰职业保健研究所的科学家们近日进行了一项研究&#xff0c;他们发现每天工作超过8小时的人患心脏病的风险最高可增加80%。 研究人员表示&#xff0c;长时间的工作是许多…

沉淀再出发:Spring的架构理解

沉淀再出发:Spring的架构理解 一、前言 在Spring之前使用的EJB框架太庞大和重量级了&#xff0c;开发成本很高&#xff0c;由此spring应运而生。关于Spring&#xff0c;学过java的人基本上都会慢慢接触到&#xff0c;并且在面试的时候也是经常遇到的&#xff0c;因为这个技术极…

CentOS 7 搭建CA认证中心实现https取证

CA认证中心简述CA &#xff1a;CertificateAuthority的缩写&#xff0c;通常翻译成认证权威或者认证中心&#xff0c;主要用途是为用户发放数字证书功能&#xff1a;证书发放、证书更新、证书撤销和证书验证。作用&#xff1a;身份认证&#xff0c;数据的不可否认性端口&#x…

简单明了 - Git 使用超详细教程

见&#xff1a;http://www.admin10000.com/document/5374.html 一&#xff1a;Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统。 二&#xff1a;SVN与Git的最主要的区别&#xff1f; SVN是集中式版本控制系统&#xff0c;版本库是集中放在中央服务器的&…

FileStream功能被禁用

今天还原数据库&#xff0c;遇到如下问题&#xff1a; 网上的解决方法大概是三种&#xff1a; 1、讲数据库备份文件权限设置为“EventOne” 2、打开SQLServer配置管理器&#xff0c;选中服务然后右击“属性”将FileStream相关勾选并重启当前实例服务 3、设置数据库访问级别 USE…

window.parent,top,window.self,parent,opener

2019独角兽企业重金招聘Python工程师标准>>> 在应用有frameset或者iframe的页面时&#xff0c;parent是父窗口&#xff0c;top是最顶级父窗口&#xff08;有的窗口中套了好几层frameset或者iframe&#xff09;&#xff0c;self是当前窗口&#xff0c; opener是用ope…

ALM 中查看某个 test 的更改 history 历史

ALM 中要查看某个 test 更改历史&#xff0c; 需要下面两个表&#xff1a;AUDIT_LOG and AUDIT_PROPERTIES------- Get Test modification history -------- ---- In ALM, 857, if filter out test case named 26169502, check its History. In the history, for the node of d…

zookeeper使用和原理探究

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 zookeeper介绍 zookeeper是一个为分布式应用提供一致性服务的软件&#xff0c;它是开源的Hadoop项目中的一个子项目&#xff0c;并且根据…

thinkphp如何部署到宝塔面板nginx服务器

原理&#xff1a;一般本地都会使用apache服务器&#xff0c;这个对pathinfo&#xff08;两个&#xff0c;一个是环境变量$_SERVER[PATH_INFO]&#xff0c;另一个是pathinfo函数&#xff09;路由解析非常支持的&#xff0c;不需要部署什么&#xff0c; 但是nginx是对pathinfo函…

nginx的脚本引擎(一)

nginx的脚本的语法和shell是很像的&#xff0c;我大致看了一下觉得挺有意思的&#xff0c;就想写写记录一下。我没看过shell脚本的引擎&#xff0c;不知道nginx脚本引擎和shell脚本引擎像不像&#xff0c;但是我觉得nginx的脚本引擎有点像C和汇编。 ngx_http_script_engine_t这…

一个待办事列表todolist

最近有位老师让我做的&#xff0c;图片在下面&#xff0c;做了4个多小时&#xff0c;ui有的简陋&#xff0c;可以再美化一下&#xff0c;这个会更好看&#xff0c;毕竟我也不是专业前端&#xff0c;测试网站http://todolist.sshouxin.top/使用的是thinkphp5.1的框架&#xff0c…

详细说明 SourceTree 免登录,跳过初始设置的方法(Windows 版 )

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 首先&#xff0c;安装完 SourceTree 以后先运行一次&#xff0c;弹出初始化登录页面后退出。 2. 进入这个文件夹&#xff1a;C:\Users…

Linux学习记录-文件、目录与磁盘

用户和群组 用户和群组主要是为了区分用户对文件的操作权限。 账号在/etc/passwd个人密码在/etc/shadow组信息在/etc/group 不要乱动这3个文件文件权限和目录配置 文件属性 文件前缀解释&#xff0c;例如&#xff1a; 第一个字符代表这个文件是『目录、文件或链接文件等等』&am…

解决 error: Your local changes to the following files would be overwritten by merge:XXXX

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 idea 上将本地代码推送到 git后 , 报错如下图 error: Your local changes to the following files would be overwritten by merge:src/…

数据库小知识点(一直更新)

一、mysql查询是否含有某字段&#xff1a; mysql数据库查询带有某个字段的所有表名 SELECT * FROM information_schema.columns WHERE column_namecolumn_name; oracle数据库查询带有某个字段的所有表名 select column_name,table_name,from user_tab_columns where column_n…