Mục tiêu của chương trình: Chương trình Thống kê Dữ liệu hướng đến mục tiêu cung cấp cho người dùng một công cụ đơn giản, miễn phí và dễ sử dụng để phân tích dữ liệu.. Chương trình có cá
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Họ và Tên: Nguyễn Việt Bách
Mã Sinh Viên: 23021218
Họ và Tên: Vũ Minh Duẩn
Mã Sinh Viên: 23021226
BÁO CÁO BÀI TẬP LỚN MÔN NHẬP MÔN LẬP TRÌNH
Giảng Viên: TS.Trần Thanh Hải Lớp: K68M1
Mã học phần: INT1008 20
Trang 2MỤC LỤC
PHẦN I: MỞ ĐẦU 3
1 Đặt vấn đề 3
2 Giới thiệu về chương trình 3
3 Giới thiệu về ngôn ngữ C++ 3
4 Mục tiêu của chương trình 4
5 Cấu trúc nội dung 4
6 Ứng dụng của chương trình 5
PHẦN II: CHƯƠNG TRÌNH 6
1 Sơ đồ khối 6
2 Các thư viện được sử dụng trong chương trình 7
3 Các hàm được sử dụng trong chương trình 7
PHẦN III: HƯỚNG DẪN SỬ DỤNG 9
1 Hướng dẫn cài đặt chương trình 9
2 Hướng dẫn sử dụng chương trình 9
PHẦN IV: ĐỊNH HƯỚNG PHÁT TRIỂN 13
1 Kết luận chung về dự án 13
2 Hướng đi phát triển trong tương lai 13
Trang 3PHẦN I: MỞ ĐẦU
*******************
1 Đặt vấn đề:
Dữ liệu đóng vai trò quan trọng trong nhiều lĩnh vực, từ khoa học, kinh doanh đến giáo dục và đời sống hang ngày Việc thu nhập và lưu trữ dữ liệu ngày càng dễ dàng hơn, dẫn đến việc sử dụng nhiều công cụ hỗ trợ phân tích dữ liệu ngày càng tăng cao Tuy nhiên, có nhiều công cụ lúc nào cũng hiệu quả như phần mềm thống kê chuyên dụng thường có giá thành cao và đòi hỏi kiến thức chuyên môn, không phù hợp với người dung hay phần mềm Excel vẫn còn hạn chế về khả năng thống kê, phân tích chuyên sâu còn hạn chế, …
2 Giới thiệu về chương trình:
Xuất phát từ những hạn chế trên, nhu cầu về một công cụ phân tích dữ liệu đơn giản, miễn phí, dễ sử dụng và đáp ứng nhu cầu phổ biến của người dùng là rất lớn Chương trình Thống kê Dữ liệu được xây dựng nhằm đáp ứng nhu cầu này
3 Giới thiệu về ngôn ngữ C++
a Lịch sử ra đời:
- Được phát triển bởi Bjarne Stroustrup từ cuối thập niên 1970.
- Là phiên bản mở rộng của ngôn ngữ C, kết hợp các tính năng của C với lập trình
hướng đối tượng
b Đặc điểm:
- Ngôn ngữ bậc trung: Kết hợp tính năng của ngôn ngữ bậc cao và bậc thấp.
- Có tính đa hướng: Hỗ trợ lập trình cấu trúc, hướng đối tượng và lập trình tổng
quát
- Hiệu quả: Cung cấp khả năng quản lý bộ nhớ cấp thấp và tối ưu hóa hiệu suất.
- Dễ sử dụng: Cấu trúc cú pháp đơn giản, dễ học và dễ sử dụng.
Trang 4- Phổ biến: Được sử dụng rộng rãi trong nhiều lĩnh vực như lập trình hệ thống,
game, ứng dụng nhúng, …
c Lợi ích và hạn chế:
- Lợi ích:
o Hiệu quả và mạnh mẽ
o Dễ sử dụng và linh hoạt
o Phổ biến và có nhiều thư việ hỗ trợ.
o Cộng đồng lập trình lướn và hoạt động tích cực.
- Hạn chế:
o Quản lý bộ nhớ thủ công có thể dẫn đến lỗi nếu không cẩn thận
o Cú pháp phức tạp hơn so với các ngôn ngữ lập trình bậc cao khác
o Khả năng thug om rác tự động hạn chế
4 Mục tiêu của chương trình:
Chương trình Thống kê Dữ liệu hướng đến mục tiêu cung cấp cho người dùng một công cụ đơn giản, miễn phí và dễ sử dụng để phân tích dữ liệu Chương trình có các tính năng sau:
Nhập dữ liệu đơn giản: Dữ liệu được nhập theo dạng bảng, bao gồm giá trị
và tần số của từng giá trị
Tính toán thống kê cơ bản: Chương trình tính toán các thống kê mô tả cơ
bản như trung bình, phương sai, độ lệch chuẩn, các tứ phân vị (Q1, Q2, Q3)
và tìm mốt của dữ liệu
Hiển thị dữ liệu trực quan: Dữ liệu được hiển thị dưới dạng bảng và biểu
đồ (đường, hình quạt) giúp người dùng dễ dàng hình dung và so sánh dữ liệu
5 Cấu trúc nội dung:
Chương trình Thống kê Dữ liệu được chia thành các phần:
Trang 5a Khai báo thư viện: iostream, vector, algorithm, ….
b Khai báo biến:
Khai báo các biến để lưu trữ dữ liệu đầu vào, kết quả tính toán và các thông tin khác
c Hàm nhập dữ liệu:
Cho phép người dùng nhập dữ liệu theo dạng bảng, bao gồm giá trị và tần số của từng giá trị Hàm này có thể sử dụng các vòng lặp và thao tác với mảng hoặc vecto để lưu trữ dữ liệu
d Hàm tính toán thống kê:
Thực hiện các phép tính thống kê như tính trung bình, phương sai, độ lệch chuẩn, các tứ phân vị (Q1, Q2, Q3) và tìm mốt của dữ liệu Hàm này có thể sử dụng các công thức thống kê và các hàm hỗ trợ trong thư viện algorithm
e Hàm hiển thị dữ liệu:
Hiển thị dữ liệu dưới dạng bảng và biểu đồ (đường, hình quạt) bằng cách
sử dụng các hàm in ra màn hình và các thư viện đồ thị như matplotlib (cho Python) hoặc Qt (cho C++)
f Hàm chính (main):
Điều khiển các hàm của chương trình, bao gồm gọi các hàm nhập dữ liệu, tính toán thống kê và hiển thị dữ liệu
g Kết thúc chương trình
6 Ứng dụng của chương trình:
Chương trình Thống kê Dữ liệu có thể được ứng dụng trong nhiều lĩnh vực như:
Nghiên cứu khoa học: Phân tích dữ liệu thí nghiệm, khảo sát, …
Kinh doanh: Phân tích dữ liệu bán hang, thị trường, khách hàng, …
Giáo dục: Phân tích dữ liệu điểm thi, kết quả học tập, …
Quản lý: Phân tích dữ liệu hiệu suất hoạt động, nguồn nhân lực, …
Trang 6PHẦN II: CHƯƠNG TRÌNH
*******************
1 Sơ đồ khối
Trang 72 Các thư viện được sử dụng trong chương trình
Trang 8- iostream: Thư viện nhập xuất chuẩn của C++.
- vector: sử dụng để lưu trữ một chuỗi các phần tử cùng kiểu dữ liệu.
- cmath: thư viện cung cấp các hàm tính toán như “pow” (lũy thừa) và “sqrt”
(căn bậc hai)
- algorithm: để sử dụng các hàm thuật toán như “sort” và “max_element”.
- Windows.h, graphics.h, conio.h, dos.h: các thư viện này được sử dụng để
lập trình giao diện đồ họa và xử lí sự kiện trong hệ điều hành
- Stdlib.h, studio.h, math.h: cung cấp các hàm tiện ích và hàm toán học cơ
bản
3 Các hàm được sử dụng trong chương trình
3.1 Các hàm trong chương trình:
- void TextColor (int x): hàm này thiết lập màu chữ cho console.
- void gotoxy (int x, int y): di chuyển con trỏ đến vị trí cụ thể (x, y) trên
màn hình console
- void MoveConsoleWindow(int x, int y): Di chuyển cửa sổ Console đến
tọa độ x, y
- void MoveGraphicsWindow(intx, int y) : Di chuyển cửa số đồ họa
Graphics đến tọa độ x, y
- void DisableResizeWindow: Khóa kéo giãn cửa sổ Console
- Pause(“”): Thay thế lệnh system(“PAUSE”) để khi chạy chương trình
không xuất hiện dòng chữ “Press any key to continue ”
- void tinhTrungBinh: hàm này tính toán trung bình của các giá trị trong
vector
- void tinhPhuongSai: hàm này tính toán phương sai của các giá trị trong
vector
- void tinhDoLechChuan: hàm này tính toán độ lệch chuẩn của các giá trị
trong vector
Trang 9- void tinhTuPhanVi: hàm này tính toán các tứ phân vị (Q1, Q2, Q3) của dữ
liệu trong vector
- void sapxep: sắp xếp các phần tử trong vector theo thứ tự giảm dần.
- void timMod: tính và in ra giá trị Mode (giá trị xuất hiện nhiều nhất) của
dữ liệu
3.2 Các câu lệnh sử dụng trong đồ họa:
- initgraph(): khởi tạo đồ họa
- line(): vẽ đường thẳng
- rectangle(): vẽ hình chữ nhật
- circle(): vẽ hình tròn
- setcolor(): chọn màu chữ hoặc màu viền hình khối
- setfillstyle(): chọn màu và mẫu tô
- pieslice(): vẽ một phần của hình tròn (một mảnh bánh)
- bar(): vẽ hình chữ nhật đặc
- outtextxy(): in ra màn hình đồ họa một xâu kí tự
- ismouseclick(): trả về giá trị true/false khi nhận được thao tác từ chuột
- getmouseclick(): gán giá trị tọa độ thu được từ thao tác chuột vào tọa độ
(x,y)
- getch(): chờ người dùng nhấn một phím và trả về mã ASCII của phím đó.
- closegraph(): kết thúc chế độ đồ họa
PHẦN III: HƯỚNG DẪN SỬ DỤNG
Trang 101 Hướng dẫn cài đặt chương trình
Để sử dụng chương trình trước tiên các bạn hãy vào đường link rồi bấm vào chương trình và tải:
https://drive.google.com/drive/u/0/folders/1gJWVKzHbxztG0XE_Av-kTLSYehR_XYlx
2 Hướng dẫn sử dụng chương trình
Bước 1: Sau khi cài đặt và chạy, chương trình sẽ xuất hiện (hình 3.1)
Hình 3.1
Bước 2: Tiếp theo hãy nhấn Enter và nhập số lượng phần tử cùng giá trị và tần số (hình 3.2)
Trang 11Hình 3.2
Bước 3: Sau khi nhập xong chương trình sẽ hiện đông thời 2 cửa sổ: Bảng thống kê cùng các kết quả tính toán (hình 3.3), Chương trình đồ họa (hình 3.4) Ở chương trình đồ họa sẽ có 3 lựa chọn: Biểu đồ đường, Biểu đồ tròn, Thoát
Trang 12Hình 3.3 Hình 3.4
Nếu lựa chọn biểu đồ đường, chương trình sẽ hiện ra biểu đồ (hình 3.5), muốn chọn biểu đồ tròn để xem biểu đồ (hình 3.6) hay muốn thoát ra nhập lại thì nhấn Enter ở bàn phím
Hình 3.5 Hình 3.6
Muốn thoát ra để lập bảng thống kê mới thì nhấn 2 lần Enter và sẽ xuất hiện 2 lựa chọn Có hoặc Không (Hình 3.7) Nếu chọn Có chương trình sẽ quay trở lại bước 2 còn chọn Không thì kết thúc chương trình
Trang 13Hình 3.7
PHẦN IV: ĐỊNH HƯỚNG PHÁT TRIỂN
*******************
Trang 141 Kết luận chung về dự án
Sau khi hoàn thành xong “Chương trình Thống kê dữ liệu chung” em đã rút ra những kết luận sau
a Kết luận chung
Chương trình phân tích dữ liệu thống kê được xây dựng bằng C++ là một công cụ mạnh mẽ cho phép người dùng thực hiện các phép tính thống kê và biểu diễn dữ liệu dưới dạng đồ họa
Nó cung cấp nhiều chức năng như tính trung bình, phương sai, độ lệch chuẩn, các tứ phân vị và xác định mode
Chương trình cũng tích hợp các tính năng đồ họa để hiển thị biểu đồ đường
và biểu đồ tròn, giúp người dùng để dễ dàng trực quan hóa dữ liệu
b Những hạn chế
Giao diện chưa có nhiều yếu tố tương tác và hướng dẫn rõ rang cho người dùng
Chưa xử lí tốt các tình huống nhập sai hoặc dữ liệu không hợp lệ
Vẫn chưa tối ưu hóa các thuật toán
2 Hướng đi phát triển trong tương lai
Khắc phục được những hạn chế:
Cải thiện giao diện người dùng
Thêm các hướng dẫn và thông báo lỗi cụ thể để giúp người dùng dễ dàng xử
lí các tình huống nhập sai
Tối ưu hóa các thuật toán và sử dụng hiệu quả hơn các cấu trúc dữ liệu
Có thể thêm các tính năng như:
Bổ sung them các tính năng phân tích thống kê nâng cao như kiểm định giả thuyết, phân tích hồi quy, và các phương pháp thống kê hiện đại khác