CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Ngôn ngữ lập trình C# 1. C# là gì? C# (hay C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm 2000. C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.
Trong các ứng dụng Windows truyền thống, mã nguồn chương trình được biên dịch trực tiếp thành mã thực thi của hệ điều hành. Trong các ứng dụng sử dụng .NET Framework, mã nguồn chương trình (C#, VB.NET) được biên dịch thành mã ngôn ngữ trung gian MSIL (Microsoft intermediate language). Sau đó mã này được biên dịch bởi Common Language Runtime (CLR) để trở thành mã thực thi của hệ điều hành. Hình bên dưới thể hiện quá trình chuyển đổi MSIL code thành native code.
C# là gì C# với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), phát triển game, ứng dụng Web, ứng dụng Mobile trở nên rất dễ dàng. Đặc trưng của ngôn ngữ lập trình C# • C# là ngôn ngữ đơn giản C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và c++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class). Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu chúng ta thân thiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ 4 ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn.
• C# là ngôn ngữ hiện đại Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính trên. Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu. Tuy nhiên, cũng đừng lo lắng chúng ta sẽ dần dần được tìm hiểu những đặc tính qua các nội dung khoá học này.
• C# là một ngôn ngữ lập trình thuần hướng đối tượng Lập trình hướng đối tượng (OOP: Object-oriented programming) là một phương pháp lập trình có 4 tính chất. Đó là tính trừu tượng (abstraction), tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance). C# hỗ trợ cho chúng ta tất cả những đặc tính trên. • C# là một ngôn ngữ ít từ khóa C# là ngôn ngữ sử dụng giới hạn những từ khóa.
Phần lớn các từ khóa được sử dụng để mô tả thông tin. Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì sẽ mạnh hơn. Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#, chúng ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào. Ưu điểm của ngôn ngữ lập trình C# • Dễ học hơn c++ • Dễ đọc mã hơn c++ • Phát triển nhanh hơn và có khả năng ít lỗi hơn so với c++ hoặc java (bạn có các loại không dấu, bạn có ref/out, bạn có thể tạo các loại giá trị của riêng mình, bạn có những thứ hữu ích khác mà java bỏ qua có nghĩa là bạn ít nhảy qua vòng có nghĩa là độ phức tạp mã ít cần thiết hơn).
• Tất cả mọi thứ được truyền bằng tham chiếu ngoại trừ các loại giá trị, theo mặc định • Công cụ thu gom rác dọn dẹp đồ vật một khi chúng không còn được sử dụng, vì vậy bạn không phải tự mình theo dõi mọi thứ • Chương trình được biên dịch thành các nhị phân riêng được tối ưu hóa cho nền tảng khi nó được chạy (và nó chạy chậm hơn một chút so với mã c++). • Dễ dàng tạo nhiều chủ đề • Có nhiều phương tiện tạm dừng các luồng để chờ tín hiệu và như vậy • lock (someObject) {code}, giống như java được đồng bộ hóa nhưng có thể được sử dụng ở bất cứ đâu và yêu cầu một đối tượng. • Gọi dễ sử dụng hơn JNI rất nhiều - nhưng có lẽ chúng tôi sẽ không sử dụng nó vì chúng tôi muốn trở thành đa nền tảng • Có một IDE miễn phí tuyệt vời (visual studio) - nhưng chỉ trên windows. • Bạn có thể tạo các loại giá trị, theo mặc định là truyền theo giá trị thay vì truyền bằng tham chiếu, bằng cách tạo cấu trúc thay vì một lớp.
6 • Bạn có các từ khóa 'ref' và 'out' cho phép bạn chuyển tham chiếu đến tham số cho hàm, với ý nghĩa là tham số đó phải được gán bởi hàm trước khi trả về. Về cơ bản, ref/out cho phép hàm sửa đổi biến được truyền dưới dạng tham số, giống như chuyển tham chiếu trong c++. • Đa nền tảng với mono nhưng mono vẫn đang được cải thiện • Có số nguyên không dấu (c++, java không) • Nếu chương trình gặp sự cố, nó sẽ bật lên một hộp thoại cho người dùng biết mã ở đâu và tại sao (trên windows) hoặc ghi dấu vết ngăn xếp vào bàn điều khiển (với mono nếu chạy với --debug). • Các chương trình được biên dịch thành các tệp .exe và không cần phải biên dịch lại cho các HĐH khác - mono có thể chạy trực tiếp exes.
Ứng dụng của ngôn ngữ lập trình C# • Phát triển trang web Ngôn ngữ lập trình C# được sử dụng để triển khai các trang web động đầy đủ các tính năng nâng cao dựa trên nền tảng .NET hay phần mềm mã nguồn mở. Các trang web được xây dựng trên ngôn ngữ lập trình hướng đối tượng nên nó hoạt động rất hiệu quả, dễ dàng mở rộng và bảo trì. • Phát triển ứng dụng Windows Ngôn ngữ lập trình C# được sử dụng phổ biến với mục đích phát triển các ứng dụng Microsoft trên máy tính để bàn. Ngoài ra, C# yêu cầu khung Windows 7 .NET để có thể hoạt động tốt nhất và phát triển các ứng dụng hay chương trình cụ thể cho các kiến trúc nền tảng Microsoft.
• Phát triển Game Ngôn ngữ lập trình C# là một lựa chọn hoàn hảo cho các trình game phổ biến nhất hiện nay như Rimworld trên Unity Game Engine. Trong đó, Unity là một công cụ giải trí với hơn một phần ba trò chơi phổ biến nhất trong ngành đã được tạo ra. Công cụ Unity tích hợp với C# có thể sử dụng trên hầu hết mọi thiết bị di động hoặc bảng điều khiển hiện đại thông qua công nghệ đa nền tảng như Xamarin. Một số chương trình và ứng dụng được viết bằng ngôn ngữ lập trình C# như Windows Installer XML, Microsoft Visual Studio, Paint.NET, KeePass, FlashDevelop, Banshee, NMath, Pinta và OpenRA.
Quá trình dịch của C# Người ta thường gọi C# là ngôn ngữ biên dịch bởi khi được buil thì nó là trình biên dịch, trình này sẽ thực hiện chuyển đạn C# thành một trong những ngôn ngữ trung gian. C# được gọi là Microsoft Intermediate Language (MSIL) và được lưu dưới dạng một file theo thiên hướng thực thi (exe). Quá trình dịch của C# Nếu như chạy file thực thi thì .NET Framework sẽ được gọi là Just In Time Compiler để thực hiện chuyển MSIL code trở thành ngôn ngữ của máy rồi thực hiện chương trình. Loại ngôn ngữ trung gian này thường giống với các loại ngôn ngữ máy nên bạn có thể dịch nó ra rất nhanh.
Hệ quản trị cơ sở dữ liệu SQL Server 1. Khái niệm SQL Server có khả năng cung cấp đầy đủ các công cụ cho việc quản lý từ giao diện GUI đến sử dụng ngôn ngữ cho việc truy vấn SQL. Điểm mạnh của SQL điểm mạnh của nó là có nhiều nền tảng được kết hợp cùng như: ASP.NET, C# để xây dựng Winform cũng chính nó có khả năng hoạt động độc lập. Tuy nhiên, SQL Server thường đi kèm với việc thực hiện riêng các ngôn ngữ SQL, T- SQL,.
9 Cụ thể như sau: • T-SQL là một trong những loại ngôn ngữ thuộc quyền sở hữu của Microsoft và được gọi với cái tên Transact-SQL. Nó thường cung cấp thêm rất nhiều cho các khả năng khai báo biến, thủ tục lưu trữ và xử lý ngoại lệ,. • SQL Server Management Studio là một loại công cụ giao diện chính cho máy chủ cơ sở của chính dữ liệu SQL, thông thường thì nó hỗ trợ cho cả môi trường 64 bit và 32 bit. Các tính năng • Giúp lưu trữ dữ liệu bền vững, không bị mất dữ liệu.
• Cho phép tạo và lưu trữ dữ liệu với dung lượng lớn. • Cung cấp khả năng sử dụng SSAS để phân tích dữ liệu. • Khả năng bảo mật dữ liệu cao. • Hỗ trợ tạo báo báo bằng SSRS-SQL dễ dàng.
• Thực hiện các quá trình bằng SSIS-SQL. 10 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2. Khảo sát hệ thống Từ thực tế khảo sát các cửa hàng bán thuốc trên thị trường cho thấy, trung bình mỗi ngày, bộ phận bán thuốc phải xử lý hàng trăm đơn thuốc. Do đó, tốc độ truy xuất dữ liệu phải đủ nhanh để đáp ứng tốt được các yêu cầu thanh toán nhanh chóng cho khách hàng.
Vì hệ thống chủ nhà thuốc chỉ yêu cầu quản lý xuất thuốc nên hệ thống có thể chia thành 2 quy trình nghiệp vụ chính: • Quản lý xuất thuốc • Quản lý tài chính Xuất thuốc: • Theo thể thức khách hàng trao tiền và nhận hàng trực tiếp từ quầy thuốc. • Các yếu tố được kiểm tra trước khi xuất: − Số lượng, chất lượng, loại thuốc − Các thông số kỹ thuật của sản phẩm − Các chú ý, đặc điểm của sản phẩm − Hoàn thiện các giấy tờ đi kèm theo sản phẩm Quản lý tài chính: • Xử lý các hóa đơn mua thuốc của khách: lập biên lai thu tiền. Lưu trữ các hóa đơn mua hàng. • Thực hiện tổng hợp hằng tháng, lập báo cáo thu chi cho quản lý.
Phân tích chức năng 2. Usecase Hình 2. Class Hình 2. Biểu đồ tuần tự Hình 2.
Sơ đồ tuần tự usecase đăng nhập Hình 2. Sơ đồ tuần tự usecase đăng xuất 13 Hình 2. Sơ đồ tuần tự usecase thoát Hình 2. Sơ đồ tuần tự usecase đổi mật khẩu 14 Hình 2.
Sơ đồ tuần tự usecase tìm kiếm Hình 2. Sơ đồ tuần tự usecase thêm nhân viên 15 Hình 2. Sơ đồ tuần tự usecase cập nhập nhân viên Hình 2. Sơ đồ tuần tự usecase xóa nhân viên 16 Hình 2.
Sơ đồ tuần tự usecase thanh toán Hình 2. Sơ đồ tuần tự usecase thống kê 17 2. Biểu đồ cộng tác Hình 2.