Lập trình C# - Chương trình quản lý sách
Chương trình quản lý sách
Cài đặt lớp Book gồm các thuộc tính:
private String bookName;
private String bookAuthor;
private String producer;
private int yearPublishing;
private float price;
Cài đặt 2 constructors, các phương thức set/get cho các thuộc tính của lớp.
Cài đặt 2 phương thức input() và display để nhập và hiển thị các thuộc tính của lớp.
Cài đặt lớp BookManager kế thừa lớp Book và bổ sung thêm vào thuộc tính:
private String language;
private int semester;
Cài đặt 2 constructor trong đó sử dụng super để gọi đến constructor của lớp cha.
Cài đặt các phương thức get/set cho các thuộc tính bổ sung
Override các phương thức Input() và Display().
Cài đặt lớp Test trong đó tạo menu và thực hiện theo các chức năng của menu:
1. Nhập thông tin n cuốn sách
2. Hiển thị thông tin vừa nhập
3. Sắp xếp thông tin giảm dần theo năm xuất bản và hiển thị
4. Tìm kiếm theo tên sách
5. Tìm kiếm theo tên tác giả
6. Lưu thông tin sách đã nhập vào file
7. Đọc nội dung từ file và lưu vào mang quản lý sách
8. Thoát.
Trong project chúng ta tạo 2 class Book.cs và BookManger.cs
Bước 1: Xây dựng Class Book.cs
class Book
{
private String _bookName { get; set; }
private String _bookAuthor { get; set; }
private String _producer { get; set; }
private int _yearPublishing { get; set; }
private float _price { get; set; }
public int yearPublishing
{
get
{
return _yearPublishing;
}
set
{
_yearPublishing = value;
}
}
public String bookName
{
get
{
return _bookName;
}
set
{
_bookName = value;
}
}
public String bookAuthor
{
get
{
return _bookAuthor;
}
set
{
_bookAuthor = value;
}
}
public String producer
{
get
{
return _producer;
}
set
{
_producer = value;
}
}
public float price
{
get
{
return _price;
}
set
{
_price = value;
}
}
public Book()
{
}
public Book(String bookName, String bookAuthor, String producer, int yearPublishing, float price)
{
this._bookAuthor = bookAuthor;
this._bookName = bookName;
this._price = price;
this._producer = producer;
this._yearPublishing = yearPublishing;
}
public virtual void Input()
{
try
{
Console.WriteLine("Nhập tên quyển sách: ");
_bookName = Console.ReadLine();
Console.WriteLine("Nhập tác giả: ");
_bookAuthor = Console.ReadLine();
Console.WriteLine("Nhập nhà xuất bản: ");
_producer = Console.ReadLine();
Console.WriteLine("Nhập năm xuất bản: ");
_yearPublishing = int.Parse(Console.ReadLine());
Console.WriteLine("Nhập giá bán: ");
_price = float.Parse(Console.ReadLine());
}
catch(Exception ex)
{
Console.WriteLine("Nhập sai thông tin ");
}
}
public virtual void Display()
{
Console.WriteLine("Tên sách: " + _bookName);
Console.WriteLine("Tác giả: " + _bookAuthor);
Console.WriteLine("Nhà xuất bản : " + _producer);
Console.WriteLine("Năm sản xuất: " + _yearPublishing);
Console.WriteLine("Giá: " + _price);
}
}
Bước 2: Xây dựng Class BookManager.cs
class BookManager:Book
{
private String language { get; set; }
private int semester { get; set; }
public BookManager() : base()
{
}
public BookManager(String bookName, String bookAuthor, String producer, int yearPublishing, float price, String language, int semester) : base()
{
this.language = language;
this.semester = semester;
}
public override void Input()
{
try
{
base.Input();
Console.WriteLine("Nhập ngôn ngữ : ");
language = Console.ReadLine();
Console.WriteLine("Nhập học kỳ : ");
semester = int.Parse(Console.ReadLine());
}
catch(Exception ex)
{
Console.WriteLine("Nhập sai thông tin");
}
}
public override void Display()
{
base.Display();
Console.WriteLine(" Ngôn ngữ : " + language);
Console.WriteLine(" Học kỳ : " + semester);
}
public string toString()
{
return "BookManager{bookName : " + bookName + ", bookAuthor : " + bookAuthor + ", Producer : " + producer + ", yearPublishing : " + yearPublishing + ", Price : " + price + ", Language : " + language + ", semester : " + semester + "}";
}
}
Bước 3: Xây dựng hàm Main()
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace BookManagerSystem
{
class Program
{
static void Main(string[] args)
{
Console.OutputEncoding = Encoding.UTF8;
List<BookManager> bookList = new List<BookManager>();
int c;
do
{
menu();
c = int.Parse(Console.ReadLine());
switch (c)
{
case 1:
Console.WriteLine("Nhập số quyển sách : ");
int n = int.Parse(Console.ReadLine());
for (int i = 0; i < n; i++)
{
BookManager BookManager = new BookManager();
BookManager.Input();
bookList.Add(BookManager);
}
break;
case 2:
display(bookList);
break;
case 3:
sort(bookList);
display(bookList);
break;
case 4:
Console.WriteLine("Nhập tên sách cần tìm:");
string search = Console.ReadLine();
BookManager book = findBybookName(search, bookList);
book.Display();
break;
case 5:
Console.WriteLine("Nhập tác giả cần tìm:");
search = Console.ReadLine();
BookManager book1 = findBybookName(search, bookList);
book1.Display();
break;
case 6:
FileStream fs = new FileStream("G:/test.txt", FileMode.Create);//Tạo file mới tên là test.txt
StreamWriter sWriter = new StreamWriter(fs, Encoding.UTF8);//fs là 1 FileStream
foreach (var item in bookList)
{
sWriter.WriteLine(item.toString());
}
// Ghi và đóng file
sWriter.Flush();
fs.Close();
break;
case 7:
break;
case 8:
Console.WriteLine("Thoát chương trình!!");
break;
}
} while (c != 8);
}
static void menu()
{
Console.WriteLine("\nCHƯƠNG TRÌNH QUẢN LÝ SÁCH C#");
Console.WriteLine("*********************************MENU************************************");
Console.WriteLine("** 1. Nhập thông tin cuốn sách **");
Console.WriteLine("** 2. Hiển thị danh sách sách **");
Console.WriteLine("** 3. Sắp xếp thông tin giảm dần theo năm xuất bản và hiển thị **");
Console.WriteLine("** 4. Tìm kiếm theo tên sách **");
Console.WriteLine("** 5. Tìm kiếm theo tên tác giả **");
Console.WriteLine("** 6. Lưu thông tin sách đã nhập vào file **");
Console.WriteLine("** 7. Đọc nội dung từ file và lưu vào mang quản lý sách **");
Console.WriteLine("** 8. Thoát. **");
Console.WriteLine("** Chon : **");
Console.WriteLine("*************************************************************************");
}
static void sort(List<BookManager> bookList)
{
bookList.Sort((x, y) => x.yearPublishing.CompareTo(y.yearPublishing));
}
static void display(List<BookManager> bookList)
{
Console.WriteLine("********************************************");
int stt = 0;
foreach (BookManager item in bookList)
{
++stt;
Console.WriteLine("Thông tin quyển sách thứ {0} : ", stt);
item.Display();
}
}
static BookManager findBybookName(string search, List<BookManager> bookList)
{
BookManager BookManager = new BookManager();
foreach (var item in bookList)
{
if (item.bookName.Equals(search))
{
BookManager = item;
break;
}
}
return BookManager;
}
static BookManager findByAuthorName(string search, List<BookManager> bookList)
{
BookManager BookManager = new BookManager();
foreach (var item in bookList)
{
if (item.bookAuthor.Equals(search))
{
BookManager = item;
break;
}
}
return BookManager;
}
}
}
Bước 4: Nhấn Ctrl+F5 để chạy và xem kết quả
Chọn 1 nhập thông tin sách
Chọn 2 xem thông tin sách vừa nhập