学生信息管理系统运用集合且存储本地磁盘.docx

上传人:b****8 文档编号:29763488 上传时间:2023-07-26 格式:DOCX 页数:16 大小:37.10KB
下载 相关 举报
学生信息管理系统运用集合且存储本地磁盘.docx_第1页
第1页 / 共16页
学生信息管理系统运用集合且存储本地磁盘.docx_第2页
第2页 / 共16页
学生信息管理系统运用集合且存储本地磁盘.docx_第3页
第3页 / 共16页
学生信息管理系统运用集合且存储本地磁盘.docx_第4页
第4页 / 共16页
学生信息管理系统运用集合且存储本地磁盘.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

学生信息管理系统运用集合且存储本地磁盘.docx

《学生信息管理系统运用集合且存储本地磁盘.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统运用集合且存储本地磁盘.docx(16页珍藏版)》请在冰豆网上搜索。

学生信息管理系统运用集合且存储本地磁盘.docx

学生信息管理系统运用集合且存储本地磁盘

学生信息管理系统

--基于io流,集合,面向对象知识

部分运行图:

完整代码如下,仅供学习参考:

packagecom.gaobo.day13,homework;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.FileOutputStream;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.io.ObjectInputStream;

importjava.io.ObjectOutputStream;

importjava.io.Serializable;

importjava.util.ArrayList;

importjava.util.Iterator;

importjava.util.List;

importjava.util.Scanner;

publicclassIoObjOutputListStuMess{

staticArrayListmessage=newArrayList();

publicstaticvoidmain(String[]args){

initDate();//进入系统时读取之前所存储的数据到缓冲区

Scannerinput=newScanner(System.in);

dis();

while(true){

Stringin=input.next();

switch(in){

case"1":

addStuMess();

break;

case"2":

showStuMess();

break;

case"3":

changStudentMess();

break;

case"4":

delStudentMess();

break;

case"5":

findStuMess();

break;

case"6":

savaDate();

System.out.println("退出程序成功!

");

System.exit(0);

default:

System.out.println("输入错误,请选择1~6!

");

dis();

}

}

}

publicstaticvoidaddStuMess(){

Stringflag="y";

do{

booleanisInt=true,isYN=true;

Scannerinput=newScanner(System.in);

Studentstu=newStudent(null,null,0,null);//随意设定初始值,不影响程序,只为了创建对象,类型对应即可

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

Stringin=input.next();

stu.setNo(in);

for(StudenthadStu:

message){

if(hadStu.getNo().equals(in)){

System.out.println("已存在该学生,不能重复添加");

dis();

return;

}

}

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

stu.setName(input.next());

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

//对于年龄为整数的异常处理

while(isInt){

ScannerintInput=newScanner(System.in);

try{

isInt=false;

intintAge=intInput.nextInt();

if(intAge>150||intAge<=0){

System.out.println("年龄必须大于0小于150");

isInt=true;

continue;

}

stu.setAge(intAge);

}catch(Exceptione){

isInt=true;

System.out.println("年龄必须为整数类型,且大于0小于150");

}

}

System.out.println("请输入学生的性别,男性输入boy,其余任意键为女性");

if(input.next().equals("boy")){

stu.setGender("男");

}else{

stu.setGender("女");

}

message.add(stu);

//System.out.println("message.size()"+message.size());//调试时使用

System.out.println("是否继续输入?

y/n");

flag=input.next();

//对是否继续输入的选择做异常处理

while(isYN){

if(flag.equals("y")||flag.equals("n")){

isYN=false;

}

else{

System.out.println("请选择y或n");

flag=input.next();

}

}

if(flag.equals("n")){

dis();

break;

}

}while(flag.equals("y"));

}

publicstaticvoidshowStuMess(){

if(message.size()==0){

System.out.println("学生信息为空,请先添加学生信息");

}else{

System.out.println("学号\t姓名\t年龄\t性别");

for(Studentmsg:

message){

System.out.println(msg.getNo()+"\t"+msg.getName()+"\t"+msg.getAge()+"\t"+msg.getGender());

}

}

dis();

}

publicstaticvoidchangStudentMess(){

if(message.size()==0){

System.out.println("学生信息库为空,您无法进行该项操作");

dis();

return;

}

System.out.println("请输入您要修改的学生学号");

Scannerinput=newScanner(System.in);

Stringin=input.next();

Iteratorit=message.iterator();//构建迭代器

while(it.hasNext()){

StudentstuMess=it.next();

if(stuMess.getNo().equals(in)){

aa:

while(true){

booleanisInt=true;

System.out.println("请选择你要修改的信息:

");

System.out.println("1、学号2、姓名3、年龄4、性别5、【保存】");

Stringtype=input.next();//修改内容选项

switch(type){

case"1":

booleanflag=true;

System.out.println("学号修改为:

");

//修改学号时,原则是不能出现相同的学号

while(flag){

StringisHad=input.next();

for(StudenthadStu:

message){

if(hadStu.getNo().equals(isHad)){

System.out.println("已存在该学生,不能重复添加");

flag=true;

break;

}else{

flag=false;

}

}

if(flag==false){

stuMess.setNo(isHad);

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

}

}

break;

case"2":

System.out.println("姓名修改为:

");

stuMess.setName(input.next());

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

break;

case"3":

System.out.println("年龄修改为:

");

//对于年龄为整数的异常处理

while(isInt){

ScannerintInput=newScanner(System.in);

try{

isInt=false;

intintAge=intInput.nextInt();

if(intAge>150||intAge<=0){

System.out.println("年龄必须大于0小于150");

isInt=true;

continue;

}

stuMess.setAge(intAge);

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

}catch(Exceptione){

isInt=true;

System.out.println("年龄必须为整数类型,且大于0小于150");

}

}

break;

case"4":

System.out.println("性别修改为:

(男性输入boy,其余任意键为女性)");

if(input.next().equals("boy")){

stuMess.setGender("男");

}else{

stuMess.setGender("女");

}

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

break;

case"5":

System.out.println("学生信息更新已保存");

dis();

breakaa;

default:

System.out.println("输入错误,请重新输入!

");

}

}

return;

}

}

System.out.println("对不起,没有找到该学生信息");

dis();

}

publicstaticvoiddelStudentMess(){

if(message.size()==0){

System.out.println("学生信息库为空,您无法进行该项操作");

dis();

return;

}

System.out.println("请输入您要删除的学生学号");

Scannerinput=newScanner(System.in);

Stringin=input.next();

Iteratorit=message.iterator();//构建迭代器

while(it.hasNext()){

StudentstuMess=it.next();

if(stuMess.getNo().equals(in)){

message.remove(stuMess);

System.out.println("删除该学生信息成功...");

dis();

return;

}

}

System.out.println("对不起,没有找到该学生信息");

dis();

}

publicstaticvoidfindStuMess(){

if(message.size()==0){

System.out.println("学生信息库为空,请先添加学生信息");

dis();

return;

}

System.out.println("请输入您要查找的学生学号");

Scannerinput=newScanner(System.in);

Stringin=input.next();

Iteratorit=message.iterator();//构建迭代器

while(it.hasNext()){

StudentstuMess=it.next();

if(stuMess.getNo().equals(in)){

System.out.println("该学生信息如下:

");

System.out.println("学号\t姓名\t年龄\t性别");

System.out.println(stuMess.getNo()+"\t"+stuMess.getName()+"\t"+stuMess.getAge()+"\t"+stuMess.getGender());

dis();

return;

}

}

System.out.println("删除失败,没有该学生信息...");

dis();

}

publicstaticvoidsavaDate(){

try(

ObjectOutputStreamoos=newObjectOutputStream(newFileOutputStream("IoObjOutputListStuMess.dat"));//file路径可根据实际需要来改

{

oos.writeObject(message);//对象应用的序列化:

直接将Student对象存入message集合中

}catch(FileNotFoundExceptione){

//e.printStackTrace();

dis();

}catch(IOExceptione){

e.printStackTrace();

}

}

publicstaticvoidinitDate(){

try(

ObjectInputStreamois=newObjectInputStream(newFileInputStream("IoObjOutputListStuMess.dat"));

){

try{

message=(ArrayList)ois.readObject();

}catch(ClassNotFoundExceptione){

}

}catch(FileNotFoundExceptione){

//e.printStackTrace();

System.out.println("-------首次加载,请添加学生信息!

------");

}catch(IOExceptione){

//e.printStackTrace();

}

}

staticvoiddis(){

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("|6、退出程序|");

System.out.println("|(请选择1~6)|");

System.out.println("*************************************");

}

}

classStudentimplementsSerializable{//实现Serializable接口,该类就是可序列化的

privateStringno,name,gender;

privateintage;

publicStringgetNo(){

returnno;

}

publicvoidsetNo(Stringno){

this.no=no;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this.age=age;

}

publicStringgetGender(){

returngender;

}

publicvoidsetGender(Stringgender){

this.gender=gender;

}

publicStudent(){}//无参构造器

publicStudent(Stringno,Stringname,intage,Stringgender){

//super();

this.no=no;

this.name=name;

this.age=age;

this.gender=gender;

}

@Override

publicStringtoString(){

return"Student[no="+no+",name="+name+",gender="+gender+",age="+age+"]";

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1