JAVA编写的学籍管理系统关于通过arraylist写入读取文件时的错误,

颜回青 2014-12-07 07:08:27

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
import java.io.*;
public class a5438{
public static void main(String[] args) throws Exception
{
while (true)
{
new Login().log0(args);
}
}
}
class Login {
Scanner sc=new Scanner(System.in);
static ArrayList<user>list=new ArrayList<user>();
static user u;
public void log0(String[] args) throws Exception
{
try {
FileOutputStream fo=new FileOutputStream("user.data");
ObjectOutputStream uo=new ObjectOutputStream(fo);
System.out.println(" Welcome to Studnet Management System ");
System.out.println("=================================================================");
System.out.println (" 现提供一个管理员账号,两个教师管理员账号,两个学生账号进行程序初始运行测试");
System.out.println("管理员如需添加教师账号信息或学生账号信息,请登陆到程序管理员界面进行增删查改");
System.out.println("=================================================================");
user u=new Teacher("admin","123",1);
uo.writeObject(u);
u=new Teacher("teacher1","333",2);
uo.writeObject(u);
u=new Teacher("teacher2","369",2);
uo.writeObject(u);
u=new Teacher("student1","334",3);
uo.writeObject(u);
u=new Teacher("student2","533",3);
uo.writeObject(u);
uo.close();
fo.close();
}catch (IOException e) {
e.printStackTrace();
}
u=null;
try {
FileInputStream fi=new FileInputStream("user.data");
ObjectInputStream si=new ObjectInputStream(fi);
while(true){
u=(user)si.readObject();
System.out.println(u.getNo()+" "+u.getPwd());
list.add(u);
}
}catch (EOFException e) {

}
Login t=new Login();
t.login();
}
void login(){
System.out.println();
System.out.print("请输入卡号:");
String no=sc.next();
System.out.print("请输入密码:");
String pwd=sc.next();
Iterator<user> it=list.iterator();
while(it.hasNext())
{
user tep=it.next();
System.out.println(tep.getNo()+" "+tep.getPwd());
System.out.println();
if(tep.getNo().equals(no)&&tep.getPwd().equals(pwd))
{
int type=tep.getType();
switch(type)
{
case 1:
new Management().input1();
break;
case 2:
new Teacher().input2();
break;
case 3:
break;
default:
System.exit(type);

}
u.menu();
System.exit(0);
}
}
System.out.println("账号或者密码错误!");

}
}
abstract class user implements Serializable{
private String no;
private String pwd;
private int type;
private String type2;
private String name;
abstract void menu();
public user(){}
public user(String no,String pwd,int type){
this.no=no;
this.pwd=pwd;
this.type=type;
}
public user(String no,String pwd,int type,String type2,String name){
this.no=no;
this.pwd=pwd;
this.type=type;
this.type2 = type2;
this.name = name;
}
public String getName(){
return name;
}
public void setName(){
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getType2() {
return type2;
}
public void setType2(String type2) {
this.type2 = type2;
}
}
class Teacher extends user {

public Teacher(){
super();
}
public Teacher(String no,String pwd,int type){
super(no,pwd,type);
}
public Teacher(String no,String pwd,int type,String type2,String name){
super(no,pwd,type,type2, name);
}
void menu(){
demo();
System.out.println("teacher:");
}
void demo(){
System.out.println("teacher method");
}
void input2(){
while (true)
{
Scanner in1 = new Scanner (System.in);
System.out.println("欢迎来到教师添加成绩界面");
System.out.println("====================");
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("7.退出");
int sel2 = in1.nextInt();
switch(sel2)
{
case 1 :
//Add_Temp_Mark();
break;
case 2 :
break;
case 3 :
break;
case 4 :
break;
case 5:
break;
case 7:
System.exit(sel2);
case 6 :
new Login().login();
default:
System.out.println("输入有误,请重新输入");

}
}
}
}
class Management extends user {

static ArrayList<user>list=new ArrayList<user>();
Scanner in1 = new Scanner (System.in);
static user u;
void input1()
{
while (true){
System.out.println("管理员管理界面");
System.out.println("============");
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("============");
int sel = in1.nextInt();
switch (sel){
case 1:
input1_1();
break;
case 2 :
input1_2();
break;
case 3:
input1_3();
break;
case 4:
System.exit(sel);
break;
case 5:
new Login().login();
break;
default :
System.out.println("输入有误,请确认后重新输入");
}
}
}
void input1_1(){
System.out.println("1.添加学生信息");
System.out.println("2.删除学生信息");
System.out.println("3.修改学生信息");
System.out.println("4.查询学生信息");
System.out.println("5.返回上一层");
int sel = in1.nextInt();
switch(sel)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
default:
System.out.println("输入有误,请重新输入");

}
}
void input1_2(){
System.out.println("1.添加老师信息");
System.out.println("2.删除老师信息");
System.out.println("3.修改老师信息");
System.out.println("4.查询老师信息");
System.out.println("5.返回上一层");
int sel = in1.nextInt();
switch(sel)
{
case 1:
try {
add_tea_mes();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
default:
System.out.println("输入有误,请重新输入");

}
}
void input1_3(){
System.out.println("1.添加课程信息");
System.out.println("2.修改课程信息");
System.out.println("3.删除课程信息");
System.out.println("4.返回上一层");
int sel = in1.nextInt();
switch(sel)
{
case 1:

break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
default:
System.out.println("输入有误,请重新输入");

}
}
void add_stu_mes(){

}
void add_tea_mes() throws IOException{
FileOutputStream fo=new FileOutputStream("user.data",true);
ObjectOutputStream uo=new ObjectOutputStream(fo);
System.out.println();
System.out.println("姓名:");
String name = in1.next();
System.out.println("帐号:");
String id = in1.next();
System.out.println("密码:");
String pwd = in1.next();
System.out.println("类型:");
int type = in1.nextInt();
System.out.println("任课:");
String type2 = in1.next();
u = new Teacher(id,pwd,type,type2,name);
FileInputStream fi=new FileInputStream("user.data");
ObjectInputStream si=new ObjectInputStream(fi);
while(true){
try {
u=(user)si.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(u.getNo()+" "+u.getPwd());
list.add(u);
}
}
@Override
void menu() {
// TODO Auto-generated method stub

}
}
class Student extends user{
BufferedReader in = new BufferedReader (new InputStreamReader (System.in));
Scanner in3 = new Scanner (System.in);
@Override
void menu() {
// TODO Auto-generated method stub

}

}
class Course {

}
...全文
135 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
颜回青 2014-12-07
  • 打赏
  • 举报
回复
这是错误代码: 管理员管理界面 ============ 请选择: 1.管理学生信息 2.管理老师信息 3.管理课程信息 4.退出 5.返回上一层 ============ java.io.StreamCorruptedException at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at Management.add_tea_mes(a5438.java:342) at Management.input1_2(a5438.java:277) at Management.input1(a5438.java:226) at Login.login(a5438.java:76) at Login.log0(a5438.java:56) at a5438.main(a5438.java:10) 3 1.添加课程信息 2.修改课程信息 3.删除课程信息 4.返回上一层

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧