Maly projekt w jezyku c#, Windows Forms, SQL

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:

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);

        }
    }
0

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

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.

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:

public DateTime DateOfBirth { get; set; }

1 użytkowników online, w tym zalogowanych: 0, gości: 1