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

📄 mt.java

📁 Java编写的模仿图灵机的程序源代码
💻 JAVA
字号:
package Moteur;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Scanner;


/**
 * Classe noyau de l'application.
 * @author emiliendreyfus@msn.com
 *
 */
public class MT {
	

	
	public Programme prog;
	
	boolean ready=false;

	
	
	
	public MT(){
		prog=new Programme();
	}
	

	
	public void sauvegarderProg(String adresse){
		try {
			//Ouverture du fichier
			FileWriter fichier=new FileWriter(adresse);
			BufferedWriter buf=new BufferedWriter(fichier);
			
			
			//Ecriture de l'entr閑
			buf.write(prog.curseur.getBandeFichier()+"\r\n");
			
			
			//Ecriture des terminaux$
			ArrayList<Integer> terminaux=prog.getTerminaux();
			for(int j=0;j<terminaux.size();j++){
				buf.write(terminaux.get(j).toString()+" ");
			}buf.write("\r\n");
			
			//Ecriture des variables
			Iterator<Variable> j=prog.variables.iterator();
			Variable var;
			while(j.hasNext()){
				var=j.next();
				buf.write(var.symbol+var.getValues()+" ");
			}
			
			
			
			//Ecriture des regles
			Iterator<Regle> i=prog.regles.iterator();
			while(i.hasNext())
				buf.write(i.next().toStringFichier()+"\r\n");
			
			
			
			buf.flush();
			buf.close();
			fichier.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	public void chargerProg(String adresse) throws Exception{
		try {
			File fichier=new File(adresse);
			Scanner scan=new Scanner(fichier);
			
			prog.setEntree(scan.nextLine());
			Scanner term=new Scanner(scan.nextLine());
			while(term.hasNextInt())
				prog.addTerminal(term.nextInt());
		
			term=new Scanner(scan.nextLine());
			while(term.hasNext()){
				String s=term.next();
				prog.addVar(new Variable(s.charAt(0),s.substring(1).toCharArray()));
			}
			
			while(scan.hasNextLine()){
				Regle r=new Regle();

				
					r.etat=scan.nextInt();
					r.lettreLue=scan.next().charAt(0);
					r.nouvelEtat=scan.nextInt();
					r.lettreEcrite=scan.next().toCharArray()[0];
					r.direction=scan.nextShort();

					prog.addRegle(r);
				} 
	
			


			scan.close();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (NoSuchElementException e){
			prog.aff.newLine("Chargement termin

⌨️ 快捷键说明

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