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

📄 littleprogram.java

📁 java课程设计包含汉诺塔
💻 JAVA
字号:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.StringTokenizer;

/*
* Created on 2006-4-22
*/

/**
*
* ѧɼϵͳ
* ͨѧŲ,޸,ɾ
* 
*/
public class LittleProgram 
{
	static boolean isDelete = true;
	static boolean isFind = true;
	
	//,↑ʼ
	public static void main(String [] args) throws IOException,NumberNotFoundException
	{
		int choice=-1;
		do{
			LittleProgram lp = new LittleProgram();
			System.out.println();
			System.out.println("\t####################################");
			System.out.println();
			System.out.println("\t\t Javaѧɼϵͳ1.1");
			System.out.println("\t\tѧŲ,޸,ɾ");
			System.out.println();
			System.out.println("\t####################################");
			System.out.print("1.:"+	"2.:"+"3.ɾ:"+"4.:"+"5.ȫӡĻ"+"6.ѳɼѧ"+"7.޸"+"8.ͳѼ¼ɼѧ"+"9."+"0.˳." +":");
			//ն˽ѡ;
			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
			String inputLine = in.readLine(); 
			choice= Integer.valueOf(inputLine).intValue();
			switch(choice)
			{
				case 1: {//1. 
					String str = lp.inputData();
					lp.addData(str);
					System.out.println("ݳɹ.");
					timeOut(1);
				}break;
				case 2: {//2.
					long find = 0;
					System.out.print("Ҫҵѧѧ:");
					BufferedReader inn = new BufferedReader(new InputStreamReader(System.in));
					String inputLi = inn.readLine();
					find = Integer.valueOf(inputLi).longValue();
					lp.findData(find);
					timeOut(2);
				}break;
				case 3: {//3.ɾ
					long deleteNumber = 0;
					System.out.print("ɾͬѧѧ:");
					BufferedReader bf = new BufferedReader (new InputStreamReader(System.in));
					String inputL = bf.readLine();
					deleteNumber = Integer.valueOf(inputL).longValue();
					lp.deleteData(deleteNumber);
					if(isDelete)
						System.out.println("ɾݳɹ!");
					timeOut(1);
				}break;
				case 4: { 
					lp.clearData();//4.
					timeOut(1);
				}break;
				case 5: {
					print();//5.ȫӡĻ
					timeOut(2);
				}break;
				case 6: {
					lp.numSort();//6.ѳɼѧ 
					System.out.println("ѧŴСɹ!"+":");
					print();
					timeOut(2);
				}break;
				case 7: {
					lp.rewrite();//7.޸
					timeOut(2);
				}break;
				case 8: {
					int count = lp.count();
					System.out.println(""+count+"ѧѾ¼.");
					timeOut(2);
				}break;
				case 9: {
					System.out.print("\t\tHEF"+"\t\t");
					timeOut(4);
				}break;
		}
		System.out.println("Bye! ^-^");
		System.exit(0);
	}while (choice != 0);
}

//ն˽ݵķ,ַ
public String inputData() throws IOException,NumberFormatException
{
	System.out.print(" :ѧ  Ա ɼ" + "ÿÿո:");
	String all = "";
	try{
		//ն˽
		BufferedReader in = new BufferedReader (new InputStreamReader(System.in)); 
		String inputLine = in.readLine();
		//յÿո,ȡÿַ
		StringTokenizer str = new StringTokenizer(inputLine," "); 
		long num = Integer.valueOf(str.nextToken()).longValue();//ѧ 
		String name = (String)str.nextToken(); //
		String sex = (String)str.nextToken(); //Ա 
		double mark = Integer.valueOf(str.nextToken()).doubleValue();// 
		all = String.valueOf(num) +" , "+ name +" , "+ sex +" , "+ String.valueOf(mark);//е" , "ȻŽַall 
	}catch (IOException e){}
	catch (NumberFormatException e){}
	return all;//ַall
}

//ݵķ
public void addData(String str) throws IOException
{
	String s1 ="",s2="" ,s3= "";
	File file = new File("data.txt");
	if (file.exists())//ļdata.txt
	{
		try{
			BufferedReader in = new BufferedReader(new FileReader("data.txt"));
			while ((s1=in.readLine())!=null)
				s2+=s1+"";//ļеÿȫŽһַs2 
				s2+=str+""; //ٰs2βstrŽs2
				
				//ַs2Ҳԭļ+βstr(һ)дdata.txtԭ
				BufferedReader in2 = new BufferedReader(new StringReader(s2)); 
				PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("data.txt"))); 
			while ((s3=in2.readLine())!= null)
			{
				out.println(s3);
			}
			out.close();
			//System.out.println("write data true.");
		}catch (IOException e){}
	}else{
	System.err.println("File \"data\" Missing!");
	}
}

//data.txtݵķ
public void clearData() throws IOException
{
	File file = new File("data.txt");
	if(file.exists())//ļ 
	{
		try{
			PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file)));
			out.print("");//ļdata.txtдһַ,ԭ
			out.close(); //رļ
			System.out.println("clear data true!");
		}catch(IOException e){}
		}else{
			System.err.println("File \"data\" Missing!");
		}
}

//ɾij
public void deleteData(long deleteNumber) throws IOException,FileNotFoundException
{
	isDelete = true;
	try{
		DataMap mp = new DataMap();//һԼд
		long j=0;
		String s1="",s2="",s3="";
		BufferedReader in = new BufferedReader(new FileReader("data.txt"));
		while ((s1=in.readLine())!=null)
		{
			j=numberTokenizer(s1);
			mp.put(j,s1);
		}
	try{
		if(mp.containsKey( String.valueOf(deleteNumber).toString()))
		{
			mp.remove(deleteNumber);
		}else 
		throw new NumberNotFoundException();
		Collection c = mp.values();
		Iterator iter = c.iterator();
		while(iter.hasNext())
		{
			s1 = (String)iter.next();
			s3 +=s1+"";
		}
		BufferedReader in2 = new BufferedReader(new StringReader(s3));
		PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("data.txt")));
		//System.out.println("delete No"+deleteNumber);
		while( (s1 = in2.readLine())!=null)
		{
			out.println(s1);
		}
		out.close();
	}catch (NumberNotFoundException e)
	{
		isDelete = false;
		System.out.println(deleteNumber+" no found :("); 
	}
	}catch(IOException e){}
}


public long numberTokenizer(String s) throws IOException
{
	StringTokenizer st = new StringTokenizer(s," ");
	return Integer.valueOf((st.nextToken())).longValue();
}

//
public void findData(long find) throws IOException,NumberNotFoundException
{
	isFind = true;
	String s = "",findString ="";
	long i;
	DataMap dm = new DataMap();
	BufferedReader in = new BufferedReader(new FileReader("data.txt"));
	while ((s=in.readLine())!=null)
	{
		i=numberTokenizer(s);
		dm.put(i,s);
	}
	//in.close();
	try{
		if(dm.containsKey( String.valueOf(find).toString()))
		{
		findString = dm.get(find);
		System.out.println("ѧ"+find+"ѧ:");
		System.out.println(findString);
		}else 
		throw new NumberNotFoundException();
		}catch (NumberNotFoundException e){
			System.out.println(find+" no found :(");
			isFind = false;
		} 
}

//ȡıļݴӡն˵ķ
public static void print() throws IOException
{
	try{
		BufferedReader in = new BufferedReader(new FileReader("data.txt"));
		String read = "";
		while ((read = in.readLine())!=null)
		System.out.println(read);
	}catch(IOException e){}
}

//ͣٶʱһȫԲҪ
public static void timeOut(double sec)
{
	double seconds = sec;
	long t = System.currentTimeMillis()+(int)(seconds*1000);
	while ((System.currentTimeMillis())) ;
}

//ѧ
public void numSort() throws IOException
{
	long i = 0;
	String s = "";
	try{
		DataArrayList dal = new DataArrayList();
		BufferedReader in = new BufferedReader(new FileReader("data.txt"));
		while ((s=in.readLine())!=null)
		{
			i=numberTokenizer(s);
			dal.add(i);
		}
		Collections.sort(dal);
		DataMap dm = new DataMap();
		BufferedReader in2 = new BufferedReader(new FileReader("data.txt"));
		while ((s=in2.readLine())!=null)
		{
			i=numberTokenizer(s);
			dm.put(i,s);
		}
		PrintWriter out = new PrintWriter (new BufferedWriter(new FileWriter("data.txt")));
		Iterator it = dal.iterator();
		long temp = 0;
		String tempStr = "";
		while (it.hasNext())
		{
			temp = Integer.valueOf((String)it.next()).longValue();
			tempStr = dm.get(temp);
			out.println(tempStr);
		}
		out.close();
	}catch(IOException e){}
}

public void rewrite() throws IOException,NumberNotFoundException
{
	try{
		System.out.print("Ҫ޸ĵѧѧ:");
		BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
		String inputLine = in.readLine();
		long num = Integer.valueOf(inputLine).longValue();
		findData(num);
		if(isFind)
		{
			deleteData(num);
			System.out.print("ѧ:");
			String str = inputData();
			addData(str);
			System.out.println("rewrite true!");
		} 
	}catch(IOException e){}
	catch(NumberNotFoundException e){}
}

public int count() throws IOException 
{
	DataArrayList dal = new DataArrayList();
	try{
		String s = "";
		long i =0;
		BufferedReader in = new BufferedReader(new FileReader("data.txt"));
		while ((s=in.readLine())!=null)
		{
			i=numberTokenizer(s);
			dal.add(i);
		}
	}catch(IOException e){}
	return dal.size();
}

class DataMap extends HashMap//һ洢ݵMap 
{
	//ѧźݷŽMapԺһѧ(key)Ӧһ˵(value)
	public void put(long i,String str)
	{ 
		put(String.valueOf(i).toString(),str);
	}
	
	public void remove(long i)//ѧ,Ȼɾѧ(key)Ӧ(value)
	{
		remove(String.valueOf(i).toString().toString());
	}
	
	public String get(long i)//һѧ,Ȼ

⌨️ 快捷键说明

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