Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
ahoj prosim moc o pomoc, mam zadanou semestralku z javy, ale sem uplne ztracena, nevim jak zacit, tohle je moje zadani:
Burza cenných papírů
Systém bude fungovat jako jednoduchá burza cenných papírů.
Případy užití:
*
Zobrazení portfolia
*
Nákup akcií
*
Prodej akcií
*
Zobrazení aktivních příkazů
*
Zobrazení provedených obchodů
*
Výběr burzy
*
Přehled burzovního indexu
*
Objemy obchodů
*
Největší změny kurzů
*
Prodejní příkaz
*Zobrazení akcií
Systém zobrazí tabulku s informacemi o akciích, které lze obchodovat na burze. Pro každou akcii jsou zobrazeny tyto informace: identifikace akcie, aktuální cena, množství zobchodované při posledním obchodu a datum a čas posledního obchodu.
Zobrazení portfolia
Systém zobrazí tabulku s informacemi o akciích uživatele. Pro každou akcii jsou zobrazeny tyto informace: identifikace akcie, množství a nákupní cena.
*Nákup akcií
Uživatel vybere, že chce nakoupit akcie, zadá identifikaci akcie, množství, limitní cenu a stiskne tlačítko. Po stisku tlačítka systém zkontroluje, zda je příkaz validní a buď vloží příkaz do obchodního systému nebo jej odmítne.
Prodej akcií
*Prodej akcii
Uživatel vybere, že chce prodat akcie, zadá identifikaci akcie, množství, limitní cenu a stiskne tlačítko. Po stisku tlačítka systém zkontroluje, zda je příkaz validní a buď vloží příkaz do obchodního systému nebo jej odmítne.
Zobrazení aktivních příkazů
*Zobrazení aktivních příkazů
Systém zobrazí seznam aktivních příkazů daného zákazníka. Aktivní příkazy jsou příkazy, které dosud nebyly zcela uspokojeny. Pokud byl příkaz uspokojen částečně, zobrazí se příkaz, který odpovídá dosud neuspokojené části.
Zobrazení provedených obchodů
*Zobrazení provedených obchodů
Systém zobrazí seznam provedených obchodů daného zákazníka.
*Výběr burzy
Systém zobrazí tabulku s přehledem, na kterých burzách lze v současnosti obchodovat a uživatel stisknutím tlačítka u vybrané burzy vstoupí na burzu.
*Přehled burzovního indexu
Systém opět zobrazí tabulku s přehledem burz, na kterých lze obchodovat a u každé burzy bude tlačítko po jehož stisknutí se grafem zobrazí ukazatel vývoje trhu za poslední rok v jednotlivých měsících.
*Objemy obchodů
Tabulka, ve které budou tři sloupce. V prvním sloupci bude o jaký trh se jedná (hlavní, volný), druhý sloupec obsahuje objemy obchodů s akciemy v miliardách Kč, EUR a USD a třetí sloupec obsahuje objemy ochodů s dluhopisy.
*Největší změny kurzů
Tabulka u které bude možno překliknout zobrazení mezi růsty a poklesy kurzů. Tabulka má 3 sloupce - název společnosti, změna kurzu v % a objem změny kurzu v tisících Kč.
*Prodejní příkaz
U každé akcie, kterou bude uživatel vlastnit bude tlačítko, po jehož stistknutí se uživateli zobrazí tabulka s prázdným polem, do kterého se bude psát hodnota, pod kterou akcie nesmí jít a tlačítka pro potvrzení či zrušení tohoto příkazu. Pokud hodnota akcie klesne pod tuto částku, systém automaticky tuto akcii nabídne k prodeji.
Architektura
Systém se skládá ze dvou částí: klient a server. Klient je aplikace s grafickým uživatelským rozhraním a slouží obchodníkovi s cennými papíry pro obchodování na burze. Server je aplikace, která přijímá příkazy od obchodníků, provádí obchody a o provedených obchodech informuje obchodníky. Všechny informace ukládá server do relační databáze. Předpokládá se, že k serveru bude přistupovat více klientů současně.
Server provede obchod, pokud se setká nabídka s poptávkou. Např. pokud zákazník A chce prodat 100 akcií ČEZ za limitní cenu 800 Kč a zákazník B chce koupit 50 akcií ČEZ za limitní cenu 900 Kč, systém zjistí, že lze provést obchod, určí cenu obchodu jako aritmetický průměr limitních cen nabídky a poptávky a provede tento obchod: zákazník A prodá 50 akcií ČEZ a zákazník B nakoupí 50 akcií ČEZ za cenu 850 Kč. Systém provede obchod ihned po přijetí příkazu, který obchod umožňuje a bezprostředně po provedení obchodu informuje zákazníky. Cena posledního obchodu se stává aktuální cenou akcie.
Implementace
0. fáze: návrh rozhraní a tříd.
1. fáze: klienti a server mají jasně definovaná rozhraní, ale běží v jedné JVM. Data se neukládájí do relační databáze, ale zůstávají v paměti. Server není připraven na souběžný přístup.
2. fáze: klient a server běží v různých JVM a komunikují přes TCP. Data zůstávají stále v paměti.
3. fáze: server podporuje souběžný přístup a ukládá data do relační databáze.
nevim vazne vubec, jak zacit, jestli si mam nejdriv udelat nejaky gui a jestli jo tak jak, jestli to bude vic tech okynek nebo jestli se to vsechno bude delat do jednoho, prosiim potrebuju pomoc, alespon nejaky ten prvni krok poradit
Offline
↑ case_fcs:
tak já bych začal gui
ty jednotlivé akcie by se dali vpisovat do JTable...
a nebo si pro to udělat jinou tabulku, JTable je podle mého názoru to nejlepší
ale se zbytkem ti asi moc nepomohu, protože si danu problematiku nedokáži moc představit
Offline
↑ case_fcs:
dejme tomu že to tvé tlačítko se bude jmenovat tlacitko1 (v programu si to pojmenuj dle funkce)
tak napíšeš
tlacitko1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
// co tam chceš udělat
// ve tvém případě něco jako
frame2.setVisible(true);
}
});jinak nezapomeň importovat
import java.awt.event.ActionListener; import java.awt.event.ActionEvent;
ale to se tedy divím že vám toto neřekli ve škole a pak to po vás chtějí:-o
P.S. doufám že jsem to napsal správně beztak máš nějaké kloudne IDE na to a napovídá ti sintakce, tak by to snadn eměl být problém... ale myslím že to takto je správně, ale jsem jen středoškolák tedy se mýlit mohu:)
navíc toto jsem většinou nechváal na IDE aby mi doplnilo co jsem potřeboval... jakože zbytek textů, protože jsem věděl jaké listenery budu potřebovat atd.
ale to je jedno...
Offline
mam jeden JFrame Form s názvem Klient a druhý JFrame Form s názvem Portfolio ve formu klient mam tlačítko s názvem button1, po stisknutí tohohle tlačítka ve formu klient se mi zobrazí form Portfolio, takže kam mam napsat ten tvůj kousek kodu? k tomu formu klient někam ke tlačítku button1 nebo někam do formu portfolio? nějak mi to nikam nejde napsat, všude mi to píše chybu
Offline
↑ case_fcs:
a mohl by jsi vložit sem kousek toho svého kódu?
jinak já bych to napsal cca takto
void vytvorOkenka(){
JFrame kliet=new JFrame();
JFrame portfolio=new JFrame();
// pak nějaké přidávání do těchto oken
JButton prepinac=new JButton("klient -> portfolio");
prepinac.addActionListener(new java.awt.ActionListener(){
@Override
public void actionPerformed(java.awt.ActionEvent e) {
klient.setVisible(false);
portfolio.setVisible(true);
}
});
klient.add(prepinac);
}a toto by už určitě mělo fungovat....
Offline
tak v pohode je to takto:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Portfolio().setVisible(true);
}
});
}
presto vam vsem moc dekuji za prispevky a pomoc a jeste bych tohle tema nezavirala, myslim, ze pridou jeste dalsi a mnohem vetsi problemy, neni to se mnou jednoduchy :)
Offline
↑ case_fcs:
taky možnost jak to uděkat:)
GL
Offline
tak ted mam tak trochu zas problemek, po vytvoreni framu Klient se mi v kodu udelal main vypada takto:
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Klient().setVisible(true);
}
});
}
tam se mi vytvori ten frame Klient a nastavi se aby byl videt, takze po spusteni vidim okno, tam mam tlacitko, na ktery kdyz teda kliknu, tak se mi otevre ten dalsi frame (ted je pod nazvem Limit), kod u toho tlacitka je takovyhle:
private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Limit().setVisible(true);
}
});
}
no a ja bych jeste chtela aby se mi pri otevreni toho framu Limit zavrelo okno Klient, jenze nemuzu k tomu tlacitku napsat jenom:
new Klient().setVisible(false); tim vytvarim novy ten objekt, takze mi tam ten starej frame Klient zustane, ale nevim jak to udelat, mam si to pry do neceho ulozit toho klienta, jenze nevim jak a kam, kdyz si to ulozim nejak globalne tak mi to nechce zase vyuzit ten main.... prosim nevite nekdo jak na to? doufam ze sem to popsala aspon nejak na pochopeni
myslela sem nekam naspat treba Klient a = new Klient(); a pak jen do tech metod nebo tak psat a.setVisible(true) a tak, jenze to mi prave potom nejde v tom mainu
Offline
Zkus se poradit na adekvatnim foru, treba na www.builder.cz v sekci Java. Jinak preju uprimnou soustrast, timto stylem deadline nestihnes.
Offline
↑ ondrouchd:
ta to napiš cca takto
public static void main(String args[]) {
Klient k=new Klient();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
k.setVisible(true);
}
});
}nebo
tam kde máš tu třídu dej
static Klient k=new Klient();
pak ti to už fungovat bude:)
Offline