Para começar esta quarta e última parte do tutorial sobre como utilizar o git no Github vamos fazer um clone do repositório que vimos no passado e depois vamos começar a programar para fazer as mudanças e lançar uma versão estável.
Para clonar o repositório
Como utilizar o github para checar os branches existentes no repositório.
Criando o branch para começar a edição.
Criando funções para vários alunos
Editando o programa.
Agora vamos deixar o arquivo media_alunos.kt da seguinte forma.
var alunoList = ArrayList() fun main(){ do { val menu = menu() when(menu) { "1" -> { addAluno() } "2" -> { listAluno() } } } while(menu != "q") } private fun clearscreen(){ print("u001b[Hu001b[2J") } private fun menu(): String? { clearscreen() println("1 --> Adiciona Aluno.") println("2 --> Lista alunos e médias.") println("q --> Sair") val menu = readLine() return menu } private fun addAluno(){ val aluno = readAluno() alunoList.add(aluno) } private fun listAluno(){ if(alunoList.size == 0){ println("Não existem alunos.") } else { println("Lista de alunos e médias.") for(x in 0..alunoList.size-1){ showMedia(alunoList.get(x)) } } readLine() } private fun readAluno(): Aluno { println("Digite o nome do aluno:") val nome = readLine() println("Digite a nota 1:") val n1 = readNota() println("Digite a nota 2:") val n2 = readNota() println("Digite a nota 4:") val n3 = readNota() println("Digite a nota 4:") val n4 = readNota() return Aluno(nome,n1,n2,n3,n4) } private fun showMedia(aluno: Aluno) { val media = (aluno.n1+aluno.n2+aluno.n3+aluno.n4)/4 println("nNome: "+aluno.nome) println("Média: $media") } private fun readNota(): Double { var nota = readLine() try{ nota = nota!!.replace(",",".") val y = nota.toDouble() if(y > 10.0) { println("Nota maior que 10, valor = 10.") return 10.0 } else if(y < 0.0) { println("Nota menor que 0, valor = 0.") return 0.0 } else { return y } } catch(e: NumberFormatException){ println("Não foi digitado um número válido, valor = 0.") return 0.0 } } data class Aluno( var nome: String?, var n1: Double = 0.0, var n2: Double = 0.0, var n3: Double = 0.0, var n4: Double = 0.0 )ctrl+x e S ou Y para salvar.
Fazendo um novo commit das mudanças.
Criar função de remover alunos
Vamos editar o arquivo novamente e adicionar a função de remover alunos, deixando o código da seguinte forma.
var alunoList = ArrayList() fun main(){ do { val menu = menu() when(menu) { "1" -> { addAluno() } "2" -> { listAluno() } "3" -> { removeAluno() } } } while(menu != "q") } private fun clearscreen(){ print("u001b[Hu001b[2J") } private fun menu(): String? { clearscreen() println("1 --> Adiciona Aluno.") println("2 --> Lista alunos e médias.") println("3 --> Deleta aluno") println("q --> Sair") val menu = readLine() return menu } private fun addAluno(){ val aluno = readAluno() alunoList.add(aluno) } private fun listAluno(){ if(alunoList.size == 0){ println("Não existem alunos.") } else { println("Lista de alunos e médias.") for(x in 0..alunoList.size-1){ showMedia(alunoList.get(x)) } } readLine() } private fun getIndex(nome: String): Int? { return alunoList.indexOfFirst { it.nome == nome } } private fun removeAluno(){ var nomeAluno: String? = readLine() if(nomeAluno == null){ println("Nome é nulo") } else{ val ind = getIndex(nomeAluno) if(ind == null){ println("Não tem nenhum aluno com esse nome.") } else { alunoList.removeAt(ind) } } } private fun readAluno(): Aluno { println("Digite o nome do aluno:") val nome = readLine() println("Digite a nota 1:") val n1 = readNota() println("Digite a nota 2:") val n2 = readNota() println("Digite a nota 4:") val n3 = readNota() println("Digite a nota 4:") val n4 = readNota() return Aluno(nome,n1,n2,n3,n4) } private fun showMedia(aluno: Aluno) { val media = (aluno.n1+aluno.n2+aluno.n3+aluno.n4)/4 println("nNome: "+aluno.nome) println("Média: $media") } private fun readNota(): Double { var nota = readLine() try{ nota = nota!!.replace(",",".") val y = nota.toDouble() if(y > 10.0) { println("Nota maior que 10, valor = 10.") return 10.0 } else if(y < 0.0) { println("Nota menor que 0, valor = 0.") return 0.0 } else { return y } } catch(e: NumberFormatException){ println("Não foi digitado um número válido, valor = 0.") return 0.0 } } data class Aluno( var nome: String?, var n1: Double = 0.0, var n2: Double = 0.0, var n3: Double = 0.0, var n4: Double = 0.0 )
ctrl+x e S ou Y para salvar.
Vamos executar o programa para ver como está.
Podemos ver que ainda contêm erros no código, então vamos arrumar todos eles e criar a nossa versão estável do código.
Como utilizar o github para criar uma versão estável
Editando arquivo para mudanças finais.
var alunoList = ArrayList() fun main(){ do { val menu = menu() when(menu) { "1" -> { addAluno() } "2" -> { listAluno() } "3" -> { removeAluno() } } } while(menu != "q") } private fun clearscreen(){ print("u001b[Hu001b[2J") } private fun menu(): String? { clearscreen() println("1 --> Adiciona Aluno.") println("2 --> Lista alunos e médias.") println("3 --> Deleta aluno") println("q --> Sair") val menu = readLine() return menu } private fun addAluno(){ val aluno = readAluno() if(aluno != null){ alunoList.add(aluno) } } private fun listAluno(){ var mediaTotal: Double = 0.0 if(alunoList.size == 0){ println("Não existem alunos.") } else { println("Lista de alunos e médias.") for(x in 0..alunoList.size-1){ showMedia(alunoList.get(x)) mediaTotal += getMedia(alunoList.get(x)) } mediaTotal = mediaTotal/alunoList.size println("nnMédia da sala: $mediaTotal") } readLine() } private fun getIndex(nome: String): Int? { return alunoList.indexOfFirst { it.nome == nome } } private fun existeNome(nome: String): Boolean { val exist = alunoList.find { it.nome == nome } if(exist == null){ return false } else{ return true } } private fun removeAluno(){ println("Digite o nome do aluno a ser removido:") var nomeAluno = readNome() if(!existeNome(nomeAluno)){ println("Não tem nenhum aluno com esse nome.") readLine() } else { val ind = getIndex(nomeAluno) alunoList.removeAt(ind!!) } } private fun readNome(): String{ var nome: String? do{ nome = readLine() if(nome == "") println("Nome não pode ser nulo. Digite novamente") } while(nome == "") return nome!! } private fun readAluno(): Aluno? { println("Digite o nome do aluno:") val nome = readNome() if(existeNome(nome)){ println("Aluno ja existe") readLine() return null } println("Digite a nota 1:") val n1 = readNota() println("Digite a nota 2:") val n2 = readNota() println("Digite a nota 4:") val n3 = readNota() println("Digite a nota 4:") val n4 = readNota() return Aluno(nome,n1,n2,n3,n4) } private fun showMedia(aluno: Aluno) { val media = getMedia(aluno) println("nNome: "+aluno.nome) println("Média: $media") } private fun getMedia(aluno: Aluno): Double { return (aluno.n1+aluno.n2+aluno.n3+aluno.n4)/4 } private fun readNota(): Double { var nota = readLine() try{ nota = nota!!.replace(",",".") val y = nota.toDouble() if(y > 10.0) { println("Nota maior que 10, valor = 10.") return 10.0 } else if(y < 0.0) { println("Nota menor que 0, valor = 0.") return 0.0 } else { return y } } catch(e: NumberFormatException){ println("Não foi digitado um número válido, valor = 0.") return 0.0 } } data class Aluno( var nome: String?, var n1: Double = 0.0, var n2: Double = 0.0, var n3: Double = 0.0, var n4: Double = 0.0 )
ctrl+x e S ou Y para salvar.
Executando o programa terminado para dar uma olhada.
Como utilizar o github para fazer o ultimo commit e enviar a versão estável
Agora vamos a parte final de nosso tutorial, escrever nosso último commit e fazer o upload para o branch dev e depois para o master inserindo a tag que significa versão estável no nosso exemplo.
Adicionando nosso arquivo ao git.
Fazendo o commit
Fazendo mudanças no README.md para ver como funciona
Vamos mudar o arquivo README.md para ficar da seguinte forma.
# Média dos Alunos - Aplicativo que calcula a média dos alunos de uma sala e a média da sala.
ctrl+x e S ou Y para salvar.
Assim podemos ver que é possível usar algumas tags para mudar como é apresentado o arquivo quando se entra no repositório. Também é possível utilizar algumas tags html.
Adicionando arquivo ao commit
Fazendo o commit da mudança no README.md.
Agora vamos criar a tag de versão estável.
Como utilizar o github para enviar para atualizar o branch dev
Entrando no branch dev.
Fazendo merge do branch quote no dev.
Utilizar o github para enviar as atualizações.
Como utilizar o github para enviar as tags das versões.
Como utilizar o github para enviar a versão estável
Mudando para o branch master.
Fazendo o merge do branch dev no master.
Enviando as atualizações no branch master.
Para ver os logs.
Ou se preferir ver em um aplicativo gráfico.
Assim termino essa série de tutoriais com como utilizar o git no github final.
<- Como utilizar o Git no Github