1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT

36 1,8K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 2,42 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

MỤC LỤC MỤC LỤC 2 LỜI NÓI ĐẦU 3 PHÂN CÔNG THÀNH VIÊN TRONG NHÓM 4 CHƯƠNG 1. PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ GIẢI PHÁP 5 1.1. Mô tả yêu cầu bài toán 5 1.2. Biểu đồ IPO 6 1.2.1. Khởi tạo phiên làm việc mới: 6 1.2.2. Gán giá trị cho mảng 6 1.2.3. Sắp xếp 6 1.2.4. Tìm giá trị lớn nhất 6 1.2.5. Tìm giá trị nhỏ nhất 6 1.2.6. Tìm giá trị trung bình của mảng 7 1.2.7. Tìm độ lêch giữa 2 phần tử trong mảng 7 1.2.8. Tính độ lệch trung bình của các phần tử trong mảng 7 1.2.9. Tìm kiếm 7 1.2.10. Biểu diễn theo dạng BigO, hiển thị thời gian tính theo thực tế 7 1.2.11. Hiển thị dữ liệu 8 1.2.12. Thoát 8 1.3. Thiết kế chương trình 9 1.4. Thiết kế dữ liệu 9 1.5. Thiết kế giải thuật 12 1.5.1. Giải thuật: Cấp phát động bộ nhớ 12 1.5.2. Giải thuật: Đưa ra độ phức tạp và thời gian tính toán thực tế 12 CHƯƠNG 2. CÀI ĐẶT CHƯƠNG TRÌNH 13 2.1. Các kỹ thuật lập trình đã áp dụng 13 2.2. Kết quả chương trình 16 2.3. Giao diện chương trình 17 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 19 TÀI LIỆU THAM KHẢO 20 PHỤ LỤC 21 LỜI NÓI ĐẦU Một chương trình tốt là chương trình chạy thông, kiểm soát các lỗi tốt, phòng ngừa, bẫy lỗi hiệu quả, dễ dàng và thân thiện với người dùng đồng thời mã nguồn có khả năng tái sử dụng cao, … Đó chỉ là một trong số những phần rất nhỏ mà chúng em học được từ môn Kỹ thuật lập trình. Để cho ra đời một chương trình, sản phẩm phần mềm cần có nhiều qui trình và vòng đời đan xen nhau từ khâu phân tích, thiết kế chương trình, lập trình, kiểm thử, viết tài liệu, … Trong mỗi khâu lại chia ra thành các công đoạn nhỏ đòi hỏi lập trình viên phải tuân thủ. Thông qua bài tập lớn môn Kỹ thuật lập trình, chúng em không những được tìm hiểu sâu hơn về mặt lý thuyết mà còn được trực tiếp vận dụng những kiến thức đã được học trên lớp, những kiến thức đọc nâng cao vào trong một ứng dụng thực tế. Chúng em xin gửi lời cảm ơn chân thành tới cô Vũ Thị Thanh Giang, trong quá trình học trên lớp cũng như làm bài tập lớn, cô đã cung cấp cho chúng em những kiến thức và kỹ năng cơ bản đồng thời có những hướng dẫn và định hướng giúp chúng em hoàn thành bài tập lớn này. PHÂN CÔNG THÀNH VIÊN TRONG NHÓM STT Thành viên Công việc 1 Bùi Đình Cường Phân công công việc Viết template cho class (Thiết kế dữ liệu) Xây dựng phương thức nhập dữ liệu Xây dựng module tìm kiếm (tuần tự + nhị phân) Đễ xuất giải thuật tính toán thời gian thực tế, giải thuật cấp phát động Tổng hợp báo cáo 2 Lại Ngọc Ánh Tính toán giá trị trung bình trong ADT Độ phức tạp và thời gian tính toán thực tế Viết hướng dẫn sử dụng 3 Lê Đình Cường Tính toán độ lệch giữa hai phần tử trong ADT Tính toán độ lệch toàn bộ ADT 4 Phạm Thành Công Tìm kiếm giá trị cực đại và vị trí giá trị đó trong ADT Tìm kiếm giá trị cực tiểu và vị trí giá trị đó trong ADT

Trang 1

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

──────── * ───────

BÀI TẬP LỚN

MÔN: KỸ THUẬT LẬP TRÌNH

Đề tài:

Thao tác trên ADT

Sinh viên thực hiện: Bùi Đình Cường

Lại Ngọc Ánh Phạm Thành Công Nguyễn Văn Quang

Trang 2

MỤC LỤC

MỤC LỤC 2

LỜI NÓI ĐẦU 3

PHÂN CÔNG THÀNH VIÊN TRONG NHÓM 4

CHƯƠNG 1 PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ GIẢI PHÁP 5

1.1 Mô tả yêu cầu bài toán 5

1.2 Biểu đồ IPO 6

1.2.1 Khởi tạo phiên làm việc mới: 6

1.2.2 Gán giá trị cho mảng 6

1.2.3 Sắp xếp 6

1.2.4 Tìm giá trị lớn nhất 6

1.2.5 Tìm giá trị nhỏ nhất 6

1.2.6 Tìm giá trị trung bình của mảng 7

1.2.7 Tìm độ lêch giữa 2 phần tử trong mảng 7

1.2.8 Tính độ lệch trung bình của các phần tử trong mảng 7

1.2.9 Tìm kiếm 7

1.2.10 Biểu diễn theo dạng Big-O, hiển thị thời gian tính theo thực tế 7

1.2.11 Hiển thị dữ liệu 8

1.2.12 Thoát 8

1.3 Thiết kế chương trình 9

1.4 Thiết kế dữ liệu 9

1.5 Thiết kế giải thuật 12

1.5.1 Giải thuật: Cấp phát động bộ nhớ 12

1.5.2 Giải thuật: Đưa ra độ phức tạp và thời gian tính toán thực tế 12

CHƯƠNG 2 CÀI ĐẶT CHƯƠNG TRÌNH 13

2.1 Các kỹ thuật lập trình đã áp dụng 13

2.2 Kết quả chương trình 16

2.3 Giao diện chương trình 17

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 19

TÀI LIỆU THAM KHẢO 20

PHỤ LỤC 21

Trang 3

LỜI NÓI ĐẦU

Một chương trình tốt là chương trình chạy thông, kiểm soát các lỗi tốt, phòng ngừa, bẫy lỗi hiệu quả, dễ dàng và thân thiện với người dùng đồng thời

mã nguồn có khả năng tái sử dụng cao, …

Đó chỉ là một trong số những phần rất nhỏ mà chúng em học được từ môn

Kỹ thuật lập trình Để cho ra đời một chương trình, sản phẩm phần mềm cần

có nhiều qui trình và vòng đời đan xen nhau từ khâu phân tích, thiết kế

chương trình, lập trình, kiểm thử, viết tài liệu, … Trong mỗi khâu lại chia ra thành các công đoạn nhỏ đòi hỏi lập trình viên phải tuân thủ

Thông qua bài tập lớn môn Kỹ thuật lập trình, chúng em không những được tìm hiểu sâu hơn về mặt lý thuyết mà còn được trực tiếp vận dụng

những kiến thức đã được học trên lớp, những kiến thức đọc nâng cao vào trong một ứng dụng thực tế

Chúng em xin gửi lời cảm ơn chân thành tới cô Vũ Thị Thanh Giang, trong quá trình học trên lớp cũng như làm bài tập lớn, cô đã cung cấp cho chúng emnhững kiến thức và kỹ năng cơ bản đồng thời có những hướng dẫn và định hướng giúp chúng em hoàn thành bài tập lớn này

Trang 4

PHÂN CÔNG THÀNH VIÊN TRONG NHÓM

- Viết template cho class (Thiết kế dữ liệu)

- Xây dựng phương thức nhập dữ liệu

- Xây dựng module tìm kiếm (tuần tự + nhị phân)

- Đễ xuất giải thuật tính toán thời gian thực tế, giải thuật cấp phát động

- Tính toán độ lệch toàn bộ ADT

4 Phạm Thành Công - Tìm kiếm giá trị cực đại và vị trí giá

- Thiết kế IPO cho module được giao

- Liệt kê các kỹ thuật lập trình đã sử dụng

- Kiểm thử, debug lỗi cho các thành viên khác

Trang 5

PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ GIẢI PHÁP

1.1 Mô tả yêu cầu bài toán

Bài tập lớn có mục tiêu ôn tập lại toàn bộ kiến thức đã học trong môn Kỹ thuật lập trình Bài tập lớn giúp sinh viên ôn tập và vận dụng các kiến thức đã học từ bước thiết kế chương trình, thiết kế dữ liệu, mô tả giải thuật tới các kỹ năng viết mã nguồn chương trình, debug bắt lỗi chương trình, kiểm thử

Bài tập lớn giúp sinh viên tiếp cận một kiểu dữ liệu mới, kiểu dữ liệu trừu tượng Kiểu dữ liệu có cả các thuộc tính và phương thức Ngoài ra, bài tập lớngiúp học sinh ôn lại kiến thức liên quan tới các thuật toán cơ bản: sắp xếp, tìmkiếm, …

Yêu cầu cụ thể của bài toán:

- Sử dụng tất cả các kỹ thuật đã được học trong môn Kỹ thuật lập trình

- Tạo một ADT: Array có thuộc tính là mảng các số thực và số lượng phần tử của mảng đó

- Thực hiện các thao tác trên mảng này:

o Khởi tạo một phiên bản mới của chính nó

o Gán giá trị cho các thành phần thông tin của một đối tương Array

o Sắp xếp các phần tử của mảng theo giải thuật bubble sort

o Sắp xếp các phần tử của mảng theo giải thuật insertion sort

o Sắp xếp các phần tử của mảng theo giải thuật selection sort

o Tìm giá trị lớn nhất được lưu trữ trong mảng và vị trí của các phần tử có giá trị lớn nhất trong mảng

o Tìm giá trị nhỏ nhất được lưu trữ trong mảng và vị trí của các phần tử có giá trị nhỏ nhất trong mảng

o Tìm giá trị trung bình của các phần tử trong mảng

o Tìm độ lệch về giá trị giữa 2 phần tử có vị trí biết trước trong mảng

o Tìm độ lệch trung bình về giá trị của các phần tử trong mảng

o Tìm kiếm (theo giải thuật sequential search) phần tử của mảng cógiá trị là x ; nếu tìm thấy thì đưa ra vị trí của phần tử đó trong mảng, nếu không thì trả lại giá trị là 0

o Tìm kiếm (theo giải thuật binary search) phần tử của mảng có giá trị là x ; nếu tìm thấy thì đưa ra vị trí của phần tử đó trong mảng, nếu không thì thông báo là không tìm thấy phần tử như vậy

o Biểu diễn độ phức tạp tính toán theo ký pháp big-O và hiện thị thời gian tính toán thực tế bằng micro-second

- Viết một chương trình cung cấp các chức năng để kiểm tra ADT này; chương trình được lưu trữ trong file CheckArray.cpp Hàm menu() : gồmcác tùy chọn

- 1-13: các chức năng tính toán trên mảng

- Tùy chọn 1: có menu con cho phép

- Nạp thông tin vào từ bàn phím hoặc từ 1 file dữ liệu vào/ra (I/O data file)

- Quay lại menu chính

Trang 6

- Tùy chọn 2-13: có menu con cho phép

- In kết quả ra màn hình hoặc ra 1 file dữ liệu vào/ra (I/O data file)

- Quay lại menu chính

- 14: thoát khỏi chương trình

1.2 Biểu đồ IPO

1.2.1 Khởi tạo phiên làm việc mới:

1.2.2 Gán giá trị cho ADT

- Sắp xếp theo Insertion Sort

- Sắp xếp theo Selection Sort

-Mảng các phần tử đã được sắp xếp theo thứ tự từ nhỏ đến lớn

1.2.5 Tìm giá trị nhỏ nhất

ADT Tìm giá trị nhỏ nhất và Giá trị nhỏ nhất và vị

Trang 7

vị trí trí của nó

1.2.6 Tìm giá trị trung bình của mảng

ADT Tìm giá trị trung bình Giá trị trung bình các

phần tử trong ADT

1.2.7 Tìm độ lêch giữa 2 phần tử trong mảng

Vị trí phần tử thứ 1, vị

trí phần tử thứ 2, ADT

Tính độ lệch giá trị của hai phần tử

Hiệu của 2 phần tử đầu vào

1.2.8 Tính độ lệch trung bình của các phần tử trong mảng

toàn bộ dữ liệu

- Tính trung bình

Độ lệch trung bình của các phần tử trong mảng

- Vị trí các phần tử có giá trị ấy (Với tìm kiếm tuần tự)

1.2.10 Biểu diễn theo dạng Big-O, hiển thị thời gian tính theo thực

tế

Trang 8

ADT - Thực hiện các

module với cùng một dữ liệu đầu vào

- Tính toán thời gian

- Độ phức tạp

- Thời gian thực tế

Đóng các dữ liệu đang mở

Trang 9

1.3 Thiết kế chương trình

1.4 Thiết kế dữ liệu

Với kiểu dữ liệu ADT gồm các thuộc tính và phương thức đã trình bày phần

mô tả yêu cầu bài toán, chúng em đã quyết định dùng lớp (class) để thể hiện cấu trúc dữ liệu Cụ thể:

class Array

{

private:

// Khai bao du lieu cua doi tuong

double *arrayItems; // Con tro tro toi vung luu tru cac so thuc

int count; // So luong cac gia tri da luu tru trong mang

Nhập dữ liệu Xuất dữ liệu Tính toán

Khởi tạo ADT

Chương trình làm việc với ADT

Tìm kiếmSắp xếp

Từ bàn phím

Nổi bọt

Cực tiểu và vị tríCực đại và vị trí

Thời gian tính toán thực tế

Thời gian tính toán thực tế

Ra file

Chọn

Giá trị trung bình

Giá trị trung bình

Độ lệch

Trang 10

// Khoi tao mot doi tuong moi

////////////////////////////////////////////////////////////////////////////////////////////////////

void NewObj();

////////////////////////////////////////////////////////////////////////////////////////////////////

// Gan gia tri cho mot phan tu cua mang arrayItems

// Parameter: double item : phan tu can them vao mang arrayItems

// Return: true > neu them thanh cong

// false > That bai

// Sap xep theo bubble sort

// Return: + true > neu sap xep thanh cong

// + false > neu mang rong

////////////////////////////////////////////////////////////////////////////////////////////////////

bool SortByBubbleSort();

////////////////////////////////////////////////////////////////////////////////////////////////////

// Sap xep theo insertion sort

// Return: + true > neu sap xep thanh cong

// + false > neu mang rong

////////////////////////////////////////////////////////////////////////////////////////////////////

bool SortByInsertionSort();

////////////////////////////////////////////////////////////////////////////////////////////////////

// Sap xep theo selection sort

// Return: + true > neu sap xep thanh cong

// + false > neu mang rong

////////////////////////////////////////////////////////////////////////////////////////////////////

bool SortBySelectionSort();

////////////////////////////////////////////////////////////////////////////////////////////////////

// Tim kiem phan tu lon nhat va vi tri cua no

// Parameter: double &value : gia tri tim duoc

// int &num > so luong cac vi tri lon nhat

// Return: + Mang chua vi tri cua cac phan tu tim duoc

// + null neu mang chua co phan tu nao

////////////////////////////////////////////////////////////////////////////////////////////////////

int * FindMaxValueAndItsPosition(double &value, int &num);

////////////////////////////////////////////////////////////////////////////////////////////////////

// Tim kiem phan tu lon nhat va vi tri cua no

// Parameter: double &value : gia tri tim duoc

// int &num > so luong cac vi tri nho nhat

// Return: + Mang chua vi tri cua cac phan tu tim duoc

// + null neu mang chua co phan tu nao

////////////////////////////////////////////////////////////////////////////////////////////////////

int * FindMinValueAndItsPosition(double &value, int &num);

////////////////////////////////////////////////////////////////////////////////////////////////////

// Tinh gia tri trung binh cac phan tu trong mang

// Parameter: double &value: Gia tri trung binh cac phan tu trong mang

// Return: + true > neu mang ton tai

// + false > mang rong

////////////////////////////////////////////////////////////////////////////////////////////////////

bool CalculateAverageValue(double &value);

Trang 11

// Tinh gia tri chenh lech giua hai phan tu cho biet truoc vi tri

// Gia tri chenh lech duoc hieu la: gia tri cua phan tu thu hai - gia tri cua phan tu thu nhat // Parameter: int posElement1 : vi tri cua phan tu thu nhat

// int posElement2 : vi tri cua phan tu thu hai

// double &value : Gia tri chenh lech neu co

// Return: + true > Hai phan tu ton tai trong mang

// + false > Mang rong hoac khong ton tai it nhat mot phan tu

////////////////////////////////////////////////////////////////////////////////////////////////////

bool CalculateDifferenceTwoElements(int posElement1, int posElement2, double &value);

////////////////////////////////////////////////////////////////////////////////////////////////////

// Tinh gia tri chenh lech giua tat ca cac phan tu trong mang

// Gia tri chenh lech duoc hieu la: trung binh cong gia tri do lech cua tat ca cac

ki) trong mang

lan theo qui tac phan tu sau tru phan tu truoc

// Parameter: double &value : Gia tri chenh lech neu co

// Return: + true > Neu co

// + false > Mang rong

////////////////////////////////////////////////////////////////////////////////////////////////////

bool CaculateDiffentAllElements(double &value);

////////////////////////////////////////////////////////////////////////////////////////////////////

// Tim kiem kieu tuan tu trong mang

// Parameter: double value : Gia tri can tim kiem

// int &num > so luong cac vi tri tim thay

// Return: + Mang cac vi tri phan tu neu co

// + NULL > khong tim thay

////////////////////////////////////////////////////////////////////////////////////////////////////

int * SearchBySequentialSearch(double target, int &num);

////////////////////////////////////////////////////////////////////////////////////////////////////

// Tim kiem kieu nhi phan trong mang

// Parameter: double value : Gia tri can tim kiem

// Return: + vi tri phan tu neu co

// + -1 > khong tim thay

////////////////////////////////////////////////////////////////////////////////////////////////////

int SearchByBinarySearch(double target);

////////////////////////////////////////////////////////////////////////////////////////////////////

// Bieu dien do phuc tap va thoi gian tinh toan

// Parameter: FILE *ptr >Con tro file dau ra

Trang 12

double inline CaculateTime();

////////////////////////////////////////////////////////////////////////////////////////////////////

// Copy cac phan tu tu mang nguon sang mang dich

// Parameter: double *srcArray > mang nguon

// double *DestArray > mang dich

// Ghi cac phan tu ADT ra file

// FILE* ptr > con tro file

////////////////////////////////////////////////////////////////////////////////////////////////////

void WriteFile(FILE *ptr);};

1.5 Thiết kế giải thuật

1.5.1 Giải thuật: Cấp phát động bộ nhớ

- Thực hiện trong module thêm phần tử

- Yêu cầu: có thể thêm số phần tử không hạn chế, sao cho thỏa mãn yêucầu phần cứng

- Một lần chỉ cấp phát một vùng nhớ nhất định

- Lưu số lần đã cấp phát vùng nhớ, ban đầu được khởi tạo bằng 1

- Khi vùng nhớ đã cấp phát không còn đủ, tiến hành cấp phát tiếp một vùng nhớ có kích thước đã qui định ở đầu Tăng biến đếm số lần cấp phát để phục vụ cho lần sau

1.5.2 Giải thuật: Đưa ra độ phức tạp và thời gian tính toán thực tế

- Yêu cầu: đảm bảo tính khách quan về mặt dữ liệu đầu vào

Trang 13

CHƯƠNG 2 CÀI ĐẶT CHƯƠNG TRÌNH

- Tên ngắn gọn, có tính gợi nhớ

- Tên biến bằng một chữ cáicho các biến chạy

Áp dụng cho tất cả các biến sử dụng trong chương trình

2 Sử dụng kiểu dữ liệu hợp lý:

- Khai báo biến hợp lý, tối

ưu trong sử dụng biến, tránh khai báo nhiều

- Trong thiết kế chương trình và các module

3 Khởi tạo:

- Một lần dùng nhiều lần

- Gán giá trị khởi tạo cho biến ngay khi khai báo biến

- Cấp phát thêm vùng nhớ khi cần thiết

- Khởi tạo ADT, tạo phiên làm việc mới

- Thêm phần tử vàomảng

4 Thêm biến trung gian:

- Phân biệt các bước tính toán

- Không nên lạm dụng, khai báo quá nhiều mà sử dụngit

- Sử dụng đúng tính chất biến đã khai báo

- Các biến dùng trong vòng lặp

- Khai báo các biến trung gian trong các hàm, …

5 Dùng biến con trỏ và con trỏ trỏ tới con trỏ

- Sử dụng trong ADT

- Khoảng cách giữa các từ trong một câu hợp lí

- Các khối lệnh, các phươngthức được phân biệt rõ ràng

- Các lệnh trong cùng khối

- Toàn bộ chương trình

Trang 14

được giữ đúng hàng

2 Các cấu trúc rẽ nhánh:

- Dùng các biểu thức dạnh nguyên bản

- Dùng () để tránh nhầm lẫn,không phải quan tâm tới thứ tự ưu tiên

- Đơn giản hóa các biểu thức điều kiện phức tạp

- Các khối lệnh điềukiện, rẽ nhánh, vòng lặp

3 Các cấu trúc lặp:

- Không thay đổi giá trị của biến chạy trong thân vòng lặp for, while

- Nhất quán trong việc dùng các biến local cùng tên

- Lựa chọn cấu trúc lặp hợp lý

- Dùng đúng ý nghĩa của break và continue

- Các khối lệnh lặp

- Cấu trúc điều kiện, rẽ nhánh

4 Một số kỹ thuật khác

- Viết mã nguồn rõ ràng, mạch lạc

- Chú thích các phần hợp lý,

rõ ràng, dễ hiểu

- Toàn bộ chương trình

- Toàn bộ chương trình

2 Thiết kế giải thuật:

3 Thiết kế dữ liệu:

- Sử dụng con trỏ lưu dữ liệu, truy cập trực tiếp theo chỉ số

- Phương thức và thuộc tính

rõ ràng

- Toàn bộ chương trình

4 Quản lý bộ nhớ động:

- Cấp phát bộ nhớ đúng nhưlương cần khi chạy, không cấp phát quá nhiều, việc cấp phát được thực hiện tựđộng theo dữ liệu đầu vào

- Giải phóng ngay khi không cần dùng hoặc khi kết thúc

- Toàn bộ chương trình

Trang 15

- Mỗi chương trình con có nhiệm vụ rõ ràng, các tham

số vào ra, giá trị trả về được mô tả cụ thể

- Tên hàm/thủ tục là động từhoặc cụm động từ, gắn vớichức năng, ngắn gọn có tính chất gợi nhớ

- Người sử dụng chỉ cần quan tâm tới đầu vào, đầu

ra mà không cần quan tâm tới quá trình xử lý

- Toàn bộ chương trình

2 Tăng tốc độ chương trình:

- Tính toán trước các giá trị cần sử dụng nhiều lần mà giá trị ít thay đổi

- Loại bỏ những biểu thức

dư thừa

- Sử dụng hàm kiểu inline

- Toàn bộ chương trình

2 Lập trình phòng ngừa

- Bao đóng và xử lí các khả năng có thể của đầu vào

Xử lý các lỗi ta dự kiến sẽ xảy ra  Xử lý ngoại lệ

- Phục hồi tài nguyên khi có ngoại lệ

- Toàn bộ chương trình

VI Phong

cách lập trình

1 Chương trình có cấu trúc rõ ràng

- Toàn bộ chương trình

2 Cung cấp đầy đủ tài liệu liên quan đến cấu trúc dữ liệu sử dụng trong chương trình, ý nghĩa các thuộc tính, tham số vào ra, giá trị trả về, ý nghĩa của một hàm

- Toàn bộ chương trình

Trang 16

3 Chú thích rõ ràng có ý nghĩa - Toàn bộ chương

Trang 17

2.3 Giao diện chương trình

Hình 1 Giao diện chương trình

- Chương trình gồm 14 chức năng như yêu cầu của bài toán

Hình 2 Giao diện khởi tạo phiên làm việc mới

- Tạo phiên làm việc mới, chọn cách thức nhập dữ liệu( từ bàn phím hoặc từfile)

- Nếu chọn từ file, chương trình yêu cầu người dùng nhập file đầu vào

- Mặc định ban đầu sẽ là nhập dữ liệu từ bàn phím

// Lay du lieu tu ban phim

#define INKEYBOARD 1

Trang 18

Hình 3 Giao diện ví dụ một chức năng

Khi thực hiện một chức năng:

- Cho phép người dùng chọn cách hiển thị kết quả đầu ra( Trên màn hình hoặc ra file)

- Nếu chọn đầu ra là File  Yêu cầu người dùng nhập tên file đầu ra

- Mặc định đầu ra ban đầu là màn hình

// Dua ra man hinh

#define OUTMONITOR 1

Ngày đăng: 04/10/2014, 08:35

HÌNH ẢNH LIÊN QUAN

Hình 3 Giao diện ví dụ một chức năng - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 3 Giao diện ví dụ một chức năng (Trang 18)
Hình 6 Chức năng sắp xếp chèn - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 6 Chức năng sắp xếp chèn (Trang 23)
Hình 10 Chức năng tìm giá trị trung bình các phần tử trong mảng - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 10 Chức năng tìm giá trị trung bình các phần tử trong mảng (Trang 25)
Hình 13 Độ phức tạp và thời gian tính toán thực tế - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 13 Độ phức tạp và thời gian tính toán thực tế (Trang 26)
Hình 12 Chức năng tìm kiếm nhị phân - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 12 Chức năng tìm kiếm nhị phân (Trang 26)
Hình 14 Nhập dữ liệu từ bàn phím - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 14 Nhập dữ liệu từ bàn phím (Trang 27)
Hình 16 Sắp xếp chèn - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 16 Sắp xếp chèn (Trang 28)
Hình 21 Tính độ lệch giữa hai phần tử - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 21 Tính độ lệch giữa hai phần tử (Trang 31)
Hình 23 Tìm kiếm nhị phân - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 23 Tìm kiếm nhị phân (Trang 32)
Hình 25 Tìm cực đại và vị trí - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 25 Tìm cực đại và vị trí (Trang 33)
Hình 26 Tìm cực tiểu và vị trí - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 26 Tìm cực tiểu và vị trí (Trang 33)
Hình 27 Tính giá trị trung bình - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 27 Tính giá trị trung bình (Trang 34)
Hình 28 Tính độ lệch toàn bộ ADT - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 28 Tính độ lệch toàn bộ ADT (Trang 35)
Hình 30 Tìm kiếm nhị phân - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 30 Tìm kiếm nhị phân (Trang 36)
Hình 31 Hiển thị độ phức tạp và thời gian tính toán - BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH Thao tác trên ADT
Hình 31 Hiển thị độ phức tạp và thời gian tính toán (Trang 36)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w