ĐẶT VẤN ĐỀ Trong những năm gần đây, nền kinh tế nước ta với những bước chuyển mình theo cơ chế thị trường đã có những phát triển nhanh chóng. Đi kèm với đó là tốc độ tăng dân số và các nhu cầu trong cuộc sống ngày càng cao, vì thế các vấn đề an sinh xã hội cần phải đảm bảo để đáp ứng được nhu cầu hiện nay trong đời sống thường ngày. Để đáp ứng nhu cầu đó, số lượng phòng khám, cửa hiệu thuốc không ngừng tăng lên với quy mô và chất lượng càng được mở rộng, vì thế để quản lý theo cách thủ công thông thường sẽ rất mất thời gian, công sức và dễ dẫn tới những sai sót đáng tiếc. Hơn hết quản lý hoạt động của hiệu thuốc có rất nhiều thông tin cần để quản lý như thông tin phức tạp về thuốc, vì dược phẩm là một loại hàng hoá đặc biệt, hiện nay trên thị trường có đến hàng nghìn loại thuốc khác nhau, làm thế nào để có thể quản lý được chi tiết từng loại thuốc là điều không dễ.
Rất khó để có thể nắm rõ hiện tại trong kho còn bao nhiêu loại thuốc, thuộc những lô nào, hạn sử dụng của mỗi loại là bao nhiêu, giá thuốc sẽ thay đổi theo thời gian và tuỳ theo từng nhà sản xuất. Quản lý bệnh nhân hàng ngày đông đúc với bệnh án khác nhau cũng như những vấn đề phát sinh như bệnh nhân đến mua thuốc theo toa hay đến tái khám nhiều lần… Nhưng với thực trạng như hiện nay, ở một số các nhà thuốc tây còn quản lý quá trình hoạt động của nhà thuốc một cách thủ công bằng cách ghi chép thành các cuốn sổ sách lớn, dữ liệu sẽ là rất lớn khi nhà thuốc hoạt động trong vài năm, gây nên vấn đề khó khăn trong việc lưu trữ và tìm kiếm, việc lưu trữ thủ công bằng sổ sách cũng gặp vấn đề về tuổi thọ của dữ liệu lưu trữ rất dễ chịu sự tác động phá hoại từ môi trường. Việc quản lý việc bán thuốc cho cửa hàng thuốc là một vấn đề hết sức phức tạp không chỉ cho ngành dược của nước ta mà cả trên toàn thế giới. Với khả năng lưu trữ thông tin ngày càng lớn tạo nên một kho thông tin đồ sộ, có thể lưu trữ hàng trăm ngìn mặt hàng thuốc khác nhau với nhiều chủng loại và mẫu mã.
1 Đề tài: Xây dựng phần mềm quản lý cửa hàng bán thuốc 1. HƯỚNG GIẢI QUYẾT VẤN ĐỀ Trước các vấn đề khó khăn trong việc quản lý nhà thuốc tây đã nêu trên cùng với sự phát triển trong thời đại công nghiệp hoá hiện đại hoá như hiện nay, thì mọi vấn đề cần được giải quyết một cách nhanh chóng và chính xác thì cách thức xử lý thông tin dựa trên kinh nghiệm và phương pháp thủ công đã không còn phù hợp nữa, cần có một phương pháp mới hiệu quả hơn. Việc tin học hoá các lĩnh vực quản lý thực sự là một giải pháp phù hợp đối với sự phát triển hiện nay. Nó đã làm giảm bớt rất nhiều công sức của các nhà quản lý trong việc xử lý thông tin một cách nhanh chóng và chính xác.
Vì vậy các nhà đầu tư mong muốn có một hệ thống đảm bảo: - Qui trình quản lý đạt chuẩn GPP. - Hệ thống chạy ổn định và chính xác - Các báo cáo và thống kê được lặp hàng ngày và có sự kiểm tra chéo với các dữ liệu để có sự thống nhất và chính xác. Từ những vấn đề nêu trên đã khiến cho những nhà phân tích, nhà lập trình đi sâu nghiên cứu tạo ra phần mềm để nhằm quản lý nhà thuốc được logic và dễ dàng hơn. Qua việc khảo sát thực tế với tình trạng như trên, tôi đã chọn đề tài xây dựng phần mềm quản lý cửa hàng bán thuốc, với mong muốn đem những hiểu biết đã được học vận dụng vào thực tế, góp một phần nhỏ trong việc giải quyết các vấn đề khó khăn trong công tác quản lý nhà thuốc.
Hệ thống quản lý nhà thuốc sẽ giúp cho việc lưu trữ thông tin với lượng dữ liệu lớn và an toàn, giúp cho các hoạt động cơ bản của nhà thuốc được dễ dàng như việc nhập thuốc từ nhà cung cấp cũng như bán thuốc cho bệnh nhân, tạo sự dễ dàng và chính xác trong việc thống kê lãi lỗ hàng tháng và thanh lý các thuốc đã hết hạn dùng, giúp người thầy thuốc an tâm trong quá trình bán thuốc cho bệnh nhân. Bố cục luận văn gồm những phần chính sau: • Chường 1 : Tổng quan. • Chương 2 : Cơ sở lý thuyết. • Chương 3 : Nội dung và kết quả nghiên cứu.
• Kết luận và kiến nghị. 2 Đề tài: Xây dựng phần mềm quản lý cửa hàng bán thuốc CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.Net hỗ trợ tích hợp ngôn ngữ, tức là ta có thể kế thừa các lớp, bắt các biệt lệ, đa hình thông qua nhiều ngôn ngữ.NET Framework thực hiện được việc này nhờ vào đặc tả Common Type System - CTS (hệ thống kiểu chung) mà tất cả các thành phần .Net đều tuân theo. Ví dụ, mọi thứ trong .Net đều là đối tượng, thừa kế từ lớp gốc System.Net còn bao gồm Common Language Specification - CLS (đặc tả ngôn ngữ chung). Nó cung cấp các qui tắc cơ bản mà ngôn ngữ muốn tích hợp phải thỏa mãn.
CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ hỗ trợ. Trình biên dịch tuân theo CLS sẽ tạo các đối tượng có thể tương hợp với các đối tượng khác. Bộ thư viện lớp của khung ứng dụng (Framework Class Library - FCL) có thể được dung bởi bất kỳ ngôn ngữ nào tuân theo CLS.NET Framework nằm ở tầng trên của hệ điều hành (bất kỳ hệ điều hành nào không chỉ là Windows).NET Framework bao bao gồm: • Bốn ngôn ngữ chính thức: C#, VB.Net, C++, và Jscript.NET • Common Language Runtime - CLR, nền tảng hướng đối tượng cho phát triển ứng dụng Windows và web mà các ngôn ngữ có thể chia sẻ sử dụng. • Bộ thư viện Framework Class Library - FCL.
Ngôn ngữ C# C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khoá và hơn mười kiểu dữ liệu dựng sẵn, nhưng C# có tính diễn đạt cao. C# hỗ trợ lập trình có cấu trúc, hướng đối tượng, hướng thành phần (component oriented). Trọng tâm của ngôn ngữ hướng đối tượng là lớp. Lớp định nghĩa kiểu dữ liệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết.
C# có những từ khoá 3 Đề tài: Xây dựng phần mềm quản lý cửa hàng bán thuốc dành cho việc khai báo lớp, phương thức, thuộc tính (property) mới. C# hỗ trợ đầy đủ khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình. Định nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin cài đặt như C++. Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực tiếp trong tập tin mã nguồn.
Đến khi biên dịch sẽ tạo tập tin sưu liệu theo định dạng XML. C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java). Một lớp chỉ có thể kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiều giao diện. C# có kiểu cấu trúc, struct (không giống C++).
Cấu trúc là kiểu hạng nhẹ và bị giới hạn.Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể cài đặt giao diện. C# cung cấp những đặc trưng lập trình hướng thành phần như property, sự kiện và dẫn hướng khai báo (được gọi là attribute). Lập trình hướng component được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata). Siêu dữ liệu mô tả các lớp bao gồm các phương thức và thuộc tính, các thông tin bảo mật ….
Assembly là một tập hợp các tập tin mà theo cách nhìn của lập trình viên là các thư viện liên kết động (DLL) hay tập tin thực thi (EXE).NET một assembly là một đơn vị của việc tái sử dụng, xác định phiên bản, bảo mật, và phân phối. CLR cung cấp một số các lớp để thao tác với assembly. C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng mã đó được xem như không an toàn. CLR sẽ không thực thi việc thu dọn rác tự động các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giải phóng.
Những cơ sở của ngôn ngữ c# a.Các kiểu dữ liệu 4 Đề tài: Xây dựng phần mềm quản lý cửa hàng bán thuốc Hình 1 : Các kiểu dữ liệu b. Biến và hằng o Khởi tạo trước khi dùng Trong C#, trước khi dùng một biến thì biến đó phải được khởi tạo nếu không trình biên dịch sẽ báo lỗi khi biên dịch. Ta có thể khai báo biến trước, sau đó khởi tạo và sử dụng; hay khai báo biến và khởi gán trong lúc khai báo. int x; // khai báo biến trước x = 5; // sau đó khởi gán giá trị và sử dụng int y = x; // khai báo và khởi gán cùng lúc o Hằng Hằng là một biến nhưng giá trị không thay đổi theo thời gian.
const int HANG_SO = 100; o Kiểu liệt kê Enum là một cách thức để đặt tên cho các trị nguyên (các trị kiểu số nguyên, theo nghĩa nào đó tương tự như tập các hằng), làm cho chương trình rõ ràng, dễ hiểu hơn. Enum không có hàm thành viên. 5 Đề tài: Xây dựng phần mềm quản lý cửa hàng bán thuốc Ví dụ tạo một enum tên là Ngay như sau: enum Ngay {Hai, Ba, Tu, Nam, Sau, Bay, ChuNhat}; Theo cách khai báo này enum ngày có bảy giá trị nguyên đi từ 0 = Hai, 1 = Ba, 2 = Tư … 7 = ChuNhat. Biểu thức Bất kỳ câu lệnh định lượng giá trị được gọi là một biểu thức (expression).
Phép gán sau cũng được gọi là một biểu thức vì nó định lượng giá trị được gán (là 32) x = 32; vì vậy phép gán trên có thể được gán một lần nữa như sau y = x = 32; Sau lệnh này y có giá trị của biểu thức x = 32 và vì vậy y = 32. Câu lệnh o Các lệnh rẽ nhánh không điều kiện Có hai loại câu lệnh rẽ nhánh không điều kiện. Một là lệnh gọi phương thức: khi trình biên dịch thấy có lời gọi phương thức nó sẽ tạm dừng phương thức hiện hành và nhảy đến phương thức được gọi cho đến hết phương thức này sẽ trở về phương thức cũ. Cách thứ hai để tạo các câu lệnh rẽ nhánh không điều kiện là dùng từ khoá: goto, break, continue, return, hay throw.
o Lệnh rẽ nhánh có điều kiện Lệnh If .