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

📄 stu.java

📁 简单的一个java程序
💻 JAVA
字号:
import java.io.*;

//*******************************************************************************************
//学生类
//*******************************************************************************************
class Student implements Serializable{
	String ID=null;
	String name=null;
	float math=0;
	float chinese=0;
	Student(){}
	Student(String i,String n,float m,float c)
	{
		ID=i;name=n;math=m;chinese=c;
	}
	public float GetCost(){
		return math+chinese;
	}
	public String toString(){return ID+'\t'+name+
		'\t'+math+"\t"+chinese;}
}
//***********************************************************************************************
//读取信息类
//***********************************************************************************************
class Read{
//***********************************************************************************************
	int GetNumber(){																		//
		int count=0;																		//
		char[] c1=new char[250];															//
		try{																				//
			BufferedReader tmp=new BufferedReader(new FileReader("c:\\student.txt"));		//
			tmp.read(c1);																	//
			for(int i=0;c1[i]!=0;i++){														//
				if(c1[i]=='\n')																//
					count++;																//获取文本文件
		}																					//中学生的总数
		tmp.close();																		//
		}catch(IOException e){																//
			System.out.println("error");													//
		}																					//
		return --count;																		//
	}																						//
//***********************************************************************************************	
	String GetOneStudentId(int x){															//
		String Stmp=null;																	//
		char[] c1=new char[30];															//
		int count;																			//
		try{																				//
			BufferedReader tmp=new BufferedReader(new FileReader("c:\\student.txt"));		//
			for(int i=0;i<x+1;i++)															//
				Stmp=tmp.readLine();														//获取文本文件
			c1=Stmp.toCharArray();															//中第x个学生
			for(count=0;c1[count]!='\t';count++);											//的学号
			char[] c2=new char[count];														//
			for(int i=0;i<count;i++)														//
				c2[i]=c1[i];																//
			Stmp=new String(c2);															//
			tmp.close();																	//
																							//
		}catch(Exception e){																//
			return Stmp="error";															//
		}																					//
		return Stmp;																		//
	}																						//
//***********************************************************************************************		
	String GetOneStudentName(int x){														//
		String Stmp=null;																	//
		char[] c1=new char[30];															//
		int count1=0,count2=0;																//
		try{																				//
			BufferedReader tmp=new BufferedReader(new FileReader("c:\\student.txt"));		//
			for(int i=0;i<x+1;i++)															//
				Stmp=tmp.readLine();														//
			c1=Stmp.toCharArray();															//
			for(int i=0;;count2++){															//
				if(c1[count2]=='\t'){														//获取文本文件
					i++;																	//中第x个学生
					if(i==2)																//的姓名
						break;																//
					count1=count2;															//
				}																			//
																							//
			}																				//
			char[] c2=new char[count2-count1];												//
			for(int i=count1+1,j=0;i<count2;i++,j++)										//
				c2[j]=c1[i];																//
			Stmp=new String(c2);															//
			tmp.close();																	//																	
		}catch(Exception e){																//
			return Stmp="error";															//
		}																					//
		return Stmp;																		//
	}																						//
//***********************************************************************************************
	float GetOneStudentMath(int x){														//
		float ftmp=0;																		//
		String Stmp=null;																	//
		char[] c1=new char[30];															//
		int count=0;																		//
		try{																				//
			BufferedReader tmp=new BufferedReader(new FileReader("c:\\student.txt"));		//
			for(int i=0;i<x+1;i++)															//
				Stmp=tmp.readLine();														//
			c1=Stmp.toCharArray();															//
			for(int i=0;;count++){															//
				if(c1[count]=='\t'){														//获取文本文件
					i++;																	//中第x个学生
					if(i==3)																//的数学成绩
						break;																//
				}																			//
																							//
			}																				//
			char[] c2=new char[c1.length-count];											//
			for(int i=count,j=0;i<c1.length;i++,j++)										//
				c2[j]=c1[i];																//
			Stmp=new String(c2);															//
			ftmp=Float.parseFloat(Stmp);													//
			tmp.close();																	//																							//
		}catch(Exception e){																//
			return 0;																		//
		}																					//
		return ftmp;																		//
	}																						//
//***********************************************************************************************
	float GetOneStudentChinese(int x){														//
		float ftmp=0;																		//
		String Stmp=null;																	//
		char[] c1=new char[30];															//
		int count1=0,count2=0;																//
		try{																				//
			BufferedReader tmp=new BufferedReader(new FileReader("c:\\student.txt"));		//
			for(int i=0;i<x+1;i++)															//
				Stmp=tmp.readLine();														//
			c1=Stmp.toCharArray();															//获取文本文件
			for(int i=0;;count2++){															//中第x个学生
				if(c1[count2]=='\t'){														//的语文成绩
					i++;																	//
					if(i==3)																//
						break;																//
					count1=count2;															//
				}																			//
			}																				//
			char[] c2=new char[count2-count1];												//
			for(int i=count1,j=0;i<count2;i++,j++)											//
				c2[j]=c1[i];																//
			Stmp=new String(c2);															//
			ftmp=Float.parseFloat(Stmp);													//
			tmp.close();																	//																					
		}catch(Exception e){																//
			return 0;																		//
		}																					//
		return ftmp;																		//
	}																						//
}																							//
//***********************************************************************************************

//***********************************************************************************************
//排序类
//***********************************************************************************************
abstract class Px{
//*******************************************************************************************
	static void MaoPao(Student []a,int num){											//
		int i,j;																		//
		Student tmp;																	//	
		for(i=0;i<num-1;i++)															//
			for(j=i+1;j<num;j++){														//
				if(a[i].GetCost()>a[j].GetCost()){										//冒泡排序方法
					tmp=a[i];															//
					a[i]=a[j];															//
					a[j]=tmp;															//
				}																		//
			}																			//
	}																					//
//*******************************************************************************************
//*******************************************************************************************
	static void ErFen(Student []a,int num){											//
		if(a[num].GetCost()<a[num-1].GetCost()){										//
				Student tmp;															//
				int left=0,right=num-1,middle=(num-1)/2;								//
			while(left!=middle){														//
				if(a[num].GetCost()>a[middle].GetCost()){								//
					left=middle;														//
					middle=(left+right)/2;												//
				}																		//
				else if(a[num].GetCost()<a[middle].GetCost()){							//
					right=middle;														//
					middle=(left+right)/2;												//
				}																		//
				else																	//二分排序方法
					break;																//
			}																			//
			tmp=a[num];																	//
			if(a[num].GetCost()>=a[middle].GetCost()){									//
				for(int i=num;i>middle+1;i--){											//
					a[i]=a[i-1];														//
				}																		//
				a[middle+1]=tmp;														//
			}																			//
			else{																		//
				for(int i=num;i>middle;i--){											//
					a[i]=a[i-1];														//
				}																		//
				a[middle]=tmp;															//
			}																			//
		}																				//
	}																					//
}																						//
//*******************************************************************************************

//*******************************************************************************************
//序列化类
//**************************************************************************************************
class XuLieHua{																					//
	static void XuLie(Student[] s,int num){													//
		try{																					//
			ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("c:\\1.txt"));	//
			for(int i=0;i<num;i++)																//
				oos.writeObject(s[i]);															//序列化
			oos.flush();																		//方法
			System.out.println("对象序列化写入文件");												//
		}catch(Exception e){																	//
			System.out.println("error");														//
		}																						//
	}																							//
//**************************************************************************************************
	static void FanXuLie(Student[] s,int num){													//
		try{																					//
			System.out.println("对象反序列化显示");												//
			ObjectInputStream ois=new ObjectInputStream(new FileInputStream("c:\\1.txt"));		//
			for(int i=0;i<num;i++){																//
				s[i]=(Student)ois.readObject();													//反序列化
				System.out.println(s[i].ID+'\t'+s[i].name+'\t'+s[i].chinese+'\t'+s[i].math);	//方法
			}																					//
		}catch(Exception e){																	//
			System.out.println("error");														//
		}																						//
	}																							//
}																								//
//**************************************************************************************************	

//*******************************************************************************************
//主函数
//*******************************************************************************************
public class stu {
	public static void main(String[]args){
		Read r =new Read();
		int num=r.GetNumber();
		Student[] s=new Student[num+1];
		try{
			BufferedReader tmp=new BufferedReader(new FileReader("c:\\student.txt"));
			System.out.println(tmp.readLine());
			tmp.close();
		}catch(Exception e){
			System.out.println("error");
		}
		for(int i=0;i<num;i++){
			s[i]=new Student();
			s[i].ID=r.GetOneStudentId(i+1);
			s[i].name=r.GetOneStudentName(i+1);
			s[i].chinese=r.GetOneStudentChinese(i+1);
			s[i].math=r.GetOneStudentMath(i+1);
			System.out.println(s[i].toString());
		}
//*******************************************************************************************
		Px.MaoPao(s,num);
		System.out.println("冒泡排序后的结果为:");
		try{
			BufferedReader tmp=new BufferedReader(new FileReader("c:\\student.txt"));
			System.out.println(tmp.readLine());
			tmp.close();
		}catch(Exception e){
			System.out.println("error");
		}
		for(int i=0;i<num;i++)
			System.out.println(s[i].toString());
//*******************************************************************************************
		System.out.println("请输入一位新学生的信息:");
		System.out.println("学号"+'\t'+"姓名"+'\t'+"语文"+'\t'+"数学");
		//BufferedReader NewStu=new BufferedReader(new InputStreamReader(System.in));
		try{
		BufferedReader NewStu=new BufferedReader(new InputStreamReader(System.in));
		String[] tmp=new String[4];
		tmp=NewStu.readLine().split(" ");
		s[num]=new Student(tmp[0],tmp[1],Float.parseFloat(tmp[2]),Float.parseFloat(tmp[3]));
		}catch(IOException e){
			System.out.println("error");
		}
		//s[num]=new Student(tmp[0],tmp[1],Float.parseFloat(tmp[2]),Float.parseFloat(tmp[3]));
//*******************************************************************************************
		Px.ErFen(s, num);
		System.out.println("插入一个新学生的信息后,通过二分排序法后的结果为:");
		try{
			BufferedReader tmp=new BufferedReader(new FileReader("c:\\student.txt"));
			System.out.println(tmp.readLine());
			tmp.close();
		}catch(Exception e){
			System.out.println("error");
		}
		for(int i=0;i<num+1;i++)
			System.out.println(s[i].toString());
//*******************************************************************************************
		XuLieHua.XuLie(s, num+1);
		XuLieHua.FanXuLie(s, num+1);
//*******************************************************************************************
	}

}

⌨️ 快捷键说明

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