Tên môn học: Kỹ thuật lập trìnhTên đồ án/ bài tập: Tính giá trị biểu thức Nhà đào tạo: Nguyễn Trung Thành https://www.facebook.com/thanh.it95 Họ tên người thực hiên: Vũ Đức Tài Email: vu
Trang 1Tên môn học: Kỹ thuật lập trình
Tên đồ án/ bài tập: Tính giá trị biểu thức
Nhà đào tạo: Nguyễn Trung Thành https://www.facebook.com/thanh.it95
Họ tên người thực hiên: Vũ Đức Tài
Email: vutaipro9x@gmail.com
Số điện thoại: 01672045786
Mục lục
1.Cấu trúc bài nộp
• Release
o Chứa file exe
• Source
o Chứa toàn bộ chương trình
o Chứa file báo cáo đồ án
2.Tóm tắt đề bài
Trang 1
Trang 2Viết chương trình máy tính bỏ túi đơn giản, cho phép người dùng tùy ý nhập vào biểu thức và chương trình sẽ tính kết quả
3.Đặc tả kỹ thuật
a.Các thành phần chia mã nguồn.
• Source.cpp: chứa toàn bộ source code của chương trình
o Hàm Docfile: đọc giao diện từ bộ nhớ ngoài vào bộ nhớ trong
o Hàm fillcolor và unfillcolor: tô màu và xóa màu tại cái phím của máy tính trên màn hình console
o Hàm Nhapstringx: nhập vào chuổi phép tính dưới dạng
STL:string
o Hàm Mucuutien: trả về độ ưu tiên của các toán tử
o Hàm kiểm tra toán hạng: kiểm tra kí tự đang xet là một toán hạng hay toán tử
o Hàm Xoakhoangtrang: xóa khoảng trắng trong chuổi phép tính được nhập vào
o Hàm Chuyen_tu_infix_postfix: chuyển chuổi phép tính nhập vào từ dạng infix sang dạng postfix
o Hàm Tính biểu thức: Tính biểu thức từ chuổi phép tính dưới dạng postfix
• Mylib.h: Thư viện gồm một số hàm hổ trợ
o Hàm gotoxy: di chuyễn con nháy đến vị trị tương ứng
o Hàm textcolor: tô màu khu vục màn hình được chọn
o Hàm wherex và wherey trả về vị trí hiện tại của con nháy
b.Các kỹ thuật, công nghệ,thư viện, thuật toán đã
sử dụng.
• Kỹ thuật
o Kỹ thuật chuyển một biểu thức dưới dạng infix sang postfix dựa trên ứng dụng của cấu trúc dữ liệu stack
o Kỹ thuật tính biểu thức dưới dạng postfix
Trang 2
Trang 3• Thư viện
o stack: sử dụng STL stack Sử dụng ứng dụng của stack để chuyển từ infix sang postfix
o string: sử dụng lớp string thay chuổi kí tự(char*) trong ngôn ngử c Sử dụng dễ dàng và các hàm thành viên hổ trợ quản lý chuổi
o vector: sử dụng STL vector Thay thế cho mảng tỉnh và mảng động thông thường Ưu điểm không cần kiểm soát vấn đề memory leak
o sstream: sử dụng hàm stringstream để chuyển đổi kiểu dữ liệu chuổi sang số và ngược lại
o iomanip: định dạng xuất ra màn hình
o math.h: sử dụng hàm pow(tính lũy thừa)
4.Các tính năng của chương trình.
4.1.Tính năng nhập biểu thức
• Tính năng hỗ trợ nhập và hiệu chỉnh chuỗi phép tính vào bộ nhớ
Trang 3
Trang 5• Tính năng tính toán các phép toán liên tục.
o Sau khi bấm enter để lấy kết quả của phép tính hiện tại bấm phím bất kì để thực hiện phép tính tiếp theo
Trang 5
Trang 6• Hỗ trợ 4 phép tính cơ bản +,-,*,/ và phép tính mũ Ngoài ra còn hỗ trợ số pi qua kí hiệu ”p” ở chuổi biểu thức
•
Trang 6
Trang 7• Hỗ trợ các phép tính với số thực dương với độ chính xác là 5
số sau dấu chấm
• Biểu thức chứa được khoảng trắng
Trang 7
Trang 84.2.Hạn chế của chương trình
• Code còn dỡ chưa thực sự tối ưu hóa
• Chưa kiểm tra được đầu vào chuổi biểu thưc Chương trình chỉ chạy đúng khi biêu thức nhập vào hợp lệ
• Chưa hỗ trợ phép tính với số âm
• Hiệu chỉnh biểu thức chưa chính xác khi độ dài của phép tính quá
30 kí tự
5 Cảm nhận sau khi làm đồ án/bài tập
Sau khi làm đồ án em nhận ra sự kém cỏi của bản thân Chưa vận dụng được hết kiến thức đã học vào đồ án của mình Đồ án của em thật sự thất bại nó quá tệ Vì một số lí do cá nhân em đả không chú tâm làm đồ
án để kéo dài thời gian làm trong 1 tuần đáng nhẽ ra đối với mức độ bài nộp của em chỉ trong vòng 2 ngày Em không có đam mê vào ngành em đang học đó là một bất lợi lớn Nhưng em sẻ cố gắng học để sau này có
cơ hội đi làm kiếm tiền trên con đường em đả chọn
6 Nguồn tham khảo
• Tham khảo cách chuyển từ infix sang postfix và cách tính biểu thức postfix Bên dưới là link đến các bài viết tham khảo
o Link: https://goo.gl/dt6Rsu
o Link: https://goo.gl/aXWrrA
Cám ơn bạn đã xem báo cáo chương trình của tôi Mọi góp ý xin vui lòng gửi qua gmail.
vutaipro9x@gmail.com
Trang 8