Documente Academic
Documente Profesional
Documente Cultură
1
Cuprins
Capitolul 1. Introducere
Capitolul 4. Concluzii
2
Capitolul 1. Introducere
1.1.Definire problema
Problema identificata este una destul de prezenta in zilele noastre si anume, atunci cand mai
multi prieteni ies fie la un film, fie la un restaurant sau la o cafenea este foarte comod sa
plateasca o singura persoana intreaga nota, apoi restul sa ii dea persoanei respective
contravaloarea consumatiei.
Cum ne indreptam usor, usor intr-o era condusa de tehnologie, majoritatea tinerilor nu prea mai
umbla cu bani cash la ei, preferand sa achite cu cardul tot mai des.
1.2.Definire obiective
Traind intr-o lume a vitezei, in care timpul este esential, s-ar putea sa uitam ca la un moment dat
am platit nota integral si nu ne-am recuperat banii asadar obiectivul principal al aplicatiei este de
a retine sumele pe care le ai de colectat, precum si persoanele care iti datoreaza aceste sume.
Totodata anumite plati s-ar putea sa fie efectuate in alta moneda, diferita fata de moneda
nationala RON, astfel ca aplicatia ar trebui sa aiba o parte in care arata user-ului ratele de schimb
valutar pentru ca acesta sa fie la curent. De asemenea sa faciliteaze si conversia in EURO, ori
alte monede.
Aplicatia ar trebui sa fie folosita de fiecare data cand user-ul are de colectat sume de la alte
persoane.
3
Capitolul 2. Descriere solutie
In prima faza user-ul trebuie sa se logheze in aplicatie. Daca este pentru prima data cand doreste
sa utilizeze aplicatia, mai intai trebuie sa isi creeze cont; daca are deja cont dupa efectuarea
login-ului, va aparea o interfata ce contine mai multe optiuni precum:
Exchange rates
EURO conversion
Payments
Pie Chart
Maps
4
2.2.Functionalitati
Exchange rates -> ajuta user-ul sa fie la curent cu ratele de schimb valutare, daca
acesta va dori sa faca conversia in alta moneda; ia ratele de pe BNR.
EURO conversion -> ajuta user-ul sa converteasca in EURO suma pe care a paltit-o
pentru a stii exact cat are de recuperate mai apoi.
Payments -> ajuta user-ul sa stie in orice moment cat are de colectat.
Exchange rates -> preia un fisier xml de pe BNR si il parseaza pentru a-l putea afisa
intr-un ListView
5
@Override
protected List<String> doInBackground(String... params) {
List<String> resultList=new ArrayList<String>();
try{
URL url= new URL(params[0]);
HttpURLConnection con=(HttpURLConnection) url.openConnection();
InputStream input = con.getInputStream();
InputStreamReader reader = new InputStreamReader(input);
EURO conversion -> este format din 4 EditText-uri si 2 butoane. In primul EditText
acolo unde este pus hint ,,suma’’ trebuie introdusa suma pe care user-ul doreste sa o
converteasca. In al doilea EditText, cel care are hint ,,rata’’ trebuie introdusa suma
ratei de schimb (vazuta de user cu ajutorul butonului Exchange rates). In momentul in
care user-ul apasa pe butonul Send, suma din primul EditText se pastreaza intr-un
fisier txt denumit chiar ,,fisier.txt’’ cu ajutorul metodei salvareText. Apoi prin metoda
,,metodaCitesteFisier’’ apelata prin apasarea butonului Display se citeste suma
retinuta in fisier. Dupa citire suma se converteste cu rata de schimb. Apoi in final
suma convertita este afisata in ultimul EditText
6
protected void salvareText(View v)
{
try {
OutputStreamWriter fis=new OutputStreamWriter(
openFileOutput("fisier.txt", Context.MODE_PRIVATE));
fis.write(((EditText)findViewById(R.id.edtextinput)).getText().toString());
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
7
protected void metodaCitesteFisier(View v)
{
InputStreamReader r=null;
try {
r=new InputStreamReader(openFileInput("fisier.txt"));
BufferedReader reader =new BufferedReader(r);
String linie=null;
StringBuilder builder=new StringBuilder();
while((linie=reader.readLine())!=null)
{
builder.append(linie);
}
//Toast.makeText(getApplicationContext(),builder.toString(),Toast.LENGTH_SHORT).sh
ow();
//preiau valoarea celui de-al doilea edit text -> adica valoarea ratei
EditText editTextin=(EditText)findViewById(R.id.edtextinput1);
// o parsez in float
String rate=editTextin.getText().toString();
float Nrate=Float.valueOf(rate);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
8
Payments -> dupa apasarea butonului Payments din interfata principala, se va
deschide o noua activitate unde user-ul poate introduce informatii despre: locul unde
s-a efectuat plata, modalitatea de plata, prietenii cu care a fost, suma achitata, suma pe
care o avea el de plata si moneda in care s-a efectuat plata. Apoi la apasarea butonului
Wallet toate aceste date vor fi introduse intr-o baza de date SQLite. Informatiile din
EditText-uri sunt preluate in variabile de tipul String. Apoi este creat un obiect de
tipul InfoPayments ale carui atribuite vor fi completate cu informatiile din variabilele
de mai sus prin constructorul clasei. Apoi cu ajutorul Adapter-ului unde au fost create
metodele de inserare, select si delete se va realiza inserarea obiectului in baza de date.
Pentru a putea crea baza de date am avut nevoie de 3 clase DBAdapter, DBConstants
si DatabaseHelper .
DatabaseHelper retine metode ce se ocupa cu DDL, adica de create si drop table.
DBAdapter contine metode ce se ocupa cu DML, adica insert, select si delete.
DBConstants retine campurile ce vor deveni coloane.
9
DatabaseHelper
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("drop table if exists "+DBConstants.table1);
db.execSQL("drop table if exists "+DBConstants.table2);
onCreate(db);
DBConstants
10
DBAdapter
DBConstants.coloanaTotalSuma,DBConstants.coloanaSumaIndiv},null,null,null,null,nul
l);
return lista;
11
}while (c.moveToNext());
return lista;
Dupa ce a fost apasat butonul Wallet si informatiile ajung in baza de date-> apare o noua
activitate ce are un ListView in spate unde apar informatii despre sumele pe care user-ul le are de
colectat.
12
Daca user-ul a incasat banii, poate colecta apasand pe linia corespunzatoare sumei colectate-> se
va apela metoda de delete din DBAdapter + un refresh al listei afisate in ListView pentru arata
situatia exacta a datelor retinute in baza de date.
13
Capitolul 4. Concluzii
Cea mai buna solutie tehnica pentru a implementa aplicatia ar fi ca aceasta sa fie conectata la o
baza de date pe server, de asemenea sa existe un grup creat cu mai multi useri (prieteni), iar in
momentul in care unul dintre useri colecteaza suma sa i se scada celuilalt user datoria.
14