Sincerely thanks!“Để hoàn thành project này, em xin gửi lời cảm ơn chân thành đến: Ban giám hiệu trường Đại Học Sư phạm kỹ thuật Thành phố Hồ Chí Minh vì đã tạo điều kiện về cơ sở vật ch
Trang 1HCMC UNIVERSITY OF TECHNOLOGY AND EDUCATION
FACULTY OF INFORMATION TECHNOLOGY
FINAL TERM PROJECT Course name: OBJECT-ORIENTED PROGRAMMING
<< Design and implementation a bookstore management system using OOP >>
Lecturer name: Assoc Prof Hoang Van Dung
List of members Student ID Student name Contribution (%)
20TM11014 Nguyen Thi Thuy Diem
Trang 2Sincerely thanks!
“Để hoàn thành project này, em xin gửi lời cảm ơn chân thành đến:
Ban giám hiệu trường Đại Học Sư phạm kỹ thuật Thành phố Hồ Chí Minh vì đã tạo điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin.
Xin cảm ơn giảng viên bộ môn - Thầy Hoàng Văn Dũng đã giảng dạy tận tình, chi tiết để em có đủ kiến thức và vận dụng chúng vào project này Mặc dù là bộ môn chúng em chỉ vừa được tiếp cận gần đâ, kiến thức chúng em còn rất nhiều hạn chế, thậm chí còn mơ hồ chưa hình dung rõ về môn học này, nhưng thầyđã cố gắng giảng dạy, tận tình trao đổi để nhóm chúng em có thể tiếp thu đủ kiến thức từ đó hoàn thành đề tài theo đúng yêu cầu.
Mặc dù đã rát cố gắng để hoàn thành công việc , nhưng do thời gian có hạn và kinh nghiệm chưa cao nên việc phân tích và thiết kế còn nhiều thiếu sót, kính mong quý thầy cô và các bạn góp ý, bổ sung để chúng em hoàn thiện cho bài tốt hơn nữa chúng em xin cảm ơn !
Nhóm sinh viên thực hiện
20TM11003 Lê Đức Thọ
20TM11012 Phạm Phú Hào
20TM11014 Nguyễn Thị Thúy Diễm
Trang 3MỤC LỤC
LỜI MỞ ĐẦU
Phần 1 : Mở đầu ( mô tả về project)
Đặt vấn đề và mục đích chọn đề tài
1 Yêu cầu
2 Mục tiêu nghiên cứu
3 Phương pháp
Phần 2 : Cơ sở lý thuyết để thực hiện project
1 Giới thiệu về project
2 Các class
Phần 3 : Phân tích, thiết kế giải pháp
Phần 4 : Thực nghiệm, đánh giá , phân tích kết quả Phần 5 : Phần kết luận
Trang 4Lời mở đầu
Ngày nay, công nghệ thông tin đã và đang đóng vai trò quan trọng trong đời sống kinh tế, xã hội của nhiều quốc gia trên thế giới, là một phần không thể thiếu trong xã hội năng động và ngày càng hiện đại hóa Công nghệ thông tin được áp dụng vào hầu hết các lĩnh vực của đời sống lĩnh vực hoạt động kinh doanh buôn bán không nững tiết kiệm thời gian, tiện lợi mà còn thể hiện được độ chính xác cao và tăng năng lực quản lý.
Xuát phát từ nhu cầu thực tế đó, trong công việc mua bán kinh doanh, việc quản lý và bán hàng là không thể thiếu Nhằm thay thế việc quản lý bán hàng theo hình thức thô sơ, nhiều thủ tục, nhiều công đoạn,… tại mỗi cửa hàng đạt hiệu quả không cao Chính vì thế chúng em đã viết một chương trình với đề tài “…” Đây là một chương trình do một bộ phận nhân viên trong nhà sách quản lý, với mục đích tiết kiệm tgian và thuận tiện cho việc quản lý cá thiết bị nhập xuất bán hàng Ngoài ra còn các mục tìm kiếm, cập nhật,…nhầm giúp nhân viên thực hiên nhanh chóng các yêu cầu quản lý.
Phần 1: Mở đầu
1.Đặt vấn đề
công ghệ thông tin là một trong những ngành khoa học ngày càng phát triển mạnh mẽ và được ứng dụng rộng rãi trong mọi lĩnh vực, mọi ngành nghề, đặc biệt là trong
Trang 5công tác quản lý Việc áp dụng công nghiệp thông vào trong quản lý, sản xuất kinh doanh là một hướng tát yếu Ứng dụng Công nghệ thông tin vào quản lý giúp người dùng giảm thiểu đi việc lý thủ công mất nhiều thời gian, tiết kiệm chi phí và nguồn nhân lực, từ đó nâng cao hiệu quả công việc và chất lượng sản phẩm cũng được nâng cao Năm bắt được xu thế đó, nên tối đã tìm hiểu và
nghiên cứu xây dựng chương trình quản lý nhà sách để hỗ trợ các nhà quản lý trong công việc quản lý và bán hàng một cách hiện đại và chuyên nghiệp.
2.Đối tượng nghiên cứu
Hệ thống quản lý nhà sách, cửa hàng kinh doanh sách, nhà sách
3.mục tiêu nghiên cứu
-Quản lý nhà sách về mặt nhập, xuất các loại sách
-Quản lý nhân viên, khách hàng
-Giải quyết tối ưu hóa quá trình nhập xuát
-Đưa ra các báo cáo, thống kê tổng hợp.
3 Phương pháp nghiên cứu
- Phương pháp nghiên cứu tài liệu
Trang 6- Phương pháp thu thập dữ liệu
Phần 2 : Cơ sở lý thuyết để thực hiện project
1.Giới thiệu về project
Quản lý nhà sách là một lĩnh vực nghiên cứu khá phổ biến , với các phương pháp dựa trên năng lực truy xuất , tìm kiếm thông tin trên máy tính và các bài toán ứng dụng thực tiễn có giá trị to lớn Việc quản lý thư viện cần một số tác nghiệp :
Thư viện tạo các thẻ sách gồm các thông tin : mã sách, tên sách ,tên tác giả , thể loại
Khách hàng muốn mua sách thì phải nhập vào thông tin người mua
Sau khi kiểm tra đầy đủ thông tin, hệ thống sẽ xác nhận và lưu lại thông tin thông tin của khách hàng để quản lý
2 Các class
Class book Class company Class people Class employee Class customer Class Program
Phần 3 : Phân tích, thiết kế giải pháp
Phần 4:
using System;
using System.Collections.Generic;
namespace thuydiem
Trang 7public interface IPeople
{
string FullName {get; set;}
int Date {get; set;}
int Month {get; set;}
int Year {get; set;}
string Gender {get; set;}
}
public interface ICompany
{
string NameComp {get; set;}
string NameBook {get; set;}
string Author {get; set;}
}
class Company : ICompany
{
public string NameComp {get; set;}
public string NameBook {get; set;}
public string Author {get; set;}
}
class Book : Company
{
public int ID_Book {get; set;}
public string Category {get; set;}
public List<Book> ListBook = null;
public Book(){
ListBook = new List<Book>();
}
public void InputBook()
{
Book b = new Book();
Console.Write("\nEnter ID book: ");
b.ID_Book = int.Parse(Console.ReadLine()); Console.Write("Enter name of book: ");
b.NameBook = Console.ReadLine();
Console.Write("Enter author's name: ");
b.Author = Console.ReadLine();
Console.Write("Enter category: ");
b.Category = Console.ReadLine();
Console.Write("Enter company: ");
b.NameComp = Console.ReadLine();
ListBook.Add(b);
}
Trang 8public void OutputBook(List<Book> ListBook)
{
if (ListBook != null && ListBook.Count > 0 {
foreach (Book in ListBook) {
Console.WriteLine("\n ID book: " + b.ID_Book); Console.WriteLine("Name of book: " + b NameBook); Console.WriteLine("Author's name: " + b.Author); Console.WriteLine("Category: " + b Category); Console.WriteLine("Company: " + b NameComp); }
}
Console.WriteLine(); }
public void OutputBook2(List<Book> ListBook) {
Console.WriteLine("============================================Book List================================================"); Console.WriteLine( "||{0,-4}||{1,-30}||{2,-20}||{3,-15}||{4,-20}||", "ID","Name of book","Author","Category","Company");
Console.WriteLine(
" -");
if (ListBook != null && ListBook.Count > 0 {
foreach (Book in ListBook) {
Console.WriteLine( "||{0,-4}||{1,-30}||{2,-20}||{3,-15}||{4,-20}||", b ID_Book,b NameBook, Author,b Category, NameComp);
Console.WriteLine(
" -");
}
}
Console.WriteLine("====================================================== ==============================================="); Console.WriteLine(); }
public Book FindByID(int id) {
Trang 9Book result = null;
if (ListBook != null && ListBook.Count > 0
{
foreach (Book in ListBook)
{
if (b ID_Book == id)
result = b;
}
}
return result;
}
public Book FindByNameBook(string )
{
Book result = null;
if (ListBook != null && ListBook.Count > 0
{
foreach (Book in ListBook)
{
if (String.Compare( NameBook, n)==0)
{
result = b;
}
}
}
return result;
}
public List<Book> FindByName(string )
{
List<Book> result = new List<Book>();
if (ListBook != null && ListBook.Count > 0
{
foreach (Book in ListBook)
{
if (b NameBook.ToUpper().Contains( ToUpper())) result.Add( );
}
}
return result;
}
public List<Book> FindByIDBook(int id)
{
List<Book> result = new List<Book>();
if (ListBook != null && ListBook.Count > 0
{
foreach (Book in ListBook)
Trang 10{
if (b ID_Book == id)
result.Add( );
}
}
return result;
}
public void SortByID()
{
ListBook.Sort(delegate (Book b1, Book b2){ return b1.ID_Book.CompareTo(b2.ID_Book); });
}
public bool DeleteByID(int id)
{
bool d = false;
Book b = FindByID(id);
if (b != null)
{
d = ListBook.Remove( );
}
return d;
}
public List<Book> getList()
{
return ListBook;
}
}
class People : IPeople
{
public string FullName {get; set;}
public int Date {get; set;}
public int Month {get; set;}
public int Year {get; set;}
public string Gender {get; set;}
public virtual void Input()
{
Console.Write("Enter custormer name: "); FullName = Console.ReadLine();
Console.WriteLine("Enter date of birth"); Console.Write("Date: ");
Date = int.Parse(Console.ReadLine());
Console.Write("Month: ");
Month = int.Parse(Console.ReadLine());
Console.Write("Year: ");
Trang 11Year = int.Parse(Console.ReadLine());
}
}
class Employee : People
{
public int ID_emp {get; set;}
public string Position {get; set;}
public double Salary {get; set;}
public List<Employee> ListNV = null;
public Employee()
{
ListNV = new List<Employee>();
}
public List<Employee> getlist()
{
return ListNV;
}
public override void Input()
{
Employee emp = new Employee();
Console.Write("\nEnter ID: ");
emp.ID_emp = int.Parse(Console.ReadLine()); Console.Write("Enter name: ");
emp.FullName = Console.ReadLine();
Console.WriteLine("Enter date of birth");
Console.Write("Date: ");
emp.Date = int.Parse(Console.ReadLine());
Console.Write("Month: ");
emp.Month = int.Parse(Console.ReadLine());
Console.Write("Year: ");
emp.Year = int.Parse(Console.ReadLine());
Console.Write("Enter position: ");
emp.Position = Console.ReadLine();
Console.Write("Enter salary: ");
emp.Salary = int.Parse(Console.ReadLine()); ListNV.Add(emp);
}
public void OutputEmp()
{
if (ListNV != null && ListNV.Count > 0
{
foreach (Employee emp in ListNV)
{
Console.WriteLine("ID: {0}",emp.ID_emp);
Trang 12Console.WriteLine("Full name: {0}", emp.FullName); Console.WriteLine("Date of Birth:
{0}/{1}/{2}",emp.Date,emp.Month,emp.Year);
Console.WriteLine("Posision: {0}",emp.Position); Console.WriteLine("Salary: {0}",emp.Salary);
}
}
Console.WriteLine(); }
public void OutputEmp2(List<Employee> ListEmp) {
Console.WriteLine("==============================Employee List============================="); Console.WriteLine("||{0,-4}||{1,-20}||{2,-14}||{3,-15}||{4,-8}||", "ID","Full name","Date of Birth","Position","Salary");
Console.WriteLine(" -");
if (ListEmp != null && ListEmp.Count > 0) {
foreach (Employee emp in ListEmp) {
Console.WriteLine("||{0,-4}||{1,-20}||{2,-2}/{3,-2}/{4,-8}||{5,-15}||{6,-8}||",
emp.ID_emp,emp.FullName,emp.Date,emp.Month,emp.Year,emp.Position,emp.Sala ry);
Console.WriteLine(" -");
}
}
Console.WriteLine("====================================================== =================="); Console.WriteLine(); }
public Employee FindByIdEmp(int id) {
Employee result = null; if (ListNV != null && ListNV.Count > 0) {
foreach (Employee emp in ListNV)
Trang 13{
if (emp.ID_emp == id)
result = emp;
}
}
return result;
}
public bool DeleteByIDEmp(int id)
{
bool d = false;
Employee emp =FindByIdEmp(id);
if (emp != null)
{
d = ListNV.Remove(emp);
}
return d;
}
public static bool operator <(Employee a, Employee b)
{
if (a.Salary < b.Salary) return true;
return false;
}
public static bool operator >(Employee a, Employee b)
{
if (a.Salary > b.Salary) return true;
return false;
}
/*public static bool operator ==(Employee a, Employee b) {
if (a.ID_emp == b.ID_emp && a.FullName == b.FullName && a.Date == b.Date &&
a.Month == b.Month && a.Year == b.Year)
return true;
return false;
}
public static bool operator !=(Employee a, Employee b)
{
if (a.ID_emp != b.ID_emp || a.FullName != b.FullName || a.Date != b.Date ||
a.Month != b.Month || a.Year != b.Year)
return true;
return false;
}*/
}
class Customer : People
Trang 14{
public int ID_cus {get; set;}
public string NameBookBuy {get; set;}
public int ID_bbook {get; set;}
public List<Customer> ListCus = null;
public Customer()
{
ListCus = new List<Customer>();
}
public List<Customer> getlistcus()
{
return ListCus;
}
public Book FindName(List<Book> ListBook, string n) {
Book book = null;
if (ListBook != null && ListBook.Count > 0)
{
foreach (Book b in ListBook)
{
if (String.Compare(b.NameBook, n)== 0) {
book = b;
}
}
}
return book;
}
public void Input(List<Book> ListBook)
{
Customer cus = new Customer();
Book book;
Console.Write("\nEnter ID of custormer: ");
cus.ID_cus = int.Parse(Console.ReadLine());
Console.Write("Enter custormer name: ");
cus.FullName = Console.ReadLine();
Console.WriteLine("Enter date of birth");
Console.Write("Date: ");
cus.Date = int.Parse(Console.ReadLine());
Console.Write("Month: ");
cus.Month = int.Parse(Console.ReadLine());
Console.Write("Year: ");
cus.Year = int.Parse(Console.ReadLine());
do
{