⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 infomodel.java

📁 JAVA程序设计大作业
💻 JAVA
字号:
 package data;
 import java.io.*;
 import java.util.*;
 import java.lang.*;
 import java.lang.String;
 import java.text.*;
 import data.Student;
 public class InfoModel
 {
 	Student head,rear;
 	String names;
 	public InfoModel(String str)
	{
      names=str;
      head=null;
      rear=null;
	}
	public InfoModel()
	{
	}
	//显示一个学生信息
	public void display(Student stu)
	{
				System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^");
				System.out.println("学号"+stu.sno);
				System.out.println("姓名"+stu.name);
				System.out.println("性别"+stu.sex);
				System.out.println("出生日期"+stu.birthday);
				System.out.println("院系"+stu.department);
				System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^");
	}
//增加一个学生信息
public void newstudent(BufferedReader readStream)
  {
	    Student temp=head;
 		System.out.println("请输入学生信息!");
 		String sno=null;
 		String name=null;
 		String sex=null;
 		String department=null;
 		String birthday=null; 		
 		try
 		{
 			System.out.print("请输入学号:");
 			sno=readStream.readLine();
 			System.out.print("请输入姓名:");
 			name=readStream.readLine();
 			System.out.print("请输入性别:");
 			sex=readStream.readLine();
 			System.out.print("请输入出生日期(年-月-日):");
 			birthday=readStream.readLine();
 			System.out.print("请输入院系名称:");
 			department=readStream.readLine();
 			temp=new Student(sno,name,sex,department,getDate(birthday),null);
 			add(temp);
 			System.out.println("新信息录入:");
 			display(temp);
 		}
 		catch(IOException e)
 		{
 			e.printStackTrace();
 		}
 		catch(NumberFormatException e)
 		{
 			System.out.println("输入错误请确认后重新输入");
 		}
}
 	
 //按姓名查找所有结点,若找到,则显示该结点信息,否则返回查找不到的提示信息。
 
 public void namesearch(BufferedReader readStream)
 {
 	String nam=null;
 	try{
 	
 	nam=readStream.readLine();
 	search(nam);
 	}
 	catch(IOException e){
 	}
 }
	public void search(String s)
	{
		Student p=head;
		boolean b=false;	//标记是否查找到
		while(p!=null)
		{
			if(p.name.equals(s))
			{
                display(p);
				b=true;
				//return;
			}
			p=p.next;
		}
		if(!b)
			System.out.println("当前没有该学生记录");
			
	}
	//按学号查找
public void numsearch(BufferedReader readStream)
  {
 	String number=null;
 	try{
 	System.out.print("输入要查询的学号:");
 	number=readStream.readLine();
 	numbersearch(number);
 	}
 	catch(IOException e){
 	}
  }
public void numbersearch(String s)
	{
		Student p=head;
		boolean b=false;	//标记是否查找到
		while(p!=null)
		{
			if(p.sno.equals(s))
			{
              display(p);
				b=true;
				//break;
				//return;
			}
			p=p.next;
		}
		if(!b)
			System.out.println("找不到所查学生");
			
	}
	//将数据域为stu的结点添加到链表的尾部
	public void add(Student s)
	{
		if(head==null)
		{
			head=s;
			rear=s;
		}
		else
		{
			rear.next=s;
			rear=s;
		}
	}
	//删除学号为num的学生结点
	public void delete(BufferedReader readStream)
	{
		 String sno=null;
 		System.out.print("请输入要删除的学号:");
 		try
 		{
 			sno=readStream.readLine();
 		}
 		catch(IOException e)
 		{
 			e.printStackTrace();
 		}
 		Student p=head;
 		 System.out.println("确认删除输入1,取消输入0");
 		int a=0;
 	   try{
 				
 		a=(int)Integer.parseInt(readStream.readLine());
 		}catch(IOException e){}	
 		int y=1;
 		int n=0;
 		if(y==a)
 		{
		while(p!=null)
		{
			if(p.sno.equals(sno))break;
			p=p.next;
		}
 		del(p.sno);
 		System.out.println("已删除!!");
 		}
 		else if(n==a)
 		{
 			System.out.println("删除被取消");
 		}
 		}
	public void del(String num)
	{
		Student p=head;
		Student q=head;
		while(q.next!=null)
		{
			p=q;
			q=q.next;
			if(q.sno.equals(num))		
				p.next=q.next;
		}
	}
	public void print()//全部输出
	{
		Student p=head;
		
		while(p!=null)
		{
           display(p);			
			p=p.next;
		}
	}
	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());
 		//把指定年、月、日的整数值形成Date类型
 		Calendar now=Calendar.getInstance();
 		now.clear();
 		now.set(year,month-1,day);
 		return now.getTime();
 	}
 	//修改
 	public void update(BufferedReader readStream)
 	{
 	  Student p=head;
 	  String sn=null;
 	  System.out.print("请输入学号修改:");
 		try
 		{
 			sn=readStream.readLine();
 		}
 		catch(IOException e)
 		{
 			e.printStackTrace();
 		}
 		
 		while(p!=null)
		{
           if(p.sno.equals(sn))break;			
			p=p.next;
		}
 		
 		//开始修改

 		System.out.println("修改学号输入1 修改姓名输入2 修改性别输入3 ");
 		System.out.println("修改日期输入4 修改院系输入5 输入其它数字取消修改");
 		int ob=0;
 		try{ 		
 		ob= (int)Integer.parseInt(readStream.readLine());
 		switch(ob)
 			{
 			
 			case 1:{System.out.print("请输入修改后的学号:");
 			        p.sno=readStream.readLine();
 			        System.out.println("修改后的记录:");
 			        display(p);
 			        break;}
 			case 2:{System.out.print("请输入修改后的姓名:");
 			p.name=readStream.readLine();
 			System.out.println("修改后的记录:");
 			display(p);
 			break;}
 			case 3:{System.out.print("请输入修改后的性别:");
 			p.sex=readStream.readLine();
 			System.out.println("修改后的记录:");
 			display(p);
 			break;}
 			case 4:{System.out.print("请输入修改后的出生日期(年-月-日):");
 			p.birthday=getDate(readStream.readLine());
 			System.out.println("修改后的记录:");
 			display(p);
 			break;}
 			case 5:{System.out.print("请输入修改后的院系名称:");
 			p.department=readStream.readLine();
 			System.out.println("修改后的记录:");
 			display(p);
 			break;}
 			default:
 			System.out.println("取消了修改!");
 			break;
 			}
 			}
 		catch(IOException e)
 		{
 		}
 		catch(NullPointerException e)
 		{
 			System.out.println("该学生记录不存在!!!");
 		}
 		}
 	  	
 public void load()
 	{
 		//装入两名学生的信息
 		Student ss;
 		Date myDate=getDate("1985-1-22");
 		ss=new Student("1","张三","男","信息管理",myDate,null);
 	}	
 	  	
 	  	//装载文件数据
 	 public void load(String filename)
 	 {
 	 	 Student p=null;
 	 	 String in;
 	 	String sno=null;
 		String name=null;
 		String sex=null;
 		String department=null;
 		String birthday=null;
 		//从指定文件中读取学生信息
 		try
 		{
 			//建立文件流的输入流
 			BufferedReader readStream=new BufferedReader(new FileReader(filename));
 			while((in=readStream.readLine())!=null)
 			{
 				//建立一行数据处理,建立词法分析流,分隔符使用"|"
 				StringTokenizer st=new StringTokenizer(in,"|");
 				//依次获得学号、姓名、性别、出生年月日和院系名称
 				sno=st.nextToken();
 				name=st.nextToken();
 				sex=st.nextToken();
 				birthday=st.nextToken();
 				department=st.nextToken();
 				p=new Student(sno,name,sex,getDate(birthday),department);
 				add(p);
 				p=p.next;
 			}
 			}
 			catch(IOException e)
 			{
 			}
 			}
 	 	 	//保存处理结果
 	public void saveTo()
 	{
 	 		
 	}
 	
 	//保存处理结果到文件
 	public void saveTo(String filename)
 	{
 		try
 		{
 			Student p=head;
 			//建立文件输出流
 			BufferedWriter writeStream=new BufferedWriter(new FileWriter(filename));
 			//开始写数据
 			while(p!=null)
 			{
 				writeStream.write(p.sno);
 				writeStream.write("|");
 				writeStream.write(p.name);
 				writeStream.write("|");
 				writeStream.write(p.sex);
 				writeStream.write("|");
 				//把Date转换为YYYY-MM-DD形式之后,再写入文件
 				SimpleDateFormat fmt=new SimpleDateFormat("yyyy-mm-dd");
 				String myDate=fmt.format(p.birthday);
 				writeStream.write(myDate);
 				writeStream.write("|");
 				writeStream.write(p.department);
 				writeStream.newLine();
 				p=p.next;
 			}
 			//关闭文件
 			writeStream.close();
 			//清空数组内容
 			//numberOfStudents=0;
 		}
 		catch(FileNotFoundException e)
 		{
 			e.printStackTrace();
 		}
 		catch(IOException e)
 		{
 			e.printStackTrace();
 		}
 	}	
 	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -