2017-10-17 4 views
-2

J'ai un problème avec mon code ruby. Mon projet est de: Faire un nouveau fichier et mettre les données à l'intérieur et que la recherche: 1. Entrez un nouvel employé (numéro, nom, date de naissance). 2. Recherchez un employé par numéro. (dans la base de données) 3. Pour quitter, appuyez sur 3Comment rechercher dans de nouveaux fichiers et imprimer les informations ajoutées?

C'est le code que j'ai, mais le terminal ne l'exécutera pas.

class Person 

    def setNumber(number) 
     @number=number 
    end 

    def setInfo(name) 
     @name=name 
    end 

    def getInfo() 
    return @name 
    end 

    def setInf(dateofBirth) 
     @dateofBirth=dateofBirth 
    end 

    def getInf() 
    return dateofBirth 
    end 

    puts "Companies employees" 

    select = 0 

    while(select!=3) 

    puts "Press 1 to Enter information about new employee" 
    puts "Press 2 to Search for employee by number" 
    puts "Press 3 to exit" 

    select=gets.chomp.to_i 


    if(select == 1) 
    f=File.new("Repository.txt","a+") 

    puts "Please enter employee number:" 
     number = gets.chomp.to_s 
     f.puts (number) 
     person = Person.new 
     person.setInfo(number) 

    puts "Please enter the employee name:" 
     name = gets.chomp.to_s 
     f.puts (name) 
     set_name = Person.new 

     set_name.setInfo(name) 

     puts "Please enter the employees date of birth:" 
      dateofBirth = gets.chomp.to_s 
      f.puts (dateofBirth) 
      dateofBirth = Person.new 
      dateofBirth.setInfo(dateofBirth) 

     f.close() 

    elsif(select==2) 
     puts "Which employee number would you like to search for?" 
     search = gets.chomp 
     f = File.open("Repository.txt","r") 
     while !(f.eof?) 
      line.include?(search) 

      end 

      f.close() 



      elsif(select > 3) 
      puts "Incorrect selection." 

      elsif(select == 3) 
      puts "Goodbye!" 

      end 
      end 
+0

Ruby vous encourage fortement à éviter d'utiliser des lettres majuscules dans les noms de variables et de méthode. Les majuscules indiquent des constantes comme 'ClassName',' ModuleName' et 'CONSTANT_NAME'. – tadman

+0

Il n'est pas non plus nécessaire de créer des méthodes de type 'setX' quand' attr_accessor: x' crée la bonne méthode 'x =' utilisée à la place. – tadman

+1

Que voulez-vous dire "ne fonctionnera pas"? Est-ce qu'il produit une erreur? Ce code semble incomplet et syntaxiquement incorrect, plus l'indentation n'aligne pas correctement les choses. L'indentation peut sembler une préoccupation mineure, mais le fait d'y prêter une attention particulière peut aider à exposer les problèmes tôt, évitant ainsi beaucoup de débogage frustrant. – tadman

Répondre