- Vékonyabb lett, jobb kamerát kapott, de az akku maradt a régi: itt a Fold7
- Google Pixel topik
- iPhone topik
- Légies iPhone halvány színei
- Motorola Moto G56 - bátyja árnyékában
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- HMD Skyline - jó szerelés
- Milyen okostelefont vegyek?
- Apple iPhone SE - se vele, se nélküle
- Bővebb Google-támogatást kap sok Garmin óra
Új hozzászólás Aktív témák
-
-
válasz
MrSealRD #2748 üzenetére
Ja, értem. Adatbázist nem érdemes bővíteni - legalábbis gondolom, nem akarsz sémákkal játszani.
Talán megfelelően egyszerű, ha létrehozol egy táblát, amiben a szavazások vannak (Id, név) és egy másikat, amiben pedig a kérdésekre adható válaszok (Id, szavazás Id, válasz). Így annyi választ tehetsz egy kérdéshez, amennyi csak kell. (Persze máshogy is megoldható)
Javaslom, hogy az id az Guid legyen, az intet nem szeretjük a való életben, csak a sulikban erőltetik.
-
MrSealRD
veterán
Na, ez kimaradt. Elvileg ASP.NET 2-ig elég lenne. (ugye szintaxis is aspx, nem razor...)(Próbálok a mentén haladni amit a tantárgy kerete ad)
MVC most nem kell.A felhasználó kezelést sikerült használni. Remek, és valóban elég is.
A szavazás tetszőleges, tehát Pl.
Add meg a szavazás kérdését: Milyen napod volt ma?
Ezután(vagy egy időben) Adj hozzá válaszlehetőségeket:
1.jó
2.rossz
...
x. nemtom
(Ennek a pontos módszerét még nem tudom...De úgy néz ki egy sima szövegmező gomb páros a hozzáadásra és lent egy grid view mutatja a hozzáadottakat.)Most az jelenti a gondot, hogy a megfelelő módon bővítsem az adatbázist. Össze kell kötnöm a user-en keresztül az én szavazásos tábláimmal.
-
válasz
MrSealRD #2746 üzenetére
Milyen ASP.NET? 2, 3, 4? MVC?
A felhasználókezelésre az ASP-ben van megoldás, azt nem muszáj megírni. Erre még elég.
Ha ilyen igen-nem szavazás, akkor adatbázisra meg egy tábla az aktuális szavazásról, amiben a felhasználó Id-ja és a szavazat áll. Egy bool? típus a kódban. Ha null, még nem szavazott, ha meg igen, akkor az érték. Más szerintem nem is kell. A felületen a legegyszerűbb százalékot mutatni.
Ha több opció van, akkor meg egy olyan entitás, amiben minden opció benne van és rádiógomb, ahogy a fórumokon szokott lenni.
-
MrSealRD
veterán
Üdv!
A segítségeteket szeretném kérni.
ASP.NET-ben(Entity Framwork használata) kéne egy oldalt összerakni. Nincs más célja az oldalnak, mint a bejelentkezett felhasználók számára lehetővé teszi, hogy szavazásokat indítsanak illetve szavazzanak. A szavazások opció tetszőleges számúak lehetnek.
Egy adott szavazásnál, egy tetszőlegesen megadott idő intervallumban leadott szavazatokat is meg lehet nézni.Nem kész kódokat várok, hanem:
Koncepciókat - Adatbázisra, felhasználókezelésre...stb
Linkeket vagy személéltető kódokat...Amúgy:
Sulis feladat, és nagyon belekavarodtam, ezért kérnék segítséget.Előre is kösz.
-
Peter Kiss
őstag
válasz
Neil Watts #2744 üzenetére
Nem az értéke lesz egesz_be, hanem a hossza, nagy különbség.
int egesz_be;
if (int.TryParse(textBox1_adatbe.Text, out egesz_be))
{
var r = new Random();
for (int i = 0; i < egesz_be; i++)
{
listBox_adat.Items.Add((char)r.next(65, 90));
}
}
else
{
//hibakezelés :-)
} -
válasz
Peter Kiss #2742 üzenetére
ööö...
Létrehozok egy char[]-t, aminek az értéke lesz az egesz_be.
Tehát ha mondjuk azt mondom, hogy 10 elemet kérek, akkor az egesz_be = lesz 10-zel, tehát akkor ha azt írnám, hogychar[] karakter = new char[egesz_be];
vagy
char[] karakter = new char[10];
az tök mindegy, mivel a kettő egy és ugyanaz, nem?
Szóval most wtf. Rosszul töltöm fel a chart, most már arra is rájöttem, de most akkor hogy töltsem fel?
-
válasz
Peter Kiss #2741 üzenetére
Valóban, bár nem olyan vészes. Én inkább tömöríteni szoktam, ha nem olyan műveletről van szó, ami sok erőforrást köt le. Optimálisabb a TryParse kint.
"TextBox - tb --> tbSomething"
Igen, csak akkor ismerni kell az alkalmazott szabályrendszert. Nem szeretem a hungarian notation-t.
-
Peter Kiss
őstag
válasz
Neil Watts #2740 üzenetére
Létrehozol egy ÜRES char[]-t.
Amit bejársz a ciklusoddal.
Elemet akarsz kivenni belőle, pedig ÜRES.
Ráadásul kivételnél fix indexet használsz, ami nem más, mint a tömb hossza, ami pontosan eggyel magasabb indexet jelent, mint a tömb utolsó elemének indexe. -
Ez a kód hibás, mert túlindexelem a tömböt, még dolgozok rajta
A kód
if (textBox1_adatbe.Text != "")
{
int egesz_be = Convert.ToInt32(textBox1_adatbe.Text);
Random r = new Random();
char[] karakter = new char[egesz_be];
for (int i = 0; i < karakter.Length; i++)
{
char kiir = karakter[egesz_be];
listBox_adat.Items.Add(kiir);
} -
válasz
Neil Watts #2738 üzenetére
Ja, értem, akkor a feladat hülyesége. Ok. szóval a karakterekkel végül is mi a gond?
-
-
válasz
Peter Kiss #2736 üzenetére
Szerintem jó helyen van. Előbb úgysem használom, ott meg úgyis elszáll, ha karaktert kap.
De természetesen érdekel a véleményed, nincs kőbe vésve.
-
válasz
Neil Watts #2734 üzenetére
A randomot még értem, de miért akarod a 10-et karakterként bevinni?
Az egészeknél feleslegesen megírtál egy műveletet fonákul, ami egyébként teljesen egyértelmű
"int[] egesz = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
for (int i = 0; i < egesz.Length; i++)
{
listBox_adat.Items.Add(egesz(i));
}"helyett
for (int i = 1; i < 9; i++)
{
listBox_adat.Items.Add(i);
}bár a te számításodból a 9 továbbra is kimarad. Miért?
Amit feljebb linkeltem kód, pont azt csinálja, hogy randomol annyi számot, amennyit a taxtBoxba írtál. Ugyanez átültethető karakterre is.
-
gyáá...
Szóval a program működése:
Van két groupboxom (Bevitel és kiír).
Bevitelben egy elemszám feliratú label, mellette egy textbox.alatta 3 gomb, rendre:
Egészek, Valósak, Karakterek
Mindegyik gomb randomol egyet attól függően, hogy mekkora az elemszám, annyit írat ki a listboxba.A kíír résznél van öt gomb:
Egészek, Valósak, Karakterek, Szövegek, Töröl
Ezek simán mennek, csak a másik nem. A kiír is működik, csak szerintem nem tömbből, de működik, csak ott a karakteres nem.
MOD: - "int[] egesz = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };" - ez felesleges, az egész számokat a rendszer ismeri és a 10 az nem két karakter, hanem egy szám. hol a 9?
Az előre meghatározott intervallumból dolgozik, azokkal töltöttem fel a tömböt!
Üdv. core2
-
válasz
Peter Kiss #2731 üzenetére
Az if szerintem nem a legjobb TryParse mellé. így nincs hibakezelés.
Egy lehetséges refaktorálás: linkKérdés, hogy kell-e üríteni a listát minden gombnyomáskor. Illetve én a randomnak egy saját metódust csinálnék, úgy még szebb.
core2:
Nem igazán értem ezt a karakteres dolgot. Mit kellene ott csinálni? De amúgy a program célját se értem. Mi a feladat?Másfelől 1-2 tanács:
- alulvonás helyett inkább egybe írd a neveket és CamelCasing-et használj.
- olyan nevet ne használj, hogy "textBox1_adatbe". Ha a kontrol nevét is bele akarod írni, akkor inkább inputText vagy bevitelTextBox vagy ilyenek.
- "namespace _1_vektor" - n ilyet biztosan ne használj. Nagyon csúnya. a Namespace legyen konkrét és globális - valami jól eltalált név.
- "int[] egesz = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };" - ez felesleges, az egész számokat a rendszer ismeri és a 10 az nem két karakter, hanem egy szám. hol a 9?
- ha már nagyon a tömbök felé mész, akkor az a sok tömb kipakolható a metódusból egy-egy field-be is:
private int[] _egesz = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };, de kár vesződni vele, mert ez úgy, ahogy van felesleges. Van egy mindig 9 elemű tömböd és annak veszed a hosszát... -
válasz
Peter Kiss #2731 üzenetére
Az ok, ez így működik is, csak éppen a tömbös problémát kerüli meg...
Nekem a tömb nem kell másra, minthogy van egy textboxom (egyik kommentemben benne van a kép) abba beleírók egy X elemszámot (pl. 10) és kiírja a listboxba az X elemszámnyi véletlenszámot/karaktert.
Ez ezzel a kóddal működik is / tömb nélkül nem.
Karakterre sajnos nem megy.Üdv. core2
-
Peter Kiss
őstag
válasz
Neil Watts #2730 üzenetére
Az egesz tömböt csak a hosszának a lekérésére használod, semmi másra, ezért hülyeség létrehozni is.
-
válasz
Peter Kiss #2723 üzenetére
"Ez gyakorlatilag nincs használva:
int[] egesz = new int[egesz_be];"
De van: [link]
Az elgondolásom remélem jó...
-
Jester01
veterán
válasz
Peter Kiss #2727 üzenetére
Ezt a new sorrendet nem lehet megvalósítani
Értelemszerűen nem arra mondtam, hogy mindig, hanem abban az esetben ha véletlen egyezik a változó típusa a példányosítani kívánt osztállyal.
Ja ha szerinted az interface-k felesleges dolgok, akkor nem szóltam.
-
Peter Kiss
őstag
válasz
Jester01 #2726 üzenetére
Ezt a new sorrendet nem lehet megvalósítani.
Csak egy gyenge példa rá:
IEnumerable<int> t = new[] { 12, 34};
Interface-t példányosítanék?IDictionary-t se írnám ki, hótzicher, mert minek. System.Collections.Generic.Dictionary implementálja az IDictionary-t, és még sok minden mást! Ha kiírom az IDictionary-t, akkor a többit (implementált interface-ek) ezzel el is veszítem.
Tahát, egy változtatás miatt lesz mondjuk int-ből double, de van rá overload-olt metódusom (ugyanaz a metódusnév), ami annyit tesz, hogy problem solved.
-
Jester01
veterán
válasz
Peter Kiss #2725 üzenetére
A new esetén szerintem a microsoft rosszul találta ki. A változónak mindig kellene típust adni, ha gépelési könnyítést akarsz, akkor inkább a new után lehessen elhagyni. Pl. én ilyet engednék: Foo foo = new(arg1, arg2); Ha meg interface-t használsz (ami viszont tényleg ajánlott) akkor meg amúgy is ki kell írni: IDictionary<Foo, Bar> baz = new Dictionary<Foo, Bar>();
A változóknak mindig legyen pontos típusa. Ha utálsz gépelni, akkor használj IDE-t ami megteszi helyetted. A "később bekavarhat" részt úgy értettem, ha később módosítod a kódot a var lehet, hogy már más típust fog jelenteni, amitől rejtett módon megváltozhat a program (pl. más overload hívódik később egy metódusnál).
-
Peter Kiss
őstag
válasz
Jester01 #2724 üzenetére
Pont, hogy nem kavarhat be. Amikor teljesen egyértelmű az, hogy mi lesz a típus (pl. new Akarmi()), akkor miért írnám ki kétszer? Teljesen hülyeség.
Dictionary<NagyonHosszuNevuOsztalyDeKiirom, MegHosszabbNevuDeEztIsKiiromAkkorIs> d = new Dictionary<NagyonHosszuNevuOsztalyDeKiirom, MegHosszabbNevuDeEztIsKiiromAkkorIs>();
-
Jester01
veterán
válasz
Peter Kiss #2723 üzenetére
Használja mindenki a var kulcsszót, ahol csak lehet.
Ez szerintem rossz tanács. A var csak azt jelzi, hogy a programozónak fogalma sincs az adott kifejezés típusáról és/vagy "gépelésre optimalizál". Továbbá későbbi módosításoknál is bekavarhat.
-
Peter Kiss
őstag
válasz
Neil Watts #2719 üzenetére
Kicsi észrevétel:
int[] egesz = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
for (int i = 0; i < egesz.Length; i++)
{
listBox_adat.Items.Add(egesz[i]);
}Helyett:
listBox_adat.Items.AddRange(new object[] { 1, 2, 3, 4, 5, 6, 7, 8 });
Stringekkel egyszerűbb:
listBox_adat.Items.AddRange(new [] { "egy", "kettő", "három", "négy", "öt", "hat", "hét", "nyolc" });
);---------------------------
if (textBox1_adatbe.Text != "")
{ /* ... */ }Helyett:
int egesz_be;
if (!string.IsNullOrEmpty(textBox1_adatbe.Text) && int.TryParse(textBox1_adatbe.Text, out egesz_be))
{ /* ... */ }-----------------------
Ez gyakorlatilag nincs használva:
int[] egesz = new int[egesz_be];
----------------------
Használja mindenki a var kulcsszót, ahol csak lehet.
-
Jhonny06
veterán
válasz
Neil Watts #2721 üzenetére
ASCII kódtáblát ajánlom figyelmedbe, char típusú változóval lehet trükközni, mondjuk számként reprezentálni egy betűt.
Pl.: char c = (char) 100;
Ugyanúgy használhatod a Next függvényt az intervallum megadására, csak konvertálni kell a típusok között.
-
-
martonx
veterán
válasz
Neil Watts #2719 üzenetére
Azt csinálja, amit kell? Mert akkor biztos nem volt helytelen az elgondolásod
-
Nakérem, haladtam a programmal:
Itt a teljes kód (már csak a karakterest kell megoldanom):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _1_vektor
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button_egesz_ki_Click(object sender, EventArgs e)
{
int[] egesz = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
for (int i = 0; i < egesz.Length; i++)
{
listBox_adat.Items.Add(egesz[i]);
}
}
private void button_valos_ki_Click(object sender, EventArgs e)
{
double[] valos = new double[] { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8 };
for (int i = 0; i < valos.Length; i++)
{
listBox_adat.Items.Add(valos[i]);
}
}
private void button_karakter_ki_Click(object sender, EventArgs e)
{
char[] karakter = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h' };
for (int i = 0; i < karakter.Length; i++)
{
listBox_adat.Items.Add(karakter[i]);
}
}
private void button_szovegek_ki_Click(object sender, EventArgs e)
{
string[] szoveg = new string[] { "egy", "kettő", "három", "négy", "öt", "hat", "hét", "nyolc" };
for (int i = 0; i < szoveg.Length; i++)
{
listBox_adat.Items.Add(szoveg[i]);
}
}
private void button_del_Click(object sender, EventArgs e)
{
listBox_adat.Items.Clear();
}
private void button_egesz_be_Click(object sender, EventArgs e)
{
if (textBox1_adatbe.Text != "")
{
int egesz_be = Convert.ToInt32(textBox1_adatbe.Text);
Random r = new Random();
int[] egesz = new int[egesz_be];
for (int i = 0; i < egesz.Length; i++)
{
egesz_be = r.Next(10, 100);
listBox_adat.Items.Add(egesz_be);
}
}
}
private void button_valos_be_Click(object sender, EventArgs e)
{
if (textBox1_adatbe.Text != "")
{
int egesz_be = Convert.ToInt32(textBox1_adatbe.Text);
int also = 10,
felso = 50;
Random r = new Random();
double[] valos = new double[egesz_be];
for (int i = 0; i < valos.Length; i++)
{
double valos_ki = also + (felso - also) * r.NextDouble();
listBox_adat.Items.Add(valos_ki);
}
}
}
private void button_karakter_be_Click(object sender, EventArgs e)
{
}
}
}Szóval: A gombokat megnyomva a létrehozott vektorokból (vagy külső adat alapján - elemszám) kinyeri az adatot, és kiírja.
Arra lennék kíváncsi, hogy az elgondolásom helyes-e?
MOD: Uhh, legközelebb pastebinre megy
Üdv. core2
-
-
válasz
Neil Watts #2716 üzenetére
"also + (also - felso)"
Nem fordítva akartad a kivonást?
-
Sziasztok!
Lesz most szerintem egy nagyon noob kérdésem:
Hogy tudok C#-ban intervallumból valós véletlen számot generálni?
int also = 10;
int felso = 50;
Random r = new Random();
double kiir = also + (also - felso) * r.NextDouble();
listBox1.Items.Add(kiir);Itt valamit nagyon elneztem szerintem, mert atmegy negativba is.
Koszi a segitseget!
MOD: ó, megvan!
Udv. core2
-
ArchElf
addikt
válasz
kingabo #2710 üzenetére
Kerülő megoldásnak ott van a statikus osztály (nem kell inicializálni) és az extension methods (statikus osztályokban levő metódusok hozzáadhatók már meglevő osztályokhoz).
AE
-
Metódust csak osztályon belül lehet deklarálni, jól mondjátok.
-
ArchElf
addikt
válasz
WonderCSabo #2706 üzenetére
Mármint úgy értettem (mármint azon csodálkoztam), hogy lehet c#-ban osztályon kívüli függvényt csinálni?
AE
-
kingabo
őstag
válasz
Dr. Student #2700 üzenetére
Metódust nem tudsz osztályon kívül írni.
Attól függ, hogy mire akarod használni kell eldöntened, hogy hova teszed.
-
fatal`
titán
válasz
Dr. Student #2700 üzenetére
Nem, ez elméletben mindenre. Ha osztályon belül írsz egy másik osztályt arra is igaz ez. Metódust osztályon kívülre nem is lehet írni szerintem (illetve structba lehet, de az csak annyiban tér el az osztálytól, hogy alapból minden public), bár ilyet még nem próbáltam.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- új aktiválatlan iPhone 16 128GB black fekete független 1 év Apple garancia
- szinte új iPhone 16 Pro 256GB black titanium fekete titán független Apple 3 év garancia adapter
- HomeAssistant-hez ideális: Beelink N3450 PC, 6 / 128 GB, Foxpost az árban
- i7-13700 / Z790 / 16 GB DDR4 / 256 GB SSD / 4 TB HDD / RM750X félkonfig
- Dobozos Új gamer MSI Katana 15 /i7-12650H/16GB/1TB SSD/RTX 4070 8GB GB/144Hz/Gari
- Dell és HP szerver HDD caddy keretek, adapterek. Több száz darab készleten, szállítás akár másnapra
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Beszámítás! HP Z2 G4 Tower Workstation számítógép garanciával, hibátlan működéssel
- Csere-Beszámítás! Számítógép PC Játékra! Intel I7 6700/ RX 580 8GB / 32GB DDR4 / 500GB SSD
- AKCIÓ! Apple iPad Pro 13 2024 M4 512GB Cellular tablet garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest