📄 infomodel.java
字号:
import java.io.*;
import java.util.*;
import java.text.*;
public class infomodel
{
//说明学生信息系统的存储空间
Student[] students;
//说明当前学生的个数
int numberofstudent ;
//构造方法
public infomodel()
{
students =new Student[1000];
//实例化学生数组
numberofstudent=0;
//初始化学生个数
}
//插入一条新的学生记录
public void insert(BufferedReader readStream)
{
String sno=null;
//定义并初始化学生学号
String name=null;
//定义并初始化学生姓名
String sex=null;
//定义并初始化学生性别
String department=null;
//定义并初始化学生部门
String enrollmentdate=null;
//定义并初始化学生出生日期
try
{
System.out.println("请输入学号:");
sno=readStream.readLine ();
//从键盘输入学号
}
catch (IOException e)
{
e.printStackTrace();
//捕捉IO异常
}
students[numberofstudent++]=new Student(sno,name,sex,department,getdate(enrollmentdate));
//装载数组
}
//字符串yyyy-hh-dd到日期的转换
public Date getdate(String date)
{
StringTokenizer mydate=new StringTokenizer(date,"-");
int year =Integer.parseInt(mydate.nextToken());
int month = Integer.parseInt(mydate.nextToken());
int day = Integer.parseInt(mydate.nextToken());
//把指定的年月日转化为日期整数
Calendar now =Calendar.getInstance();
now.clear();
now.set(year,month-1,day);
return now.getTime();
}
//删除一条学生记录
public void delete (BufferedReader readStream)
{
String sno=null;
System.out.println("请输入学号:");
try
{
sno=readStream.readLine();
}
catch (IOException e)
{
e.printStackTrace();
}
//开始删除
for (int i=0;i<numberofstudent ;i++ )
{
if (students[i].getSno().equals(sno))
{
//通过前移操作实现删除
for (int j=i;j<numberofstudent ; j++)
{
students[j]=students[j+1];
//修正目前学生记录
numberofstudent--;
break;
}
}
}
}
//修改学生记录
public void update (BufferedReader readStream)
{
String sno=null;
System.out.println("请输入学号:");
try
{
sno=readStream.readLine();
}
catch (IOException e)
{
e.printStackTrace();
}
for (int i=0;i<numberofstudent ;i++ )
{
if (students[i].getSno().equals(sno))
{
for (int j=i;j<=numberofstudent ; j++)
{
students[j]=students[i];
}
}
}
}
//显示学生记录的方法
public void query(BufferedReader readStream)
{
int flag=0;
String sno = null;
for (int i=0;i<numberofstudent ;i++ )
{
flag=1;
System.out.println("请输入记录号"+(i=1));
if(students[i].getSno().equals(sno))
{
flag = 1;
System.out.println(students[i].getName());
System.out.println(students[i].getSex());
System.out.println(students[i].getDepartment());
System.out.println(students[i].getEnrollmentDate());
}
if (flag==0)
{
System.out.println("目前还没记录");
}
}
}
//批量装入学生记录的方法
public void load ()
{
String sno=null;
String name=null;
String sex=null;
String EnrollmentDate=null;
String department=null;
String in;
//定义成员变量
//从指定文件中读取学生信息
try
{
BufferedReader infile = new BufferedReader(new FileReader("e:\\inf\\xuesheng.txt"));
//建立键盘输入流
while ((in=infile.readLine())!=null)
{
StringTokenizer str =new StringTokenizer(in,"1");
sno=str.nextToken();
name=str.nextToken();
sex=str.nextToken();
EnrollmentDate=str.nextToken();
department=str.nextToken();
//依次获得学号,姓名,性别,出生年月日和所在院系名称
students[numberofstudent++]=new Student(sno,name,sex,department,getdate(EnrollmentDate));
//装载到数组
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
System.out.println("I/O操作出现异常");
}
}
//存储学生记录的方法
public void saveto()
{
try
{
BufferedWriter outfile = new BufferedWriter(new FileWriter("e:\\inf\\xuesheng.txt"));
//建立文件输出流(writer)
for (int i=0;i<numberofstudent;i++ )
{
outfile.write(students[i].getSno()+" ");
outfile.write(students[i].getName()+" ");
outfile.write(students[i].getSex()+" ");
outfile.write(students[i].getDepartment()+" ");
outfile.write(students[i].getEnrollmentDate()+" ");
outfile.newLine();
//开始写数据
}
outfile.close();
//关闭流
}
catch (IOException e)
{
System.out.println("I/O操作出现异常");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -