简单学生信息管理系统.docx

上传人:b****1 文档编号:14425412 上传时间:2023-06-23 格式:DOCX 页数:14 大小:17.58KB
下载 相关 举报
简单学生信息管理系统.docx_第1页
第1页 / 共14页
简单学生信息管理系统.docx_第2页
第2页 / 共14页
简单学生信息管理系统.docx_第3页
第3页 / 共14页
简单学生信息管理系统.docx_第4页
第4页 / 共14页
简单学生信息管理系统.docx_第5页
第5页 / 共14页
简单学生信息管理系统.docx_第6页
第6页 / 共14页
简单学生信息管理系统.docx_第7页
第7页 / 共14页
简单学生信息管理系统.docx_第8页
第8页 / 共14页
简单学生信息管理系统.docx_第9页
第9页 / 共14页
简单学生信息管理系统.docx_第10页
第10页 / 共14页
简单学生信息管理系统.docx_第11页
第11页 / 共14页
简单学生信息管理系统.docx_第12页
第12页 / 共14页
简单学生信息管理系统.docx_第13页
第13页 / 共14页
简单学生信息管理系统.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

简单学生信息管理系统.docx

《简单学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《简单学生信息管理系统.docx(14页珍藏版)》请在冰点文库上搜索。

简单学生信息管理系统.docx

简单学生信息管理系统

 

——综合性程序设计

 

 

题目:

简单学生信息管理系统(序列化版)

班级:

学号:

 

实验目的:

1.综合运用输入、输出的知识,用序列化方法保存、读入数组内容。

2.设计实现一个简单的信息管理系统。

实验内容:

编写能够满足如下条件的程序,分两次四个课时完成

1.声明Student类,该类实现Serializable接口以表明该类可以进行序列化。

该类有姓名、学号、math、os、java用来存放对应的成绩,在构造方法中进行姓名、学号、课程成绩的赋值。

Override有Object继承来的tostring方法已便友好格式显示自己的属性;

2.建立一个类,利用数组来存储多个Student,写完一个方法,在main中写一段测试代码,运行以保证目前所做工作的正确性,正确后再写其他代码。

有以下方法:

1)add(Studentstu):

增加新的学生,人数满时显示人满或是new一个更长的数组,把现有的Student复制到新数组

2)dispAll():

可以显示所有的学生信息(测试add是否正确)

3)findById(longid):

可以按照学号来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。

4)findByName(stringname):

可以按照姓名来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。

(判断姓名是否相等使用string类的equalsIgnoreCase方法)

5)delById(longid):

可以按照id来删除学生信息,然后显示找到该人,若查无此人的话显示错误信息。

6)save():

利用ObjectOutputStream来把数组写入文件中,需要考虑在什么时候调用该方法。

7)load():

利用ObjectIntputStream来进行反序列化,得到以前保存的内容,注意要考虑以前未保存内容的情况,可返回错误信息。

3.在控制台显示一个菜单,并实现相应的功能。

菜单如下:

1显示所有学生信息2按学号查找3按姓名查找4按学号删除5保存6读入7退出

请输入数字(1-7):

程序代码

Importjava.io.*;

Importjava.util.*;

classStuimplementsSerilizable{

privateStringname;

privatelongid;

privatedoubleos,java,math;

}

publicStudent()

{

}

publicStudent(intid,intage,intscore,Stringname)

{

this.id=id;

this.os=os;

this.java=java;

this.name=name;

this.math=math;

}

publiclonggetId()

{

returnid;

}

publicvoidsetId(longid)

{

this.id=id;

}

publicintgetOs()

{

returnos;

}

publicvoidsetOs(intos)

{

this.os=os;

}

publicintgetJava()

{

returnjava;

}

publicvoidsetJava(intjava)

{

this.java=java;

}

publicintgetMath()

{

returnMath;

}

publicvoidsetMath(intmath)

{

this.math=math;

}

publicStringgetName()

{

returnname;

}

publicvoidsetName(Stringname)

{

this.name=name;

}

Override

publicStringtoString()

{

return"学号:

"+id+":

"+name+"os:

"+os+"math:

"+math+"java"+java;

}

}

//Object类

publicclassObject

{

privatestaticScannerscanner=newScanner(System.in);

publicvoidadd(Student[]stus)throwsException

{

Student[]s=newStudent[stus.length+1];

for(inti=0;i

s[i]=stus[i];

}

System.out.print("请输入要添加的学生信息:

\n"+":

");

Stringname=scanner.next();

System.out.print("学号:

");

longno=scanner.nextInt();

System.out.print("os成绩:

");

doublecscore0=scanner.nextDouble();

System.out.print("java成绩:

");

doublecscore1=scanner.nextDouble();

System.out.print("math成绩:

");

doublecscore2=scanner.nextDouble();

s[s.length-1]=newStudent(name,no,cscore0,cscore1,cscore2);

save(s);

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

");

}

publicvoiddispAll(Student[]stus)

{

System.out.println("现有Student信息为:

");

for(Studentstu:

stus)

{

System.out.println(stu);

}

}

publicvoidsave(Student[]stus)throwsException

{

ObjectOutputStreamobjOut=newObjectOutputStream(newFileOutputStream("E:

\\STU.txt"));

objOut.writeInt(stus.length);

for(Studentstu:

stus)

{

objOut.writeObject(stu);

}

objOut.close();

}

publicStudent[]read()throwsException

{

ObjectInputStreamobjIn=newObjectInputStream(newFileInputStream("E:

\\STU.txt"));

intnum=objIn.readInt();

Student[]stus=newStudent[num];

for(inti=0;i

{

stus[i]=(Student)objIn.readObject();

}

objIn.close();

returnstus;

}

publicvoidfindById(Student[]stus)

{

intno=0,i=0;

System.out.print("请输入学号:

");

no=scanner.nextInt();

for(i=0;i

{

if(stus[i].no==no)

{

System.out.println(stus[i]);break;

}

if(stus[i].no!

=no&&i==stus.length-1)

{

System.out.println("无该生信息!

");

}

}

}

publicvoidfindByName(Student[]stus)

{

Stringname="";

System.out.print("请输入姓名:

");

name=scanner.next();

for(inti=0;i

{

if(name.equalsIgnoreCase(stus[i].name)==true)

{

System.out.println(stus[i]);break;

}

if(name.equalsIgnoreCase(stus[i].name)==false&&i==stus.length-1)

{

System.out.println("无该生信息!

");

}

}

}

publicvoiddelById(Student[]stus)throwsException

{

intno=0,i=0;

System.out.print("请输入学号:

");

no=scanner.nextInt();

for(i=0;i

{

if(stus[i].no==no)

{

System.out.println(stus[i]);

stus[i]=null;save(stus);

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

");

break;

}

if(stus[i].no!

=no&&i==stus.length-1)

{

System.out.println("无该生信息!

");

}

}

}

publicstaticvoidmain(String[]args)throwsException

{

Objectdemo=newObject();

Student[]stus={newStudent("zhang",1,90,90,98),newStudent("wang",2,80,80,89),newStudent("li",3,70,70,79)};

System.out.print("请输入操作的编号:

");

System.out.print("\n");

intchoice=0;

do{

System.out.println("1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出请输入数字(1-7):

");

choice=scanner.nextInt();

switch(choice){

case1:

demo.add(demo.read());

break;

case2:

demo.dispAll(demo.read());

break;

case3:

demo.findById(demo.read());

break;

case4:

demo.findByName(demo.read());

break;

case5:

demo.delById(demo.read());

break;

case6:

demo.save(stus);

break;

case7:

demo.read(stus);

break;

case0:

break;

default:

System.out.println("Error!

");

}

}while(choice!

=0);

}

}

实验结果

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

1

请输入要添加的学生信息:

kim

学号:

0110

os成绩:

66

java成绩:

77

math成绩:

88

添加成功!

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

1

请输入要添加的学生信息:

lina

学号:

0122

os成绩:

96

java成绩:

83

math成绩:

72

添加成功!

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

1

请输入要添加的学生信息:

joe

学号:

0136

os成绩:

69

java成绩:

83

math成绩:

66

添加成功!

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

2

现有Student信息为:

学号:

0110姓名:

kimos:

66math:

88java:

77

学号:

0122姓名:

linaos:

96math:

72java:

83

学号:

0136姓名:

joeos:

69math:

66java:

83

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

6

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

4

请输入姓名:

lim

无该生信息!

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

3

请输入学号:

0122

学号:

0122姓名:

linaos:

96math:

72java:

83

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

4

请输入姓名:

kim

学号:

0110姓名:

kimos:

66math:

88java:

77

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

5

请输入学号:

0136

删除成功!

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

2

学号:

0110姓名:

kimos:

66math:

88java:

77

学号:

0122姓名:

linaos:

96math:

72java:

83

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

9

Error!

1添加2显示所有学生信息3按学号查找

4按姓名查找5按学号删除6保存7读入0退出

请输入数字(1-7):

0

 

实验总结:

以前用C语言做过关于学生信息的管理系统,这次用java,在有过c和c++的学习后,相对来说要比以前更有些思路,java也比c更为方便一些,在程序编写时总是忘记写一段就编译一段,以及时的能发现错误,导致最后程序编译时无法找到自己的错误。

实现类的序列化的必要条件就是实现Serializable接口,对于序列化与反序列化有了一定的掌握。

但是外部文件的存储和提取对象的过程还是出现过错误,需要再学习以熟练掌握。

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2