java控制台实现学生信息管理系统
作者:qq_45424990 发布时间:2023-11-29 02:05:20
标签:java,学生,管理系统
简介
最近学了java基础后对以前不会写的作业深有感触,想起以前各种在网上找资料找别人的代码参考,所以今天特地写了了简单的基于控制台的学生信息管理系统供还在学基础的同学参考,写的有问题的地方也希望能指出来,好了,下面开始进入正题。
环境
我使用的是idea编译器和1.8的jdk版本,有使用1.7以下jdk版本的同学运行会报错,解决方法是把ArrayLis<Student> arrayList=new Array<>();改成 ArrayLis<Student> arrayList=new Array<Student>(),下面开始讲解学生信息管理系统的实现过程。
系统分析
学生信息管理系统主要是实现让老师登入账号(账号和密码我设置的都是“123”,你们也可以改成其他的字符串)后可以对学生进行增删改查的操作和查看所有学生的信息,所以我各自定义了一个方法来实现它的功能。
代码实现
首先定义一个学生类Student.java,关于toString是重写了父类也就是Object的方法,是用于方便查看结果的,学生的属性可以按需求添加多个,这里我为了方便只写了四个。
public class Student {
//学号
private int sno;
//姓名
private String name;
//性别
private String xes;
//年龄
private int age;
//创建get/set方法
public int getSno() {
return sno;
}
public void setSno(int sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getXes() {
return xes;
}
public void setXes(String xes) {
this.xes = xes;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//重写toString方法方便打印
@Override
public String toString() {
return "Student{" +
"sno=" + sno +
", name='" + name + '\'' +
", xes='" + xes + '\'' +
", age=" + age +
'}';
}
}
然后定义一个结构类Structure.java,把需要实现的功能方法写出来。
import java.util.ArrayList;
import java.util.Scanner;
/**
* 老师进行登录操作后(老师的账号密码固定为123)
* 才能对学生进行增删改查
*/
public class Structure {
//用来给学生学号赋值自增
static int i=1;
//创建ArrayList集合对象用来存放学生对象
ArrayList<Student> arrayList=new ArrayList<>();
Scanner scanner=new Scanner(System.in);
public void enter(){
System.out.print("请输入用户名:");
if (scanner.next().equals("123")){
System.out.print("请输入密码:");
if (scanner.next().equals("123")){
System.out.println("登录成功!");
}else{
System.out.println("密码错误!请重新登入");
enter();
}
}else {
System.out.println("用户名错误!请重新登入");
enter();
}
}
//增加学生信息
public void add(){
//创建学生对象
Student student=new Student();
//System.out.print("学生ID自增");
student.setSno(i);
System.out.print("学生姓名:");
student.setName(scanner.next());
System.out.print("性别:");
student.setXes(scanner.next());
System.out.print("年龄:");
student.setAge(scanner.nextInt());
//把学生对象存入集合中
arrayList.add(student);
i++;
}
//查看所有学生信息
public void print(){
if (arrayList.size()==0){
System.out.println("没有学生!!!");
}else {
//使用增强for循环遍历集合
for (Student student:arrayList){
System.out.println(student.toString());
}
}
}
//通过学号查找指定的学生信息
public void inquiry(){
if (arrayList.size()==0){
System.out.println("没有学生!!!");
}else {
System.out.print("请输入想要查找的学生的学号:");
for (Student student:arrayList){
if (student.getSno()==scanner.nextInt()){
System.out.println(student.toString());
}
}
}
}
//删除指定学生的信息
public void delete(){
if (arrayList.size()==0){
System.out.println("没有学生!!!");
}else {
System.out.print("请输入想要删除的学生的学号:");
for (int i=0;i<=arrayList.size();i++){
if (arrayList.get(i).getSno()==scanner.nextInt()){
arrayList.remove(i);
System.out.println("删除成功!");
}
}
}
}
//修改指定学生的信息
public void revisesp(){
if (arrayList.size()==0){
System.out.println("没有学生!!!");
}else {
System.out.print("请输入想要修改的学生的学号:");
for (Student student:arrayList){
if (student.getSno()==scanner.nextInt()){
revisesp01(student);
System.out.println("修改成功!");
}
}
}
}
public void revisesp01(Student student) {
System.out.println("请根据序号选择指令");
System.out.println("1.修改姓名");
System.out.println("2.修改性别");
System.out.println("2.修改年龄");
switch (scanner.nextInt()){
case 1:
student.setName(scanner.next());
break;
case 2:
student.setXes(scanner.next());
break;
case 3:
student.setAge(scanner.nextInt());
break;
}
}
}
最后创建一个测试类Test.java用来测试功能的实现
import java.util.Scanner;
public class Test {
Structure structure=new Structure();
static Scanner scanner=new Scanner(System.in);
public static void main(String[] args) {
Test test=new Test();
test.a();
}
public void a(){
System.out.println("老师登录(账号密码固定123/123)");
structure.enter();
while (true){
print();
switch (scanner.nextInt()){
case 1:
structure.add();
break;
case 2:
structure.print();
break;
case 3:
structure.inquiry();
break;
case 4:
structure.delete();
break;
case 5:
structure.revisesp();
break;
case 0:
return;
default:
System.out.println("请输入正确的指令!");
}
}
}
public void print(){
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("0.退出");
}
}
最后我们就顺利的完成了一个简单的学生管理系统,能独立完成这个对我们巩固基础知识是能起到一定的帮助的。
来源:https://blog.csdn.net/qq_45424990/article/details/96469610
0
投稿
猜你喜欢
- 效果展示人脸支付效果视频密码框输入支付效果视频因为密码支付时会调起系统安全键盘,开启自动保护功能,防止泄露,会导致输入密码时录屏黑屏,故使用
- 使用前准备Build.gradle文件配置dependencies配置compile 'com.squareup.retrofit2
- 项目介绍springboot搭建的访客管理系统,针对高端基地做严格把控来访人员信息管理,用户后端可以设置多个管理员帐号,给予不同部门的管理层
- 前言面向切面(AOP)Aspect Oriented Programming是一种编程范式,与语言无关,是一种程序设计思想,它也是sprin
- 这个例子需要使用google的开源项目zxing的核心jar包core-3.2.0.jar可以百度搜索下载jar文件,也可使用maven添加
- 这里使用的是dynamic-datasource-spring-boot-starter ,它是一个基于springboot的快速集成多数据
- 目录Sonar概述一、 搭建sona服务二、idea配置三、 配置maven的setting.xml文件四、idea中 mvn sonar:
- 在编写ui界面时因为手机分辨率大小不同,所以展现出来的效果也是不同的,这个时候就需要考虑适配器,让根据手机分辨率自动适配相应尺寸来展示界面,
- 大致分为以下几个方面:一些查询指令整理使用SQL语句进行特殊查询检测表字段是否存在数据库升级数据库表字段赋初始值一、查询指令整理1.链式执行
- 概述LruCache的核心原理就是对LinkedHashMap的有效利用,它的内部存在一个LinkedHashMap成员变量,值得注意的4个
- 前言在项目中,如果我们要遵循分层领域模型规约: 话,肯定避免不了在DTO、VO、BO、AO、VO、Query等实体的转换,我们通常有几种做法
- Android基础教程数据存储之文件存储将数据存储到文件中并读取数据1、新建FilePersistenceTest项目,并修改activit
- 目录1.前言2.不同进制的特点3.进制之间的转换3.1 二进制转十进制:3.2 十进制转二进制:3.3 二进制转八进制:3.4 十六进制转二
- 在项目中,需要使用XStream将xml string转成相应的对象,却报出了java.lang.ClassCastException: c
- 简单理解泛型泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。通俗点将就是“类型的变量
- 这篇文章主要介绍了Java并发编程预防死锁过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 文档更新说明2018年09月24日 v1.0 初稿代理在生活中很常见,比如说婚介网站,其实就是找对象的代理;还有社保代理、人事代理;还有找黄
- C# 关于Invoke首先说下,invoke和begininvoke的使用有两种情况:control中的invoke、begininvoke
- Vector的基本介绍1.:Vector类的定义:public class Vector<E> ext
- 一、定界符成帧Framer接口package framer;import java.io.IOException;import java.i