学生信息管理系统运用集合且存储本地磁盘.docx
- 文档编号:29763488
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:16
- 大小:37.10KB
学生信息管理系统运用集合且存储本地磁盘.docx
《学生信息管理系统运用集合且存储本地磁盘.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统运用集合且存储本地磁盘.docx(16页珍藏版)》请在冰豆网上搜索。
学生信息管理系统运用集合且存储本地磁盘
学生信息管理系统
--基于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{
staticArrayList
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();
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();
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();
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
}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+"]";
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 运用 集合 存储 本地 磁盘
![提示](https://static.bdocx.com/images/bang_tan.gif)