//导入的包名

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Scanner;

//学生管理系统类

public class StudentManager {

public static void main(String[] args) throws IOException {

ArrayList<Student> array = new ArrayList<Student>();//定义一个集合,用于接收学生对象的信息。

Scanner sc = new Scanner(System.in);//定义Scanner对象用于接收指令信息。

System.out.println("----------欢迎来到学生管理系统----------");

//建立循环使程序能够循环进行。

while(true){

显示();//包含指令信息已经对应的操作。

System.out.println("请输入一个数字进行操作:");

int num = sc.nextInt();//根据提示,录入指令。

switch(num){//根据指令,选择需要进行的操作。

case 1:

查看学生(array);//具体如方法名

break;

case 2:

添加学生(array);//具体如方法名

break;

case 3:

修改学生(array);//具体如方法名

break;

case 4:

删除学生(array);//具体如方法名

break;

case 5:

是否保存信息(array);//具体如方法名

System.out.println("系统已退出!");

System.exit(0);//退出系统的代码。

break;

default:

System.out.println("你输入有误请重新输入!");

break;

}

}

}

public static void 是否保存信息(ArrayList<Student> array) throws IOException {//退出系统提示是否保存信息。

Scanner sc = new Scanner(System.in);//定义Scanner对象用于接收指令信息。

System.out.println("是否保留本次操作的结果!(输入1保存,输入2不保存):");

//建立循环使程序在输入有问题的时候能够循环进行。

while(true){

int num =sc.nextInt();//获取指令信息。

if(num==1){//当指令为1时,保存此次操作的结果。

System.out.println("请输入保存数据的文件路径:");//选择一个保存文件的路径。

String f = sc.next();

BufferedWriter bw = new BufferedWriter(new FileWriter(f));//建立对象用于接收数据。

bw.write("学号"+"\t"+"姓名"+"\t"+"年龄"+"\t"+"户籍");//文档抬头。

bw.newLine();//换行

for (int i = 0; i < array.size(); i++) {//建立for循环,将集合中的数据循环录入到文档中。

Student s = array.get(i);//得到集合中i索引的对象。

bw.write(s.get学号()+"\t"+s.get姓名()+"\t"+s.get年龄()+"\t"+s.get户籍());//将集合中i索引的对象的信息数据录入到文档中。

bw.newLine();//换行

}

bw.close();//结束输入。

break;//跳出while循环,从而结束方法。

}else if(num==2){

break;//当不保存操作结果的时候,不用进行任何操作,跳出循环即可。

}else{

System.out.println("你输入有误!请重新输入(输入1保存,输入2不保存):");//输入错误的提示。

}

}

}

public static void 显示() {//包含指令信息已经对应的操作。

System.out.println("1.输入1查看(查看系统中所有的学生信息);");

System.out.println("2.输入2添加(添加学生信息到系统中);");

System.out.println("3.输入3修改(根据学号修改学生信息);");

System.out.println("4.输入4删除(根据学号删除学生信息);");

System.out.println("5.输入5退出。");

}

public static void 删除学生(ArrayList<Student> array) throws IOException {//按照录入与导入的方法修改集合当中学生的信息。

Scanner sc = new Scanner(System.in);//定义Scanner对象用于接收指令信息。

System.out.println("请输入删除的方法(1、导入  2、手动输入):");

while(true){

int num = sc.nextInt();

if(num==2){//手动输入。

System.out.println("请输入学生学号:");

String code = sc.nextLine();//学号。

int index = 判断(array, code);

if(index!=-1){//当索引值为true的时候,即集合中存在输入的学号的时候,根据该对象的索引删除该对象。

array.remove(index);

System.out.println("删除成功!");

}else{

System.out.println("系统中不存在该学号,请重新输入!");//不存在就循环录入。

}

}else if(num==1){//导入。

System.out.println("请输入需要删除数据的文件路径:");//选择一个文件的路径。

String filename = sc.next();

BufferedReader br = new BufferedReader(new FileReader (filename));//建立导入数据的对象

String line="";//定义字符串用于接收整行数据。

int sum = 0 ;//用于接收删除的学生总数。

while((line = br.readLine())!=null){//判断读取的数据是否为空。

String[] s = line.split(" ");//利用空格分割字符串得到Student对象的信息。

//下面的方法同上面手动录入的过程。

int index = 判断(array, s[0]);

if(index!=-1){

array.remove(index);

sum++ ;

}else{

System.out.println("学号'"+s[0]+"不存在");

}

}

br.close();

System.out.println("成功删除了"+sum+"位同学的信息!");

break;

}else{

System.out.println("你输入有误,请重新选择删除的方法(1、导入  2、手动输入):");

}

}

}

public static void 修改学生(ArrayList<Student> array) throws IOException {//按照录入与导入的方法修改集合当中学生的信息。

Scanner sc = new Scanner(System.in);

System.out.println("请输入修改的方法(1、导入  2、手动输入):");

while(true){

int num = sc.nextInt();

if(num==1){

System.out.println("请输入需要修改数据的文件路径:");

String filename = sc.next();

BufferedReader br = new BufferedReader(new FileReader (filename));

String line="";

int sum = 0 ;

//while循环判断是否录入完毕。

while((line = br.readLine())!=null){

String[] s = line.split(" ");

//for循环判断是否存在录入的学号

int index = 判断(array, s[0]);

if(index==-1){

System.out.println("学号'"+s[0]+"不存在");

}else{

Student st = new Student(s);

array.set(index,st);

sum++ ;

}

}

br.close();

System.out.println("成功修改了"+sum+"位同学的信息!");

break;

}else if(num==2){

System.out.println("请输入学生学号:");

String code = sc.nextLine();

//for循环判断是否存在录入的学号

int index = 判断(array, code);

if(index==-1){

System.out.println("系统中不存在学号'"+code+"',请重新输入!");

}else{

System.out.println("请输入学生新姓名:");

String name = sc.next();

System.out.println("请输入学生新年龄:");

String age = sc.next();

System.out.println("请输入学生新户籍:");

String place=sc.next();

Student s = new Student(code,name,age,place);

array.set(index,s);

System.out.println("修改成功!");

break;

}

}else{

System.out.println("你输入有误,请重新选择修改的方法(1、导入  2、手动输入):");

}

}

}

public static void 查看学生(ArrayList<Student> array) {//将集合中的数据以特定格式遍历出来。

if(array.isEmpty()==true){

System.out.println("系统中还未存储学生信息,请你添加之后再查看!");

}else{

System.out.println("学号"+"\t"+"姓名"+"\t"+"年龄"+"\t"+"户籍");

for (int i = 0; i < array.size(); i++) {

Student s = array.get(i);

System.out.println(s.get学号()+"\t"+s.get姓名()+"\t"+s.get年龄()+"\t"+s.get户籍());

}

}

}

public static void 添加学生(ArrayList<Student> array) throws IOException {//按照录入与导入的方法添加学生的信息到集合中。

Scanner sc = new Scanner(System.in);

System.out.println("请输入添加的方法(1、导入  2、手动输入):");

while(true){

int num = sc.nextInt();

if(num==1){

System.out.println("请输入需要导入数据的文件路径:");

String filename = sc.next();

BufferedReader br = new BufferedReader(new FileReader (filename));

String line="";

int sum = 0;

//while循环判断是否录入完毕。

while((line = br.readLine())!=null){

String[] s = line.split(" ");

int index = 判断(array, s[0]);

if(index!=-1){

System.out.println("学号'"+s[0]+"'在系统中已存在!");

}else{

Student st = new Student(s);

array.add(st);//将对象存入集合。

sum++;

}

}

br.close();

System.out.println("成功添加了"+sum+"位同学的信息!");

return;

}else if(num==2){

System.out.println("请输入学生学号:");

String code = sc.next();

int index = 判断(array, code);

if(index!=-1){

System.out.println("学号'"+code+"'已经存在,请重新输入!");

}else{

System.out.println("请输入学生姓名:");

String name = sc.next();

System.out.println("请输入学生年龄:");

String age = sc.next();

System.out.println("请输入学生户籍:");

String place=sc.next();

Student s = new Student(code,name,age,place);

array.add(s);//将对象存入集合。

System.out.println("添加成功!");

return;

}

}else{

System.out.println("你输入有误,请重新选择添加的方法:");

}

}

}

public static int 判断(ArrayList<Student> array, String code) {//判断集合中是否存在与code相同的学号,如果存在,返回值为索引值,不存在返回值为-1。

for (int i = 0; i < array.size(); i++) {//遍历集合。

if (array.get(i).get学号().equals(code)){//判断集合中是否存在与code相同的学号,如果存在,同时得到索引值。

return i ;

}

}

return -1;//不存在返回值为-1。

}

}

//学生类

public class Student {

private String 学号 ;

private String 姓名 ;

private String 年龄 ;

private String 户籍 ;

public Student() {

}

public Student(String[] s) {

this.学号 = s[0];

this.姓名 = s[1];

this.年龄 = s[2];

this.户籍 = s[3];

}

public Student(String 学号, String 姓名, String 年龄, String 户籍) {

this.学号 = 学号;

this.姓名 = 姓名;

this.年龄 = 年龄;

this.户籍 = 户籍;

}

public String get学号() {

return 学号;

}

public void set学号(String 学号) {

this.学号 = 学号;

}

public String get姓名() {

return 姓名;

}

public void set姓名(String 姓名) {

this.姓名 = 姓名;

}

public String get年龄() {

return 年龄;

}

public void set年龄(String 年龄) {

this.年龄 = 年龄;

}

public String get户籍() {

return 户籍;

}

public void set户籍(String 户籍) {

this.户籍 = 户籍;

}

}

java学生管理系统代码相关推荐

  1. java学生管理系统代码_java学生信息管理系统(附源码)

    一:   介绍 1:实现登录界面 2:实现主界面 有两种操作 一种是按钮操作  另外一种是SQL语句. 3:连接SQL server 2008 数据库 用到的软件及环境SQLserver2008,ec ...

  2. java学生管理系统(简易)(三)---教师端的登录主页面

    教师端的登录界面就比较清晰了...可能就我自己认为,以为前面写的太乱了...蒙圈 // 学会了先布局,在完善部分代码,嘤嘤嘤...之前那个学生的感觉凉凉啊~ // 有些代码中可能有main函数,有些没 ...

  3. Java 学生管理系统(详解)

    文章目录 学生类 main方法 首界面登录 功能选择界面 添加学生信息 删除学生信息 修改学生信息 查看学生信息 学号遍历 和 清空控制台方法 附:学生管理系统代码 Student .Java Mai ...

  4. 计算机毕业设计-基于SSM+Vue的公交路线管理系统-java公交管理系统代码

    计算机毕业设计-基于SSM+Vue的公交路线管理系统-java公交管理系统代码 1 开发环境及工具下载 开发语言:Java 架构:B/S 后台:SSM(Spring+SpringMVC+Mybatis ...

  5. 学生管理系统---代码实现

    学生管理系统---代码实现 database类 students类 users类 dao类 studentdao userdao service类 database类 下面展示一些 内联代码片. pu ...

  6. Python学生管理系统代码

    Python学生管理系统代码一览 复制即用 初学见谅 #python study # -*- coding: utf-8 -*-#学员信息 data = [{'id': ' 1','name': '辛 ...

  7. java考勤管理系统源码java学生考勤请假系统java学生考勤管理系统 java考勤系统java学生信息管理系统java学生管理系统

    java考勤管理系统源码java学生考勤请假系统java学生考勤管理系统 java考勤系统java学生信息管理系统java学生管理系统 public Swingtest002() {// 设置标题se ...

  8. Java—学生管理系统使用文件永久存储

    学生管理系统 上一次使用的集合只能对学生信息进行临时存储,关闭程序时数据就会消失,这次新增了文件存储,达到对学生信息的永久记录,首先在上次代码的基础上,增加了两个方法,一个是从学生文件读取信息到集合中 ...

  9. java学生管理系统(swing) (没用数据库,附源码)

    如果有需要带数据库的,请小伙伴移步至:java+mysql学生管理系统(附源码,无套路) 事先声明: 程序简易,只是为了记录学习过程,大佬们勿喷,要实在忍不住,麻烦各位大佬轻点喷就是! 但是如果有任何 ...

  10. 基于IDEA的Java学生管理系统

    1.创建学生类 package studentManager;public class Student {//定义成员变量private String num;//学号private String n ...

最新文章

  1. WF4.0 基础篇 (三) 流程实例WorkflowApplication与设计WF程序的基本原则
  2. axurehtml打开不用用_还有人花钱买会员看剧?赶紧用iPhone免费追剧
  3. 但是尚未从池中获取连接_SQLServer超时时间已到,但是尚未从池中获取连接
  4. Cracer渗透视频课程笔记——基础知识(2)
  5. Linux下LCD自动关闭解决方法,一般就自动十分钟黑屏的原因
  6. python开发跟淘宝有关联微_使用Python分析淘宝用户行为
  7. DevExpress的TreeList怎样给树节点设置图标
  8. SRS流媒体服务器搭建+ffmpeg推流VLC取流观看
  9. python计算在月球的体重程序_# Python程序语言设计基础(第二版)程序练习题
  10. springboot 通过url访问本地文件
  11. 核心单词Word List 5
  12. AutoIt教程资源及autoit学习方法
  13. Mac下php-fpm重启方式
  14. KingbaseES 中的xmin,xmax等系统字段说明
  15. Excel 滚动条动态显示图形
  16. 王者荣耀是如何从C++代码变到游戏的?
  17. 行政组织理论-阶段测评2
  18. C#获取字符串的拼音和首字母
  19. 警惕!微信诈骗花样多:点个赞都可能被骗
  20. 2011-2019 历届蓝桥杯——本科B组C/C++组别所有试题——详解大全

热门文章

  1. 代码 生成迅雷链接启动迅雷下载
  2. HaaS EDU场景式应用学习 - 光照信息屏
  3. 微信文章互阅python脚本,一天可刷120分
  4. JavaWeb学习之EL表达式和JSTL标签库
  5. 单片机关于protues中数码管的显示
  6. 论文---基于B/S中小型酒店客房管理系统的设计与实现
  7. [ProblemSolving]ut下载磁盘负荷过重
  8. 谷歌离线地图二次开发源代码
  9. 计算机组成原理--复习简答题+答案
  10. armv6 armv7 armv7s架构的区别