Guest User

Untitled

a guest
Feb 9th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.34 KB | None | 0 0
  1. import java.io.*;
  2. import java.net.*;
  3. import java.util.*;
  4. import java.sql.*;
  5.  
  6. public class Klient2 {
  7.  
  8. static Scanner sc = new Scanner(System.in);
  9.  
  10. public static String logowanie(Socket s) throws IOException{
  11. DataInputStream din = new DataInputStream(s.getInputStream());
  12. PrintWriter out = null;
  13. out = new PrintWriter(s.getOutputStream(), true);
  14.  
  15. String login = "", haslo = "", wynik = "";
  16.  
  17. do{
  18. System.out.print("Wprowadź login: ");
  19. login = sc.next();
  20. out.println(login);
  21. System.out.print("Wprowadź haslo: ");
  22. haslo = sc.next();
  23. out.println(haslo);
  24.  
  25. wynik = din.readUTF();
  26. /*if(wynik.equals("not")){
  27. System.out.println("\n- Błędny login lub hasło! -");
  28. }*/
  29. if(wynik.equals("notl")){
  30. System.out.println("\n- Błędny login -");}
  31. if(wynik.equals("noth")){
  32. System.out.println("\n- Błędne hasło -");}
  33. }while(!wynik.equals("ok"));
  34.  
  35. return login;
  36. }
  37.  
  38. public static void menuLogowanie(String prawa){
  39. switch (prawa) {
  40. case "Admin":
  41. System.out.println("Pomyślnie zalogowano na konto administratora\n");
  42. break;
  43. case "Pracownik":
  44. System.out.println("Pomyślnie zalogowano na konto pracownika\n");
  45. break;
  46. case "Uzytkownik":
  47. System.out.println("Pomyślnie zalogowano na konto użytkownika\n");
  48. break;
  49. default:
  50. System.out.println("- Wystąpił jakiś błąd! -");
  51. break;
  52. }
  53. }
  54.  
  55. public static void menuAdministrator() {
  56. System.out.println("1. Dodaj pracownika"); //ok
  57. System.out.println("2. Dodaj użytkownika"); //ok
  58. System.out.println("3. Usuń pracownika"); //ok
  59. System.out.println("4. Usuń użytkownika"); //ok
  60. System.out.println("dalsze funkcje...");
  61. System.out.println("0. Wyloguj");
  62. }
  63.  
  64. public static void menuPracownik(){
  65. System.out.println("1. Dodaj użytkownika"); //ok
  66. System.out.println("2. Edytuj dane użytkownika"); //ok
  67. System.out.println("3. Usuń użytkownika"); //ok
  68. System.out.println("4. Wpłata gotówki"); //ok
  69. System.out.println("5. Wypłata gotówki"); //ok
  70. System.out.println("6. Sprawdzenie stanu konta"); //ok
  71. System.out.println("7. Przydziel pożyczkę");
  72. System.out.println("8. Zmień hasło"); //ok
  73. System.out.println("0. Wyloguj");
  74. }
  75.  
  76. public static void menuUzytkownik(){
  77. System.out.println("1. Wykonaj przelew");
  78. System.out.println("2. Zmień hasło"); //ok
  79. System.out.println("3. Sprawdzenie stanu konta"); //ok
  80. System.out.println("0. Wyloguj");
  81. }
  82.  
  83. public static String panelBlokada(String prawa, int blokada){
  84. int dzialanie = 0;
  85. String akcja = "";
  86.  
  87. System.out.print("Co chcesz zrobić? ");
  88. dzialanie = sc.nextInt();
  89. if(dzialanie >= 0 && dzialanie <= blokada){
  90. akcja = dzialanie + "";
  91. }
  92. else{
  93. System.out.println("\n- Błędne działanie! -\n");
  94. }
  95. return akcja;
  96. }
  97.  
  98. public static void funkcjeAdmin(Socket s, String akcja) throws IOException{
  99. String anulowanie = "";
  100. switch(akcja){
  101. case "1":
  102. stworzKonto(s, "prac");
  103. System.out.println("Dodano pracownika\n");
  104. break;
  105. case "2":
  106. stworzKonto(s, "uzyt");
  107. System.out.println("Dodano użytkownika\n");
  108. break;
  109. case "3":
  110. anulowanie = usunKonto(s, "prac");
  111. if(!anulowanie.equals("not")){
  112. System.out.println("Anulowano usuwanie\n");
  113. }
  114. break;
  115. case "4":
  116. anulowanie = usunKonto(s, "uzyt");
  117. if(!anulowanie.equals("not")){
  118. System.out.println("Anulowano usuwanie\n");
  119. }
  120. break;
  121. case "0":
  122. break;
  123. }
  124. }
  125.  
  126. public static void funkcjePracownik(Socket s, String akcja, String login) throws IOException, SQLException{
  127. String anulowanie = "", loginU = "";
  128. switch(akcja){
  129. case "1":
  130. stworzKonto(s, "uzyt");
  131. System.out.println("Dodano użytkownika\n");
  132. break;
  133. case "2":
  134. edytujDane(s);
  135. System.out.println("Zmieniono dane\n");
  136. break;
  137. case "3":
  138. anulowanie = usunKonto(s, "uzyt");
  139. if(!anulowanie.equals("not")){
  140. System.out.println("Anulowano usuwanie\n");
  141. }
  142. break;
  143. case "4":
  144. wplataGotowki(s, "wplata");
  145. break;
  146. case "5":
  147. wplataGotowki(s, "wyplata");
  148. break;
  149. case "6":
  150. System.out.print("Wprowadź numer użytkownika: ");
  151. loginU = sc.next();
  152. sprawdzSaldo(s, loginU);
  153. break;
  154. case "7":
  155.  
  156. System.out.println("Cos sie stalo\n");
  157. break;
  158. case "8":
  159. zmienHaslo(s, login);
  160. System.out.println("Cos sie stalo\n");
  161. break;
  162. case "0":
  163. break;
  164. }
  165. }
  166.  
  167. public static void funkcjeUzytkownik(Socket s, String akcja, String login) throws IOException, SQLException{
  168. switch(akcja){
  169. case "1":
  170.  
  171. System.out.println("Cos sie stalo\n");
  172. break;
  173. case "2":
  174. zmienHaslo(s, login);
  175. break;
  176. case "3":
  177. sprawdzSaldo(s, login);
  178. break;
  179. case "0":
  180. break;
  181. }
  182. }
  183.  
  184. public static void stworzKonto(Socket s, String typ) throws IOException{
  185. DataOutputStream dout = new DataOutputStream(s.getOutputStream());
  186.  
  187. Random rand = new Random();
  188. String imie = "", nazwisko = "", peselS = "", loginS = "", nrKonta = "", haslo ="", haslo2="";
  189. int pesel, los = 0, h = 0;
  190.  
  191. System.out.print("Imię: ");
  192. imie = sc.next();
  193. dout.writeUTF(imie);
  194. System.out.print("Nazwisko: ");
  195. nazwisko = sc.next();
  196. dout.writeUTF(nazwisko);
  197. System.out.print("Pesel: ");
  198. peselS = sc.next();
  199. dout.writeUTF(peselS);
  200. do {
  201. System.out.print("Haslo: ");
  202. haslo = sc.next();
  203. System.out.print("Potwierdz haslo: ");
  204. haslo2 = sc.next();
  205. if (haslo.equals(haslo2)) h = 1;
  206. else System.out.print("Hasla nie zgadzaja sie");
  207. } while (h != 1);
  208. dout.writeUTF(haslo);
  209. if(typ.equals("prac")){
  210. los = rand.nextInt(11)+10;
  211. loginS = los +"";
  212. }
  213. else if(typ.equals("uzyt")){
  214. los = rand.nextInt(61)+30;
  215. loginS = los +"";
  216. }
  217. los = rand.nextInt(900000)+100000;
  218. loginS = loginS + los;
  219. dout.writeUTF(loginS);
  220.  
  221. los = rand.nextInt(9)+1;
  222. nrKonta = nrKonta + los;
  223. for(int i=0; i<13; i++){
  224. los = rand.nextInt(10);
  225. nrKonta = nrKonta + los;
  226. }
  227. dout.writeUTF(nrKonta);
  228. }
  229.  
  230. public static String usunKonto(Socket s, String typ) throws IOException{
  231. DataInputStream din = new DataInputStream(s.getInputStream());
  232. DataOutputStream dout = new DataOutputStream(s.getOutputStream());
  233.  
  234. String loginS = "", wynik;
  235. int login, zgoda = 0;
  236. do{
  237. System.out.print("Numer użytkownika (0 by anulować): ");
  238. login = sc.nextInt();
  239.  
  240. if(typ.equals("prac") && (login >= 10000000 && login <=29999999)){
  241. zgoda = 1;
  242. loginS = login + "";
  243. System.out.println("\nUsunięto pracownika\n");
  244. }
  245. else if(typ.equals("uzyt") && (login >= 30000000 && login <=99999999)){
  246. zgoda = 1;
  247. loginS = login + "";
  248. System.out.println("\nUsunięto użytkownika\n");
  249. }
  250. else if((typ.equals("prac") || typ.equals("uzyt")) && login == 0){
  251. zgoda = 1;
  252. }
  253. else{
  254. zgoda = 0;
  255. System.out.println("- Błędne uprawnienia! -");
  256. }
  257. }while(zgoda != 1);
  258. if(login == 0){
  259. typ = "not";
  260. System.out.println("\n- Anulowano usuwanie! -\n");
  261. dout.writeUTF(typ);
  262. dout.writeUTF(loginS);
  263. }
  264. else{
  265. dout.writeUTF(typ);
  266. dout.writeUTF(loginS);
  267. }
  268.  
  269. wynik = din.readUTF();
  270. if(wynik.equals("not")){
  271. wynik = "not";
  272. System.out.println("- Błędny login! -");
  273. }
  274. else if(wynik.equals("err")){
  275. wynik = "err";
  276. System.out.println("\n- Problem z usunięciem pliku! -");
  277. }
  278.  
  279. return typ;
  280. }
  281.  
  282. public static void zmienHaslo(Socket s, String login) throws IOException{
  283. DataInputStream din = new DataInputStream(s.getInputStream());
  284. DataOutputStream dout = new DataOutputStream(s.getOutputStream());
  285.  
  286. String hasloS = "", hasloN1 = "", hasloN2 = "", wyjscie = "";
  287.  
  288. dout.writeUTF(login);
  289. System.out.print("Wprowadź stare hasło: ");
  290. hasloS = sc.next();
  291. dout.writeUTF(hasloS);
  292.  
  293. wyjscie = din.readUTF();
  294. if(wyjscie.equals("ok")){
  295. System.out.print("Wprowadź nowe hasło: ");
  296. hasloN1 = sc.next();
  297. System.out.print("Powtórz hasło: ");
  298. hasloN2 = sc.next();
  299. if(hasloN1.equals(hasloN2)){
  300. dout.writeUTF(hasloN1);
  301.  
  302. wyjscie = din.readUTF();
  303. if(wyjscie.equals("ok")){
  304. System.out.println("\nZmieniono hasło");
  305. }
  306. else if(wyjscie.equals("err")){
  307. System.out.println("\n- Wystąpił błąd przy zmienianiu hasła! -");
  308. }
  309. }
  310. else{
  311. System.out.print("\nHasła się różnią");
  312. }
  313. }
  314. else if(wyjscie.equals("not")){
  315. System.out.println("\nBłędne hasło");
  316. }
  317. else if(wyjscie.equals("err")){
  318. System.out.println("\n- Wystąpił błąd przy sprawdzaniu hasła! -");
  319. }
  320. }
  321.  
  322. public static void edytujDane(Socket s) throws IOException{ //tutajjjjjjjjjjjjjjjjjjjjj
  323. DataInputStream din = new DataInputStream(s.getInputStream());
  324. DataOutputStream dout = new DataOutputStream(s.getOutputStream());
  325.  
  326. String login = "", potwierdzenie = "", imie = "", nazwisko = "", peselS = "";
  327. int pesel = 0;
  328.  
  329. System.out.print("Wprowadź numer użytkownika: ");
  330. login = sc.next();
  331. dout.writeUTF(login);
  332.  
  333. potwierdzenie = din.readUTF();
  334. if(potwierdzenie.equals("ok")){
  335. System.out.println("Wprowadź nowe dane");
  336. System.out.print("Nazwisko: ");
  337. nazwisko = sc.next();
  338. System.out.print("Imię: ");
  339. imie = sc.next();
  340. System.out.print("Pesel: ");
  341. pesel = sc.nextInt();
  342. peselS = pesel + "";
  343. dout.writeUTF(nazwisko);
  344. dout.writeUTF(imie);
  345. dout.writeUTF(peselS);
  346. }
  347. else if(potwierdzenie.equals("not")){
  348. System.out.println("\nBrak użytkownika w bazie");
  349. }
  350. }
  351.  
  352. public static void wplataGotowki(Socket s, String akcja) throws IOException{
  353. DataInputStream din = new DataInputStream(s.getInputStream());
  354. DataOutputStream dout = new DataOutputStream(s.getOutputStream());
  355.  
  356. String login = "", potwierdzenie = "", kontoS = "", wartoscS = "";
  357. int wartosc, konto, wyjscie = 0;
  358.  
  359. System.out.print("Wprowadź numer użytkownika: ");
  360. login = sc.next();
  361. dout.writeUTF(login);
  362. potwierdzenie = din.readUTF();
  363.  
  364. if(potwierdzenie.equals("ok")){
  365. if(akcja.equals("wplata")){
  366. System.out.print("Wprowadź wartość wpłacanej gotówki: ");
  367. wartosc = sc.nextInt();
  368. wartoscS = wartosc + "";
  369. }
  370. else if(akcja.equals("wyplata")){
  371. System.out.print("Wprowadź wartość wypłacanej gotówki: ");
  372. wartosc = sc.nextInt();
  373. wartoscS = wartosc + "";
  374. }
  375. do{
  376. if(akcja.equals("wplata")){
  377. System.out.println("Na które konto wpłacić? \n1. Rozliczeniowe\n2. Oszczędnościowe");
  378. System.out.print("Wpłata na: ");
  379. }
  380. else if(akcja.equals("wyplata")){
  381. System.out.println("Z którego konta wypłacić? \n1. Rozliczeniowe\n2. Oszczędnościowe");
  382. System.out.print("Wypłata z: ");
  383. }
  384. konto = sc.nextInt();
  385. if(konto == 1 || konto == 2){
  386. wyjscie = 1;
  387. }
  388. else{
  389. System.out.println("Błędna opcja\n");
  390. }
  391. }while(wyjscie == 0);
  392. kontoS = konto + "";
  393. if(akcja.equals("wplata")){
  394. System.out.print("Czy na pewno dokonać wpłaty? (TAK/NIE) ");
  395. }
  396. else if(akcja.equals("wyplata")){
  397. System.out.print("Czy na pewno dokonać wypłaty? (TAK/NIE) ");
  398. }
  399. potwierdzenie = sc.next();
  400.  
  401. dout.writeUTF(potwierdzenie);
  402.  
  403. if(potwierdzenie.equals("TAK")){
  404. dout.writeUTF(akcja);
  405. dout.writeUTF(wartoscS);
  406. dout.writeUTF(kontoS);
  407. if(akcja.equals("wplata")){
  408. System.out.print("\nDokonano wpłaty");
  409. }
  410. else if(akcja.equals("wyplata")){
  411. System.out.print("\nDokonano wypłaty");
  412. }
  413. }
  414. else if(potwierdzenie.equals("NIE")){
  415. if(akcja.equals("wplata")){
  416. System.out.print("\nAnulowano wpłatę\n\n");
  417. }
  418. else if(akcja.equals("wyplata")){
  419. System.out.print("\nAnulowano wypłatę\n\n");
  420. }
  421. }
  422. }
  423. else if(potwierdzenie.equals("not")){
  424. System.out.print("\nBrak użytkownika w bazie\n\n");
  425. }
  426. }
  427.  
  428. public static void sprawdzSaldo(Socket s, String login) throws IOException, SQLException{
  429. DataInputStream din = new DataInputStream(s.getInputStream());
  430. DataOutputStream dout = new DataOutputStream(s.getOutputStream());
  431.  
  432. dout.writeUTF(login);
  433.  
  434. System.out.println("Konto rozliczeniowe: " + din.readUTF());
  435. System.out.println("Konto oszczędnościowe: " + din.readUTF());
  436. }
  437.  
  438. public static void main(String args[]) throws IOException, SQLException {
  439. Socket s = new Socket("127.0.0.1",8050);
  440. /*try {
  441. Class.forName("oracle.jdbc.driver.OracleDriver");
  442. } catch (ClassNotFoundException e) {
  443. e.printStackTrace();
  444. }
  445. try {
  446. Connection c = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/xe", "hr", "hr");
  447. } catch (SQLException e) {
  448. e.printStackTrace();
  449. }*/
  450.  
  451. DataInputStream din = new DataInputStream(s.getInputStream());
  452. DataOutputStream dout = new DataOutputStream(s.getOutputStream());
  453.  
  454. String start, prawa, akcja = "", login;
  455. int wyjscie = 0;
  456.  
  457. do{
  458. login = logowanie(s);
  459. prawa = din.readUTF();
  460. menuLogowanie(prawa);
  461.  
  462. do{
  463. switch (prawa) {
  464. case "Admin":
  465. menuAdministrator();
  466. do{
  467. wyjscie = 0;
  468. akcja = panelBlokada(prawa, 4); //zabezpieczenie funkcji
  469. if(!akcja.equals("")){
  470. wyjscie = 1;
  471. }
  472. }while(wyjscie != 1);
  473. dout.writeUTF(akcja);
  474. funkcjeAdmin(s, akcja);
  475. break;
  476.  
  477. case "Pracownik":
  478. menuPracownik();
  479. do{
  480. wyjscie = 0;
  481. akcja = panelBlokada(prawa, 8); //zabezpieczenie funkcji
  482. if(!akcja.equals("")){
  483. wyjscie = 1;
  484. }
  485. }while(wyjscie != 1);
  486. dout.writeUTF(akcja);
  487. funkcjePracownik(s, akcja, login);
  488. break;
  489.  
  490. case "Uzytkownik":
  491. menuUzytkownik();
  492. do{
  493. wyjscie = 0;
  494. akcja = panelBlokada(prawa, 3); //zabezpieczenie funkcji
  495. if(!akcja.equals("")){
  496. wyjscie = 1;
  497. }
  498. }while(wyjscie != 1);
  499. dout.writeUTF(akcja);
  500. funkcjeUzytkownik(s, akcja, login);
  501. break;
  502. }
  503. }while(!akcja.equals("0"));
  504. System.out.println("\nPomyślnie wylogowano\n");
  505.  
  506.  
  507. System.out.print("Czy chcesz się zalogować ponownie? (TAK/NIE): ");
  508. start = sc.next();
  509. dout.writeUTF(start);
  510. }while(!start.equals("NIE"));
  511.  
  512. s.close();
  513. sc.close();
  514. }
  515. }
Add Comment
Please, Sign In to add comment