Tải bản đầy đủ (.docx) (19 trang)

BÀI TẬP NHÓM MÔN HỌC KỸ THUẬT LẬP TRÌNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.12 MB, 19 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

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

CHỮA BÀI NHĨM 6

BÀI TẬP NHĨM MƠN HỌC

KỸ THUẬT LẬP TRÌNH
Giảng viên hướng dẫn : TS. Vũ Thị Hương Giang
Nhóm học viên

: -

Lớp

Vũ Văn Bảo
Trần Trung Hiếu
Nguyễn Minh Tiến
Nguyễn Văn Tùng
Nguyễn Hồng Vinh

:KSCLC-K55

HÀ NỘI 2013


Mục lục

2


2


I- KIỂM THỬ
Để tiến hành tiến hành kiểm thử chương trình của nhóm 6 nhóm chúng em đã
tiến hành kiểm thử chương trình theo chức năng cụ thể như sau:
1. Kiểm tra nhập dữ liệu đầu vào cho các biến
1.1- Kiểm tra việc nhập các chức năng muốn thực hiện
Khi nhập chức năng muốn thực hiện là: “ absj “ mà khơng phải là số (1 hoặc 2)
chương trình bị “treo”, không thực hiện được tiếp nữa.

Kiểm tra việc nhập số lượng phần tử cho mảng
Lỗi khi nhập số lượng phần tử là “sds” từ bàn phím chương trình chạy
khơng dừng
1.2-

3

3


1.3- Kiểm tra việc nhập giá trị cho các phần tử trong mảng

nhập dữ liệu từ bàn phím là kiểu ký tự (VD ret) cho các phần tử trong mảng
chương trình bỏ qua việc nhập các phần tử khác . khi thực hiến chức năng thì
bị treo

Kiểm thử các chức năng của chương trình
Để kiểm thử các chức năng của chương trình chúng em đã tiến hành nhập số
phần tử cho mảng là 10

Với các giá trị các phần tử trong mảng như sau:

2.

4

4


2.1-

Bubble sort
chương trình cho kết quả như sau:

Kết luận : chương trình chạy đúng theo yêu cầu
2.2Insertion sort
Chương trình cho kết quả như sau:

5

5


Kết luận : chương trình chạy đúng theo yêu cầu
2.3Selection sort
Chương trình cho kết quả như sau:

Kết luận : chương trình chạy đúng theo yêu cầu
2.4Tìm phần tử lớn nhất và các vị trí xuất hiện.
Chương trình cho kết quả như sau:

6

6


Kết luận : chương trình chạy đúng theo yêu cầu
2.5- Tìm phần tử nhỏ nhất và các vị trí xuất hiện.
Chương trình cho kết quả như sau:

Kết luận : chương trình chạy đúng theo yêu cầu
2.6- Giá trị trung bình của các phần tử trong mảng.
Chương trình cho kết quả như sau:

7

7


Kết luận : chương trình chạy đúng theo yêu cầu
2.7-

Độ lệch của 2 phân tử ở 2 vị trí cho trước

TH1: nhập vị trí lớn hơn kích thước mảng
Chương trình đưa ra lỗi và kết thúc

Kết luận : chương trình chạy đúng theo yêu cầu
TH2: cả hai vị trí đều thuộc mảng
Chương trình chạy đúng


8

8


2.8-

Độ lệch trung bình

Chương trình chạy đúng :

2.9-

Tìm kiếm tuần tự.

TH1: Khơng có phần tử :
Chương trình chạy đúng

9

9


TH2: Có 1 phần tử
Chương trình chạy đúng

TH3: Có nhiều hơn hai phần tử bằng giá trị cần tìm
Chương trình chạy đúng

2.10-


Tìm kiếm nhị phân.

TH1: Khơng có phần tử:
Chương trình chạy đúng

TH2: Có 1 phần tử:
Chương trình chạy đúng:
10

10


TH3: Có nhiều hơn 1 phần tử:
Chương trình chạy đúng:

2.11- Tính thời gian tính.

Chương trình chạy đúng

11

11


II- GỠ RỐI
1. Lỗi khi nhập số lượng phần tử vào từ bàn phím
1.1-

int


Ngun nhân
Khơng viết Assertions dùng để kiểm tra lỗi khi nhập số lượng phần tử vào từ bàn
phím như
- lỗi khi nhập vào bàn phím là ký tự.
- lỗi khi nhập vào bàn phím là số thực.
- lỗi khi nhập sai kich thược mảng.
1.2- Phương án khắc phục
Xây dựng Assertions dùng để kiểm tra lỗi khi nhập số lượng phần tử vào từ bàn
phím như sau :
ASSERT3(){
12

12


int b;
float a;
char dulieu[10];
printf("\n Nhap so luong phan tu cua mang count = ");
scanf("%s",&dulieu);
fflush(stdin);
if(strcmp(dulieu,"0")!=0){
a= atof(dulieu);
b= atoi(dulieu);
if(a ==0){
printf("\n ban da nhap so luong phan tu la ky tu");
printf("\n sai yeu cau moi ban nhap lai");
b= ASSERT3();
return b;

}
else{
if((a-b)!=0){
printf("\n ban da nhap so luong phan tu la kieu so thuc");
printf("\n sai yeu cau moi ban nhap lai");
b= ASSERT3();
return b;
}
else{
if(b<0||b>1000){
printf("\n ban da nhap so luong phan tu khong dung
13

13


kich thuoc yeu cau");
printf("\n sai yeu cau moi ban nhap lai");
b= ASSERT3();
return b;
}
else return b;
}
}
}
else {
b=0;
return b;
}}
1.3-


Kết quả sau khi khắc phục

14

14


2. Lỗi nhập các giá trị phần tử của mảng từ bàn phím
2.1- Ngun nhân
Khơng viết Assertions dùng để kiểm tra lỗi nhập các giá trị phần tử của mảng từ
bàn phím
như
-

lỗi khi nhập vào bàn phím là ký tự

2.2- Phương án khắc phục
Viết Assertions dùng để kiểm tra lỗi nhập các giá trị phần tử của mảng từ bàn phím
như sau:
float ASSERT1( int chiso){
float a;
char dulieu[10];
printf("\n nhap phan tu thu %3d max[%3d]= ", chiso+1, chiso);
scanf("%s",&dulieu);
fflush(stdin);
if(strcmp(dulieu,"0")!=0){
a= atof(dulieu);
if(a ==0){
printf("\n nhap sai!! moi ban nhap lai");

a= ASSERT1(chiso);
return a;
}
else return a;
}
else {
a=0;
15

15


return a;
}
}
2.3- Kết quả sau khi khắc phục

3. Lỗi nhập yêu cầu bằng ký tự
3.1- Nguyên nhân
Biến n (biến xác định chức năng) không xác định khi người dùng nhập vào kiểu ký
tự
3.2- Phương án khắc phục
Viết một hàm quy định khi nhập ký tự vào thì n được xác định là bằng 0 như sau:
Char dulieu[10];
printf("\n \n Chon chuc nang: "); scanf("%s",&dulieu);
n=atoi(dulieu);
3.3- Kết quả sau khi khắc phục
Nhập ký tự từ bàn phím

16


16


Sau khi ấn enter sẽ được chọn lại

Tài liệu tham khảo
[1] Slide bài giảng KTLT-Vũ Thị Hương Giang
[2] Code complete A Practical Handbook ofd Software Construction của tác giả
17

17


Steve Mc Connell

18

18



×