Guest NoOne Posted November 14, 2006 at 10:03 PM Report #64410 Posted November 14, 2006 at 10:03 PM Exercício 1 Considere que um parque de estacionamento automóvel pretende uma aplicação para ajudar no cálculo do montante a pagar por cada utente, da receita total do dia, do número total de veículos e também o tempo médio de aparcamento. O parque abre às 6 e encerra às 24horas e todos os carros devem sair até essa hora. O preço da primeira hora é 1€, a 2ª é 0.80€ e as restantes 0.70E€. Faça um programa, devidamente modularizado, que esteja constantemente a receber, à saída de cada carro, a hora de entrada ( horas e minutos) e a hora de saída ( horas e minutos), determine o total a pagar. Quando for introduzido hora e minuto de entrada e a hora e minuto de saída, tudo com valores 0, o programa termina indicando a receita total do dia, o número total de veículos aparcados e também o tempo médio de aparcamento. import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { String e_h,e_m,s_h,s_m; int e_hora,e_minuto,s_hora,s_minuto, min_e, min_s,perm,n_horas,ncars; double preco,total; total=0; preco=0; ncars=0; do { do { //Introduçao das Hora / Minutos de Entrada e_h=JOptionPane.showInputDialog("Entrada (atençao parque Abre às 6 e fecha às 24h) \nHora: "); e_hora=Integer.parseInt(e_h); e_m=JOptionPane.showInputDialog("Entrada \nMinutos: "); e_minuto=Integer.parseInt(e_m); //Introduçao das Hora / Minutos de Saida s_h=JOptionPane.showInputDialog("Saida (atençao parque Abre às 6 e fecha às 24h) \nHora: "); s_hora=Integer.parseInt(s_h); s_m=JOptionPane.showInputDialog("Saida \nMinutos: "); s_minuto=Integer.parseInt(s_m); }[b] while( (e_hora<6) ||(e_hora>24) || (s_hora<e_hora));[/b] //conversao de horas em minutos min_e=(e_hora * 60) + e_minuto; min_s=(s_hora * 60) + s_minuto; //calcular tempo de permanencia no parque perm=min_s-min_e; // numero de horas no parque n_horas= perm / 60; // se estiver apenas 2 horas no parque if ((n_horas ==1) || (perm % 60 != 0)) { preco=1; } if (n_horas == 2) { preco=1; preco= preco + 0.80; } if (n_horas > 2) { preco=1; preco = (preco + 0.80) + ((n_horas-2) * 0.70); } //Os minutos apos uma hora inteira if ((perm % 60 != 0 ) && (n_horas ==1)) { preco = preco + 0.80; } if ((perm % 60 != 0 ) && (n_horas >= 2)) { preco = preco + 0.70; } total=total+preco; ncars=ncars+1; JOptionPane.showMessageDialog(null,"O gajo esteve: "+n_horas+" e vai pagar: "+preco); } while((e_hora!=0) || (e_minuto!=0) || (s_hora!=0) || (s_minuto!=0)); ncars=ncars--; JOptionPane.showMessageDialog(null,"Hoje rendeu: "+total+" passaram por aki: "+ncars); System.exit(0); } } Estou com dificuldades em controlar se a hora introduzida é superior a 6 e inferior a 24, porque se a hora / minutos forem todas iguais a zero o programa é suposto encerrar :S Alguma alma caridosa pode dar uma maozinha? PS: já agora, como se faz um menu em java?
Saco Posted November 14, 2006 at 10:23 PM Report #64417 Posted November 14, 2006 at 10:23 PM Para começar, quando puseres código, usa a ferramenta GeSHi para ficar o código mais legível, com corzinhas e tal... Passando ao teu problema, podes colocar um if logo no início do while em que se as horas e os minutos forem todos 0 o ciclo while pára. (Caso não saibas, tens o break; que faz isso mesmo). Quanto ao menu, não te posso ajudar porque nunca mexi em swing, só aplicações de consola.
Guest NoOne Posted November 14, 2006 at 11:07 PM Report #64428 Posted November 14, 2006 at 11:07 PM esse tipo de cenas: breaks, gotos, e isso ... n sao contra um boa estruturaçao dum programa? ? PS: ya funciona, devia ter pensado nisso antes 😛 . Obrigado
Gurzi Posted November 14, 2006 at 11:26 PM Report #64434 Posted November 14, 2006 at 11:26 PM Mudei o teu post para a ferramenta geshi! Eu fazia uma condição se horas ou minutos forem 0 ele n faz nada e faz um output a acusar o erro se nao arranca para as conversoes.!
016R35 Posted November 25, 2006 at 06:19 PM Report #66642 Posted November 25, 2006 at 06:19 PM offtopic: lol, temos aluno do isep aki... 🙂
Guest NoOne Posted November 26, 2006 at 01:27 PM Report #66813 Posted November 26, 2006 at 01:27 PM lalala :B por acaso ja resolvi os exercicios quase todos, so um promenor ou outro 🙂
Guest NoOne Posted November 27, 2006 at 02:25 PM Report #67046 Posted November 27, 2006 at 02:25 PM exercicios entregues agr é rezar por uma boa nota 👍
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now