Entwickler-Ecke

Freeware Projekte - Qualirechner -> Kritik


Xclusive - Do 19.03.09 21:00
Titel: Qualirechner -> Kritik
So mein erstes C# Programm ist fertig:

Ich würde mich über eine Bewertung freuen und über verbesserungsvorschläge.
Denkt bitte daran:
Ich bin Anfänger,
Hauptschüler :D
15 Jahre alt. Seit dem 12. März.
Danke

Ich hoffe ich darf das reinstellen.

mfg David


Download:


Christian S. - Do 19.03.09 21:12

Hallo!

Bitte gib einen direkten Downloadlink an oder hänge das Programm direkt an Deinen Beitrag an. Danke! :)

Grüße
Christian

P.S.: Wieso ist das Programm so groß? :shock:


Xclusive - Do 19.03.09 21:16

Ich weis es nicht sorry.
Vielleicht weger dem Hintergrundbild?
Ok, dass mit dem Dateianhang ist geklärt.


Yogu - Do 19.03.09 21:18

user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
P.S.: Wieso ist das Programm so groß? :shock:

Wieso, 1,93 MB sind doch für eine Anwendung mit einem großen Hintergrundbild noch ok.

Was mir aber auffällt: Das Fenster braucht ewig lange um sich zu zeichnen. Ich denke mal, das liegt genau an dem Hintergrundbild, das, so wie es aussieht, für jede Komponente nochmal gezeichnet werden muss. Einfachster Tipp: Lösche es ;)

Außerdem gibt es eine unbehandelte Ausnahme, wenn nichts eingegeben wurde, und auf "Berechnen" geklickt wird.

Ganz lustig wäre doch auch noch ein Hinweis, ob jetzt bestanden wird, oder nicht. Sonst funktioniert es ganz gut.
:zustimm:

Grüße,
Yogu


Xclusive - Do 19.03.09 21:30

Das mit dem Fehler weis ich Danke
Aber keine ahnung wie ich es beheben soll -.-
Das mit dem Hinweis weis ich leider acuh nicht.
Wollte ich machen.
mfg David


freak4fun - Do 19.03.09 21:34

Du solltest etwas mehr auf das Programm Wert legen und nicht sos ehr auf das Äußere. ;)


Xclusive - Do 19.03.09 21:38

Danke für den tip die meiste zeit hab ich fürs Design gebraucht :D


freak4fun - Do 19.03.09 22:36

user profile iconXclusive hat folgendes geschrieben Zum zitierten Posting springen:
Das mit dem Fehler weis ich Danke
Aber keine ahnung wie ich es beheben soll -.-

Versuch es mal mit:

Delphi-Quelltext
1:
2:
3:
4:
5:
try 
 ... 
except 
 ... 
end;
;)
user profile iconXclusive hat folgendes geschrieben Zum zitierten Posting springen:
Das mit dem Hinweis weis ich leider acuh nicht.
Wollte ich machen.

Dann mach es doch jetzt und lad die neue Version hoch. ;)

Du solltest deine Zahlen kleiner als 7 halten, wenn es Noten sind. ;)


jaenicke - Do 19.03.09 22:38

Die Oberfläche macht normalerweise den kleineren Teil eines Programms und der Arbeit damit aus. ;-)
Bei so kleinen Programmen ist das natürlich etwas anderes.

Was mir auffällt:
Das Hintergrundbild passt zu den Textfarben nicht richtig, denn der Text ist so schlecht lesbar. Vielleicht ginge das besser, wenn das Bild z.B. etwas aufgehellt würde.

Statt Int32.Parse solltest du lieber Int32.TryParse benutzen um einen Fehler dabei abzufangen, wenn keine Zahl eingegeben wurde.

Warum startest du explizit den Internet Explorer? Sowas nervt, lass doch Windows den Standardbrowser des Benutzers verwenden.

C#-Quelltext
1:
Process.Start("http://www.google.de");                    

Warum das Laden so schleppend läuft, weiß ich nicht so genau, aber irgendetwas läuft da schief. Bei der Größe des Bildes könnte es auch einfach nur daran liegen.


user profile iconfreak4fun hat folgendes geschrieben Zum zitierten Posting springen:
Versuch es mal mit:

Delphi-Quelltext
1:
2:
3:
4:
5:
try 
 ... 
except 
 ... 
end;
;)
Es geht um ein .NET Programm in C#. ;-)


freak4fun - Do 19.03.09 22:49

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconfreak4fun hat folgendes geschrieben Zum zitierten Posting springen:
Versuch es mal mit:

Delphi-Quelltext
1:
2:
3:
4:
5:
try 
 ... 
except 
 ... 
end;
;)
Es geht um ein .NET Programm in C#. ;-)

Macht doch nichts. Ausnahmebehandlung gibts doch sogar in Java! ;) Warum nicht auch in C#. Aber danke für den Hinweis! :D


Xclusive - Fr 20.03.09 07:47

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Die Oberfläche macht normalerweise den kleineren Teil eines Programms und der Arbeit damit aus. ;-)
Bei so kleinen Programmen ist das natürlich etwas anderes.

Was mir auffällt:
Das Hintergrundbild passt zu den Textfarben nicht richtig, denn der Text ist so schlecht lesbar. Vielleicht ginge das besser, wenn das Bild z.B. etwas aufgehellt würde.

Statt Int32.Parse solltest du lieber Int32.TryParse benutzen um einen Fehler dabei abzufangen, wenn keine Zahl eingegeben wurde.

Warum startest du explizit den Internet Explorer? Sowas nervt, lass doch Windows den Standardbrowser des Benutzers verwenden.

C#-Quelltext
1:
Process.Start("http://www.google.de");                    

Warum das Laden so schleppend läuft, weiß ich nicht so genau, aber irgendetwas läuft da schief. Bei der Größe des Bildes könnte es auch einfach nur daran liegen.


user profile iconfreak4fun hat folgendes geschrieben Zum zitierten Posting springen:
Versuch es mal mit:

Delphi-Quelltext
1:
2:
3:
4:
5:
try 
 ... 
except 
 ... 
end;
;)
Es geht um ein .NET Programm in C#. ;-)


Vielen dank ich werde mich nach der Schule direkt hinsetzen (Naja, nachhilfe hab ich auch noch :-D)

Wie geht des das man nur Zahlen eingeben kann (1-6) Danke im vorraus

Bis dann
mfg David


Xclusive - Fr 20.03.09 12:58

Entschuldigung für die doppelte Antwort.
Das ist ziemlich unübersichtlich geworden.

Mein Code:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            textBox13.Text =
            ((int.Parse(textBox1.Text) * 2 + int.Parse(textBox2.Text) * 2 +
            int.Parse(textBox3.Text) + int.Parse(textBox7.Text) * 2 +
            int.Parse(textBox8.Text) * 2 + int.Parse(textBox9.Text) +
            int.Parse(textBox4.Text) * 2 + int.Parse(textBox5.Text) +
            int.Parse(textBox6.Text) + int.Parse(textBox11.Text) +
            int.Parse(textBox12.Text) + int.Parse(textBox10.Text)
            * 2) / 18.0).ToString();


        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            string goTo = "proxy.kartoffel-hack.com/index.php?q=uggc%3A%2F%2Fjjj.grnz-hyz.qr%2F";

System.Diagnostics.Process.Start("iexplore.exe", goTo);
        }

        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            string goTo = "www.pennergame.de";

System.Diagnostics.Process.Start("iexplore.exe", goTo);
        }

        private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            string goTo = "www.hsweis.schule.neu-ulm.de";

System.Diagnostics.Process.Start("iexplore.exe", goTo);
        }


jaenicke - Fr 20.03.09 13:04

Dass der Quelltext so aussieht, war mir schon klar. .NET Programme lassen sich sehr gut disassemblieren. :mrgreen:

Bau als erstes einmal TryParse statt Parse ein. Dann kannst du die Prüfung in welchem Bereich die Eingaben sind auch gleich einbauen.


Xclusive - Fr 20.03.09 15:31

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Dass der Quelltext so aussieht, war mir schon klar. .NET Programme lassen sich sehr gut disassemblieren. :mrgreen:

Bau als erstes einmal TryParse statt Parse ein. Dann kannst du die Prüfung in welchem Bereich die Eingaben sind auch gleich einbauen.


"Dann kannst du die Prüfung in welchem Bereich die Eingaben sind auch gleich einbauen" // Diesen Satz kapiere ich irgentwie nicht Sorry, könntest du den bitte anderst formulieren?

TryParse geht irgentwie nicht hab ich das falsch gemacht?


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
 {
            
            textBox13.Text =
            ((int.TryParse(textBox1.Text) * 2 + int.TryParse(textBox2.Text) * 2 +
            int.TryParse(textBox3.Text) + int.TryParse (textBox7.Text) * 2 +
            int.TryParse(textBox8.Text) * 2 + int.TryParse(textBox9.Text) +
            int.TryParse(textBox4.Text) * 2 + int.TryParse(textBox5.Text) +
            int.TryParse(textBox6.Text) + int.TryParse(textBox11.Text) +
            int.TryParse(textBox12.Text) + int.TryParse(textBox10.Text)
            * 2) / 18.0).ToString();


        }


Fehler: Keine Überladung für die TryParse-Methode nimmt 1 Argumente an.


jaenicke - Fr 20.03.09 15:35

user profile iconXclusive hat folgendes geschrieben Zum zitierten Posting springen:
TryParse geht irgentwie nicht hab ich das falsch gemacht?
TryParse gibt dir zurück, ob die Konvertierung erfolgreich war.
Schau dir den Befehl am besten in der Dokumentation an:
http://msdn.microsoft.com/en-us/library/f02979c7.aspx

C#-Quelltext
1:
2:
3:
int test;
if (Int32.TryParse(textBox1.Text, out test))
  MessageBox.Show("Gültige Zahl: " + test.ToString());


Xclusive - Fr 20.03.09 15:41

Es geht irgentwie nicht :-) *verzweifelt*
Kann jemand schnell über TeamViewer schauen?
Bitte,
Hcoke schon ewig drann -.-
Währe demjenigen sehr Dankbar.


jaenicke - Fr 20.03.09 15:44

user profile iconXclusive hat folgendes geschrieben Zum zitierten Posting springen:
Es geht irgentwie nicht :-) *verzweifelt*
Was heißt das? Ich habe doch ein konkretes Beispiel gepostet.

Wie hast du das denn jetzt versucht?


Xclusive - Fr 20.03.09 15:51

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconXclusive hat folgendes geschrieben Zum zitierten Posting springen:
Es geht irgentwie nicht :-) *verzweifelt*
Was heißt das? Ich habe doch ein konkretes Beispiel gepostet.

Wie hast du das denn jetzt versucht?


Ok habs jetzt kommt da die MassageBox Gültige Zahl: ??? aber was bewirkt das oder war das ein besipiel das ich Das ganze umschreiben soll?


Xclusive - Fr 20.03.09 16:59

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconXclusive hat folgendes geschrieben Zum zitierten Posting springen:
Es geht irgentwie nicht :-) *verzweifelt*
Was heißt das? Ich habe doch ein konkretes Beispiel gepostet.

Wie hast du das denn jetzt versucht?


Helf mir bitte hab das so eingefügt wie du es geschrieben hast.


Jakob_Ullmann - Fr 20.03.09 17:17

Also es geht darum, dass Fehler behandelt werden. Du führst nachfolgenden Code immer nur aus, wenn es keine Exception gab, ansonsten wird halt gar nichts gemacht / du teilst dem Benutzer seinen Fehler mit.


Xclusive - Fr 20.03.09 17:19

also muss ich den code auf jede textBox schreiben?


jaenicke - Fr 20.03.09 17:39


C#-Quelltext
1:
2:
3:
4:
5:
6:
int box1Value, box2Value;
if (Int32.TryParse(textBox1.Text, out box1Value) && Int32.TryParse(textBox1.Text, out box2Value) ...)
{
  // hier kannst du mit den Werten jetzt rechnen
else
  MessageBox.Show("Ungültige Zahl");


Xclusive - Fr 20.03.09 18:23

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
int box1Value, box2Value;
if (Int32.TryParse(textBox1.Text, out box1Value) && Int32.TryParse(textBox1.Text, out box2Value) ...)
{
  // hier kannst du mit den Werten jetzt rechnen
else
  MessageBox.Show("Ungültige Zahl");


Danke werde es testen :D

Des " int box1Value, box2Value; " wenn ich 13 textBoxen habe muss ich des dann erweitern "
int box1Value, box2Value, box3Value, box4Value; " so?


jaenicke - Fr 20.03.09 18:31

user profile iconXclusive hat folgendes geschrieben Zum zitierten Posting springen:
Des " int box1Value, box2Value; " wenn ich 13 textBoxen habe muss ich des dann erweitern "
int box1Value, box2Value, box3Value, box4Value; " so?
Ja, es gibt zwar auch bessere Möglichkeiten, aber wenn du mit Arrays und so noch nicht gearbeitet hast, dann ist es vielleicht besser es so zu machen.
Auch wenn das eigentlich mehr Arbeit beim Schreiben des Codes bedeutet. ;-)


Christian S. - Fr 20.03.09 18:32

Hallo!

Ich möchte darum bitten, Programmierfragen auch weiterhin in den Programmiersparten des Forums zu stellen und zu beantworten. Diese Sparte ist nur für die Programmvorstellungen da. Danke! :-)

Grüße
Christian


Xclusive - Fr 20.03.09 21:11

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconXclusive hat folgendes geschrieben Zum zitierten Posting springen:
Des " int box1Value, box2Value; " wenn ich 13 textBoxen habe muss ich des dann erweitern "
int box1Value, box2Value, box3Value, box4Value; " so?
Ja, es gibt zwar auch bessere Möglichkeiten, aber wenn du mit Arrays und so noch nicht gearbeitet hast, dann ist es vielleicht besser es so zu machen.
Auch wenn das eigentlich mehr Arbeit beim Schreiben des Codes bedeutet. ;-)



vielen dank
Naja, damit muss ich leben hab mir schon eine DVD bestellt (( http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-1943?GalileoSession=37881249A38SJ4.CQi8 ))

Ich hoffe das ist gut erklärt.
Ich kopier das einfach des erste mfg David