今天來到鐵人賽的一半了!第15天!但剛好遇到9/28連假比較沒時間寫@@
到目前為止,我們已經學習了 變數、流程控制、方法、陣列、類別、物件、屬性、封裝、建構子、繼承、多型、泛型以及集合。
今天要來做一個小型的專案練習,讓我們把之前學過的知識串接起來,模擬一個「圖書館借書系統」的簡化版本。
這樣的練習不僅能幫助你加深對物件導向程式設計的理解,也能感受到 C# 在實際應用場景的威力。
using System;
using System.Collections.Generic;
class Book
{
public string Title { get; }
public string Author { get; }
public bool IsBorrowed { get; private set; }
public Book(string title, string author)
{
Title = title;
Author = author;
IsBorrowed = false;
}
public void Borrow()
{
if (!IsBorrowed)
{
IsBorrowed = true;
Console.WriteLine($"《{Title}》 已成功借出!");
}
else
{
Console.WriteLine($"《{Title}》 已被借走,無法借出。");
}
}
public void Return()
{
if (IsBorrowed)
{
IsBorrowed = false;
Console.WriteLine($"《{Title}》 已歸還!");
}
else
{
Console.WriteLine($"《{Title}》 原本就未被借出。");
}
}
}
class Library
{
private List<Book> books = new List<Book>();
public void AddBook(Book book)
{
books.Add(book);
Console.WriteLine($"成功新增書籍:《{book.Title}》 作者:{book.Author}");
}
public void ShowBooks()
{
Console.WriteLine("\n📚 圖書館藏書:");
foreach (var book in books)
{
string status = book.IsBorrowed ? "已借出" : "可借閱";
Console.WriteLine($"- {book.Title} by {book.Author} ({status})");
}
}
}
class Program
{
static void Main()
{
Library library = new Library();
// 新增書籍
library.AddBook(new Book("C# 入門", "張小明"));
library.AddBook(new Book("物件導向設計", "李大華"));
// 顯示館藏
library.ShowBooks();
// 借書
library.ShowBooks();
Console.WriteLine();
var borrowedBook = new Book("C# 入門", "張小明"); // ⚠️ 這裡只是示範,實際應該從館藏取書
borrowedBook.Borrow();
// 還書
borrowedBook.Return();
}
}