简单学生信息管理系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
——综合性程序设计
题目:简单学生信息管理系统(序列化版)班级:
:
学号:
实验目的:
1.综合运用输入、输出的知识,用序列化方法保存、读入数组容。
2.设计实现一个简单的信息管理系统。
实验容:
编写能够满足如下条件的程序,分两次四个课时完成
1.声明Student类,该类实现Serializable接口以表明该类可
以进行序列化。该类有、学号、math、os、java用来存放
对应的成绩,在构造方法中进行、学号、课程成绩的赋值。
Override有Object继承来的tostring方法已便友好格式显
示自己的属性;
2.建立一个类,利用数组来存储多个Student,写完一个方法,
在main中写一段测试代码,运行以保证目前所做工作的
正确性,正确后再写其他代码。有以下方法:
1)add(Student stu):增加新的学生,人数满时显示人满或是new一个更长的数组,把现有的Student复制到新
数组
2)dispAll():可以显示所有的学生信息(测试add是否正确)
3)findById(long id):可以按照学号来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。
4)findByName(string name):可以按照来查找,然后显示符合条件的学生信息,查无此人的话显示错误信息。
(判断是否相等使用string类的equalsIgnoreCase方
法)
5)delBy Id(long id): 可以按照id来删除学生信息,然后显示找到该人,若查无此人的话显示错误信息。
6)save():利用ObjectOutputStream 来把数组写入文件中,需要考虑在什么时候调用该方法。
7)load():利用ObjectIntputStream 来进行反序列化,得到以前保存的容,注意要考虑以前未保存容的情况,
可返回错误信息。
3.在控制台显示一个菜单,并实现相应的功能。菜单如下:
1显示所有学生信息2按学号查找 3 按查找 4
按学号删除 5 保存 6 读入7 退出
请输入数字(1-7):
程序代码
Import java.io.*;
Import java.util.*;
class Stu impl ements Serilizable{
private String name;
private long id;
private doubl e os,java,math;
}
public Student()
{
}
public Student(int id, int age, int score, String name) {
this.id = id;
this.os = os;
this.java = java;
= name;
this.math=math;
}
public l ong getId()
{
return id;
}
public void setId(long id)
{
this.id = id;
}
public int getOs()
{
return os;
}
public void setOs(int os)
{
this.os = os;
}
public int getJava()
{
return java;
}
public void setJava(int java)
{
this.java = java;
}
public int getMath()
{
return Math;
}
public void setMath(int math)
{
this.math = math;
}
public String getName()
{
return name;
}
public void setName(String name)
{
= name;
}
Override
public String toString()
{
return "学号:" + id + " :" + name + " os:" + os+ " math:" + math + "java" + java;
}
}
public class Object
{
private static Scanner scanner=new Scanner(System.in);
public void add(Student[] stus)throws Exception
{
Student[] s=new Student[stus.length+1];
for(int i=0;i s[i]=stus[i]; } System.out.print("请输入要添加的学生信息:\n"+":"); String name=scanner.next(); System.out.print("学号:"); long no=scanner.nextInt(); System.out.print("os成绩:"); double cscore0=scanner.nextDouble(); System.out.print("java成绩:"); double cscore1=scanner.nextDouble(); System.out.print("math成绩:"); double cscore2=scanner.nextDouble(); s[s.length-1]=new Student(name,no,cscore0,cscore1,cscore2); save(s); System.out.println("添加成功!"); } public void dispAll(Student[] stus) { System.out.println("现有Stud ent信息为:"); for(Student stu:stus) { System.out.println(stu); } } public void save(Stud ent[] stus)throws Exception { ObjectOutputStream objOut=new ObjectOutputStream(new FileOutputStream("E:\\STU.txt")); objOut.writeInt(stus.length); for(Student stu:stus)