Struktur Proyek
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 62 dari 70.
Tantangan
MudahMari siapkan dasar untuk proyek Library System kamu! Kamu akan membuat struktur file dasar yang akan dikembangkan menjadi aplikasi manajemen library lengkap dalam pelajaran-pelajaran mendatang.
Kamu akan mengatur kodemu dalam empat file, masing-masing dengan tanggung jawab tertentu:
Book.cs: File ini akan menyimpan model Book-mu. Untuk saat ini, buat classBookdalam namespaceLibrarySystemdengan tiga property yang diimplementasikan otomatis:Title(string),Author(string), danIsAvailable(bool, dengan nilai defaulttrue). Tambahkan constructor yang menerima title dan author sebagai parameter.User.cs: File ini akan menyimpan model User-mu. Buat classUserdalam namespace yang sama dengan dua property:Name(string) danMemberId(int). Sertakan constructor yang menerima kedua nilai tersebut.Library.cs: Di sinilah logika inti programmu berada. Buat classLibrarydengan propertyName(string) dan constructor untuk mengaturnya. Tambahkan method bernamaGetInfo()yang mengembalikan string dengan format"{Name} Library System Initialized".Program.cs: Satukan semuanya di sini. Ini adalah titik masuk programmu, tempat kamu akan membuat instance dari class-class tersebut dan memastikan strukturnya berfungsi dengan benar.
Kamu akan menerima tiga input:
- Nama library
- Entri buku dengan format
title|author - Entri pengguna dengan format
name|memberId
Buat instance Library dengan nama yang diberikan, Book dengan title dan author yang diberikan, serta User dengan nama dan ID anggota yang diberikan. Lalu cetak tiga baris:
- Hasil pemanggilan
GetInfo()pada library-mu - Informasi buku dengan format
Book: {Title} by {Author} - Available: {IsAvailable} - Informasi pengguna dengan format
User: {Name} (ID: {MemberId})
Contohnya, jika inputnya adalah:
City Central
The Great Gatsby|F. Scott Fitzgerald
Alice Johnson|1001Output-nya seharusnya:
City Central Library System Initialized
Book: The Great Gatsby by F. Scott Fitzgerald - Available: True
User: Alice Johnson (ID: 1001)Struktur ini mengikuti Prinsip Tanggung Jawab Tunggal, yaitu setiap file menangani satu hal tertentu. Dalam pelajaran-pelajaran mendatang, kamu akan mengembangkan class-class ini dengan logika peminjaman, fitur pencarian, dan antarmuka console yang lengkap!
Coba sendiri
using System;
namespace LibrarySystem
{
class Program
{
public static void Main(string[] args)
{
// Baca input
string libraryName = Console.ReadLine();
string bookInput = Console.ReadLine();
string userInput = Console.ReadLine();
// Uraikan input buku (format: title|author)
string[] bookParts = bookInput.Split('|');
string bookTitle = bookParts[0];
string bookAuthor = bookParts[1];
// Uraikan input pengguna (format: name|memberId)
string[] userParts = userInput.Split('|');
string userName = userParts[0];
int memberId = Convert.ToInt32(userParts[1]);
// TODO: Buat instance Library dengan nama library
// TODO: Buat instance Book dengan judul dan penulis
// TODO: Buat instance User dengan nama dan ID anggota
// TODO: Tampilkan informasi library menggunakan GetInfo()
// TODO: Tampilkan informasi buku dalam format: Book: {Title} by {Author} - Available: {IsAvailable}
// TODO: Tampilkan informasi pengguna dalam format: User: {Name} (ID: {MemberId})
}
}
}
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalNamespace & DirektifPengantar class & objectKata Kunci 'this'Method dan ParameterField vs PropertyKonstruktorInisialisasi objectRingkasan: Kalkulator Sederhana4Pewarisan
Sintaks Dasar Pewarisan (:)Kata Kunci 'base'Kata Kunci Virtual & OverrideClass SealedBase Class 'object'Rangkuman: Hierarki Karyawan7Fitur Lanjutan
Overloading OperatorIndexer (this[])Penimpaan ToString()Extension methodRingkasan: Custom list2Property & Anggota Statis
Property yang Diimplementasikan OtomatisProperty Hanya Baca dan Hanya TulisField dan method StatisClass StatisAnggota Berbentuk Ekspresi5Polimorfisme & Antarmuka
Polimorfisme saat kompilasi vs runtimeAntarmuka vs kelas abstrakBeberapa antarmukaAntarmuka eksplisitUpcasting & DowncastingRingkasan, Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi daripada PewarisanGenerics (class dan method)Delegate dan EventAtribut dan ReflectionIDisposable dan Pernyataan usingDasar-Dasar Dependency Injection11Pola Desain Bagian 2
Pola PerintahPola AdapterPola DecoratorPola Template MethodPola StatePola Composite3Arsitektur class
Data Instance vs StaticKata Kunci 'readonly' & 'const'Field PendukungRingkasan: Pengelola Rekening Bank6Enkapsulasi
Pengubah AksesProperti untuk EnkapsulasiImplementasi Penyembunyian DataPola ImutabilitasUlasan: Data Siswa12Proyek: Sistem Perpustakaan
Struktur ProyekModel Buku dan PenggunaLogika Sistem PeminjamanLINQ untuk PencarianUI Konsol / Antarmuka AdminPengujian Unit (NUnit/xUnit)Latihan sendiri: Compiler C# online