Giới thiệu bài toán

Một phần của tài liệu (LUẬN văn THẠC sĩ) các phương pháp đánh giá chất lượng phần mềm (Trang 56 - 59)

Giả sử ta cần kiểm thử hàm NC sau đây:

Hàm NC (Name Correcting) chuẩn hóa tên ngƣời theo các yêu cầu sau:

YC1: input - string x chứa tên ngƣời, output - string y chứa tên ngƣời (đã đƣợc chuẩn hóa).

YC2: Tên ngƣời sử dụng bảng chữ cái Latin.

YC3: Không có các dấu cách ở đầu và cuối tên y.

YC4: Một tên y có thể gồm nhiều từ, các từ cách nhau đúng một dấu cách.

YC5: Chữ cái đầu từ viết hoa, chữ cái thân từ viết thƣờng.

YC6: Một tên gồm tối đa 100 ký tự. Thí dụ, với tên

x = “ Tran Thi Minh THANH ” sau khi đƣợc chỉnh lí lại sẽ thu đƣợc y = “Tran Thi Minh Thanh”

Dƣới đây là văn bản chƣơng trình cài đặt hàm NC viết bằng ngôn ngữ lập trình trong môi trƣờng devCPP

/*--- ---

NC.CPP Name correcting: Nan lai ten nguoi theo cacs tieu chi 1. Xoa het dau cach hai dau

2. Moi tu cach nhau dung 1 dau cach 3. Chu cai dau tu viet HOA

4. Chu cai than tu viet thuong

---*/ #include <iostream> #include <stdio.h> #include <string.h> using namespace std; void NC(char * s) {

const char BL = 32; // dau cach int i, j, q; // q: bien trang thai int len = strlen(s);

char w[100]; // output

cout << "\n---"; cout << "\n Input: |" << s << "|";

q = 1; j = 0;

for (i = 0; i < len; ++i) { switch(q) {

case 1: // Duyet dau ten if (s[i] != BL) {

w[j++] = toupper(s[i]);

q = 2;

}

break;

break;

case 3: // Duyet cuoi tu if (s[i] != BL) { w[j++] = BL; w[j++] = toupper(s[i]); q = 2; } break; } // switch } // for w[j] = '\0'; cout << "\n Output: |" << w << "|"; cout << "\n---"; } main() { // Test 1 NC(" Le VAn boM "); // Test 2

NC("Huynh Van Quang (Sau Van)"); // Test 3 NC("Ho K'rong"); // Test 4 NC("Napoleon III"); //--- cout << "\n T H E E N D."; return 0; }

Một phần của tài liệu (LUẬN văn THẠC sĩ) các phương pháp đánh giá chất lượng phần mềm (Trang 56 - 59)

Tải bản đầy đủ (PDF)

(72 trang)