Maly projekt w jezyku c#, Windows Forms, SQL

Maly projekt w jezyku c#, Windows Forms, SQL
LK
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 lata
  • Postów:58
0

Czesc,
Tworze pierwszy raz jakis wiekszy wlasny projekt ktory chcialbym wrzucic na githuba. Chcialbym go pokazac na rozmowie kwalifikacyjnej w sprawie bezplatnego stazu, poniewaz na taki mam nadzieje sie dostac. W zwiazku z tym wpadlem na pomysl napisania apki dotyczacej schroniska dla zwierzat.
Chcialbym aby tworzenie nowych obiektow czyli dodawnie np. Psow, mialo miejsce poprzez wypelnienie jakiegos formularza i stad zastanawiam sie nad uzyciem Windows Forms aczkolwiek nie znam wgl tej technologii i nwm czy byloby to latwe do implementacji mojego kodu. Macie moze jakis lepszy pomysl od WF ? Chcialbym rowniez zeby dodane zwierzeta byly wpisywane do jakiejs bazy danych czy pliku tekstowego tylko tutaj rowniez nwm co wybrac poniewaz nie mam dostatecznej wiedzy. Macie moze jakies pomysly na rozwiniecie tego skromnego programu ? Staralem sie go pisac zgodnie z zasadami SOLID i uzywajac calej wiedzy jaka mam stad np. te interfejsy ktore nie wydaj mi sie super potrzebne ale chcialem pokazac ze je umiem. Chcialbym was rowniez prosic o jakas ocene tego kodu i tego czy to co napisalem nie jest na jakims smiesznym poziomie. Z gory przepraszam za slabe formatowanie ale to moj drugi post tutaj i jeszcze nie do konca sie w nim odnajduje. Dzieki wszystkim za odpowiedzi i prosze o mala wyrozumialosc poniewaz moja przygoda z programowaniem jest jeszcze dosc krotka :v
Do tej pory napisalem cos takiego:

Kopiuj
using System;

namespace AnimalShelter
{
    class Program
    {
        static void Main(string[] args)
        {
            Dog CzikoDog = new Dog("Cziko", 2, Gender.Male, "Krakow", DateTime.Today, DogBreed.Labrador, true, true, Vaccination.TickAndRabies);
            IDogDescription CzikoDescription = (IDogDescription)CzikoDog;
            //CzikoDescription.Describe();
            IDogDescription CzikoFullDescription = (IDogDescription)CzikoDog;
            CzikoFullDescription.DescribeInDetails();

            Console.WriteLine();

            Cat LauraCat = new Cat("Laura", 1, Gender.Female, "Poznan", DateTime.Today, CatBreed.Persian, true, false, Vaccination.Tick);
            ICatDescription LauraDescription = (ICatDescription) LauraCat;
            //LauraDescription.Describe();
            ICatDescription LauraFullDescription = (ICatDescription) LauraCat;
            LauraFullDescription.DescribeInDetails();

            Console.ReadKey();
        }
    }

    enum Gender
    {
        Male,
        Female,
        Unknown
    }

    enum Vaccination
    {
        Tick, // It s not a good name for it but i don t have any idea how to change it
        Rabies,  // Also with this I don t have good idea
        TickAndRabies,
        NoVaccination
    }

    enum DogBreed
    {
        Sheepdog,
        York,
        Labrador,
        West,
        FrenchBulldog,
        Mongrel
    }

    enum CatBreed
    {
        BritishCat,
        MaineCoon,
        RussianCat,
        Persian,
        Radgoll,
        Moggy
    }

    interface IDogDescription
    {
        void Describe();
        void DescribeInDetails();
    }

    interface ICatDescription
    {
        void Describe();
        void DescribeInDetails();
    }

}

abstract class Animal
    {
        public Animal()
        {

        }
        public Animal(string _name, int _age, Gender _gender, string _placeOfBirth, DateTime _dateOfBirth)
        {
            this.Name = _name;
            this.Age = _age;
            this.Gender = _gender;
            this.PlaceOfBirth = _placeOfBirth;
            this.DateOfBirth = _dateOfBirth;
        }
        public string Name { get; set; }
        public int Age { get; set; }
        public Gender Gender { get; set; }
        public string PlaceOfBirth { get; set; }
        public DateTime DateOfBirth { get; set; }
    }

class Dog : Animal, IDogDescription
    {
        public Dog(string _name, int _age, Gender _gender, string _placeOfBirth, DateTime _dateOfBirth, DogBreed _dogBreed, bool _pedigree, bool _sterilization, Vaccination _vaccination) : base(_name, _age, _gender, _placeOfBirth, _dateOfBirth)
        {
            this.DogBreed = _dogBreed;
            this.Pedigree = _pedigree;
            this.Sterilization = _sterilization;
            this.Vaccination = _vaccination;
        }

        public bool Pedigree { get; set; }
        public DogBreed DogBreed { get; set; }
        public bool Sterilization { get; set; }
        public Vaccination Vaccination { get; set; }

        void IDogDescription.Describe()
        {
            Console.WriteLine("Name: {0}\nBreed: {1}\nGender: {2}\nAge: {3} year/s", Name, DogBreed, Gender, Age);
        }

        void IDogDescription.DescribeInDetails()
        {
            Console.WriteLine("Name: {0}\nBreed: {1}\nGender: {2}\nAge: {3} year/s \nDate of Birth: {4}\nPlace of Birth: {5}\nPedigree: {6}\nSterilization: {7}\nVaccination: {8}", Name, DogBreed, Gender, Age, DateOfBirth, PlaceOfBirth,Pedigree, Sterilization, Vaccination);

        }
    }
edytowany 6x, ostatnio: Lil Keyboard
PA
PA
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 3 lata
  • Postów:288
0

Weź to wrzuć jeszcze raz tylko dodaj 'csharp' przy formatowaniu bo choćbym chciał nie dam rady tego przeczytać, męczarnia ;p

PA
Hahaha prawie ok tylko treść postu wrzuć przed formatowanie bo śmiesznie to wygląda :D
LK
Ciezko bylo ale ogarnalem xD
kzkzg
  • Rejestracja:ponad 8 lat
  • Ostatnio:35 minut
  • Postów:926
0

Powiem Ci tak. To jest bardzo słabe. Ten program nic nie robi. Te interfejsy są niepotrzebne. A już w ogóle fakapem jest to że tworzysz 2 interfejsy które się różnią tylko nazwą.
PS. Masz zdecydowanie za mało gender's. Możesz dodać wiecej z tej listy: https://www.wattpad.com/341462536-complete-list-of-genders-the-complete-list-of-all
Wróć z 20'stym.


Keep calm and blame frontend.
Tell your cat I said pspsps.
WeiXiao
Niby kompletna lista, a nie widzę Two-Spirit hmm
kzkzg
Dwudziestym programem.
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około godziny
  • Postów:5143
2

Może zamiast zapisywać w .txt, to spróbuj ogarnąć podstawy EF lub Dappera, postaw jakąś bazę np. MSSQL (Express) / MySQL XAMPem i niech twoja appka z niej korzysta.

btw. Jest coś takiego jak Environment.NewLine oraz string interpolation $"{zmienna}{zmienna}" - chociaż niektórzy preferują {0}...

To chyba niekoniecznie chcesz aby miało public seta:

Kopiuj
public DateTime DateOfBirth { get; set; }
edytowany 4x, ostatnio: WeiXiao
Aventus
W ostateczności nawet Sqlite się nada.
LK
no w sumie racja, dzieki za rade :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.