Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.44 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package Jabuticaba;
  7.  
  8. import java.util.Scanner;
  9.  
  10. /**
  11. *
  12. * @author debora.medeiros
  13. */
  14. public class Biblioteca2 {
  15.  
  16. // declarando variaveis globais
  17. public static String[] livros = new String[100];
  18. public static String[] usuarios = new String[10];
  19. public static Integer[][] aluguel = new Integer[100][2];
  20. public static int opcao, opcao1, opcao2, totalLivros = 0, totalUsuarios = 0, totalAlugueis = 0, totalReservados = 0, totalLivrosAlugados = 0;
  21.  
  22. public static void main(String[] args) {
  23.  
  24. Scanner sc = new Scanner(System.in);
  25.  
  26. usuarios[0] = "Victor";
  27. usuarios[1] = "André";
  28.  
  29. livros[0] = "Harry Potter";
  30. livros[1] = "Percy Jackson";
  31.  
  32. Integer reservados[][] = new Integer[50][2];
  33.  
  34. for (int i = 0; i < reservados.length; i++) {
  35. if (reservados[i][0] != null) {
  36. totalReservados++;
  37. }
  38. }
  39.  
  40. for (int i = 0; i < usuarios.length; i++) {
  41. if (usuarios[i] != null) {
  42. totalUsuarios++;
  43. }
  44. }
  45.  
  46. for (int i = 0; i < livros.length; i++) {
  47. if (livros[i] != null) {
  48. totalLivros++;
  49. }
  50. }
  51.  
  52. for (int i = 0; i < aluguel.length; i++) {
  53. if (aluguel[i] != null) {
  54. totalAlugueis++;
  55. }
  56. }
  57.  
  58. do {
  59. System.out.println("1 - Entrar | 2 - Novo Usuário/Remover usuário | 0 - Sair");
  60. opcao = sc.nextInt();
  61. sc.nextLine();
  62. if (opcao == 1) {
  63. System.out.println("Usuários:");
  64. System.out.println("");
  65. for (int i = 0; i < totalUsuarios; i++) {
  66. System.out.println(i + " - " + usuarios[i]);
  67. }
  68. System.out.println("");
  69.  
  70. int usuarioSelecionado;
  71. int logado = -1;
  72. do {
  73. System.out.println("Selecione um usuário! (9-Sair)");
  74. usuarioSelecionado = sc.nextInt();
  75. sc.nextLine();
  76.  
  77. //procura se usuario existe no array
  78. //se existir, loga como esse usuario
  79. if (usuarioSelecionado != 9) {
  80. if (usuarios[usuarioSelecionado] != null) {
  81. logado = usuarioSelecionado;
  82. }
  83. }
  84.  
  85. if (usuarioSelecionado != 9 && logado == -1) {
  86. System.out.println("Usuário inexistente!");
  87. }
  88.  
  89. } while (usuarioSelecionado != 9 && logado == -1);
  90.  
  91. //Se achou e logou
  92. if (logado != -1) {
  93.  
  94. System.out.println("");
  95. System.out.println("Você está logado como: " + usuarios[usuarioSelecionado]);
  96. System.out.println("");
  97.  
  98. do {
  99.  
  100. System.out.println("1 - Adicionar Livro | 2 - Buscar Livro | 3 - Listar Livros | 4 - Remover Livro | 5 - Alugar livro | 6 - Devolver Livro | 9 - Sair");
  101. opcao2 = sc.nextInt();
  102. sc.nextLine(); // bug do buffer
  103. switch (opcao2) { //opções do usuário logado
  104. case 1: //adicionar livro
  105. boolean novo = true;
  106. System.out.println("Digite o nome do livro:");
  107. for (int i = 0; i < (totalLivros - 1); i++) {
  108. if (livros[i] == null) {
  109. livros[i] = sc.nextLine();
  110. i = totalLivros;
  111. novo = false; // não utiliza uma posição nova
  112. }
  113. }
  114. if (novo) { // equivale a dizer novo == true | utiliza uma posição nova
  115. livros[totalLivros] = sc.nextLine();
  116. totalLivros++;
  117. }
  118. break;
  119. case 2: //buscar livro
  120. System.out.println("Digite o nome do livro que você deseja buscar:");
  121. String nomeLivro = sc.nextLine();
  122. buscarLivros(nomeLivro);
  123. break;
  124. case 3: // listar livro
  125. listarLivros();
  126. break;
  127. case 4: // remover livro
  128. System.out.println("Digite o nome livro que você deseja remover:");
  129. String buscarLivro = sc.nextLine();
  130. int indiceLivro = -1;
  131. //procurando indice do livro
  132. for (int i = 0; i < totalLivros; i++) {
  133. if (livros[i].equals(buscarLivro)) {
  134. indiceLivro = i;
  135. }
  136. }
  137. boolean usado = false;
  138. for (int i = 0; i < totalAlugueis; i++) {
  139. if (aluguel[i][0] != null) {
  140. if (aluguel[i][0] == indiceLivro) {
  141. usado = true;
  142. }
  143. }
  144.  
  145. }
  146.  
  147. if (!usado) {
  148. for (int i = 0; i < totalLivros; i++) {
  149. if (buscarLivro.equals(livros[i])) {
  150. System.out.println("Livro " + livros[i] + " foi removido.");
  151. livros[i] = null;
  152.  
  153. }
  154. }
  155.  
  156. } else {
  157.  
  158. System.out.println("O livro nâo pode ser removido pois está alugado.");
  159.  
  160. }
  161. break;
  162.  
  163. case 5:
  164. //existe algum livro disponivel?
  165. int disponivel = 0;
  166. if (totalLivrosAlugados < totalLivros) {
  167. disponivel = 1;
  168. }
  169.  
  170. if (disponivel == 1) {
  171. System.out.println("Os livros disponíveis são: ");
  172. int livroSelecionado;
  173. for (int i = 0; i < totalLivros; i++) {
  174. //procura pra ver se o livro ja foi alugado
  175. int alugado = 0;
  176.  
  177. for (int j = 0; j < totalAlugueis; j++) {
  178.  
  179. if (aluguel[j][0] != null) {
  180. if (aluguel[j][0] == i) {
  181. alugado = 1;
  182. }
  183. }
  184.  
  185. }
  186.  
  187. if (alugado == 0) {
  188. if (livros[i] != null) {
  189. System.out.println(i + " - " + livros[i]);
  190. }
  191. }
  192.  
  193. }
  194. System.out.println("Qual você deseja alugar?");
  195. livroSelecionado = sc.nextInt();
  196. sc.nextLine();//bug do buffer
  197.  
  198. if (livroSelecionado == -1) {
  199. //listar alugueis
  200. System.out.println("");
  201. for (int i = 0; i < totalAlugueis; i++) {
  202. System.out.println(aluguel[i][0] + " - " + aluguel[i][1]);
  203. }
  204. System.out.println("");
  205. }
  206.  
  207. //procura pra ver se o livro ja foi alugado, de novo
  208. String response = "";
  209. int alugado2 = 0;
  210. for (int j = 0; j < totalAlugueis; j++) {
  211. if (aluguel[j][0] != null) {
  212. if (aluguel[j][0] == livroSelecionado) {
  213. alugado2 = 1;
  214. }
  215. }
  216. }
  217. if (alugado2 == 1) {
  218. response = "Livro indisponível.";
  219. }
  220.  
  221. //procura pra ver se o livro existe
  222. if (livros[livroSelecionado] == null) {
  223. response = "Livro inexistente.";
  224. }
  225.  
  226. if (response.equals("")) {//o livro existe e não está alugado
  227. //logica para alocação de livros
  228.  
  229. //procura próximo espaço vazio na tabela de aluguel
  230. for (int i = 0; i < aluguel.length; i++) {
  231. if (aluguel[i][0] == null) {
  232. aluguel[i][0] = livroSelecionado;//livro
  233. aluguel[i][1] = logado;//pessoa logada
  234. totalLivrosAlugados++;
  235. System.out.println("Seu aluguel foi feito com sucesso. (Índice " + i + ")");
  236. i = 100;
  237. }
  238. }
  239.  
  240. System.out.println("");
  241. System.out.println("Lista de aluguéis: ");
  242. for (int i = 0; i < aluguel.length; i++) {
  243. if (aluguel[i][0] != null) {
  244. String nome = usuarios[aluguel[i][1]];
  245. String livro = livros[aluguel[i][0]];
  246. System.out.println(livro + " - " + nome + " (" + aluguel[i][0] + " - " + aluguel[i][1] + ")");
  247. }
  248. }
  249. System.out.println("");
  250. } else {
  251. System.out.println(response);
  252. }
  253. } else {
  254. System.out.println("Nenhum livro disponível.");
  255. }
  256. break;
  257.  
  258. case 6:
  259. //devolver
  260. System.out.println("Qual livro você deseja devolver?");
  261. //quais livros o usuario logado tem alugado?
  262. for (int i = 0; i < totalAlugueis; i++) {
  263. if (aluguel[i][1] != null) {
  264. if (aluguel[i][1] == logado) {
  265. System.out.println(aluguel[i][0] + " - " + livros[aluguel[i][0]]);
  266. }
  267. }
  268. }
  269.  
  270. int livroSelecionado = sc.nextInt();
  271. //procura o aluguel do livro selecionado e apaga
  272. for (int i = 0; i < totalAlugueis; i++) {
  273. if (aluguel[i][0] != null) {
  274. if (aluguel[i][0] == livroSelecionado && aluguel[i][1] == logado) {
  275. aluguel[i][0] = null;
  276. aluguel[i][1] = null;
  277. }
  278. }
  279. }
  280.  
  281. //procura se o livro estava reservado e cria outro aluguel pra quem reservou
  282. for (int i = 0; i < totalReservados; i++) {
  283. if (reservados[i][0] != null) {
  284. if (reservados[i][0].equals(livroSelecionado)) {
  285. for (int j = 0; j < aluguel.length; j++) {
  286. if (aluguel[j][0] == null) {
  287. aluguel[j][0] = livroSelecionado;//livro
  288. aluguel[j][1] = reservados[i][1];//pessoa logada
  289. totalLivrosAlugados++;
  290. j = 100;
  291. }
  292. }
  293.  
  294. reservados[i][0] = null;
  295. reservados[i][1] = null;
  296. }
  297. }
  298. }
  299.  
  300. totalLivrosAlugados--;
  301. System.out.println("O livro foi devolvido!");
  302.  
  303. break;
  304. case 9:
  305. logado = -1;
  306. break;
  307. default:
  308. System.out.println("Opção inválida.");
  309. break;
  310. }
  311.  
  312. } while (logado != -1);
  313.  
  314. }
  315.  
  316. } else if (opcao == 2) {
  317. int subOpcao;
  318. do {
  319. System.out.println("1 - Novo Usuário | 2 - Remover Usuário | 3 - Listar Usuarios | 9 - Sair");
  320.  
  321. subOpcao = sc.nextInt();
  322.  
  323. if (subOpcao == 1) {
  324. //procura o proximo espaço vazio no array de usuarios e cria o novo usuario
  325. if (totalUsuarios < 10) {
  326. String nomeUsuarioNovo;
  327. System.out.println("Insira o nome do novo usuário");
  328.  
  329. sc.nextLine();
  330. nomeUsuarioNovo = sc.nextLine();
  331.  
  332. for (int i = 0; i < usuarios.length; i++) {
  333. if (usuarios[i] == null) {
  334. usuarios[i] = nomeUsuarioNovo;
  335. System.out.println("O usuário " + nomeUsuarioNovo + " foi criado no índice: " + i);
  336. totalUsuarios++;
  337. i = 11;
  338. }
  339. }
  340. } else {
  341. System.out.println("A lista de usuários está cheia! Por favor apague um usuário para criar outro!");
  342. }
  343. }
  344.  
  345. if (subOpcao == 2) {
  346.  
  347. System.out.println("Os usuários cadastrados são:");
  348. System.out.println("");
  349. for (int i = 0; i < usuarios.length; i++) {
  350. if (usuarios[i] != null) {
  351. System.out.println(i + " - " + usuarios[i]);
  352. }
  353. }
  354. System.out.println("");
  355. System.out.println("Qual você deseja apagar?");
  356. int apagarUsuario = sc.nextInt();
  357. sc.nextLine();
  358.  
  359. //procura se o usuário tem pendências(alugueis feitos, reservas feitas)
  360. //e não deixa apagar se tiver
  361. int temAluguel = 0;
  362. int temReserva = 0;
  363.  
  364. for (int i = 0; i < totalAlugueis; i++) {
  365. if (aluguel[i][1] != null) {
  366. if (aluguel[i][1] == apagarUsuario) {
  367. temAluguel = 1;
  368. }
  369. }
  370. }
  371.  
  372. for (int i = 0; i < 10; i++) {
  373. //reserva
  374. }
  375.  
  376. if (temAluguel == 0) { // && temReserva == 0
  377. String nomeUsuario;
  378. nomeUsuario = usuarios[apagarUsuario];
  379. usuarios[apagarUsuario] = null;
  380. System.out.println("Usuario " + nomeUsuario + " foi apagado.");
  381. } else {
  382. System.out.println("O usuário tem pendências (alugueis, reservas) e precisa resolvê-las antes de ser apagado.");
  383. }
  384.  
  385. }
  386.  
  387. if (subOpcao == 3) {
  388. for (int i = 0; i < usuarios.length; i++) {
  389. if (usuarios[i] != null) {
  390. System.out.println(i + " - " + usuarios[i]);
  391. }
  392. }
  393.  
  394. }
  395.  
  396. } while (subOpcao != 9);
  397.  
  398. } else {
  399. System.out.println("Opção inválida");
  400. }
  401. } while (opcao != 0);
  402. }
  403.  
  404. public static void buscarLivros(String buscarLivro) {
  405. boolean achou = false;
  406. System.out.println("Digite o nome do livro que você procura:");
  407. for (int i = 0; i < totalLivros; i++) {
  408. if (buscarLivro.equals(livros[i])) {
  409. System.out.println("O livro " + livros[i] + " está no índice " + i);
  410. achou = true;
  411. }
  412. }
  413. if (!achou) {
  414. System.out.println("Livro não encontrado.");
  415. }
  416. }
  417.  
  418. public static void listarLivros() {
  419. for (int i = 0; i < totalLivros; i++) {
  420. if (livros[i] != null) {
  421. System.out.println((i + 1) + " - " + livros[i]);
  422. }
  423. }
  424. }
  425. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement